漫步最优化三十九——Fletcher-Reeves法









Pasito a pasito, suave suavecito
Nos vamos pegando, poquito a poquito
Y es que esa belleza es un rompecabezas
Pero pa montarlo aun tengo la pieza
——
Fletcher-Reeves法是共轭梯度法的变种,它的主要特征是参数 αk,k=0,1,2, 是用线搜索最小化 f(x+αdk) 确定的,这与最速下降或者牛顿法一样。而不同点在于 dk 是对 dk1,dk2,,d0 共轭,而不是最速梯度方向或者牛顿方向。
如果所求的问题是凸的,二次的且方向按共轭梯度发选择,那么
df(xk+αdk)dα=gTk+1dk=0

其中 k=0,1,2, ,更进一步,共轭的方向集合确保

df(xk+αdi)dα=gTk+1di=0for 0ik

或者

gTkdi=0for 0i<k

所以通过线搜索确定的 αk 等价于共轭梯度法。因为线搜索需要更多的计算量,所以Fletcher-Reeves的修正是退化的一步,但不管怎样,这样做得到两个非常明显的好处:

  • 这个修正使得该方法更加适应非二次问题的最小化,这是因为对不在解邻域内的点, f(x) 沿着 dk 方向能够更大程度的减少,这是因为对于非二次问题,共轭梯度法得到的 α 沿着 dk 方向不会得到最小值。
  • 这个修正避免了推导计算海森矩阵。

如果每 n 次迭代后重新初始化,那么Fletcher-Reeves算法能够收敛,该算法的具体实现如下:

11x0ε2k=0g0d0=g03αk,f(xk+αdk)αxk+1=xk+αkdk4αkdk<ε,x=xk+1,f(x)=fk+15k=n1,x0=xk+1,26gk+1βk=gTk+1gk+1gTkgkdk+1=gk+1+βkdkk=k+13

你可能感兴趣的:(漫步最优化,共轭梯度,Fletcher)