首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

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

  • 23-09-05 19:02
  • 2799
  • 5160
blog.csdn.net

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

  • 引言
    • 回顾:
      • 关于 f ( x k + 1 ) = ϕ ( α ) f(x_{k+1}) = phi(alpha) f(xk+1​)=ϕ(α)的一些特性
      • 非精确搜索近似求解最优步长的条件
    • Armijo Condition ext{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 ext{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
    ∂ϕ(α)∂α|α=0" role="presentation" style="position: relative;">∂ϕ(α)∂α|α=0∂ϕ(α)∂α|α=0
    ∂α∂ϕ(α)​∣α=0​​
    可表示成如下形式:
    ∂ ϕ ( α ) ∂ α ∣ α = 0 = ϕ ′ ( 0 ) = [ ∇ f ( x k + 0 ⋅ P k ) ] T ⋅ P k = [ ∇ f ( x k ) ] T ⋅ P k
    ∂ϕ(α)∂α|α=0=ϕ′(0)=[∇f(xk+0⋅Pk)]T⋅Pk=[∇f(xk)]T⋅Pk" role="presentation">∂ϕ(α)∂α|α=0=ϕ′(0)=[∇f(xk+0⋅Pk)]T⋅Pk=[∇f(xk)]T⋅Pk∂ϕ(α)∂α|α=0=ϕ′(0)=[∇f(xk+0⋅Pk)]T⋅Pk=[∇f(xk)]T⋅Pk
    ∂α∂ϕ(α)​∣α=0​​=ϕ′(0)=[∇f(xk​+0⋅Pk​)]T⋅Pk​=[∇f(xk​)]T⋅Pk​​

    其中 P k mathcal P_k Pk​是一个单位向量,描述的是下降方向;而 ∇ f ( x k ) abla f(x_k) ∇f(xk​)表示梯度方向。因而它们的内积有:
    [ ∇ f ( x k ) ] T ⋅ P k < 0 [ abla 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) + [ abla 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∈Rnmin​f(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 )
    {f(xk+1)=f(xk+α⋅Pk)=ϕ(α)ϕ(α)=f(xk+1)<f(xk)=ϕ(0)" role="presentation" style="position: relative;">{f(xk+1)=f(xk+α⋅Pk)=ϕ(α)ϕ(α)=f(xk+1)<f(xk)=ϕ(0){f(xk+1)=f(xk+α⋅Pk)=ϕ(α)ϕ(α)=f(xk+1)<f(xk)=ϕ(0)
    {​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 ext{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 ext{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(xk+1​)<f(xk​)条件下,可选择的步长 α alpha α结果过多,从而更不容易选择出最优步长。

基于这种动机, Armijo Condition ext{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 [ abla f(x_k)]^T mathcal P_k quad mathcal C_1 in (0,1) L(α)=f(xk​)+C1​⋅α[∇f(xk​)]TPk​C1​∈(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[ abla f(x_k) ight]^Tmathcal P_k quadmathcal C_1 in (0,1) C1​⋅[∇f(xk​)]TPk​C1​∈(0,1)可看作是从 { 0 , [ ∇ f ( x k ) ] T P k } {0, [ abla f(x_k)]^Tmathcal P_k} {0,[∇f(xk​)]TPk​}范围内滑动产生的斜率结果,并作为筛选 α alpha α的约束条件。
    • 关于新的约束条件见绿色线,可以看出,可以通过调节参数 C 1 mathcal C_1 C1​,从而约束 α alpha α的可选择范围。
      Armijo Condition
      从上图可以看出:
  • 关于新的约束函数 L ( α ) mathcal L(alpha) L(α),其斜率 C 1 ⋅ [ ∇ f ( x k ) ] T mathcal C_1 cdot left[ abla f(x_k) ight]^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[ abla f(x_k) ight]^Tmathcal P_k C1​⋅[∇f(xk​)]TPk​的下界是 [ ∇ f ( x k ) ] T P k left[ abla f(x_k) ight]^Tmathcal 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[ abla f(x_k) ight]^T mathcal P_k cdot alpha ϕ(α)≤f(xk​)+C1​⋅[∇f(xk​)]TPk​⋅α称作 Armijo Condition ext{Armijo Condition} Armijo Condition。

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

文章知识点与官方知识档案匹配,可进一步学习相关知识
算法技能树首页概览51117 人正在系统学习中
注:本文转载自blog.csdn.net的静静的喝酒的文章"https://blog.csdn.net/qq_34758157/article/details/132020949"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top