来源:
描述
梯度下降法,基于这样的观察:如果实值函数F(x)在点a出可微且有定义,那么函数F(x)在a点沿着梯度相反的方向-DELTA F(a)下降最快。因而,如果b=a-gamma DELTA F(a)对于gamma>=为一个够小数值时成立,那么F(a) >= F(b)。
考虑到这一点,可以从函数F的局部极小值的初始估计x0出发,并考虑如下序列 使得
因此可得到如果顺利的话序列
收敛到期望的极值。注意每次迭代步长
可以改变。
右侧的图片示例了这一过程,这里假设 定义在平面上,并且函数图像是一个碗形。蓝色的曲线是等高线(水平集),即函数
为常数的集合构成的曲线。红色的箭头指向该点梯度的反方向。(一点处的梯度方向与通过该点的等高线垂直)。沿着梯度下降方向,将最终到达碗底,即函数
值最小的点。
例子
梯度下降法处理一些复杂的非线性函数会出现问题,例如Rosenbrock函數
其最小值在 处,数值为
。但是此函数具有狭窄弯曲的山谷,最小值
就在这些山谷之中,并且谷底很平。优化过程是之字形的向极小值点靠近,速度非常缓慢。
下面这个例子也鲜明的示例了"之字"的上升(非下降),这个例子用梯度上升(非梯度下降)法求 的极大值(非极小值,实际是局部极大值)。
缺点
由上面的兩個例子,梯度下降法的缺點是 [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