python sklearn 梯度下降法_笔记 || 梯度法与最速下降法的本质区别

085d7aad0fd01a8c066c2c3ec3c00652.png

Differences between Gradient Descent and Steepest Descent Method

梯度法(Gradient Descent Method)和最速下降法(Steepest Descent Method)在Boyd 经典的凸规划教材《Convex Optimization》中,本就是无约束极值问题(Unconstrained Minimization) 这一章中并立的两节内容,也就是说,他们其实是两个不同的概念。

梯度法直观地认为,负梯度方向就是目标函数值下降最快的方向,即

,所以每次将变量沿着负梯度方向移动单位步长,目标函数值就会逐渐收敛。方法简单,但是收敛速度非常大程度地依赖于其Hessian矩阵的条件数(Condition Number)。

而最速下降法的初衷,是找泰勒一阶展开式

中,能使方向导数(Directional Derivative)最小的
v,方法本身的定义也比梯度法要复杂。定义标准化最速下降方向(Normalized Steepest Descent Direction),即在单位范数(Unit Norm)步长内能够使目标函数下降最多的方向:
。也可以表示为非标准化的形式,即
,其中
为对偶范数。

由上式可得,最速下降法的下降方向受到范数的限制,如果这里的范数取欧式范数(Euclidean Norm),则最速下降法就可以简单地理解为梯度法,即

,也可以说梯度法是最速下降法使用欧式范数的特殊情况。但如果这里取其它范数,因为要满足“下降方向上移动的单位步长在范数集合内”这一条件,则会得到不同的结果,比如取向量1-范数(
)或者矩阵2-范数(Quadratic Norm),他们的单位球(Unit Ball)分别是正菱形体和椭圆体,标准下降方向就如图1所示。

当采用矩阵2-范数

时,最速下降方向为关于矩阵
P
,从下文的图中可以看出,在点
x 处的标准最速下降方向
在满足在椭圆体中的条件下,尽可能地在
方向上延伸。Boyd 在书中还给了一种坐标变换的解释,即矩阵2-范数的最速下降法也可以看作是,梯度法在坐标进行了
变换之后的应用。当采用向量1-范数时,
,其中
是标准基向量,所以当选取向量1-范数时,沿着坐标轴下降是最快的方向。

8f02e6c4846f4f473472ead6f0279298.png
负梯度方向与矩阵2-范数下的标准最速下降方向

ce98bbbc6e5e9a62a26363fff879d423.png
负梯度方向与向量1-范数下的标准最速下降方向

d7a0252159b1eab85de321b6775b6239.png
最速下降法的迭代过程(矩阵2-范数)

范数的选取对于最速下降法的收敛效率有很大的影响,上面提到的选取矩阵2-范数的情况,在进行

变换后得到比梯度法要小的条件数,有更高的效率。另外,在矩阵2-范数的情况下,选取能够使计算效率提高的矩阵
P 也是重要的一点。Hessian矩阵就是一个很好的选择,当最速下降法在点 x 处,选取由Hessian矩阵
定义的矩阵2-范数时,就是另一个著名的无约束极值求解方法 - 牛顿法(Newton’s Method)了,牛顿法虽然计算较为复杂,但有比梯度法更高的收敛效率。

综上,从概念的意义上来讲,负梯度方向不一定总是某点上下降最快的方法,因此这两个方法在当不满足负梯度方向为最快下降方向的条件时,是不同的;从数学的意义上,当范数为欧式范数时,两种方法可以得到相同的下降过程,反之,当选取其它类型的范数时,会得到不同的下降方向;从坐标的角度来讲,欧式范数对应的是欧式距离,也就是两点的直线距离,但是当采用矩阵2-范数时,可以看作是坐标发生了变化,因此,其对应的步长也就不是根据欧式距离进行计算的了。

查阅了几本国内外的运筹学书目,都没有对这个方面非常具体解释。

周晶老师的《运筹学》一书中称:“在所有下降方向中,某点的负梯度方向是函数值下降最快的方向,因此被称为函数的最速下降方向,梯度法也被称为最速下降法,但必须指出的是,该性质通常只在该点附近有效,对于整个极小化过程来说,未必成立。”

清华大学出版社的《运筹学》第四版中也说:“由于负梯度方向的最速下降性,很容易使人们认为负梯度方向是理想的搜索方向,最速下降法是一种理想的极小化方法。必须指出,X 点处的负梯度方向,仅在 X 点附近才具有这种‘最速下降’的性质,而对于整个极小化过程来说,那就是另外一回事了。”

但在Sheffi的 《Urban Transportation Networks》中,在The method of steepest descent”小节中(Page92),直接说“The direction of search is opposite to the gradient direction”,其实是一种不够严谨的说法了。

参考资料

[1] Boyd, S., & Vandenberghe, L. (2004). Convex optimization. Cambridge university press.

附录

关于范数的解释

范数简单来说是一种强化了的距离概念,包括向量范数和矩阵范数,向量范数表征向量空间中向量的大小,矩阵范数表征矩阵引起变化的大小。

范数小于等于1的向量集合

,被称为范数的单位球(Unit Ball)。以常见的
( p=2 ) 为例,此时的范数也即欧氏距离,空间中到原点的欧氏距离为1的点构成了一个球面,而矩阵二次范数的Unit Ball是一个椭圆体的形状。

c4e151e97ae9544397168e2fdfd165de.png
不同p值下向量范数的Unit Ball(图源网络)

常用范数计算方法

A. 向量范数

(Sum-absolute-value) :

(Euclidean Norm):

(Chebyshev Norm):

(一般形式):

B. 矩阵范数

Quadratic Norm:

对偶范数

对偶范数的一般形式:

,即对于某个范数小于1的向量
x, z x 的内积最大值就是 z 的对偶范数。对于向量范数,欧式范数的对偶范数是欧式范数,
互为对偶范数,一般形式的
的对偶范数为
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值