找回密码
 立即注册
查看: 211|回复: 0

优化算法(二)——最速下降法

[复制链接]
发表于 2022-6-24 16:22 | 显示全部楼层 |阅读模式
首先考虑使得目标函数值下降最快的方式,也即最速下降法(steepest descent)。
定义

由于函数  在点  处的变化率可以由其对应的方向导数表达,

因此,为了保证函数在  处下降最快,可以将问题转化为优化问题:

由Cauchy-Schwarz不等式,可以得到,

然后去掉绝对值符号,可以得到

这就说明了最速的下降方向是负梯度方向,这一方向可以使得目标函数的变化率最大,
以上的假设是基于Euclidean范数得到的,若采用其他范数,结果可能有部分差异。如使用对称正定矩阵  所度量的范数 ,最速下降方向则变为

收敛性

接下来讨论最速下降法的收敛性。
如之前所说,考虑线性收敛速度 ,目标是寻找一个收敛率 ,使得 成立。
先使用二次函数 作为例子(  是一个正定矩阵),对于固定的step size,在迭代最终收敛时,满足

因此,需要相应的选取合适的步长  ,从而保证 相较 一定是在收缩的。
首先计算出  的全部特征值,分三种情况进行讨论。

  • 矩阵  的全部特征值都非负,也即它的最小特征值 。因此有 ,进而得到 。(矩阵的norm是它的最大特征值)
  • 完全类似,矩阵  的全部特征值都非正,也即它的最大特征值 ,可得 。同样地,
  • 对于矩阵  特征值有正有负的情况, ,为了使得它最小,令 ,可以解出 ,因此  。
三种情况相比,显然最优选择为 ,进而可以计算得到
因此

由于 ,当 时,  将会收敛至 。因此要想确定一个不精确的bound,至多需要经过

次迭代即可实现 的误差。
缺陷
由于在每一步都要相应选取在 方向上的极小点,因此 对step size  的导数应该也是 。进而可以得到 ,由最速下降的定义,可以判定得到
因此相邻两个搜索方向是正交的,路径是呈“之”字形不断下降,这会大幅影响收敛速度。
此外,当  的Hessian矩阵是奇异的或不存在时,若结果能收敛,它的收敛率也会大于线性收敛率。
和特征值之间的关系:

在二次函数中,目标函数的等值面可以被视为一个椭球面,由于收敛率为  ,最大最小特征值就对应了最长轴和最短轴的长度。当两特征值相差越大,椭球面越扁,这会使得搜索方向沿着扁平且较长的方向不断搜索,这时候它们会在两个相互正交的方向上交替迭代,如果没有一个能够恰好指向最小值的方向,迭代速度会比较缓慢。
从数值角度分析, 被称为条件数,当它越接近于 时, 越靠近 ,接近超线性的收敛速度。而反之,如果条件数越大, 越靠近 ,收敛速度会越慢。
同样地,对于一般的凸函数  ,在近似收敛点的位置,目标函数也可以粗略地视为一个椭球面,只需要计算它的Hessian矩阵的最大最小特征值,可以以同样的方式理解。
对于非凸函数,需要找到它Hessian矩阵的上下界,也即一组参数 ,来替代最大最小特征值的的位置,
所以说,尽管最速下降法每轮都可以取到最快的下降方向,但是从全局上讲,它不一定能够使得找到总体上更靠近最优值,会走一定的弯路,因此不是最快的收敛方法。
下一步会继续讨论Inexact的线搜索方式。
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-15 20:23 , Processed in 0.092969 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表