梯度下降法
梯度下降法(gradient descent)或最速下降法(steepest descent)是求解无约束最优化问题的一种最常用的方法。
负梯度方向是使函数值下降最快的方向,在迭代的每一步,以负梯度方向更新x的值,从而达到减少函数值的目的。
假设
f(x)
在
Rn
上具有一阶连续偏导数,要求解的无约束最优化问题是:
minx∈Rnf(x)
由于 f(x) 具有一阶连续偏导数,若第 k 次迭代值为
f(x)=f(x(k))+gTk(x−x(k))
这里, gk=g(x(k))=∇f(x(k)) 为 f(x) 在 x(k) 的梯度。
求出第 k+1 次迭代值 x(k+1) : x(k+1)←x(k)+λkpk
其中, pk 是搜索方向,取负梯度方向 pk=−∇f(x(k)) , λk 是步长,由一维搜索确定,即 λk 使得 f(x(k)+λkpk)=minλ≥0f(x(k)+λpk)
简单推导:
f(x(k+1))=f(x(k))+∇f(x(k))∗(x(k+1)−x(k))
取
x(k+1)=x(k)+λpk=x(k)+λ∗(−∇f(x(k)))
,带入上式有:
f(x(k+1))=f(x(k))−λ∗(∇f(x(k)))2
,所以
f(x(k+1))≤f(x(k))
,且如果
f(x)
存在最小值,因此多次迭代下,可以收敛。
牛顿法和拟牛顿法也是求解无约束最优化问题常用的方法,有收敛速度快的优点。牛顿法是迭代算法,每一步需要求解目标函数的海赛矩阵的逆矩阵,计算比较复杂。拟牛顿法通过正定矩阵近似海赛矩阵的逆矩阵或海赛矩阵,简化了这一计算过程。
以下三种方法都是拟牛顿法:
DFP(Davidon-Fletcher-Powell)算法
BFGS(Broyden-Fletcher-Goldfarb-Shanno)算法
L-BFGS算法
参考资料:
1. 《统计学习方法》李航
2. [泰勒公式] https://ss2.baidu.com/6ONYsjip0QIZ8tyhnq/it/u=2362434890,1610636723&fm=58