众所周知,一些优化问题等同于时间步长吗?


19

给定所需的状态和正则化参数,请考虑以下问题:找到状态和控件以最小化功能 受约束 \ begin {equation} Ay = u。\ end {equation} 在这里,为简单起见,我们可以考虑y,y_0,u \ in \ mathbb R ^ nA \ in \ mathbb R ^ {n \ times n}y0βRyu

12yy02+β2u2
Ay=u.
y,y0,uRnARn×n

形成拉格朗日算子,寻找固定点并消除控制u我们得到了一阶条件 \ begin {align *} A ^ T \ lambda&= y_0-y \\ Ay&= \ frac {1} {\ beta } \ lambda \ end {align *}在第一个方程式中

ATλ=y0yAy=1βλ
乘以A,在第二个方程式中乘以A AT,我们可以写出正常方程式
(I+βAAT)λ=βAy0(I+βATA)y=y0
我们可以将它们解释为微分方程\ begin {align} \ frac {\ partial \ lambda}的反向欧拉逼近的单步
λb=AATλ+Ay0,λ(0)=0yb=ATAy,y(0)=y0
与伪timestep β

我的问题:这种联系众所周知吗?是否在时间步长或优化的标准方法中进行了讨论?(对我来说,它们之间似乎提供了某种直观的联系。)

这个主意似乎很简单,必须要广为人知,但无论是搜索文献还是与人们交谈都没有给我提供很好的讨论源。我发现的最接近的是O. Scherzer和J.Weichert的论文(J. Math Imaging Vision 12(2000)第43-63页),其中在摘要的第一句(!)中指出了这种联系,但没有提供任何参考或深入探讨连接。

理想情况下,我正在寻找一种不仅说明连接而且还探讨了一些后果的参考文献(例如,可以想象使用便宜的前向Euler步骤预处理优化问题)。


1
从广义上讲(并且您可能已经知道),伪时间步进方法是解决代数方程式(例如您所描述的KKT系统)的众所周知的方法,可以通过将问题转化为找到一组ODE的稳态来解决。时间变量实际上是伪时间。但是,我不知道将KKT条件的特定实例与单个后向Euler步骤相关联的任何特定连接。
Geoff Oxberry 2014年

顺便说一句,你只需要解决一个两个常微分方程的,因为你可以使用来计算,例如,一阶必要条件之一yλ
克里斯蒂安·克拉森2014年

Answers:


17

正如Jed Brown提到的那样,非线性优化中的梯度下降与动力系统的时间步长之间的联系会以一定的频率重新发现(可以理解,因为它连接了两个看似不同的领域,因此对数学思维的连接非常令人满意)。但是,它很少成为有用的连接,尤其是在您描述的上下文中。

在反问题中,人们对解决(不适定)算子方程且不在范围内感兴趣。(您的最佳控制问题可以看作是且一个实例。)几种正则化策略(例如Tikhonov或Landweber)可以解释为单个伪时间某类的步骤。然后,想法是使用正则化参数的解释作为步长,以获取该参数的一些(自适应,后验)选择规则-反问题中的基本问题-并可能进行多个伪时间步长寻求真正的,非正规的解决方案(类似于ý δ ˚F ˚F = - 1个 Ÿ δ = ÿ 0F(u)=yδyδFF=A1yδ=y0数值延续)。有时称为连续正则化,通常在级别集方法的上下文中进行讨论。参见,例如Kaltenbacher,Szerzer,Neubauer的6.1章:非线性不适定问题的迭代正则化方法(de Gruyter,2008年)。

这个想法反复出现的第二种情况是非线性优化:如果您查看的梯度下降步骤,则 那么您可以将其解释为动力学系统的向前欧拉步骤 正如Jed Brown指出的,乍一看,只要伪时间步长足够小,这种方法收敛就不会产生非常令人惊讶的观察结果。有趣的部分是当您查看动力学系统并问自己时,所谓的梯度流的连续解具有什么性质X ķ + 1 = X ķ - γ ķ˚F X ķminxf(x)

xk+1=xkγkf(xk),
x˙(t)=f(x(t)),x(0)=x0.
γkx(t)是否具有(或应该具有),与梯度下降无关,是否与标准的Euler相比,是否可能导致更合适的时间步进(并因此优化)方法。我脑海中浮现出一些例子:
  1. 梯度流在其中存在自然功能空间吗?如果是这样,则应从相同的空间进行渐变(即离散化应符合要求)。例如,这导致针对不同的内积计算梯度的Riesz表示形式(有时称为Sobolev梯度),并且在实践中导致收敛更快的预处理迭代。

  2. 也许不应该属于向量空间,而应该属于流形(例如,对称正定矩阵),或者梯度流应该守恒的某个范数。在这种情况下,您可以尝试应用保留结构的时间步长方案(例如,涉及对适当的李群或几何积分器的拉回)。xx

  3. 如果不可微但是凸的,则正向Euler步骤对应于次梯度下降方法,由于步长限制,该方法可能非常慢。另一方面,隐式欧拉步骤对应于近端方法,该方法不适用此类限制(因此在例如图像处理中变得非常流行)。f

  4. 同样,通过外推步骤可以大大加速此类方法。激发这些效应的一种方法是观察标准的一阶方法,因为梯度方向会“振荡”(必须考虑标准图解,以了解共轭梯度为何胜过最陡的下降),因此不得不在极小值附近做许多小步骤。为了解决这个问题,可以通过不求解一阶动力学系统,而是求解阻尼的二阶系统来“抑制”迭代: 适当选择的。通过适当的离散化,这会导致以下形式的迭代(称为Polyak的重球法

    a1x¨(t)+a2x˙(t)=f(x(t))
    a1,a2
    xk+1=xkγkf(xk)+αk(xkxk1)
    (其中取决于)。对于近端点方法存在类似的想法,例如参见Dirk Lorenz和Thomas Pock 的论文http://arxiv.org/pdf/1403.3522.pdfγk,αka1,a2

(我应该补充一点,据我所知,在大多数情况下,对于动力学算法的推导或收敛证明,并非严格将其解释为动力系统;有人可能会争辩说,诸如“隐式vs.显式”或Lie导数之类的想法。实际上比动力系统或梯度下降方法更基础。但是,从另一个角度来看问题也没有关系。)


编辑:从第二个上下文中我偶然发现了一个很好的例子,其中ODE解释用于推导Nesterov的过梯度方法的属性并提出改进建议:http : //arxiv.org/pdf/1503.01243.pdf (请注意,这也是杰德·布朗(Jed Brown)观点的一个例子,作者基本上没有发现Polyak的算法就重新发现了上面的点4。)

编辑2:作为指示,您可以采取多远的措施,请参阅http://arxiv.org/pdf/1509.03616v1.pdf的第5页。


我接受此答案,因为第二段最直接地回答了我想问的问题,但我也喜欢杰德·布朗的答案。
Andrew T. Barker 2014年

13

虽然我还没有看到您在这里写下的确切公式,但我一直在看到人们在“重新发现”与集成某些瞬态系统的联系,并继续写下一种代数等效于一种形式或现有梯度下降法或类似牛顿法的另一种方法,但没有引用其他任何方法。我认为这不是很有用,因为结论基本上是“只要采取足够小的步骤,该方法最终就会收敛到局部最小值”。好吧,2014年是菲利普·沃尔夫(Philip Wolfe)展示其以有原则的方式做到这一点的论文45周年。还有一个很好的理论,可以从伪瞬态连续和诸如Levenberg-Marquardt之类的相关方法中获得q二次或q超线性收敛。

如果您想使用类似牛顿的公式来解决这个重新发现的实例,以解决来自数学家的600多篇论文的代数方程(即经典伪瞬态连续)(因此,他可能会证明您发现的事情很有趣),请查看“动力学系统方法”,作者:AG Ramm [1]。

如果通过考虑瞬态系统而获得的直觉导致实用的算法更快或更可靠,那么我认为我们会看到有关该主题的高篇文章。我认为Nocedal和Wright的引用次数超过13000,而Ramm的书中有80左右(主要是自我引用),这并不奇怪。

[1]我可以建议您不要告诉Ramm教授,他的DSM在代数上等同于数十年来无数工程软件包中的内容,否则您可能会大喊大叫。#gradstudent记忆


3
看到您现在告诉他,杰德,可能会更有趣!
比尔·巴特

0

如果ODE方法可以帮助优化,是否有一个非常简单的示例问题来说明这一点?
一个稻草人:是否有一个ODE求解器在 或基督教克拉森表明 为说Rosenbrock函数,在二维或10d中?如果这很愚蠢,那么有人能做得更好吗? (注意“合理”,而不是“与最先进的优化器竞争”。我认为人们需要减小步长/容差,也许还需要一个刚性的求解器。)
x˙=f(x)
x¨=βx˙αf(x)  
f

在实践中,“太大”的步骤比“太大”的步骤要麻烦得多-振荡是混乱的。
我曾经天真地认为控制理论会有所帮助。数字食谱p。915描述 了ODE的
PI自适应步长控制,但是我不知道这是否在实践中使用。


看来您要发布一个新问题作为答案...与切线相关的问题应发布在单独的问题或对给出答案的注释中。
保罗

@Paul,这完全有意义吗?如果是这样,您能建议一个新问题的标题吗?
denis 2015年

我很困惑……我可能是错的,但是看来您的回答实际上并不是OP的问题。您要传达的信息到底是什么?它与原始问题有什么关系?
保罗

@Paul,对不起,我不清楚。据我了解,该问题要求特定的优化问题与时间步长(也称为ODE求解器)之间存在联系。克里斯蒂安·克拉森(Christian Clason)指出了梯度下降与特定ODE求解器(前向欧拉)之间的直接关系。我评论说,什么是简单的测试函数f(),它显示 ODE求解器朝着f()的最小值移动?
denis
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.