梯度下降法

来源:

zh.wikipedia.org/zh/梯度下降法


梯度下降法是一个最优化算法,通常也称为最速下降法

描述

梯度下降法,基于这样的观察:如果实值函数F(x)在点a出可微且有定义,那么函数F(x)在a点沿着梯度相反的方向-DELTA F(a)下降最快。因而,如果b=a-gamma DELTA F(a)对于gamma>=为一个够小数值时成立,那么F(a) >= F(b)。

考虑到这一点,可以从函数F的局部极小值的初始估计x0出发,并考虑如下序列\mathbf{x}_0, \mathbf{x}_1, \mathbf{x}_2, \dots 使得\mathbf{x}_{n+1}=\mathbf{x}_n-\gamma_n \nabla F(\mathbf{x}_n),\ n \ge 0.

因此可得到F(\mathbf{x}_0)\ge F(\mathbf{x}_1)\ge F(\mathbf{x}_2)\ge \cdots,如果顺利的话序列 (\mathbf{x}_n) 收敛到期望的极值。注意每次迭代步长 \gamma 可以改变。


右侧的图片示例了这一过程,这里假设 F 定义在平面上,并且函数图像是一个形。蓝色的曲线是等高线(水平集),即函数 F 为常数的集合构成的曲线。红色的箭头指向该点梯度的反方向。(一点处的梯度方向与通过该点的等高线垂直)。沿着梯度下降方向,将最终到达碗底,即函数 F 值最小的点。


例子

梯度下降法处理一些复杂的非线性函数会出现问题,例如Rosenbrock函數

f(x, y) = (1-x)^2 + 100(y-x^2)^2 .\quad

其最小值在 (x, y)=(1, 1) 处,数值为f(x, y)=0。但是此函数具有狭窄弯曲的山谷,最小值 (x, y)=(1, 1) 就在这些山谷之中,并且谷底很平。优化过程是之字形的向极小值点靠近,速度非常缓慢。

Banana-SteepDesc.gif

下面这个例子也鲜明的示例了"之字"的上升(非下降),这个例子用梯度上升(非梯度下降)法求 F(x,y)=\sin\left(\frac{1}{2} x^2 - \frac{1}{4} y^2 + 3 \right) \cos(2 x+1-e^y)极大值(非极小值,实际是局部极大值)。

The gradient descent algorithm in action. (1: contour)The gradient descent algorithm in action. (2: surface)

 

缺点

由上面的兩個例子,梯度下降法的缺點是 [1]:

  • 靠近極小值时速度减慢。
  • 直線搜索可能會產生一些問題。
  • 可能會'之字型'地下降。

参阅

参考文献

  • Mordecai Avriel (2003). Nonlinear Programming: Analysis and Methods. Dover Publishing. ISBN 0-486-43227-0.
  • Jan A. Snyman (2005). Practical Mathematical Optimization: An Introduction to Basic Optimization Theory and Classical and New Gradient-Based Algorithms. Springer Publishing. ISBN 0-387-24348-8

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值