BFGS与共轭梯度法


25

在BFGS和共轭梯度之间进行优化时,应该考虑哪些因素?我试图适合这些变量的函数是指数函数。但是,实际的目标功能除其他外还涉及集成,如果有帮助的话,则成本很高。


3
好吧,BFGS在存储方面肯定比CG贵。一个需要维护近似的Hessian,而另一个仅需要您提供一些向量。另一方面,两者都需要计算梯度,但是有人告诉我,使用BFGS,您可以不必使用有限差分近似,而不必编写用于梯度的例程(但是使用有限差分的版本会收敛一点当然比使用实际渐变的速度慢)。如果您具有自动区分功能,那么您唯一需要担心的就是存储。
JM

只需拟合约7个(绝对小于10个)变量,就意味着hessian近似仅(最多)是10x10矩阵正确的吗?在这种情况下,一个比另一个快吗?
drjrm3 2011年

我认为速度不会有太大差异。如果有的话,我认为您的计算中可能花费最多时间的部分是函数评估必须执行的正交运算。如果参数数量与您声明的一样少,那么您真的应该自己做一些实验。
JM

Answers:


13

JM关于存储是正确的。BFGS需要近似的Hessian,但是您可以使用单位矩阵对其进行初始化,然后只要您具有可用的梯度信息(最好是分析性而非通过有限差分),就可以随即计算近似Hessian的秩2更新。BFGS是一种准牛顿法,将以比CG更少的步骤收敛,并且具有“卡住”的趋势,并且需要进行少量的算法调整以便在每次迭代中获得明显的下降。

相反,CG需要矩阵向量乘积,如果您可以计算方向导数(再次,解析地或使用有限差分),则对您可能有用。方向导数的有限差分计算比Hessian的有限差分计算便宜得多,因此,如果您选择使用有限差分构造算法,则只需直接计算方向导数即可。但是,该观察结果并不真正适用于BFGS,它会使用梯度信息的内积来计算近似的Hessian。

nn

如果您知道存储不会成为问题,那么我将在您的应用程序的一个小测试问题上比较这两种算法。在不知道问题具体细节的情况下,我猜测BFGS会更快,但是您应该真正测试这两种算法以更好地了解哪种算法会更好。

最后,关于自动差异化的一句话:拥有Fortran内部自动差异化(AD)工具(DAEPACK)的经验,我可以告诉您,AD工具通常很挑剔。他们可能不一定能够区分自己生成的代码。有两种类型的AD工具:

  • 源到源广告工具
  • 操作员重载AD工具

从源到源的工具实际上是经过修改的编译器,这些编译器将获取您编写的源代码,对其进行解析,并自动生成新的源代码,以计算源代码中函数的梯度。运算符重载AD工具要求您在源代码中使用重载的AD运算符,以便可以计算导数,这将需要您付出额外的精力来计算使用AD的分析导数。


22

mm

以我的经验,具有大量更新的BFGS所存储的信息与当前解决方案相距太远,以至于在逼近非滞后的Jacobian方面确实很有用,如果存储过多的信息,实际上可能会失去收敛性。正是由于这些原因,BFGS的“无内存”变体看起来非常像非线性共轭梯度(请参阅其中的最后一个更新)。因此,如果您愿意使用L-BFGS而不是BFGS,则内存问题将消失,并且相关方法也将相关。轶事证据表明重新启动是一个棘手的问题,因为有时是不必要的,有时是非常必要的。

您在这两者之间的选择还很大程度上取决于您感兴趣的问题。如果您有足够的资源,则可以同时尝试解决您的问题并确定哪种方法更好。例如,我个人不使用这些算法进行优化,而是关注非线性方程组的解。对于这些,我发现NCG效果更好,并且更易于执行非线性预处理。BFGS更强大。

m


我完全忘记了L-BFGS。+1。
JM

15

在低维中,一个良好实现的BFGS方法通常比CG更快且更健壮,尤其是在函数距离二次项不太远的情况下。

BFGS和CG都不需要关于凸度的任何假设。仅初始Hessian近似(对于BFGS)。前提条件(对于CG)必须是正定的。但是,始终可以选择这些元素作为单位矩阵,并且尺寸较小,不会造成太大危害。另请参阅/scicomp//a/3213/1117

在没有编程梯度的情况下,使用数字梯度会浪费很多精力,尤其是当函数值昂贵时。相反,应该使用无导数算法。有关最新调查,请参见http://archimedes.cheme.cmu.edu/?q=dfocomp


该链接给我一个“ 404 Not Found”,您可以解决它吗?
Stiefel 2012年

@Stiefel:我修好了。新的链接指向一个大大改进的版本。
Arnold Neumaier 2012年
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.