上篇文章介绍了线性共轭梯度法。简单回顾一下,线性共轭梯度法是一种不需要矩阵求逆或矩阵分解,以迭代的方式求解线性方程的方法,而且可以保证在N次迭代内收敛,其中N是变量的维度。对于维度较大的问题,辅以良好的预处理步骤,算法可以在很少的步数内收敛,得到一个比较好的近似解。
在线性共轭梯度法提出约10年后,Fletcher和Reeves将其推广到非线性优化问题中,称为非线性共轭梯度法。这种新方法可以替代之前讲过的线搜索和信赖域方法,并且仍然在高维度问题中展现出非凡的性能。
Fletcher-Reeves CG
我们把Fletcher和Reeves最早提出的非线性共轭梯度法称为Fletcher-Reeves CG(FR-CG)算法。按照惯例,我们应该先介绍该方法提出的动机,并一步步推导其计算公式。但据我所知,FR-CG似乎不是从某个目标推导出来的,而是直接在CG(线性共轭梯度法)上改进而来的。直接替换CG算法中某些值的计算方法,如下所示
与共轭梯度法(一):线性共轭梯度中的式(5.23)相比,只修改了两处。一是计算
不过,强行推广到普通非线性函数就能奏效吗?那可未必。首先,我们要确认式(5.40)的每次迭代都能生成使得目标函数下降的方向。其次,我们还要探究该方法是否能保证全局收敛。
第一个问题等价于证明
如果第