摘要:最速下降法(deepest descent)也称为梯度下降法(Gradient descent),是最为常见的非线性规划算法。
1. 引言
在下降迭代算法篇,我们介绍了如何通过下降法来实现非线性规划问题的求解。但如何选择下降方向?这是值得深入探讨的问题。为了使得算法能尽快收敛,一个直观的想法是——选择当前点处函数值减小最快的方向,即我们所说的最速下降方向。这里有两点需要注意:一、我们只有足够的信息判断当前点函数值的最速下降方向,而无法轻易知道全局最小点的方向,就像我们在群山的山腰,不知哪里才是最低的山谷一样。二、短视往往是有害的,当前最优并不代表全局最优(事实证明,它们往往不是!)。你可能以为往下走就可以到达最低的山谷,但你又怎么知道它是不在山头的另一面?
不管怎样,最速下降方向至少是可行的,而且应该不会太差。那如何得到最速下降方向?
上学那会,老师应该给你讲过“梯度方向是函数值增加最快的方向”吧?什么?你睡着了?!!!好吧……老师讲那会,我们都不知道这东西到底有什么用。现在知道了,你要怪老师没讲好,还是怪自己没好好学?算了,不多想,继续看吧……
2. 为何负梯度方向是最速下降方向?
设,
,
,
且
。对函数
在点
处作泰勒展开,得到
因此,函数在点
处,方向
上的变化率为
注意,在趋向于零时,其高阶项可以忽略不计。为寻找点
的最速下降方向,我们只需求解以下约束优化问题
由于,且
,有
。故当
时,目标函数有最小值。因此,可得
另外,根据且
,可得以下结论:
下降方向 设为可微函数
在点
处的梯度,对
,若
,则方向
为函数
在点
处的下降方向。
又,由于,可知,当
与
的夹角
为钝角时,方向
为函数
在点
处的下降方向。
3. 算法过程
选定下降方向(这里是最速下降方向)后,按照下降迭代算法的基本流程,下一步是在下降方向上执行一维搜索。这属于另外的专题,我们放在后面再讲。