梯度下降法学习总结

梯度下降法学习总结

梯度下降法简介

梯度下降法是求解无约束优化问题的迭代算法,每一步要求解目标函数的梯度向量。
假设目标函数 f(x) 在实数域上具有一阶连续偏导数,无约束最优化问题为:

minxRnf(x)
。设 x 是目标函数极小值点。选取适当的初值 x(0) ,不断迭代,更新 x 的值,直到梯度收敛/目标函数值收敛/x的值收敛。在迭代的每一步,以负梯度方向更新x的值(因为函数值沿负梯度方向下降最快)。
设第k此迭代值为 x(k) f(x) x(k) 附近一阶泰勒展开:
f(x)=f(x(k))+gTk(xx(k))

其中 gk 是f f(x) x(k) 的梯度。
用以下方法求下一次迭代值:
f(x(k)+λk(gk))=minλ0f(x(k)+λ(gk))

求出使得 f(x(k)+λk(gk)) 最小的 λk 后,令
x(k+1)=x(k)+λk(gk)

梯度下降法特点

优点:

实现简单;
目标函数是凸函数时,能达到全局最优。

缺点:

求梯度比较费时,收敛速度一般;
只能解无约束的优化问题;
目标函数非凸时,陷入局部最优。

迭代算法

输入:目标函数 f(x) ,梯度函数 g(x) ,计算精度 ε
输出: f(x) 极小值点 x

  1. k=0 ;随机产生 x(0)R
  2. 计算 x(k) 处的函数值 f(x(k))
  3. 计算 x(k) 处的梯度值 g(x(k)) ;如果 g(x(k))<ε ,停止迭代,令 x=x(k+1) ;否则,求 λk ,使得
    f(x(k)+λk(gk))=minλ0f(x(k)+λ(gk))
  4. x(k+1)=x(k)+λk(gk) ,计算 x(k+1) 处的函数值 f(x(k+1)) ;如果 ||f(x(k+1))f(x(k))||<ε  或者  ||x(k+1)x(k)||<ε ,停止迭代;令 x=x(k+1)
  5. 否则,令 k=k+1 ,转3

你可能感兴趣的:(梯度下降法学习总结)