try ai
科普
编辑
分享
反馈
  • 展开优化

展开优化

SciencePedia玻尔百科
核心要点
  • 展开优化将经典迭代算法重新诠释为深度神经网络层,从而将基于模型的结构与数据驱动的学习相结合。
  • 该技术允许直接从数据中学习最优算法参数(如步长和正则化函数),以解决不适定反问题。
  • 通过集成物理模型,展开技术实现了“可微物理”,使得系统可以在没有真实标签数据的情况下,利用基于物理的损失函数进行训练。
  • 其应用范围广泛,从核磁共振(MRI)等科学成像,到引导像 AlphaFold 这样的复杂模型进行蛋白质结构预测,展示了其多功能性。

引言

科学与工程领域的许多关键挑战——从锐化空间望远镜的图像到绘制地球内部结构图——本质上都是反问题。我们试图从间接且带噪声的测量中揭示潜在的真实情况。然而,这些问题通常是不适定的,这意味着传统方法在面对噪声时难以产生稳定且有意义的解。一种开创性的范式——展开优化——应运而生,它通过创建一种强大的混合体,结合了经典的、基于模型的优化算法与现代的、数据驱动的深度学习,从而填补了这一空白。本文将探讨这种融合。第一章“原理与机制”将揭示迭代算法如何能被重新构想为深度神经网络,从而实现对最优参数和先验的学习。接下来的“应用与跨学科联系”一章将展示该技术如何革新从医学成像、可微物理到蛋白质结构预测等领域,为科学发现开辟新路径。

原理与机制

想象一下,你是一位天体物理学家,手握一幅来自遥远望远镜的模糊图像;或是一位地球物理学家,试图通过地震波绘制地球核心的地图;又或是一位医生,正在解读一幅医学扫描图。在所有这些情况下,你都面临着一个相似的挑战:你拥有间接且带噪声的测量值(yyy),并且你想要重建真实、潜在的现实(xxx)。你的测量设备的物理原理为你提供了一个“正向模型”,即一个算子 AAA,它描述了真实情况 xxx 如何产生你所观测到的数据 yyy:y=Ax+noisey = A x + \text{noise}y=Ax+noise。从 yyy 回溯到 xxx 的任务,就是我们所说的​​反问题​​。

而这其中蕴含着一个深刻的困难。这些问题通常是​​不适定的​​ (ill-posed)。测量中微小的噪声扰动都可能导致重建图像发生灾难性的、完全错误的变化。这就像只通过观察很久之后才到达岸边的涟漪,来猜测投入池塘的石子的确切形状。信息已经被冲淡和搅乱了。在数学上,当你尝试对算子 AAA 求逆时,它的性质会极大地放大噪声。因此,一种简单地“撤销”AAA 的尝试会得到一个被放大噪声淹没的解。

我们如何找到一个有意义的答案?我们需要更聪明一些。我们需要将数据告诉我们的信息与我们已经知道的关于世界的信息结合起来。

两个世界的故事:迭代算法与神经网络

驯服不适定性的经典方法是​​正则化​​。我们不是仅仅试图寻找一个能完美拟合数据的 xxx(这也意味着拟合了噪声),而是寻找一个能在两者之间取得平衡的 xxx。我们定义一个需要最小化的目标函数,它包含两个相互竞争的部分:

min⁡x12∥Ax−y∥22⏟Data Fidelity+λR(x)⏟Regularization (Prior)\min_{x} \underbrace{\frac{1}{2}\|A x - y\|_2^2}_{\text{Data Fidelity}} + \underbrace{\lambda R(x)}_{\text{Regularization (Prior)}}xmin​Data Fidelity21​∥Ax−y∥22​​​+Regularization (Prior)λR(x)​​

第一部分,​​数据保真项​​,促使我们的解与测量值 yyy 保持一致。第二部分,​​正则化项​​,融入了我们关于解应具有何种形态的先验信念。对于“好的”解,R(x)R(x)R(x) 的值很小;而对于“差的”解,R(x)R(x)R(x) 的值很大。例如,如果我们期望图像是稀疏的(大部分是黑色,只有少数明亮的物体),我们可能会为 R(x)R(x)R(x) 选择 L1L_1L1​ 范数,它会对存在大量非零像素值进行惩罚。超参数 λ\lambdaλ 是一个用于调节权衡的旋钮:大的 λ\lambdaλ 意味着我们更信任先验信念,而小的 λ\lambdaλ 意味着我们更信任数据。

解决这个优化问题很少能通过一次性计算完成。相反,我们使用​​迭代算法​​,从一个初始猜测开始,逐步对其进行修正,从而逐渐走向目标函数的最小值。

最简单也最基础的算法之一是​​梯度下降法​​。如果我们的目标函数是一个平滑、起伏的曲面,梯度 ∇ℓ(x)\nabla \ell(x)∇ℓ(x) 会指向最陡峭的上升方向。因此,要找到一个谷底,我们只需朝相反方向迈出一小步:xk+1=xk−η∇ℓ(xk)x_{k+1} = x_k - \eta \nabla \ell(x_k)xk+1​=xk​−η∇ℓ(xk​)。这里,η\etaη 是我们的步长,或称学习率。

这个简单的想法与现代深度学习的基石之一——残差网络(​​ResNets​​)——有着惊人而美妙的联系。一个基本的残差块具有 xk+1=xk+g(xk)x_{k+1} = x_k + g(x_k)xk+1​=xk​+g(xk​) 的形式,其中 g(xk)g(x_k)g(xk​) 是一个神经网络层。如果我们设置 g(xk)=−η∇ℓ(xk)g(x_k) = -\eta \nabla \ell(x_k)g(xk​)=−η∇ℓ(xk​),那么这个 ResNet 块就是一步梯度下降! 这是我们发现迭代优化与深度学习两个世界相距不远的第一个线索。

但是,如果我们的正则化项(如 L1L_1L1​ 范数)有尖锐的角点且不平滑,该怎么办呢?我们无法在所有点上计算它的梯度。解决方案是一种优雅的两步法,称为​​近端梯度法​​(也称为 ISTA 或前向-后向分裂法)。

  1. ​​前向步骤 (Forward Step):​​ 对平滑的数据保真部分执行一次常规的梯度下降步骤:zk=xk−α∇g(xk)z^k = x^k - \alpha \nabla g(x^k)zk=xk−α∇g(xk)。
  2. ​​后向步骤 (Backward Step):​​ 应用一个“清理”操作,即​​近端算子​​,来处理非平滑的正则化项:xk+1=proxαλR(zk)x^{k+1} = \mathrm{prox}_{\alpha \lambda R}(z^k)xk+1=proxαλR​(zk)。

近端算子是数学直觉的奇迹。对于一个给定的点 zzz,proxγR(z)\mathrm{prox}_{\gamma R}(z)proxγR​(z) 会找到一个新的点 uuu,这个点是在保持与 zzz 接近和使正则化项 R(u)R(u)R(u) 变小之间达成的完美折衷。对于 L1L_1L1​ 范数,这个算子最终表现为一个简单而著名的函数,称为​​软阈值​​函数,它将数值向零收缩,并将较小的值精确地设置为零,从而促进稀疏性。

桥梁:将算法展开为网络

这就是核心的、变革性的思想。让我们看一次近端梯度算法的迭代:

xk+1=proxαkλR(xk−αk∇g(xk))x^{k+1} = \mathrm{prox}_{\alpha_k \lambda R}\big(x^k - \alpha_k \nabla g(x^k)\big)xk+1=proxαk​λR​(xk−αk​∇g(xk))

这不过是一个接收输入 xkx^kxk 并产生输出 xk+1x^{k+1}xk+1 的数学函数。在深度学习的世界里,一个将状态从一个映射到下一个的函数,就是一个​​层​​。通过“展开”迭代算法,我们可以将整个包含 KKK 次迭代的序列重新诠释为一个拥有 KKK 层的深度神经网络。

这个展开网络中的每一层都继承自优化算法,具有特定且可解释的结构:

  1. 一个执行梯度步骤的​​数据一致性模块​​:zk=xk−αkA⊤(Axk−y)z^k = x^k - \alpha_k A^\top(Ax^k - y)zk=xk−αk​A⊤(Axk−y)。这部分是我们根据问题物理知识硬编码的,这些知识嵌入在算子 AAA 及其转置 A⊤A^\topA⊤ 中。
  2. 一个应用近端算子的​​正则化模块​​:xk+1=proxαkλR(zk)x^{k+1} = \mathrm{prox}_{\alpha_k \lambda R}(z^k)xk+1=proxαk​λR​(zk)。这部分强制施加我们对解的先验。

那么,这种视角转变有什么好处呢?在经典算法中,参数——步长 αk\alpha_kαk​、正则化强度 λ\lambdaλ——都是由人类专家精心手动调整的。这是一项费力且针对特定问题的技艺。在展开网络中,我们可以让这些参数变为​​可学习的​​。我们可以将步长序列 {αk}\{\alpha_k\}{αk​} 视为可训练的权重,并使用一个包含“真实”解的数据集来为重建过程的每个阶段学习最优的步长。

我们甚至可以更进一步。为什么我们必须局限于像 L1L_1L1​ 范数这样手动设计的正则化项呢?真实世界要复杂得多。我们可以用一个灵活、强大的​​可学习的近端模块​​ proxθk\mathrm{prox}_{\theta_k}proxθk​​ 来代替固定的近端算子,这个模块本身就是一个小型的神经网络。然后我们从数据中训练这个网络的参数 θk\theta_kθk​。展开网络不再仅仅是解决一个预定义的优化问题;它在学习如何在每次迭代中以最佳方式对解进行正则化,从数据本身中发现复杂的先验。这种融合就是展开优化的魔力所在:它将基于物理的模型的刚性、可解释结构与深度学习的灵活、数据驱动能力相结合。

学习迭代的艺术与科学

一旦我们将迭代算法视为网络,一个充满可能性的全新世界便豁然开朗。我们不必局限于展开简单的梯度下降法。

更强大的经典算法也可以进行深度学习改造。例如,使用​​动量​​的方法,如 ​​Nesterov 加速梯度法​​,就可以被展开。这些算法就像一个滚下山坡的球,它会记住自己的速度,这有助于它快速通过平坦区域并更快地收敛。通过展开这个过程,我们可以为特定类别的问题学习到最优的动量调度方案。即使是像​​交替方向乘子法 (ADMM)​​ 这样复杂的方案——它将一个大问题分解成多个更小、更容易解决的部分——也可以被映射到一个网络架构上。

网络的​​深度​​,对应于迭代次数 KKK,成为一个关键的设计选择。它体现了基本的​​偏差-方差权衡​​。

  • 一个​​浅层网络​​(少量迭代)可能无法非常接近目标的真实最小值。它具有较高的​​优化偏差​​。然而,通过提前停止,它可以防止测量中的噪声被过度放大,从而使其方差较低。
  • 一个​​深层网络​​(大量迭代)偏差较低,能非常接近最优解。但每一层都可能放大输入噪声,导致最终输出具有高方差。

最优深度并非普适的;它取决于信号和噪声。对于噪声非常小的问题,我们可以使用更深的网络来获得更精细的解。这是经典概念​​早停​​作为一种正则化形式在深度学习中的类比。

这个框架对于​​非凸​​问题同样强大——这些问题如同有许多山丘和山谷的地形,简单的下降方法很容易陷入一个不好的局部最小值。一种巧妙的策略是​​连续​​法或同伦法。我们设计的展开网络在每一层使用不同的正则化强度 λℓ\lambda_\ellλℓ​。我们从一个非常大的 λ1\lambda_1λ1​ 开始,这使得优化曲面变得更加平滑,更像凸函数,从而引导初始步骤走向一个好的区域。然后,在后续的层中,我们逐渐减小正则化强度,即 λ1≥λ2≥⋯≥λL\lambda_1 \ge \lambda_2 \ge \dots \ge \lambda_Lλ1​≥λ2​≥⋯≥λL​,让网络在越来越复杂的地形上对解进行精炼。这种学习到的、类似退火的调度方案在寻找高质量解方面可以非常有效。

深入底层:对解求导

也许最深刻的洞见出现在我们不仅想学习算法内部的参数(如步长),还想学习定义问题本身的参数(如整体正则化强度 λ\lambdaλ)的时候。要做到这一点,我们需要计算某个最终性能指标(验证损失)相对于 λ\lambdaλ 的导数。这被称为计算​​超梯度​​。

有两种同样优美的方式来思考这个问题。

首先,我们可以将“展开并学习”的理念推向其逻辑终点。整个包含 TTT 步的优化过程就是一个巨大而深入的计算图。我们可以将深度学习的主力军——​​反向传播​​——应用于这个图。通过在末端输入一个“1”,我们可以计算出最开始 λ\lambdaλ 的一个微小变化是如何通过所有 TTT 次迭代层层传递,最终影响最终输出的。

或者,我们可以运用一些数学上的优雅技巧。最终解 x⋆x^\starx⋆ 不仅仅是一个过程的结果;它是一个满足特定条件的状态:目标函数的梯度为零,即 ∇J(x⋆,λ)=0\nabla J(x^\star, \lambda) = 0∇J(x⋆,λ)=0。这是将 x⋆x^\starx⋆ 定义为 λ\lambdaλ 的函数的一种隐式方式。​​隐函数定理​​是高等微积分的基石,它为我们提供了一个计算导数 dx⋆/dλdx^\star/d\lambdadx⋆/dλ 的直接公式,而无需知道我们是如何找到 x⋆x^\starx⋆ 的。这种方法绕过了展开的需要,并且可能效率高得多,尤其是在迭代次数 TTT 非常大的情况下。它需要求解一个相关的线性系统,称为伴随系统。

这两种观点——通过展开路径进行显式微分和对最终条件进行隐式微分——是同一枚硬币的两面。它们揭示了优化数学中深刻的统一性,表明无论我们将解看作一段旅程的终点,还是一个具有特定属性的目的地,我们都可以对其进行推理、微分,并最终学会更好地找到它。这就是展开优化的核心:基于原则的模型推理与强大的数据驱动学习的完美结合。

应用与跨学科联系

既然我们已经探索了展开优化的内部工作原理,我们可以退后一步,欣赏全局。这个想法究竟适用于什么?事实证明,展开一个算法并不仅仅是构建神经网络的一个聪明技巧;它是一座深刻的桥梁,连接了那些曾经看起来天差地别的领域。它是一面透镜,通过它我们可以看到经典算法与现代机器学习之间、严谨的物理世界与统计的数据世界之间的深刻统一。它是一个工具,不仅以新的方式解决旧问题,而且还开辟了全新的科学探究前沿。

让我们踏上一段旅程,探索其中一些应用,从熟悉的到真正革命性的。你会发现,展开的原则就像一种通用语言,让我们能够将过去的智慧转化为未来强大的机器。

温故知新:从图像去模糊到核磁共振成像

你是否曾对迭代算法与深度神经网络之间惊人的相似性感到好奇?考虑一个简单而经典的问题:图像去模糊。一种标准方法可能是从模糊图像开始,并对其进行迭代优化,每一步都根据当前估计值与观测到的模糊程度之间的差距进行微小修正。这种迭代更新看起来像这样:

xk+1=xk+correction(xk)x_{k+1} = x_k + \text{correction}(x_k)xk+1​=xk​+correction(xk​)

现在,想一想深度学习中最著名的架构之一,残差网络(ResNet)。一个 ResNet 块计算其输出如下:

y=x+F(x)y = x + F(x)y=x+F(x)

这种相似性并非巧合,而是一种启示。ResNet 块就是一个迭代优化步骤。通过堆叠这些块,我们实际上是在展开一个优化算法,其中“修正”项 F(x)F(x)F(x) 是从数据中学习得到的。这就是展开的核心洞见:我们凭直觉和试错法开发的许多架构,实际上是在重新发现经典优化中那些久经考验的结构。

这一认识不仅仅是学术上的好奇。它为我们构建更适用于复杂科学成像任务(如核磁共振成像,MRI)的模型提供了一个强大的方案。在 MRI 中,我们在频域测量一个物体,并且必须解决一个反问题来重建清晰的图像。几十年来,科学家们一直使用迭代算法来完成这项任务,并仔细地手动调整步长和正则化强度等参数。展开技术让我们能够将这样的算法转化为一个网络架构。但我们做的还不止于此:我们让网络为每一步学习最优参数。

物理学家不再需要花费数月时间寻找一个好的步长,而是由网络学习一整套步长序列,这些步长完全根据数据分布量身定制。我们甚至可以像在任何其他科学实验中一样,进行严谨的“消融研究”,以证明学习这些参数相比于固定的、手动调整的值能提供可量化的益处。其应用远不止于线性问题。我们可以展开像高斯-牛顿法这样复杂的非线性求解器,创建出对我们世界数学模型中不可避免的误差和模型失配更具鲁棒性的网络。

先验的语言:从全变分到生成模型

解决任何反问题的核心在于“先验”这一概念。先验是我们关于世界的背景知识,是我们对解应有形态的预期。一张猫的图像应该有清晰的边缘和有纹理的毛发;它不应该看起来像电视雪花。几个世纪以来,科学家和数学家一直试图将这种先验知识编码成数学形式,即所谓的“正则化项”。

最优美且最具影响力的正则化项之一是​​全变分 (Total Variation, TV)​​。TV 先验陈述了一个简单的偏好:图像应由分段常数区域组成。它惩罚不必要的振荡,但允许急剧的跳变,这使得它在保留图像边缘方面表现出色。当我们展开一个使用 TV 先验的算法时,我们可以创建明确模仿 TV 正则化数学运算的网络块——计算梯度、对其进行归一化以及计算散度。

但正是在这里,展开揭示了一个更深的联系。一种现代的深度学习先验方法是使用​​生成模型​​——一个经过训练能从潜在编码生成逼真图像的网络。如果我们能拿一个强大的、预训练好的、知道自然图像长什么样的生成模型,然后简单地将其“即插即用”地替换掉经典优化算法中的旧正则化项,会怎么样?

这就是​​即插即用 (Plug-and-Play, PnP)​​ 方法的精髓。事实证明,在某些数学条件下,任何好的去噪器——任何能接收带噪图像并将其清理干净的函数——都在隐式地定义一个正则化项。展开技术使我们能够共同设计算法和学习到的先验,创造出混合系统,这些系统既拥有深度网络丰富、强大的表达能力,又保留了经典算法的刚性、物理一致性。我们甚至可以在基本层面上理解新旧先验之间的联系。例如,一个学习从具有最小周长的不同、颜色恒定的区域构建图像的生成模型,本质上是在学习一个经典全变分先验的现代、更灵活的版本。

拓展视野:可微物理与无标签学习

当我们将展开优化应用于那些传统机器学习以前无法触及的问题时,其真正的力量就显现出来了。

想象一个基于复杂偏微分方程 (PDE) 系统的天气预报模型。我们拥有稀疏的传感器测量数据,并希望确定大气的完整状态。这是一个经典的数据同化问题。如果我们能将随时间推进 PDE 的数值模拟器视为神经网络中的一个层,会怎么样?展开技术使这成为可能。通过运用隐函数定理的魔力,我们甚至可以计算梯度并穿过复杂、隐式的数值求解器进行反向传播。这种范式通常被称为​​可微物理​​,它允许我们将关于一个系统的完整物理知识直接嵌入到学习过程中。我们可以训练网络来修正模型误差,甚至仅从观测数据中发现未知的物理参数。

这带来了最令人兴奋的可能性之一:​​无真实标签学习​​。在从天文学到地震学的许多科学领域,我们拥有丰富的测量数据,但却没有我们试图观察的物体的“真实标签”图像。需要(输入,正确输出)对的监督学习根本不可能实现。展开优化提供了一条出路。

一种方法是​​自监督学习​​,我们在一个简单而巧妙的任务上训练网络:我们隐藏部分测量数据,并要求网络利用它能看到的数据来预测被隐藏的部分。因为展开架构中已经融入了正向模型的物理原理,它要成功完成这项任务的唯一方法就是学会重建一个物理上合理的潜在信号。

另一种更深刻的方法是使用​​基于物理的损失函数​​来训练网络。我们不是将网络的输出与已知答案进行比较,而是检查输出在多大程度上满足了我们试图解决的问题的基本数学最优性条件(即所谓的 Karush-Kuhn-Tucker 条件,或 KKT 条件)。网络获得奖励不是因为它匹配了一个标签,而是因为它找到了一个尊重物理和数学定律的解。

这些不仅仅是增量式的改进。它们代表了我们将人工智能应用于科学方式的根本转变——从模式识别转向一种自动化科学发现的形式。我们甚至可以创建智能混合系统,其中深度网络提供一个高质量的初始猜测(“热启动”),而经典算法的几个展开步骤提供最终的精炼,从而保证收敛性和数据一致性。

巅峰视角:引导蛋白质结构预测

在蛋白质结构预测这一巨大挑战中,或许没有比这更能体现这些想法潜力的例子了。像 AlphaFold 这样的开创性模型拥有一个内部的“结构模块”,它接收蛋白质的初始表示,并迭代地优化其三维几何结构。这种迭代优化过程的核心是一个展开优化过程,由一个复杂的、学习得到的能量函数引导。

该模型在一个庞大的已知蛋白质结构数据库上进行了预训练,包含了关于蛋白质折叠物理学和几何学的极其丰富的先验知识。但是,如果我们作为科学家有了一个新的假设呢?如果我们有实验数据表明蛋白质中某两个特定的残基应该靠得很近,即使模型没有这样预测,该怎么办?

利用展开优化的原理,我们可以在推理时完成一项非凡的壮举。我们可以引入一个新的、自定义的能量项,该能量项对偏离我们期望约束的情况进行惩罚。通过对模型的内部表示,针对这个增强的目标函数执行梯度下降,我们可以主动地“引导”预测走向一个既符合模型已学知识又符合我们新假设的构象。模型不再是一个静态的预测器;它变成了一个用于科学探索的动态、交互式工具。

从对简单图像去模糊,到探索生命最基本分子的构象空间,展开的原则提供了一条共同的线索。它是一个用于构建可解释、可靠且与科学定律深度融合的智能系统的框架。它教导我们,前进的道路并不总是用新事物取代旧事物,而是要找到一种语言来将它们统一起来。