美文网首页
Gradient descent梯度下降(Steepest de

Gradient descent梯度下降(Steepest de

作者: LittleSasuke | 来源:发表于2018-03-31 18:45 被阅读172次

    Welcome To My Blog
    梯度下降(gradient descent)也叫最速下降(steepest descent),用来求解无约束最优化问题的一种常用方法,结果是局部最优解,对于目标函数为凸的情况,可以得到全局最优解.梯度下降是迭代算法,每一步需要求解目标函数的梯度向量.

    采用线搜索的框架

    1.png
    搜索方向取负梯度方向,步长可以通过精确线搜索或非精确线搜索获得
    关于步长,之前的文章有提过:Line search and Step length线搜索与步长

    泰勒展开简化形式

    1. 假设f(x)是R^n上具有一阶连续偏导数的函数.要求解的无约束最优化问题是min f(x),x*标识目标函数f(x)的极小点.
    2. 选取适当的初值x^(0),不断迭代,更新x的值,进行目标函数的极小化,直到收敛.由于负梯度方向是使函数值下降最快的方向,在迭代的每一步,以负梯度方向更新x的值,从而达到减小函数值的目的.
    3. 因为f(x)具有一阶连续偏导数, 若第k次迭代值为x(k),则可将f(x)在x(k)附近进行一阶泰勒展开(Taylor expansion):
      2.png

    算法流程

    3.png
    简化版:
    4.png

    缺点

    收敛慢

    碗形函数(bowl shape)

    蓝色的线是函数的等高线(线上的函数值相等)
    从x_0点开始,沿x_0的负梯度方向(与该点切线垂直)的前进适当的步长,函数值会减小
    对于该图来说,一次一次迭代可以收敛全局最优点

    5.png

    之字形Zig-Zagging

    实际中的等高线可能并没有这么好
    下图这样的等高线会导致每次迭代走的是之字形(Zig-Zagging),这样会使得收敛速度很慢

    6.png

    Rosenbrock 函数

    对于像Rosenbrock这样的病态函数(pathological functions)来说,等高线如下图
    不仅有走之字形(Zig-Zagging)的情况,而且函数图像的底部很平坦,这样每次前进的步长很小,导致收敛速度太慢
    The bottom of the valley is very flat. Because of the curved flat valley the optimization is zig-zagging slowly with small stepsizes towards the minimum.

    7.gif
    梯度下降的收敛速度比起很多其他方法都慢,如果函数不凸,梯度下降过程中会走更多的之字形,因为总有当前点的梯度方向与当前点到最小点的方向是垂直的情况,也就是说要走很多冤枉路

    不可微的函数

    对于不可微的函数,就不能直接用梯度下降了,需要进行额外的平滑处理

    参考:
    李航,统计学习方法

    相关文章

      网友评论

          本文标题:Gradient descent梯度下降(Steepest de

          本文链接:https://www.haomeiwen.com/subject/kjfncftx.html