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

引言

上一节介绍了 Armijo \text{Armijo} Armijo准则 ( Armijo Condition ) (\text{Armijo Condition}) (Armijo Condition),本节将继续介绍 Glodstein \text{Glodstein} Glodstein准则 ( Glodstein Condition ) (\text{Glodstein Condition}) (Glodstein Condition)

回顾: Armijo Condition \text{Armijo Condition} Armijo Condition

首先,希望数值解对应的目标函数结果 { f ( x k ) } k = 0 ∞ \{f(x_k)\}_{k=0}^{\infty} {f(xk)}k=0收敛至最优解 f ∗ f^* f
{ f ( x k ) } k = 0 ∞ ⇒ f ∗ \{f(x_k)\}_{k=0}^{\infty} \Rightarrow f^* {f(xk)}k=0f
而数值解对应的目标函数结果满足严格的单调性是一项不可忽视的重要因素:
{ 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 \text{Armijo} Armijo准则产生的动机在于:条件 f ( x k + 1 ) < f ( x k ) f(x_{k+1}) < f(x_k) f(xk+1)<f(xk)的约束能力太松散。而具体表现在: ϕ ( α ) \phi(\alpha) ϕ(α)函数中,满足条件 f ( x k + 1 ) < f ( x k ) f(x_{k+1})< f(x_k) f(xk+1)<f(xk) α \alpha α值过多,反而对优秀步长结果的选择产生阻碍
基础条件涵盖范围
观察上图,其中:

  • 蓝色曲线表示 ϕ ( α ) \phi(\alpha) ϕ(α)的函数曲线;
  • 红色虚线表示步长 α \alpha α划分边界 ϕ ( α ) = f ( x k ) \phi(\alpha) = f(x_k) ϕ(α)=f(xk)。因而 f ( x k + 1 ) < f ( x k ) f(x_{k+1})< f(x_k) f(xk+1)<f(xk)描述的是红色虚线下方的部分,具体对应步长 α \alpha α的选择范围见 α \alpha α轴上的红色实线

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)条件过于松散的处理方法是:相比于上图中的红色虚线,尝试找到一条更优的直线对 ϕ ( α ) \phi(\alpha) ϕ(α)进行划分,最终使步长 α \alpha α的选择范围明显降低

它选择了 ϕ ( α ) = f ( x k ) \phi(\alpha) = f(x_k) ϕ(α)=f(xk) ϕ ( α ) \phi(\alpha) ϕ(α) α = 0 \alpha=0 α=0处的切线函数: 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α进行组合,其划分边界函数表示为:
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 [\nabla f(x_k)]^T \mathcal P_k \cdot \alpha \quad \mathcal C_1 \in (0,1) L(α)=f(xk)+C1[f(xk)]TPkαC1(0,1)
由于 C 1 > 0 , α > 0 \mathcal C_1 >0,\alpha>0 C1>0,α>0(步长的物理意义);并且 [ ∇ f ( x k ) ] T P k < 0 \left[\nabla f(x_k)\right]^T \mathcal P_k < 0 [f(xk)]TPk<0,因此函数 L ( α ) \mathcal L(\alpha) L(α)斜率存在:
关于 [ ∇ f ( x k ) ] T P k < 0 [\nabla f(x_k)]^T \mathcal P_k < 0 [f(xk)]TPk<0详见优化算法——下降方向的推导过程

  • 上界 0 0 0(无法取到),此时 L ( α ) \mathcal L(\alpha) L(α)的函数图像与 ϕ ( α ) = f ( x k ) \phi(\alpha) = f(x_k) ϕ(α)=f(xk)的函数图像重合
  • 下界 [ ∇ f ( x k ) ] T P k [\nabla f(x_k)]^T \mathcal P_k [f(xk)]TPk(无法取到),此时 L ( α ) \mathcal L(\alpha) L(α)的函数图像与 l ( α ) l(\alpha) l(α)的函数图像重合

对应函数图像表示如下。可以看到:相比上图, α \alpha α轴上绿色实线描述的步长 α \alpha α选择范围明显小于上图中红色实线描述的范围。从而对最优步长 α \alpha α的选择进行优化。
这里并没有涉及证明过程,仅是从逻辑角度进行描述。
Armijo Condition效果
关于为什么要选择 l ( α ) l(\alpha) l(α)的斜率 [ ∇ f ( x k ) ] T P k [\nabla f(x_k)]^T \mathcal P_k [f(xk)]TPk作为下界的描述 ? ? ?主要是因为:该切线函数在局部范围内函数图像(凸函数)中不存在位于该切线下方的函数结果。但这仅仅作用于局部范围。因为我们对完整的 ϕ ( α ) \phi(\alpha) ϕ(α)函数未知,在全局范围中可能存在函数信息位于 l ( α ) l(\alpha) l(α)下方。例如下图描述的 ϕ ( α ) \phi(\alpha) ϕ(α)函数:
初始点对应的切线斜率不是绝对下界
因此,斜率 [ ∇ f ( x k ) ] T P k [\nabla f(x_k)]^T \mathcal P_k [f(xk)]TPk并不是绝对下界。但不否认的是: l ( α ) l(\alpha) l(α)的斜率用于划分有效的 α \alpha α步长来说是苛刻,至少比 ϕ ( α ) = f ( x k ) \phi(\alpha) = f(x_k) ϕ(α)=f(xk)描述的范围更加严格。

关于 Armijo Condition \text{Armijo Condition} Armijo Condition的弊端

关于 Armijo \text{Armijo} Armijo规则,我们仅从 L ( α ) \mathcal 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 ) = ϕ ( α ) < L ( α ) = f ( x k ) + C 1 ⋅ [ ∇ f ( x k ) ] T P k ⋅ α ⏟ < 0 < f ( x k ) f(x_{k+1}) = \phi(\alpha) < \mathcal L(\alpha) = f(x_k) + \underbrace{\mathcal C_1\cdot [\nabla f(x_k)]^T \mathcal P_k \cdot \alpha}_{<0} <f(x_k) f(xk+1)=ϕ(α)<L(α)=f(xk)+<0 C1[f(xk)]TPkα<f(xk)
Armijo \text{Armijo} Armijo规则依然存在弊端:在 C 1 ∈ ( 0 , 1 ) \mathcal C_1 \in (0,1) C1(0,1)的选择过程中,依然存在:满足 ϕ ( α ) < L ( α ) \phi(\alpha) < \mathcal L(\alpha) ϕ(α)<L(α) α \alpha α结果过少,从而这些样本点包含的 α \alpha α范围过小。例如:
其中绿色实线描述 L ( α ) \mathcal L(\alpha) L(α),其对应的有效范围见 α \alpha α轴上的绿色实线。可以看出,覆盖的 α \alpha α范围极小并且对应的 ϕ ( α ) \phi(\alpha) ϕ(α)结果也不够优秀。
包含a范围过小
上述情况是有可能出现的,虽然我们并不执著最小值一定位于 ϕ ( α ) < L ( α ) \phi(\alpha) < \mathcal L(\alpha) ϕ(α)<L(α)所描述的 α \alpha α范围内(因为是求数值解),但我们同样希望:排除掉类似这种 α \alpha α较小,并且质量不高的情况,或者:我们更希望 ϕ ( α ) \phi(\alpha) ϕ(α)核心部分有机会出现在范围内

Glodstein Condition \text{Glodstein Condition} Glodstein Condition

Glodstein Consition \text{Glodstein Consition} Glodstein Consition是在 Armijo Condition \text{Armijo Condition} Armijo Condition的基础上,给 ϕ ( α ) \phi(\alpha) ϕ(α)的范围加上一个下界
{ Glodstein Condition :  f ( x k ) + C 2 ⋅ [ ∇ f ( x k ) ] T P k ⋅ α ⏟ Lower Bound ≤ ϕ ( α ) ≤ f ( x k ) + C 1 ⋅ [ ∇ f ( x k ) ] T P k ⋅ α ⏟ Upper Bound;Armijo Condition C 1 + C 2 = 1 \begin{cases} \text{Glodstein Condition : }\underbrace{f(x_k) + \mathcal C_2 \cdot [\nabla f(x_k)]^T\mathcal P_k \cdot \alpha}_{\text{Lower Bound}} \leq \phi(\alpha) \leq \underbrace{f(x_k) + \mathcal C_1 \cdot [\nabla f(x_k)]^T \mathcal P_k \cdot \alpha}_{\text{Upper Bound;Armijo Condition}} \\ \quad \\ \mathcal C_1 + \mathcal C_2 = 1 \end{cases} Glodstein Condition : Lower Bound f(xk)+C2[f(xk)]TPkαϕ(α)Upper Bound;Armijo Condition f(xk)+C1[f(xk)]TPkαC1+C2=1
经过整理,使用一个参数 C \mathcal C C对上述范围进行描述:
f ( x k ) + ( 1 − C ) [ ∇ f ( x k ) ] T P k ⋅ α ≤ ϕ ( α ) ≤ f ( x k ) + C ⋅ [ ∇ f ( x k ) ] T P k α C ∈ ( 0 , 1 2 ) f(x_k) + (1 - \mathcal C) [\nabla f(x_k)]^T \mathcal P_k \cdot \alpha \leq \phi(\alpha) \leq f(x_k) + \mathcal C \cdot [\nabla f(x_k)]^T \mathcal P_k \alpha \quad \mathcal C \in \left(0,\frac{1}{2}\right) f(xk)+(1C)[f(xk)]TPkαϕ(α)f(xk)+C[f(xk)]TPkαC(0,21)
对应的函数图像表示如下:
Goldstein Condition示例
其中两条绿色实线关于 f ( x k ) + 1 2 [ ∇ f ( x k ) ] T P k ⋅ α \begin{aligned}f(x_k) + \frac{1}{2} [\nabla f(x_k)]^T \mathcal P_k \cdot \alpha\end{aligned} f(xk)+21[f(xk)]TPkα(蓝色虚线)对称,两条绿色实线之间的范围就是 ϕ ( α ) \phi(\alpha) ϕ(α)有效的选择范围。其对应的 α \alpha α选择范围见上图 α \alpha α轴上的绿色实线

从而可以通过修改 C \mathcal C C的数值,从而调整上图绿色实线之间的夹角。这种 ϕ ( α ) \phi(\alpha) ϕ(α)的选择方式极大程度地将 ϕ ( α ) \phi(\alpha) ϕ(α)核心部分包含在选择范围内。从而缓解了 Armijo Condition \text{Armijo Condition} Armijo Condition的弊端。

Goldstein Condition \text{Goldstein Condition} Goldstein Condition的弊端

即便 Goldstein Condition \text{Goldstein Condition} Goldstein Condition缓解了 Armijo Condition \text{Armijo Condition} Armijo Condition的弊端。但其自身也同样存在弊端当参数 C \mathcal C C接近 1 2 \begin{aligned}\frac{1}{2}\end{aligned} 21时,上下界均会朝着中心轴 f ( x k ) + 1 2 [ ∇ f ( x k ) ] T P k ⋅ α \begin{aligned}f(x_k) + \frac{1}{2} [\nabla f(x_k)]^T \mathcal P_k \cdot \alpha\end{aligned} f(xk)+21[f(xk)]TPkα方向靠拢。最终可能得到如下效果:

  • 虽然这里描述的 ϕ ( α ) \phi(\alpha) ϕ(α)范围还比较优秀,但这只是特例。在两条绿线之间的夹角极小时,我们映射出的 ϕ ( α ) \phi(\alpha) ϕ(α)范围以及对应的 α \alpha α范围都非常小,后面可能导致其将一些优质的 α \alpha α结果给过滤掉。
  • 但与 Armijo Condition \text{Armijo Condition} Armijo Condition相比, Goldstein Condition \text{Goldstein Condition} Goldstein Condition确实将选择范围集中在 ϕ ( α ) \phi(\alpha) ϕ(α)的核心位置,而不是数量少的,较偏的 ϕ ( α ) \phi(\alpha) ϕ(α)位置上。
    Goldstein Condition的弊端

下一节针对 Glodstein Condition \text{Glodstein Condition} Glodstein Condition C \mathcal C C值过于接近 1 2 \begin{aligned}\frac{1}{2}\end{aligned} 21而导致优质 α \alpha α结果被误杀的情况,我们介绍 Wolfe Condition \text{Wolfe Condition} Wolfe Condition

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jenkins准备

回到目录 jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具&#xff0c;主要用于持续、自动的构建/测试软件项目、监控外部任务的运行。Jenkins用Java语言编写&#xff0c;可在Tomcat等流行的servlet容器中运行&#xff0c;也可独立运行。通常与版本管理工具(SCM)、构…

【设计模式】单例模式

什么是单例模式&#xff1f; 保证一个类仅有一个实例&#xff0c;并提供一个访问它的全局访问点 单例模式的应用场景 1.整个程序的运行中只允许有一个类的实例&#xff1b; 2.需要频繁实例化然后销毁的对象。 3.创建对象时耗时过多或者耗资源过多&#xff0c;但又经常用到…

阿里云容器服务助力极氪荣获 FinOps 先锋实践者

作者&#xff1a;海迩 可信云评估是中国信息通信研究院下属的云计算服务和软件的专业评估体系&#xff0c;自 2013 年起历经十年发展&#xff0c;可信云服务评估体系已日臻成熟&#xff0c;成为政府支撑、行业规范、用户选型的重要参考。 2022 年 5 月国务院国资委制定印发《…

【云原生】K8S二进制搭建一

目录 一、环境部署1.1操作系统初始化 二、部署etcd集群2.1 准备签发证书环境在 master01 节点上操作在 node01与02 节点上操作 三、部署docker引擎四、部署 Master 组件4.1在 master01 节点上操 五、部署Worker Node组件 一、环境部署 集群IP组件k8s集群master01192.168.243.1…

ceil(),floor(),round()函数C++详解

ceil&#xff08;&#xff09; ceil()函数是这样的&#xff1a; double ceil(double x) ceil函数可以把x上取整。 例子&#xff1a; #include <bits/stdc.h> using namespace std; int main() {double a, b;cin >> a >> b;printf("ceil(%.2f) %.2…

消息队列项目(2)

我们使用 SQLite 来进行对 Exchange, Queue, Binding 的硬盘保存 对 Message 就保存在硬盘的文本中 SQLite 封装 这里是在 application.yaml 中来引进对 SQLite 的封装 spring:datasource:url: jdbc:sqlite:./data/meta.dbusername:password:driver-class-name: org.sqlite.…

自定义elementui的主题

通常情况下&#xff0c;我们使用elementui框架的时候默认组件的主题都是白色的&#xff0c;比如&#xff1a; 但是如果想自定义主题&#xff0c;改变主题颜色&#xff0c;以及各种默认颜色&#xff0c;其实也不难&#xff1a; 配置默认主题&#xff0c;选好后点击下载 在vu…

墨觉Run Plus耳机真的很好嘛?南卡、韶音、墨觉哪个好

随着近年来蓝牙耳机市场的快速变化&#xff0c;耳机的样式也在不断演变&#xff0c;从入耳式发展到无需入耳的骨传导耳机。骨传导耳机因其可以通过骨传导技术进行声音传输&#xff0c;无需贴合耳道即可实现耳机功能&#xff0c;因此备受市场欢迎。尤其是近两年&#xff0c;骨传…

关于简单C++函数在内存中的存储问题

举例 int main(){... }int data(){... }int add(){... } 在分段式存储管理时&#xff0c;根据人们的需求&#xff0c;人为分段存储 如图&#xff1a;

ios_base::out和ios::out、ios_base::in和ios::in、ios_base::app和ios::app等之间有什么区别吗?

2023年8月2日&#xff0c;周三晚上 今天我看到了这样的两行代码&#xff1a; std::ofstream file("example.txt", std::ios_base::out);std::ofstream file("example.txt", std::ios::out);这让我产生了几个疑问&#xff1a; 为什么有时候用ios_base::o…

如何通过 WordPress 数据库启用插件?【进不去后台可用】

如果您无法访问 WordPress 后台并需要激活插件以恢复访问权限&#xff0c;则可以通过 WordPress 数据库来实现。本文将向您展示如何使用数据库轻松激活 WordPress 插件。 何时使用数据库激活 WordPress 插件&#xff1f; 许多常见的 WordPress 错误会阻止网站所有者访问 WordP…

selenium 和 chromedriver 使用的一些总结

1 selenium 下载地址 selenium PyPIhttps://pypi.org/project/selenium/ 2 chromedriver 下载地址 &#xff0c;可以下载最新版的 chromedriver ChromeDriver - WebDriver for Chrome - Downloadshttps://chromedriver.chromium.org/downloadsChrome for Testing availabi…

管理类联考——写作——论说文——实战篇——行文篇——通用性强,解释多种现象的经典理论——谈必要

前言 本节内容涉及“社会分工理论”“资源稀缺性”“瓶颈理论”等理论。这些理论一般用在“利大于弊式结构”中“整体有必要”的部分&#xff0c;也可用于“AB二元类”题目“谈好处”的部分。 需要注意的是&#xff0c;“有好处”一般指有它更好&#xff1b;“有必要”一般指没…

Kafka介绍

目录 1&#xff0c;kafka简单介绍 2&#xff0c;kafka使用场景 3&#xff0c;kafka基本概念 kafka集群 数据冗余 分区的写入 读取分区数据 顺序消费 顺序消费典型的应用场景&#xff1a; 批量消费 提交策略 kafka如何保证高并发 零拷贝技术&#xff08;netty&#…

MIAOYUN获评“2023年度一云多芯稳定安全运行优秀案例”

2023年7月25日至26日&#xff0c;由中国信息通信研究院&#xff08;简称“中国信通院”&#xff09;、中国通信标准化协会主办的以“云领创新&#xff0c;算启新篇”为主题的“2023可信云大会”在北京成功举办。会上公布了多项前瞻领域的评估结果和2023年度最佳实践案例&#x…

IOS看书最终选择|源阅读转换|开源阅读|IOS自签

环境&#xff1a;IOS想使用 换源阅读 问题&#xff1a;换新手机&#xff0c;源阅读下架后&#xff0c;没有好的APP阅读小说 解决办法&#xff1a;自签APP 转换源仓库书源 最终预览 &#xff1a;https://rc.real9.cn/ 背景&#xff1a;自从我换了新iPhone手机&#xff0c;就无法…

生鲜蔬果小程序的完整教程

随着互联网的发展&#xff0c;线上商城成为了人们购物的重要渠道。其中&#xff0c;小程序商城在近年来的发展中&#xff0c;备受关注和青睐。本文将介绍如何使用乔拓云网后台搭建生鲜果蔬配送小程序&#xff0c;并快速上线。 首先&#xff0c;登录乔拓云网后台&#xff0c;进入…

vue2-常用的修饰符有哪些应用场景?

1、修饰符是什么&#xff1f; 在程序的世界里&#xff0c;修饰符是用于限定类型以及类型成员的声明的一种 符号。 在vue中&#xff0c;修饰符处理了许多DOM事件的细节&#xff0c;让我们不再需要花大量的时间去处理这些重复的事情&#xff0c;而能有更多的精力专注于程序的逻辑…

3.PyCharm安装

PyCharm是由JetBrains推出的Python开发IDE,是最受欢迎的Python IDE之一。PyCharm为Python开发者提供了许多高级功能如代码自动完成、调试等。它使用智能引擎来分析代码,能够自动识别代码中的错误并提供快速修复方案。PyCharm适用于各种规模的项目,包括小型Python脚本和大型P…

K8S系列文章之 自动化运维利器 Fabric

Fabric 主要用在应用部署与系统管理等任务的自动化&#xff0c;简单轻量级&#xff0c;提供有丰富的 SSH 扩展接口。在 Fabric 1.x 版本中&#xff0c;它混杂了本地及远程两类功能&#xff1b;但自 Fabric 2.x 版本起&#xff0c;它分离出了独立的 Invoke 库&#xff0c;来处理…