线搜索方法

本文深入探讨了线搜索方法在梯度下降、牛顿法和拟牛顿法中的应用,介绍了Wolfe条件和Goldstein条件确保步长合适及算法的充分下降。同时,详细分析了最速下降法、牛顿法和拟牛顿法的收敛速度,证明了它们的收敛性质。此外,还提到了海森矩阵修正的牛顿法以确保算法在面对负特征值时仍能保持收敛性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

线搜索方法

本文主要介绍线搜索方法(包含梯度下降,牛顿法,拟牛顿法的分析)。

线搜索方法是一种迭代算法,迭代的过程由下列公式给出。

x k + 1 = x k + α k p k x_{k+1}=x_k+\alpha_k p_k xk+1=xk+αkpk

其中 α k \alpha_k αk为步长, p k p_k pk为方向。我们需要确定这两个参数,来帮助我们迭代。

步长

在理想情况下我们需要选择步长来最小化 ϕ ( α ) = f ( x k + α p k ) , α > 0 \phi(\alpha)=f(x_k+\alpha p_k),\alpha>0 ϕ(α)=f(xk+αpk)α>0。但是寻找到满足最小化的情况很难。经典的线搜索算法尝试 α \alpha α的一系列候选值,当满足某些条件时,停下来时接收这些值中的一个。

WOLFE 条件

首先我们定义一下

ϕ ( α ) = f ( x k + α p k ) , α > 0 \phi(\alpha)=f(x_k+\alpha p_k),\alpha>0 ϕ(α)=f(xk+αpk),α>0

wolfe条件包含了两个条件,第一个是充分下降(sufficient decrease),第二个是曲率条件(curvature conditions)。

充分下降

f ( x k + α p k ) ≤ f ( x k ) + c 1 α ∇ f k T p k f(x_k+\alpha p_k) \leq f(x_k)+c_1\alpha \nabla f^T_k p_k f(xk+αpk)f(xk)+c1αfkTpk

其中 c 1 ∈ ( 0 , 1 ) c_1\in (0,1) c1(0,1),这个说明函数的下降需要和步长和方向导数成正比,在这里叫作Armijo condition。等式的右边是一个关于 α \alpha α的线性函数,斜率是负的。

在这里插入图片描述

曲率条件

α \alpha α很小的时候充分下降退化为 f ( x k + α p k ) ≤ f ( x k ) f(x_k+\alpha p_k) \leq f(x_k) f(xk+αpk)f(xk),无法保证算法的收敛性,所以还需要增加第二个条件来保证步长不会太小。

∇ f ( x k + α k p k ) T p k ≥ c 2 ∇ f k T p k \nabla f(x_k+\alpha_k p_k)^T p_k \geq c_2 \nabla f^T_k p_k f(xk+αkpk)Tpkc2fkTpk

等式的左边是 ϕ ( α k ) \phi(\alpha_k) ϕ(αk)的导数。曲率条件的意思是 ϕ \phi ϕ α k \alpha_k αk的斜率大于 c 2 × ϕ ′ ( 0 ) c_2 \times \phi^{\prime}(0) c2×ϕ(0)。从直观上来看如果等式左边接近0时,曲率接近水平,这样就接近最优解。

在这里插入图片描述

上述两个条件共同构成了Wolfe条件。强Wolfe条件和wolfe第一个不等式一样,只是在第二个不等式换成

∣ ∇ f ( x k + α k p k ) T p k ∣ ≤ c 2 ∣ ∇ f k T p k ∣ |\nabla f(x_k+\alpha_k p_k)^T p_k| \leq c_2 |\nabla f^T_k p_k| ∣∇f(xk+αkpk)Tpkc2∣∇fkTpk

换成这样是为了不让 ϕ ′ ( α k ) \phi^{\prime}(\alpha_k) ϕ(αk)过大。

THE GOLDSTEIN CONDITIONS

与Wolfe条件一样,Goldstein条件也能保证充分下降并且步长α不会太短。Goldstein条件也可以表述为一对不等式,如下所示:

f ( x k ) + ( 1 − c ) α k ∇ f k T p k ≤ f ( x k + α k p k ) ≤ f ( x k ) + c α k ∇ f k T p k f(x_k)+(1-c)\alpha_k \nabla f^T_k p_k \leq f(x_k+\alpha_k p_k) \leq f(x_k) + c\alpha_k \nabla f^T_k p_k f(xk)+(1c)αkfkTpkf(xk+αkpk)f(xk)+cαkfkTpk

在这里插入图片描述

第二个不等式就是充分下降条件,而第一个不等式对步长的限制参照上图可以比较直观的看出来。

Backtracking Line Search

在这里插入图片描述

即首先定一个值 α ˉ \bar{\alpha} αˉ,然后反复乘以 ρ \rho ρ,直到最后满足条件。

线搜索方法收敛性分析

首先我们定义

c o s θ k = − ∇ f k T p k ∥ ∇ f k ∥ ∥ p k ∥ cos\theta_k=\frac{-\nabla f^T_k p_k}{ \left\| \nabla f_k\right\| \left\| p_k\right\|} cosθk=fkpkfkTpk

我们有定理

如果

∥ ∇ f ( x ) − ∇ f ( x ~ ) ∥ ≤ L ∥ x − x ~ ∥ \left\| \nabla f(x)- \nabla f(\tilde{x}) \right\| \leq L\left\| x-\tilde{x} \right\| f(x)f(x~)Lxx~

那么

∑ k = 0 c o s 2 θ k ∥ ∇ f k ∥ 2 < ∞ \sum_{k=0}cos^2\theta_k \left\| \nabla f_k \right\|^2 < \infty k=0cos2θkfk2<

这个定理还有一些条件需要满足,具体参照书本,这里就不细写了😬。定理的证明书中也有详细介绍。

收敛速度

最速下降法的收敛速度

为简单起见,在最速下降法中,假设目标函数为二次函数

f ( x ) = 1 2 x T Q x − b T x f(x)=\frac{1}{2}x^TQx-b^Tx f(x)=21xTQxbTx

我们可以很容易的算出步长为

α k = ∇ f k T ∇ f k ∇ f k T Q ∇ f k \alpha_{k}=\frac{\nabla f_{k}^{T} \nabla f_{k}}{\nabla f_{k}^{T} Q \nabla f_{k}} αk=fkTQfkfkTfk

则算法的迭代公式为

x k + 1 = x k − ( ∇ f k T ∇ f k ∇ f k T Q ∇ f k ) ∇ f k x_{k+1}=x_{k}-\left(\frac{\nabla f_{k}^{T} \nabla f_{k}}{\nabla f_{k}^{T} Q \nabla f_{k}}\right) \nabla f_{k} xk+1=xk(fkTQfkfkTfk)fk

我们定义

∥ x ∥ Q 2 = x T Q x \left\| x \right\|^2_Q = x^TQx xQ2=xTQx

由于梯度为0的时候 Q x ∗ = b Qx^*=b Qx=b,我们可以得到

1 2 ∥ x − x ∗ ∥ Q 2 = f ( x ) − f ( x ∗ ) \frac{1}{2} \left\| x-x^* \right\|^2_Q = f(x)-f(x^*) 21xxQ2=f(x)f(x)

接着再得到

∥ x k + 1 − x ∗ ∥ Q 2 = { 1 − ( ∇ f k T ∇ f k ) 2 ( ∇ f k T Q ∇ f k ) ( ∇ f k T Q − 1 ∇ f k ) } ∥ x k − x ∗ ∥ Q 2 \left\|x_{k+1}-x^{*}\right\|_{Q}^{2}=\left\{1-\frac{\left(\nabla f_{k}^{T} \nabla f_{k}\right)^{2}}{\left(\nabla f_{k}^{T} Q \nabla f_{k}\right)\left(\nabla f_{k}^{T} Q^{-1} \nabla f_{k}\right)}\right\}\left\|x_{k}-x^{*}\right\|_{Q}^{2} xk+1xQ2={1(fkTQfk)(fkTQ1fk)(fkTfk)2}xkxQ2

但是这样的表达式很难看,所以有数学家又将这些改写成了

∥ x k + 1 − x ∗ ∥ Q 2 ≤ ( λ n − λ 1 λ n + λ 1 ) 2 ∥ x k − x ∗ ∥ Q 2 \left\|x_{k+1}-x^{*}\right\|_{Q}^{2} \leq\left(\frac{\lambda_{n}-\lambda_{1}}{\lambda_{n}+\lambda_{1}}\right)^{2}\left\|x_{k}-x^{*}\right\|_{Q}^{2} xk+1xQ2(λn+λ1λnλ1)2xkxQ2

其中 λ 1 ≤ λ 2 ≤ . . . ≤ λ n \lambda_1\leq\lambda_2\leq...\leq \lambda_n λ1λ2...λn是Q的特征值。这证明了最速下降法的收敛速度是线性收敛。

牛顿法收敛速度

在牛顿法中方法的表达如下所示

P k N = − ∇ 2 f k − 1 ∇ f k P^N_k=-\nabla^2f^{-1}_{k}\nabla f_k PkN=2fk1fk

我们能够得到定理,具体证明参照书本

在这里插入图片描述

拟牛顿法收敛速度

P k = − B k − 1 ∇ f k P_k=-B^{-1}_{k}\nabla f_k Pk=Bk1fk

拟牛顿法的收敛速度为超线性收敛

在这里插入图片描述

海森矩阵修正的牛顿法

由于海森矩阵有时候并不能保证它是正定的,这个时候算法的收敛性无法得到保证,所以有时我们需要对海森矩阵进行修改。

我们可以使用Levenberg-Marquardt修正,这个修正的思路是比较简单。由于原本的海森矩阵中有负的特征值,所以我们另外构造出一个对角阵 μ I \mu I μI,将这个对角阵加到原本的海森矩阵上,从而保证得到的矩阵为正定的矩阵。使用得到的矩阵代替原本的矩阵,这样就能保证算法的收敛性。

参考资料

① Numerical Optimization

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值