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

chatgpt/2023/9/27 15:53:54

机器学习笔记之优化算法——线搜索方法[步长角度,非精确搜索,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=0f之间的条件关系。本节以该条件关系为引,介绍 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+0Pk)=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+0Pk)]TPk=[f(xk)]TPk
    其中 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)]TPk<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) XRnminf(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+αkPk
最终目标希望:随着迭代过程的增加, 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=0f
我们不否认:如果实现该目标,必然需要数值解序列对应的目标函数结果 { 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=0f。也就是说,这仅仅是一个必要不充分条件
关于条件不充分的反例,见上一节传送门。

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 α的可选择范围。
      Armijo Condition

从上图可以看出:

  • 关于新的约束函数 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-5313497.html

如若内容造成侵权/违法违规/事实不符,请联系郑州代理记账网进行投诉反馈,一经查实,立即删除!

相关文章

线程池 LinkedBlockingQueue、ArrayBlockingQueue、SynchronousQueue 的区别是什么 分别有什么优缺点

LinkedBlockingQueue、ArrayBlockingQueue 和 SynchronousQueue 都是 Java 中常用的阻塞队列实现&#xff0c;在线程池等多线程场景中经常用于保存等待执行的任务。它们之间的区别和各自的优缺点如下&#xff1a; LinkedBlockingQueue: 是一个基于链表的阻塞队列&#xff0c;…

内网隧道代理技术(十五)之 Earthworm的使用(二级代理)

Earthworm的使用(二级代理) 本文紧接着上一篇文章继续讲解Earthworm工具的使用 (二级代理)正向连接 二级正向代理发生在如下的情况: 1、Web服务器在公网,黑客可以直接访问 2、B机器在内网,黑客不能直接访问 3、Web服务器可以访问内网机器B 4、内网机器B可以访问公司…

基于峰谷分时电价引导下的电动汽车充电负荷优化(matlab代码)

目录 1 主要内容 峰谷电价优化 电动汽车充电负荷变化 2 部分代码 3 程序结果 1 主要内容 该程序基本复现《基于峰谷分时电价引导下的电动汽车充电负荷优化》&#xff0c;代码主要做的是基于NSGA-II的电动汽车充电负荷优化&#xff0c;首先&#xff0c;在研究电动汽车用户充…

2024考研408-计算机网络 第二章-物理层学习笔记

文章目录 前言一、通信基础1.1、物理层基本概念1.1.1、认识物理层1.1.2、认识物理层的四种接口特性 1.2、数据通信基础知识1.2.1、典型的数据通信模型及相关术语1.2.2、数据通信相关术语1.2.3、设计数据通信系统要考虑的三个问题&#xff1a;问题1&#xff1a;采用单工通信/半双…

Ubuntu 22.04 安装nginx1.24.0

安装编译Nginx所需的依赖项&#xff1a; sudo apt update sudo apt install libgd-dev libpcre3 libpcre3-dev build-essential zlib1g-dev libssl-dev -y 下载Nginx 1.24.0源代码包&#xff1a; wget http://nginx.org/download/nginx-1.24.0.tar.gz解压源代码包&#xff1a…

数学建模学习(8):单目标和多目标规划

优化问题描述 优化 优化算法是指在满足一定条件下,在众多方案中或者参数中最优方案,或者参数值,以使得某个或者多个功能指标达到最优,或使得系统的某些性能指标达到最大值或者最小值 线性规划 线性规划是指目标函数和约束都是线性的情况 [x,fval]linprog(f,A,b,Aeq,Beq,LB,U…

ORB-SLAM3数据集配置与评价

在ORB-SLAM3运行EuRoC和TUM-VI数据集并作以评价。EuRoC利用微型飞行器(MAV ) 收集的视觉惯性数据集&#xff0c;TUM-VI 是由实验人员手持视觉-惯性传感器收集的数据集。这两个是在视觉SLAM中比较常用的公开数据集&#xff0c;所以测试并加以记录。 文章目录 一、EuRoC数据集测…

chmod命令详细使用说明

chmod命令详细使用说明 chmod是Unix和类Unix系统上用于更改文件或目录权限的命令。它是"change mode"的缩写。在Linux和其他类Unix操作系统中&#xff0c;文件和目录具有权限位&#xff0c;用来控制哪些用户可以访问、读取、写入或执行它们。chmod命令允许用户修改这…
推荐文章