梯度下降法和牛顿法区别及拟牛顿法介绍

匿名 (未验证) 提交于 2019-12-03 00:30:01

梯度下降法和牛顿法都是求解无约束最优化问题的常用方法。
假设f(x)ΪRn上具有一阶连续偏导数的函数,要求姐的无约束最优化问题为

minxRnf(x)

x表示目标函数的极小点。下面分别介绍梯度下降法和牛顿法。

梯度下降法是一种迭代算法。选取适当的初值x(0),不断迭代,更新x的值,进行目标函数的极小化,直到收敛。因为负梯度方向是使函数值下降最快的方向,在迭代的每一步,以扶梯度方向更新x的值,从而达到减少函数值的目的。

由于f(x)具有一阶连续偏导数,若第k次迭代值为x(k),则可将f(x)x(k)附近进行一阶泰勒展开:

(1.1)f(x)=f(x(k))+gkT(xx(k))

这里,gk=g(x(k))=f(x(k))Ϊf(x)x(k)处的梯度。

求出第k+1次迭代值x(k+1):

(1.2)x(k+1)x(k)+λkpk

其中,pk是搜索方向,取负梯度方向pk=f(x(k)), λk是步长,由一维搜索确定,即λk使得
(1.3)f(x(k)+λkpk)=minλ0f(x(k)+λpk)

牛顿法收敛速度快,每一步需要求解目标函数的海赛矩阵的逆矩阵,计算比较复杂,可通过拟牛顿法简化计算过程。

假设f(x)具有二阶连续偏导数,若第k次迭代值为x(k),则可在x(k)附近进行二阶泰勒展开:

(2.1)f(x)=f(x(k))+gkT(xx(k))+12(xx(k))TH(x(k))(xx(k))

这里,gk=g(x(k))=f(x(k))Ϊf(x)x(k)处的梯度,H(x(k))f(x)的海塞矩阵(Hesse matrix)
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!