梯度下降法和牛顿法都是求解无约束最优化问题的常用方法。
假设f(x)ΪRn上具有一阶连续偏导数的函数,要求姐的无约束最优化问题为
minx∈Rnf(x)
x表示目标函数的极小点。下面分别介绍梯度下降法和牛顿法。
梯度下降法是一种迭代算法。选取适当的初值x(0),不断迭代,更新x的值,进行目标函数的极小化,直到收敛。因为负梯度方向是使函数值下降最快的方向,在迭代的每一步,以扶梯度方向更新x的值,从而达到减少函数值的目的。
由于f(x)具有一阶连续偏导数,若第k次迭代值为x(k),则可将f(x)在x(k)附近进行一阶泰勒展开:
f(x)=f(x(k))+gTk(xx(k))(1.1)
这里,
gk=g(x(k))=f(x(k))Ϊ
f(x)在
x(k)处的梯度。
求出第k+1次迭代值x(k+1):
x(k+1)←x(k)+λkpk(1.2)
其中,
pk是搜索方向,取负梯度方向
pk=f(x(k)),
λk是步长,由一维搜索确定,即
λk使得
f(x(k)+λkpk)=minλ≥0f(x(k)+λpk)(1.3)
牛顿法收敛速度快,每一步需要求解目标函数的海赛矩阵的逆矩阵,计算比较复杂,可通过拟牛顿法简化计算过程。
假设f(x)具有二阶连续偏导数,若第k次迭代值为x(k),则可在x(k)附近进行二阶泰勒展开:
f(x)=f(x(k))+gTk(xx(k))+12(xx(k))TH(x(k))(xx(k))(2.1)
这里,
gk=g(x(k))=f(x(k))Ϊ
f(x)在
x(k)处的梯度,
H(x(k))是
f(x)的海塞矩阵(Hesse matrix)