机器学习笔记之优化算法(五)线搜索方法(步长角度;非精确搜索;Armijo Condition)

机器学习笔记之优化算法------线搜索方法步长角度,非精确搜索,Armijo Condition

  • 引言
    • 回顾:
    • [Armijo Condition \text{Armijo Condition} Armijo Condition](#Armijo Condition \text{Armijo Condition} Armijo Condition)

引言

上一节介绍了线搜索方法使用非精确搜索近似求解最优步长 的过程中,讨论了 f ( x k + 1 ) < f ( x k ) f(x_{k+1}) < f(x_k) f(xk+1)<f(xk)与 { f ( x k ) } k = 0 ∞ ⇒ f ∗ \{f(x_k)\}_{k=0}^{\infty} \Rightarrow f^* {f(xk)}k=0∞⇒f∗之间的条件关系。本节以该条件关系为引,介绍 Armijo Condition \text{Armijo Condition} Armijo Condition。

回顾:

关于 f ( x k + 1 ) = ϕ ( α ) f(x_{k+1}) = \phi(\alpha) f(xk+1)=ϕ(α)的一些特性

线搜索方法------步长角度(精确搜索)中介绍过,由于目标函数 f ( ⋅ ) f(\cdot) f(⋅)未知,导致我们没有办法得到 ϕ ( α ) = f ( x k + 1 ) \phi(\alpha) = f(x_{k+1}) ϕ(α)=f(xk+1)的精确函数,但并不妨碍我们了解一些关于 ϕ ( α ) \phi(\alpha) ϕ(α)的特性:

  • 由于步长变量 α \alpha α具有物理意义,因而 α \alpha α存在下界 0 0 0,从而 ϕ ( 0 ) = f ( x k + 0 ⋅ P k ) = f ( x k ) \phi(0) = f(x_k + 0 \cdot \mathcal P_k) = f(x_k) ϕ(0)=f(xk+0⋅Pk)=f(xk);
  • ϕ ( α ) \phi(\alpha) ϕ(α)在 α = 0 \alpha=0 α=0处的斜率 ∂ ϕ ( α ) ∂ α ∣ α = 0 \begin{aligned}\frac{\partial \phi(\alpha)}{\partial \alpha}|{\alpha=0}\end{aligned} ∂α∂ϕ(α)∣α=0可表示成如下形式:
    ∂ ϕ ( α ) ∂ α ∣ α = 0 = ϕ ′ ( 0 ) = ∇ f ( x k + 0 ⋅ P k ) T ⋅ P k = ∇ f ( x k ) T ⋅ P k \begin{aligned} \frac{\partial \phi(\alpha)}{\partial \alpha}|
    {\alpha=0} & = \phi'(0) \\ & = \left\\nabla f(x_k + 0 \\cdot \\mathcal P_k)\\right^T \cdot \mathcal P_k \\ & = \left\\nabla f(x_k)\\right^T \cdot \mathcal P_k \end{aligned} ∂α∂ϕ(α)∣α=0=ϕ′(0)=∇f(xk+0⋅Pk)T⋅Pk=∇f(xk)T⋅Pk
    其中 P k \mathcal P_k Pk是一个单位向量,描述的是下降方向;而 ∇ f ( x k ) \nabla f(x_k) ∇f(xk)表示梯度方向。因而它们的内积 有:
    ∇ f ( x k ) T ⋅ P k < 0 \\nabla f(x_k)^T \cdot \mathcal P_k < 0 ∇f(xk)T⋅Pk<0

也就是说:无论 ϕ ( α ) \phi(\alpha) ϕ(α)是什么形式,该函数总会经过 0 , f ( x k ) 0,f(x_k) 0,f(xk)点,且该点处的斜率 < 0 <0 <0恒成立。最终,该点的切线函数 l ( α ) l(\alpha) l(α)表示为:
l ( α ) = f ( x k ) + ∇ f ( x k ) T P k ⋅ α l(\alpha) = f(x_k) + \\nabla f(x_k)^T \mathcal P_k \cdot \alpha l(α)=f(xk)+∇f(xk)TPk⋅α

非精确搜索近似求解最优步长的条件

关于最优化目标函数 min ⁡ X ∈ R n f ( X ) \mathop{\min}\limits_{\mathcal X \in \mathbb R^n} f(\mathcal X) X∈Rnminf(X),使用线搜索方法 获取一系列数值解 { x k } k = 0 ∞ \{x_k\}{k=0}^{\infty} {xk}k=0∞:
x k + 1 = x k + α k ⋅ P k x
{k+1} = x_k + \alpha_k \cdot \mathcal P_k xk+1=xk+αk⋅Pk

最终目标希望:随着迭代过程的增加, x k x_k xk对应的目标函数结果 f ( x k ) f(x_k) f(xk)收敛到最小值 f ∗ f^* f∗:
{ f ( x k ) } k = 0 ∞ ⇒ f ∗ \{f(x_k)\}_{k=0}^{\infty} \Rightarrow f^* {f(xk)}k=0∞⇒f∗

我们不否认:如果实现该目标,必然需要数值解序列对应的目标函数结果 { f ( x k ) } k = 0 ∞ \{f(x_k)\}_{k=0}^{\infty} {f(xk)}k=0∞满足严格的单调性:

  • 在最优解 α k \alpha_k αk没有求出之前,将步长视作一个变量 α \alpha α。
  • 观察 f ( x k + α ⋅ P k ) f(x_k + \alpha \cdot \mathcal P_k) f(xk+α⋅Pk),由于 x k , P k x_k,\mathcal P_k xk,Pk都是已知/被固定的量,因此该式子中仅包含一个标量变量 α \alpha α,以此将 f ( x k + 1 ) f(x_{k+1}) f(xk+1)视作仅关于 α \alpha α的函数,记作 ϕ ( α ) \phi(\alpha) ϕ(α)。
    { f ( x k + 1 ) = f ( x k + α ⋅ P k ) = ϕ ( α ) ϕ ( α ) = f ( x k + 1 ) < f ( x k ) = ϕ ( 0 ) \begin{cases} \begin{aligned} & f(x_{k+1}) = f(x_k + \alpha \cdot \mathcal P_k) = \phi(\alpha) \\ & \phi(\alpha) = f(x_{k+1}) < f(x_k) = \phi(0) \end{aligned} \end{cases} {f(xk+1)=f(xk+α⋅Pk)=ϕ(α)ϕ(α)=f(xk+1)<f(xk)=ϕ(0)

但如果 { f ( x k ) } k = 0 ∞ \{f(x_{k})\}{k=0}^{\infty} {f(xk)}k=0∞仅仅满足严格的单调性,并无法证明 { f ( x k ) } k = 0 ∞ ⇒ f ∗ \{f(x_k)\}{k=0}^{\infty} \Rightarrow f^* {f(xk)}k=0∞⇒f∗。也就是说,这仅仅是一个必要不充分条件。
关于条件不充分的反例,见上一节传送门

Armijo Condition \text{Armijo Condition} Armijo Condition

可以看出,条件 f ( x k + 1 ) < f ( x k ) f(x_{k+1}) < f(x_k) f(xk+1)<f(xk)的约束能力是松散的,因为该条件并没有考虑到目标函数 f ( ⋅ ) f(\cdot) f(⋅)的复杂性。假设关于 ϕ ( α ) \phi(\alpha) ϕ(α)的函数图像 表示如下(蓝色曲线):

其中红色直线描述 f ( x k + 1 ) = ϕ ( α ) = f ( x k ) f(x_{k+1}) = \phi(\alpha) = f(x_k) f(xk+1)=ϕ(α)=f(xk)的情况。如果按照条件 f ( x k + 1 ) < f ( x k ) f(x_{k+1}) < f(x_k) f(xk+1)<f(xk)的描述,那么红色线下方 ϕ ( α ) \phi(\alpha) ϕ(α)图像对应的 α \alpha α结果均满足约束条件。

而 Armijo Condition \text{Armijo Condition} Armijo Condition将 f ( x k ) < f ( x k + 1 ) f(x_k) < f(x_{k+1}) f(xk)<f(xk+1)这个条件之所以松散 归结为:在 ϕ ( α ) \phi(\alpha) ϕ(α)函数中,满足 f ( x k + 1 ) < f ( x k ) f(x_{k+1})<f(x_k) f(xk+1)<f(xk)条件下,可选择的步长 α \alpha α结果过多,从而更不容易选择出最优步长

基于这种动机, Armijo Condition \text{Armijo Condition} Armijo Condition的想法是:通过一种约束方法,基于该方法下有效降低步长 α \alpha α的选择范围。那么如何构造这种方法 ? ? ?

  • 回顾上图:关于初始点 ϕ ( 0 ) = f ( x k ) \phi(0) = f(x_k) ϕ(0)=f(xk)处的切线函数 l ( α ) l(\alpha) l(α)(橙色线)。由于切线的原因,导致局部 范围内,在该切线下方范围内找出一个有效的 α \alpha α取值是极难的。
    这里主要关注的是'凸函数',在局部范围内如果是个凸函数,不可能在切线下方找到有效的 α \alpha α值。
  • 但这也仅限于局部 范围内。如果在全局范围内,这种值还是有可能存在的。例如下面的 ϕ ( α ) \phi(\alpha) ϕ(α)图像:

    从上图可以看出,关于过 0 , ϕ ( 0 ) 0,\\phi(0) 0,ϕ(0)的切线函数下方可能存在可选择的步长 ,并且从图像上观察,该步长范围的映射结果 非常优秀。但实际上我们并不清楚 ϕ ( α ) \phi(\alpha) ϕ(α)的真实形状,但可以肯定的是:如果将 0 , ϕ ( 0 ) 0,\\phi(0) 0,ϕ(0)位置的切线作为约束条件,该切线筛选 出的 α \alpha α数量相比 f ( x k + 1 ) = f ( x k ) f(x_{k+1}) = f(x_k) f(xk+1)=f(xk)明显减少,甚至是苛刻的。
    上图仅是我们构想出的示例,实际上也可能会出现'在切线 l ( α ) l(\alpha) l(α)下方,没有任何 ϕ ( α ) \phi(\alpha) ϕ(α)图像的情况。这会使切线 l ( α ) l(\alpha) l(α)自身作为约束条件返回的 α \alpha α范围不稳定甚至是空集。因而我们需要选出一个位于 f ( x k + 1 ) = f ( x k ) f(x_{k+1}) = f(x_k) f(xk+1)=f(xk) l ( α ) l(\alpha) l(α)之间的直线作为判别条件。
    L ( α ) = f ( x k ) + C 1 ⋅ α ∇ f ( x k ) T P k C 1 ∈ ( 0 , 1 ) \mathcal L(\alpha) = f(x_k) + \mathcal C_1 \cdot \alpha \\nabla f(x_k)^T \mathcal P_k \quad \mathcal C_1 \in (0,1) L(α)=f(xk)+C1⋅α∇f(xk)TPkC1∈(0,1)
  • 其中 C 1 ∈ ( 0 , 1 ) \mathcal C_1 \in (0,1) C1∈(0,1)相当于以 f ( x k ) f(x_k) f(xk)为中心,在 l ( α ) l(\alpha) l(α)与 f ( x k + 1 ) = f ( x k ) f(x_{k+1}) = f(x_k) f(xk+1)=f(xk)所围成的范围内选择合适的斜率,从而得到相应的约束条件:
    • 由于 f ( x k + 1 ) = f ( x k ) f(x_{k+1}) = f(x_k) f(xk+1)=f(xk)自身斜率为 0 0 0,因而 L ( α ) \mathcal L(\alpha) L(α)斜率 C 1 ⋅ ∇ f ( x k ) T P k C 1 ∈ ( 0 , 1 ) \mathcal C_1 \cdot \left\\nabla f(x_k)\\right^T\mathcal P_k \quad\mathcal C_1 \in (0,1) C1⋅∇f(xk)TPkC1∈(0,1)可看作是从 { 0 , ∇ f ( x k ) T P k } \{0, \\nabla f(x_k)^T\mathcal P_k\} {0,∇f(xk)TPk}范围内滑动产生的斜率结果,并作为筛选 α \alpha α的约束条件
    • 关于新的约束条件见绿色线,可以看出,可以通过调节参数 C 1 \mathcal C_1 C1,从而约束 α \alpha α的可选择范围。

      从上图可以看出:
  • 关于新的约束函数 L ( α ) \mathcal L(\alpha) L(α),其斜率 C 1 ⋅ ∇ f ( x k ) T \mathcal C_1 \cdot \left\\nabla f(x_k)\\right^T C1⋅∇f(xk)T的上界是 0 0 0,对应 L ( α ) = f ( x k ) \mathcal L(\alpha) = f(x_k) L(α)=f(xk);
  • 对应地,其斜率 C 1 ⋅ ∇ f ( x k ) T P k \mathcal C_1 \cdot \left\\nabla f(x_k)\\right^T\mathcal P_k C1⋅∇f(xk)TPk的下界是 ∇ f ( x k ) T P k \left\\nabla f(x_k)\\right^T\mathcal P_k ∇f(xk)TPk,对应 L ( α ) = l ( α ) \mathcal L(\alpha) = l(\alpha) L(α)=l(α);

从而将 ϕ ( α ) ≤ f ( x k ) + C 1 ⋅ ∇ f ( x k ) T P k ⋅ α \phi(\alpha) \leq f(x_{k}) + \mathcal C_1 \cdot \left\\nabla f(x_k)\\right^T \mathcal P_k \cdot \alpha ϕ(α)≤f(xk)+C1⋅∇f(xk)TPk⋅α称作 Armijo Condition \text{Armijo Condition} Armijo Condition。

相关参考:
【优化算法】线搜索方法-步长-Armijo Condition

相关推荐
dtq042414 小时前
C语言刷题数组5,6(求平均值,求最大值)
c语言·数据结构·算法
郭梧悠15 小时前
Hash算法入门Hash冲突解决方案
算法·哈希算法
王小王-12315 小时前
基于机器学习算法的恶意软件行为分析与检测系统设计与实现
机器学习·pyqt5·检测系统·恶意软件行为检测
洛水水15 小时前
【力扣100题】81.寻找两个正序数组的中位数
数据结构·算法·leetcode
Godspeed Zhao15 小时前
Level 4自动驾驶系统设计0——功能与场景0
人工智能·机器学习·自动驾驶
CCC:CarCrazeCurator16 小时前
大模型核心注意力机制技术深度报告:MHA、MQA、GQA 与 MLA 技术原理、性能对比与场景适配
人工智能·机器学习·自动驾驶·transformer
炎武丶航16 小时前
LeNet-5深度学习详解:从手写数字识别到代码实战
人工智能·python·深度学习·机器学习·ai·cnn·lenet
happymaker062616 小时前
LeetCodeHot100——155.最小栈
算法
洛水水16 小时前
【力扣100题】85.每日温度
算法·leetcode·职场和发展
Coder-magician16 小时前
《代码随想录》刷题打卡day15:二叉树part05
数据结构·c++·算法