迭代求解最优化问题——步长确定

本文介绍了线搜索算法在最优化问题中的应用,包括梯度下降法、牛顿法等经典算法的方向确定与步长选择原理,并详细阐述了Armijo条件及回溯线搜索的具体实现。

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

梯度下降法和牛顿法其实在某种程度上只是确定了下降的方向。而下降的步长(收敛速率系数)还需要我们自己确定。而对于不同的问题下降的步长往往也是不一样的。这就造成了一些麻烦。

线搜索

前面提到迭代求解最优化问题minf(x)minf(x)的一般形式是xk+1=xk+Δxk+1=xk+Δ。事实上我们可以把ΔΔ分为两个部分:方向和步长。

先确定方向,再确定步长的算法称为线搜索算法。它的一般形式为。

xk+1=xk+αkpkxk+1=xk+αkpk

其中αα为步长,pp为方向。显然有fkpk0。进而有pk=B1kfkpk=−Bk−1∇fk。其中B为对称非奇异矩阵。
  • 当B为I时,即为梯度下降法
  • 当B为2fk∇2fk时,即为牛顿法
  • 当B通过迭代进行更新时,为拟牛顿法
  • 当B为JTJJTJ时,为高斯-牛顿法

当搜索方向确定后,就需要确定步长。

步长

而如何得到一个合适的步长这个问题又构成了一个最优化问题,即

minh(α)=f(xk+αpk)minh(α)=f(xk+αpk)

对这个优化问题我们可以根据具体情况求出闭式解,但是这往往会很复杂。因此我们仅仅对它进行一个粗略的估计,从而在可接受的计算量的情况下,尽可能的求得较大的步长,使得h(α)尽可能降低。

(天啊,为了求解最优化问题的一步迭代步长我们又构造了一个最优化问题来进行迭代)

Armijo条件

为了满足上面的条件,人们提出了很多准则来判断步长是否合适。比如Armijo条件,这个准则的数学定义如下:

f(xk+αpk)f(xk)+αcfkpkf(xk+αpk)≤f(xk)+αc∇fkpk

其中c(0,1)c∈(0,1)

可以看到,这个条件约束了h(α)h(α)的变化情况,使得损失函数能够尽量降低。

在这里介绍的回溯线搜索算法即是在这些原则的基础上实现的。回溯线算法的基本思想是在搜索方向上先设置一个较大的初始步长,如果步长太大,则以一定比例缩减步长直到满足Armijo条件。这种搜索算法就满足了步长选择的另外一个准则——每次迭代的步长尽可能大。

具体来说该算法的流程如下:

  1. 使用一个较大的步长α0α0对步长进行初始化。确定缩减因子τ(0,1)τ∈(0,1)c(0,1)c∈(0,1)
  2. 当Armijo条件不满足时,令αj=ταj1αj=ταj−1
  3. 返回αjαj
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值