优化算法中的梯度下降法与"擦玻璃"之间的联想

考虑简单的无约束二次优化问题

minxRnf(x)=12xTAx

其中 ARn×n 是对称的正定矩阵。我们设 gk:=Axkf(x) 在迭代点 xk 处的梯度。由于这是一个严格凸的优化问题,其极值点就是全局最优点,记为 x


为了求解上述问题

牛顿法的迭代格式:xk+1=xk+(2f(xk))1(gk)=xk+A1(gk),

其中 2f(xk)f(x) 在迭代点 xk 处的 Hessian 矩阵。针对上述优化问题,牛顿法可以实现一步寻优。但是一般函数的 Hessian 难以得到。

梯度法的迭代格式:xk+1=xk+1αk(gk),

其中 1αk称为步长,gk 为下降方向。
观察牛顿法与梯度法的形式,我们知道在一个好的梯度方法中,其标量 αk 应该具备反映(或逼近) A 的能力,也就是说 αk 应该具有拟牛顿的性质。

最速下降方法: αkSD=gkTAgkgkTgk,

反映当前梯度 gk 关于 A 的瑞丽商,αkSD 逼近 A 的某一特征值,具有拟牛顿的性质。但是 αkSD 会使迭代点走"之字"步(zigzag),(gk1gk 相互正交),造成最速下降法的收敛速度变慢,尤其受 A 的条件数的影响。为了避免这种 "zigzag" 现象的发生,Barzilai-Borwein (BB) 采用下面的方法。

BB方法:

αkBB1=gk1TAgk1gk1Tgk1,αkBB2=gk1TA2gk1gk1TAgk1,

这两者分别是下面最小二乘问题的解

minααsk1yk122,minαsk11αyk122

其中 sk1:=xkxk1, yk1:=gkgk1,且有 yk1=Ask1。值得注意的是:最速下降法是单调的,而BB方法是非单调的。我们可以看到在最小二乘意义下,αkBB 也具有拟牛顿的性质。(梯度之差与位置之差的比,这就是在反映二阶信息!) 对比最速下降法与BB方法,BB1步长相当于最速下降步的向后一步延迟。(学长把学妹,一般比较好?) 在实践中,相比最速下降法,BB的数值表现非常卓越。并且由于其简单的操作,其受到了优化界的广泛关注。


下面集中考察 BB 方法。首先观察下面的一系列不等式(由柯西-施瓦茨不等式得到):

gk1TAgk1gk1Tgk1gk1TA2gk1gk1TAgk1gk1TAngk1gk1TAn1gk1.

前两个不等式等价于

αkBB1αkBB2.

由此,我们可以看到在众多的拟牛顿(BB类)步长中,αkBB1 是最小的那个。数值实验也验证了这一点,小的 αkBB1 产生大的步长。如果待优化的问题的条件比较良好,这种大步长会使迭代点快速收敛到最优解 x。对应地,αkBB2 的收敛速度可能相对慢些。如果待优化的问题的条件比较差,αkBB1 对应的大步长可能影响算法的收敛速度(在坏条件下,大步长可能会产生更加剧烈的非单调现象),下面我们进行简单地分析这种现象。


在梯度法中,我们的目标是消去梯度的元素,直到达到最优性条件

gk22=0gki=0,fori=1,2,,n

在 BB 方法中,由迭代格式,我们知道

(1)gk+122I1αkBBAgk22

从上面的关系可以看到,如果 αkBB 逼近 A 的最大特征值,那么梯度长度就会下降;如果 αkBB 逼近 A 的最小特征值,那么梯度长度可能会上升。

考察αkBB 的大小与梯度长度下降和上升的关系,重要的前提是梯度的分量都在同一个数量级(*)。

由于 A 是对称正定的,所以一定可以对角化,不妨设 A=diag(λ1,,λn),
其中 0<λ1<<λn。则 αkBB[λ1,λn]。结合 (1), 我们可以知道 gk1 是一直单调下降的,但是 gkj, 2<j<n 可能在某些时候是非单调的。如果 αkBB 在上一次迭代靠近 λn (gk 的第 n 个分量以及其附近分量的元素下降),而在当前迭代一下子远离了 λn(向 λ1 靠近),由 (1),我们知道:这种情况极有可能会使得 gk 的第 n 个分量以及其附近分量的元素又重新变大,也就是说如果 αkBB 在连续迭代中的变化幅度很大(从大突然变到一个不合理的小),就会使得前后的效果相互抵消。由于αkBB1 总是倾向于产生较小的值,所以刚刚描述的现象,在 αkBB1 中极有可能发生。

注意:这里不是不允许 αkBB 靠近 λ1,而是希望连续的迭代中 αkBB 最好不要跳跃太大。

如何避免这种现象的发生呢?
我的答案是:控制连续迭代中,αkBB 的变化幅度。如果 αkBB 在上一次迭代靠近 λn (gk 的第 n 个分量以及其附近分量的元素下降),那么在当前迭代,我们应该尽量控制 αkBB 仍然在 λn 附近,直到 gk 的第 n 个分量以及其附近分量的元素消失殆尽,可以忽略了,这一局部任务可以认为完成了。(此时,这些分量的元素与 gk前面分量元素的数量级就不在同一个数量级)。下一步的局部任务是消去 gk 的剩余分量。仍然采用这种局部打法。(彻底打扫完一处战场,才能转移到下一处战场进行打扫。) 我想这就是 ABBmin 方法显著优于 BB 方法的通俗解释。ABBmin 方法的形式如下:

(2)αkABBmin={maxj0jk{αjBB2},αkBB1/αkBB2<γ,αkBB1,otherwise,

其中 γ(0,1)j0=max(kM,1), M 是参数。该策略表示,当阈值条件满足时,在当前代 k 以及其往前数 M 代中,选出最大的 αjBB2。公式 (2) 中的阈值 αkBB1/αkBB2<γ 的情形就是表示,要把 gk 的当前分量元素彻底消完(局部任务干完、干好);当阈值条件不满足了,说明当前分量元素已经消完(局部任务干好了),可以转移到其他任务--消灭 gk 的剩余分量元素。由于 αkBB1 倾向于逼近 λ1 (朝 λ1 方向跑,这也是转移阵地的动力来源吧!) 当 αkBB1 跑到一个新位置后,局部地消灭对应的 gk 的分量元素,也就是 (2) 中 ABBmin 的策略。直到最后,gk 只剩下 gk1 分量附近的元素还未消失,当 αkBB1 再次逼近 λ1 时,采用局部消去策略,很快就把剩余的梯度分量消除了。达到最优性条件。

写到这里,回顾一下标题:优化算法中的梯度下降法与"擦玻璃"之间的联想。

梯度下降法的本质任务就是消去梯度分量的过程,我们可以把这个过程看作是:擦一块脏的大玻璃,其正确的做法是一小块一小块的擦,并且我们还要时不时地洗抹布,防止把已经擦干净的部分再次弄脏。(决不能用一块抹布大幅度地在整块大玻璃上来回擦,没有效果。) 我想这就是劳动所蕴含的富有哲理性的一面,这些哲理性的思想往往就是指导我们设计算法的思想来源。

posted @   xustonexin  阅读(97)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示