我有一个客观的功能 取决于一个值 ,在哪里 是PDE的解决方案。我正在优化在PDE 的初始条件下通过梯度下降:。也就是说,我更新然后必须集成PDE以计算我的残差。这就是说,如果我要对梯度下降步长进行线搜索(称它为),对于的每个潜在值 我将不得不重新整合PDE。
就我而言,这将是非常昂贵的。自适应梯度下降步长还有另一种选择吗?
我不仅在这里寻找数学原理的方案(尽管如果有的话当然会更好),但对通常比静态步长更好的任何事物都会感到满意。
谢谢!
我有一个客观的功能 取决于一个值 ,在哪里 是PDE的解决方案。我正在优化在PDE 的初始条件下通过梯度下降:。也就是说,我更新然后必须集成PDE以计算我的残差。这就是说,如果我要对梯度下降步长进行线搜索(称它为),对于的每个潜在值 我将不得不重新整合PDE。
就我而言,这将是非常昂贵的。自适应梯度下降步长还有另一种选择吗?
我不仅在这里寻找数学原理的方案(尽管如果有的话当然会更好),但对通常比静态步长更好的任何事物都会感到满意。
谢谢!
Answers:
我先做一个一般性的评论:一阶信息(即仅使用渐变来编码斜率)只能为您提供方向信息:它可以告诉您函数值在搜索方向上减小,但不会持续多长时间。要确定沿着搜索方向的距离,您需要其他信息(即使出现凸二次问题,具有恒定步长的梯度下降也可能失败)。为此,您基本上有两个选择:
如您所写,如果您无权访问二阶导数,并且评估目标函数的成本非常高,则您唯一的希望就是妥协:使用足够的近似二阶信息来获得良好的候选步长,以使一条直线仅搜索需求 评估(即,评估梯度所需的努力最多为(小的)常数倍)。
一种可能性是使用Barzilai-Borwein步长(例如,参见 Fletcher:关于Barzilai-Borwein方法。应用程序的优化和控制,235-256,Appl。Optim。,96,Springer,New York,2005)。这个想法是使用沿着搜索方向的曲率的有限差分近似来获得步长的估计。具体来说,选择 任意设置 然后 :
可以证明该选择对于二次函数收敛(实际上非常快),但是收敛不是单调的(即函数值) 可以大于 ,但仅偶尔执行一次;请参阅Fletcher论文第10页的图)。对于非二次函数,您需要将此与行搜索结合起来,需要对其进行修改以处理非单调性。一种可能性是选择 (例如,通过回溯)
另一种方法(我认为更好)是在搜索方向的计算中已经使用了这种有限差分近似。这称为准牛顿法。这个想法是通过使用梯度差逐步建立Hessian的近似值。例如,您可以采用(单位矩阵),对于求解 和集合 与如上所述的和。(这称为Broyden更新
幸运的是,在这种情况下,存在一种替代方法,可以利用每个函数求值。这个想法是,对于对称且为正定的(BFGS更新保证),求解等效于最小化二次模型 在信任区域方法中,您可以使用的附加约束来这样做,其中是适当选择的信任区域半径(长)。现在的关键思想是根据计算出的步长自适应地选择此半径。具体来说,您要查看比率