Skip to content

最速下降方法 ​

设 f(x+v) 在 x 附近的一阶 Taylor 近似为

f(x+v)≈f^(x+v)=f(x)+∇f(x)⊤v

右端第二项 ∇f(x)⊤v 是 f 在 x 处沿方向 v 的方向导数​(directional derivative),给出了小步 v 引起的 f 的近似变化。若方向导数为负,则 v 是下降方向。

我们希望选取 v 使方向导数尽可能负。由于 ∇f(x)⊤v 关于 v 是线性的,取很大的 v 就可以使其任意负(只要 v 是下降方向),因此必须限制 v 的大小(或按其长度归一化)。设 ∥⋅∥ 是 Rn 上的任意范数,定义归一化最速下降方向​(normalized steepest descent direction)(关于范数 ∥⋅∥):

Δxnsd=argmin{∇f(x)⊤v∣∥v∥=1}

(之所以说“一个”最速下降方向,是因为极小点可能不唯一。)归一化最速下降方向是单位范数的步进中使 f 的线性近似下降最大的方向。几何上,它等价地定义为

Δxnsd=argmin{∇f(x)⊤v∣∥v∥⩽1}

即在 ∥⋅∥ 的单位球内沿 −∇f(x) 方向延伸最远的方向。

把归一化最速下降方向按特定方式缩放,还可以得到未归一化的最速下降步:

Δxsd=∥∇f(x)∥∗Δxnsd

其中 ∥⋅∥∗ 为对偶范数。对最速下降步有 ∇f(x)⊤Δxsd=−∥∇f(x)∥∗2。​最速下降方法​(steepest descent method)以最速下降方向为搜索方向。

算法 9.4(最速下降方法) 给定初始点 x∈domf。

  1. 计算最速下降方向 Δxsd。
  2. 直线搜索​:通过回溯或精确直线搜索选取 t。
  3. 更新:x:=x+tΔxsd。

重复上述步骤直至满足终止准则。

当采用精确直线搜索时,搜索方向中的尺度因子没有影响,因此使用归一化或未归一化的方向均可。

欧氏范数与二次范数的最速下降 ​

欧氏范数 ​

若取 ∥⋅∥ 为欧氏范数,则最速下降方向就是负梯度方向 Δxsd=−∇f(x),即欧氏范数下的最速下降方法与梯度下降方法完全一致。

二次范数 ​

考虑二次范数

∥z∥P=(z⊤Pz)1/2=∥P1/2z∥2

其中 P∈S++n。归一化最速下降方向为

Δxnsd=−(∇f(x)⊤P−1∇f(x))−1/2P−1∇f(x)

对偶范数为 ∥z∥∗=∥P−1/2z∥2,因此关于 ∥⋅∥P 的最速下降步为

Δxsd=−P−1∇f(x)

待配图​:对应教材图 9.9 —— 二次范数下的归一化最速下降方向。图中椭圆是平移到点 x 处的范数单位球,Δxnsd 是停留在椭圆内、沿 −∇f(x) 方向延伸最远的方向。

通过坐标变换来理解 ​

最速下降方向 Δxsd=−P−1∇f(x) 有一个有趣解释:它是对原问题做坐标变换 u¯=P1/2u 后,在新变量 x¯ 上应用梯度方法得到的搜索方向。在此变换下 ∥u∥P=∥u¯∥2,原问题等价于极小化

f¯(u¯)=f(P−1/2u¯)

对 f¯ 应用梯度方法,搜索方向 Δx¯=−∇f¯(x¯)=−P−1/2∇f(x) 对应于原变量 x 下的方向 −P−1∇f(x)。换言之,二次范数 ∥⋅∥P 下的最速下降方法可以看作变换 x¯=P1/2x 之后的梯度方法。

ℓ1 范数的最速下降 ​

对 ℓ1 范数,归一化最速下降方向

Δxnsd=argmin{∇f(x)⊤v∣∥v∥1⩽1}

有一个简单的刻画。设 i 是使 ∥∇f(x)∥∞=|(∇f(x))i| 成立的任一下标,则可取

Δxnsd=−sign(∂f(x)∂xi)ei

其中 ei 为第 i 个标准基向量。相应的未归一化最速下降步为

Δxsd=Δxnsd∥∇f(x)∥∞=−∂f(x)∂xiei

因此 ℓ1 范数下的归一化最速下降方向总可以选为某个标准基向量(或其负方向):它是使 f 的近似下降最大的坐标轴方向。

ℓ1 范数的最速下降算法有一个非常自然的解释:每次迭代选取 ∇f(x) 中绝对值最大的一个分量,然后按其符号减小或增大 x 的相应分量。由于每次只更新变量 x 的一个分量,该算法有时称为坐标下降​(coordinate descent)算法。这可以极大地简化、甚至使直线搜索变得平凡。

例子:Frobenius 范数缩放 ​

考虑无约束几何规划(凸形式)

minimizef(x)=log⁡(∑i,j=1nMij2exi−xj)

(它来自矩阵的 Frobenius 范数缩放问题,变量 xi=2log⁡di。)这个问题很容易逐分量最小化:固定除 xk 以外的所有分量,可写 f(x)=log⁡(αk+βke−xk+γkexk),其中

αk=Mkk2+∑i,j≠kMij2exi−xj,βk=∑i≠kMik2exi,γk=∑j≠kMkj2e−xj

f 关于 xk 的最小值在 xk=log⁡(βk/γk)/2 处取得,因此精确直线搜索可以用一个解析公式完成。ℓ1 最速下降算法(带精确直线搜索)就是重复以下步骤:

  1. 计算梯度 (∇f(x))i=(−βie−xi+γiexi)/(αi+βie−xi+γiexi),i=1,⋯,n。
  2. 选取 ∇f(x) 中绝对值最大的分量 k:|∇f(x)|k=∥∇f(x)∥∞。
  3. 极小化 f 关于标量 xk:令 xk=log⁡(βk/γk)/2。

收敛性分析 ​

可以把梯度方法在回溯直线搜索下的收敛分析推广到任意范数下的最速下降方法。任何范数都可以用欧氏范数来界定,即存在常数 γ,γ~∈(0,1] 使

∥x∥⩾γ∥x∥2,∥x∥∗⩾γ~∥x∥2

仍假设 f 在初始下水平集 S 上强凸。Hessian 上界 ∇2f(x)⪯MI 给出

f(x+tΔxsd)⩽f(x)+t∇f(x)⊤Δxsd+M∥Δxsd∥222t2⩽f(x)−t∥∇f(x)∥∗2+M2γ2t2∥∇f(x)∥∗2

使该二次上界最小的步长 t^=γ2/M 满足回溯直线搜索的终止条件(因 α<1/2 且 ∇f(x)⊤Δxsd=−∥∇f(x)∥∗2),因此直线搜索返回的步长满足 t⩾min{1,βγ2/M},进而

f(x+)⩽f(x)−αγ~2min{1,βγ2/M}∥∇f(x)∥22

两边减去 p⋆ 并利用强凸性下界,得

f(x+)−p⋆⩽c(f(x)−p⋆),c=1−2mαγ~2min{1,βγ2/M}<1

因此

f(x(k))−p⋆⩽ck(f(x(0))−p⋆)

即与梯度方法完全一样的线性收敛。

讨论与例子 ​

范数的选择 ​

用于定义最速下降方向的范数对收敛速度有巨大影响。以二次 P-范数为例:二次范数下的最速下降方法等价于坐标变换 x¯=P1/2x 之后的梯度方法,而梯度方法在(变换后的)下水平集条件数适中时表现良好、条件数很大时表现糟糕。因此选取 P 的准则是:使 f 的下水平集经 P−1/2 变换后条件数良好。例如,若已知最优点处 Hessian 的近似 H^,则非常好的选择是 P=H^,因为此时 f¯ 在最优点的 Hessian 为 H^−1/2∇2f(x⋆)H^−1/2≈I,其条件数很小。

不用坐标变换也可以描述同一思想:说下水平集在变换 x¯=P1/2x 后条件数低,等价于说椭圆体 E={x∣x⊤Px⩽1}(在适当的缩放与平移后)很好地近似了下水平集的形状。

P 对收敛率的影响可以从两个角度看待。乐观的观点是:对任何问题,总存在使最速下降方法表现得非常好的 P——当然,挑战在于找到这样的 P。悲观的观点是:对任何问题,也存在大量使最速下降表现很差的 P。总之,只有当我们能识别出使变换后问题条件数适中的矩阵 P 时,最速下降方法才表现良好。

例子 ​

仍考虑梯度下降一节中 R2 的非二次问题,采用两个二次范数

P1=[2008],P2=[8002]

两者都用参数 α=0.1、β=0.7 的回溯直线搜索。实验表明范数的选择强烈影响收敛:对范数 ∥⋅∥P1,收敛略快于梯度方法;而对范数 ∥⋅∥P2,收敛则慢得多。原因可以从变换后的坐标下看出:与 P1 相关联的坐标变换使下水平集条件数适中,因此收敛快;与 P2 相关联的变换反而使下水平集条件数变差,收敛因而变慢。

待配图​:对应教材图 9.11、图 9.12、图 9.13 —— 两个二次范数下最速下降方法的迭代点与误差曲线;以及图 9.14、图 9.15 —— 坐标变换后两个问题的迭代点(一个降低、另一个提高了下水平集的条件数)。

最近更新