无约束优化:线搜索最速下降

news2025/1/15 20:49:12

文章目录

  • 无约束优化:线搜索最速下降
    • 无约束优化问题
    • 线搜索最速下降
    • 精确线搜索
    • 非精确线搜索
      • Armijo准则
      • Goldstein准则
      • Wolfe准则
    • 参考文献

无约束优化:线搜索最速下降

无约束优化问题

在这里插入图片描述

线搜索最速下降

在这里插入图片描述

对于光滑函数 f ( x ) f(x) f(x),沿着函数负梯度方向下降速度最快。对于线搜索最速下降方法而言,核心问题是如何选择搜索步长 τ \tau τ,一般有以下四种方法:

  • 固定步长: τ = c \tau = c τ=c。如下图所示,若常数取太大,则搜索振荡厉害且对于非凸函数有可能发散;若太小,则收敛速度慢;
  • 渐消步长: τ = c / k \tau=c/k τ=c/k。适用性强,对于非光滑函数、梯度存在噪声( ▽ f ( x ) ′ = ▽ f ( x ) + ε \triangledown f(x)'=\triangledown f(x)+\varepsilon f(x)=f(x)+ε ,随机噪声)适用,稳健性强但收敛速度慢,适用于条件差但对收敛速度要求不高的场景;
  • 精确线搜索: τ = arg ⁡ min ⁡ α f ( x k + α d ) \tau=\arg \min _\alpha f\left(x^k+\alpha d\right) τ=argminαf(xk+αd),实际应用较少,下面详述;
  • 非精确线搜索: τ ∈ { α ∣ f ( x k ) − f ( x k + α d ) ≥ − c ⋅ α d T ∇ f ( x k ) } \tau \in\left\{\alpha \mid f\left(x^k\right)-f\left(x^k+\alpha d\right) \geq-c \cdot \alpha d^{\mathrm{T}} \nabla f\left(x^k\right)\right\} τ{αf(xk)f(xk+αd)cαdTf(xk)},重要,下面详述。
在这里插入图片描述

精确线搜索

此时我们构造了一个辅助函数 ϕ ( α ) = f ( x k + α d k ) \phi(\alpha)=f\left(x^k+\alpha d^k\right) ϕ(α)=f(xk+αdk) α \alpha α是该辅助函数的自变量,该函数的几何含义非常直观:它是目标函数 f ( x ) f(x) f(x)在射线 { x k + α d k : α > 0 } \left\{x^k+\alpha d^k: \alpha>0\right\} {xk+αdk:α>0}上的限制。线搜索的目标就是选取合适的 α k \alpha_{k} αk使得 ϕ ( α k ) \phi\left(\alpha_k\right) ϕ(αk)尽可能小,自然而言引入一个子优化问题:
α k = arg ⁡ min ⁡ α > 0 ϕ ( α ) \alpha_k=\underset{\alpha>0}{\arg \min } \phi(\alpha) αk=α>0argminϕ(α)
这个子优化算法就是精确线搜索,目的是找到精确的最佳步长 α k \alpha_{k} αk。但在原本的最速下降优化问题中再引入一个子优化问题,这本身就带来比较大的计算量,因此精确线搜索在实际应用中较少使用。由此,引出非精确线搜索算法,即把条件放宽,不要求得到精确的最佳步长 α k \alpha_k αk,而是仅仅要求 ϕ ( α ) \phi(\alpha) ϕ(α)满足某些不等式要求

非精确线搜索

Armijo准则

d k d^k dk是点 x k x^k xk处的下降方向,若 f ( x k + α d k ) ⩽ f ( x k ) + c 1 α ∇ f ( x k ) T d k f\left(x^k+\alpha d^k\right) \leqslant f\left(x^k\right)+c_1 \alpha \nabla f\left(x^k\right)^{\mathrm{T}} d^k f(xk+αdk)f(xk)+c1αf(xk)Tdk,则称步长 α \alpha α满足Armijo准则,其中 c 1 ∈ ( 0 , 1 ) c_1 \in(0,1) c1(0,1)是一个常数。一般 d k d^k dk为负梯度方向,则 c 1 α ∇ f ( x k ) T d k < 0 c_1 \alpha \nabla f\left(x^k\right)^{\mathrm{T}} d^k <0 c1αf(xk)Tdk<0,若满足Armijo准则,则严格满足 f ( x k + α d k ) < f ( x k ) f\left(x^k+\alpha d^k\right) < f\left(x^k\right) f(xk+αdk)<f(xk),因此又称该准则为充分下降条件,可保证每一步迭代充分下降。

在这里插入图片描述

该准则有非常直观的几何含义,如上图所示。在实际应用中,参数 c 1 c_1 c1通常选为一个很小的正数,例如 c 1 = 1 0 − 3 c_1=10^{-3} c1=103,这使得Armijo准则非常容易满足。但仅仅使用该准则无法保证迭代的收敛性,因为取 α = 0 \alpha=0 α=0也是满足准则中的条件,而这意味着迭代序列中的点固定不变,这样重复收敛就没有意义,因此Armijo准则一般搭配其他准则来使用。基于Armijo准则的最速下降算法步骤如下:

在这里插入图片描述

上述算法不会无限进行下去,因为沿着梯度负方向,当 α \alpha α充分小时,该准则总是成立的。为了避免步长过小,在实际应用中一般会给 α \alpha α设置一个下界,这就是Goldstein准则。

Goldstein准则

Armijo-Goldstein准则,简称Goldstein准则,简单来说就是同时给 α \alpha α设置上下界,定义如下:

d k d^k dk是点 x k x^k xk处的下降方向,若
f ( x k + α d k ) ⩽ f ( x k ) + c α ∇ f ( x k ) T d k , f ( x k + α d k ) ⩾ f ( x k ) + ( 1 − c ) α ∇ f ( x k ) T d k \begin{aligned} & f\left(x^k+\alpha d^k\right) \leqslant f\left(x^k\right)+c \alpha \nabla f\left(x^k\right)^{\mathrm{T}} d^k, \\ & f\left(x^k+\alpha d^k\right) \geqslant f\left(x^k\right)+(1-c) \alpha \nabla f\left(x^k\right)^{\mathrm{T}} d^k \end{aligned} f(xk+αdk)f(xk)+cαf(xk)Tdk,f(xk+αdk)f(xk)+(1c)αf(xk)Tdk
则称步长 α \alpha α满足Goldstein准则,其中 c ∈ ( 0 , 0.5 ) c \in (0, 0.5) c(0,0.5).

在这里插入图片描述

该准则的几何意义同样非常直观,如上图所示,在区间 [ α 1 , α 2 ] [\alpha_1,\alpha_2] [α1,α2]中的点均满足Goldstein准则。但需要注意的是,该准则可能避开最优的函数值 ϕ ( α ) \phi(\alpha) ϕ(α)的最小值点并不在区间 [ α 1 , α 2 ] [\alpha_1,\alpha_2] [α1,α2]内。为此,我们引入Armijo-Wolfe准则。

Wolfe准则

Armijo-Wolfe准则,简称Wolfe准则,定义如下:

d k d^k dk是点 x k x^k xk处的下降方向,若
f ( x k + α d k ) ⩽ f ( x k ) + c 1 α ∇ f ( x k ) T d k ∇ f ( x k + α d k ) T d k ⩾ c 2 ∇ f ( x k ) T d k \begin{aligned} & f\left(x^k+\alpha d^k\right) \leqslant f\left(x^k\right)+c_1 \alpha \nabla f\left(x^k\right)^{\mathrm{T}} d^k \\ & \nabla f\left(x^k+\alpha d^k\right)^{\mathrm{T}} d^k \geqslant c_2 \nabla f\left(x^k\right)^{\mathrm{T}} d^k \end{aligned} f(xk+αdk)f(xk)+c1αf(xk)Tdkf(xk+αdk)Tdkc2f(xk)Tdk
则称步长 α \alpha α满足Wolfe准则,其中 c 1 , c 2 ∈ ( 0 , 1 ) c_1,c_2 \in (0,1) c1,c2(0,1)为给定常数且 c 1 < c 2 c_1 < c_2 c1<c2.

由该准则的定义可以看出,仍然使用第一个条件即Armijo准则确定步长上界,在第二个条件中 ∇ f ( x k + α d k ) T d k \nabla f\left(x^k+\alpha d^k\right)^{\mathrm{T}} d^k f(xk+αdk)Tdk ϕ ( α ) \phi(\alpha) ϕ(α)的导数,也就是要求 ϕ ( α ) \phi(\alpha) ϕ(α)在点 α \alpha α处切线的斜率不能小于 ϕ ′ ( 0 ) \phi^{\prime}(0) ϕ(0) c 2 c_2 c2倍。如下图所示,在区间 [ α 1 , α 2 ] [\alpha_1,\alpha_2] [α1,α2]中的点均满足Wolfe准则, α k = arg ⁡ min ⁡ α > 0 ϕ ( α ) \alpha_k=\underset{\alpha>0}{\arg \min } \phi(\alpha) αk=α>0argminϕ(α)子优化问题的最优解处( ϕ ( α ) \phi(\alpha) ϕ(α)的极小值点)有 ϕ ′ ( α ∗ ) = ∇ f ( x k + α ∗ d k ) T d k = 0 \phi^{\prime}\left(\alpha^*\right)=\nabla f\left(x^k+\alpha^* d^k\right)^{\mathrm{T}} d^k=0 ϕ(α)=f(xk+αdk)Tdk=0,永远满足Wolfe准则的第二个条件。因此,该准则在绝大多数情况下包含线搜索子问题的精确解,在实际应用中,参数 c 2 = 0.9 c_2=0.9 c2=0.9.

在这里插入图片描述


参考文献

机器人中的数值优化

最优化:建模、算法与理论/最优化计算方法

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

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

相关文章

入门力扣自学笔记215 C++ (题目编号:1971)

1971. 寻找图中是否存在路径 题目&#xff1a; 有一个具有 n 个顶点的 双向 图&#xff0c;其中每个顶点标记从 0 到 n - 1&#xff08;包含 0 和 n - 1&#xff09;。图中的边用一个二维整数数组 edges 表示&#xff0c;其中 edges[i] [ui, vi] 表示顶点 ui 和顶点 vi 之间…

安装 DbVisualizer pro 10.0.16,编辑器中文乱码的解决

DbVisualizer pro 10.0.16 双击安装&#xff0c; 选择下载 JRE运行后 选择 创建 桌面快捷方式 安装成功后 ping 报错无法连接到mysql &#xff0c; 驱动 所致 官方下载最新驱动 MySQL :: Download MySQL Connector/J (Archived Versions)https://downloads.mysql.com/archi…

springcloudAlibaba之seata的使用

1.seata的基础角色&#xff1a; TC(Transaction Coordainator):事务协调者&#xff0c;它维护全局和分支事务的状态&#xff0c;驱动全局事务提交和回滚 TM(Transaction Manager):事务管理器&#xff0c;它定义了全局事务的范围&#xff0c;主要包括开始全局事务、提交全局事务…

采用多层人工神经网络的能源消耗的时间序列预测(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 该项目为能源消耗的时间序列预测&#xff0c;在Matlab中实现。该预测采用多层人工神经网络&#xff0c;基于Kaggle训练集预测未…

【Python机器学习】梯度下降法的讲解和求解方程、线性回归实战(Tensorflow、MindSpore平台 附源码)

需要全部源码请点赞关注收藏后评论区留言私信~~~ 基本思想 迭代关系式是迭代法应用时的关键问题&#xff0c;而梯度下降&#xff08;Gradient Descent&#xff09;法正是用梯度来建立迭代关系式的迭代法。 机器学习模型的求解一般可以表示为&#xff1a; 其中&#xff0c;f(x)…

LSTM返向传播代码实现——LSTM从零实现系列(4)

一、前言 这个LSTM系列是在学习时间序列预测过程中的一些学习笔记&#xff0c;包含理论分析和源码实现两部分。本质属于进阶内容&#xff0c;因此神经网络的基础内容不做过多讲解&#xff0c;想学习基础&#xff0c;可看之前的神经网络入门系列文章&#xff1a; https://blog.…

IntelliJ IDEA建立SSM论文基本增删改查管理系统

IntelliJ IDEA建立SSM论文基本增删改查管理系统 1、启动IntelliJ IDEA程序 2、点击File----->New ------>Project建立项目 3、在弹出的对话框中&#xff0c;左边点击”maven”建立maven项目&#xff0c;右边的选择框不要选择&#xff0c;选择maven-archetype-webapp不能…

GAN2 ~

这也是第二季了 近年来&#xff0c;基于生成对抗式网络&#xff08;Generative Adversarial Network, GAN&#xff09;的图片生成研究工作取得了显著的进展。除了能够生成高分辨率、逼真的图片之外&#xff0c;许多创新应用也应运而生&#xff0c;诸如图片个性化编辑、图片动画…

C++ STL算法(一)利用STL算法解决很常见的一些子问题

文章目录next_permutationlower_bound 与 upper_boundpartial_sumsort 与 uniquenext_permutation cplusplus&#xff1a; next_permutation 作用&#xff1a;得到所有的全排列 例题&#xff1a; P1706 全排列问题 void test1() {int n;cin >> n;int* arr new int[n…

Oracle基础版

这是上上周的事情&#xff0c;我们甲方强烈要求使用oracle数据库&#xff0c;也就上学的时候玩过Oracle也忘得差不多了&#xff0c;所以一直不想弄&#xff0c;我们开会产品说要提测了&#xff0c;我还没弄&#xff0c;这不得哐哐开始干活&#xff0c;过程吧还算顺利&#xff0…

Java学习之第八章练习题-1

目录 第一题 题目 我的代码 Person类 错误 正确写法 输出结果 附加要求 代码 结果 第二题 题目 答案 第三题 题目 代码 总结不足 创建对象并运行 第四题 题目 运行结果​编辑 第五题 题目 第六题 题目 第一题 题目 我的代码 Person类 package com.hspedu…

DBCO-NHS 1353016-71-3,二苯基环辛炔-活性酯 可用于以高特异性和反应性标记叠氮化物修饰的生物分子

名称 DBCO-NHS ester 中文名称 二苯基环辛炔-活性酯 英文名称 DBCO-NHS NHS-DBCO 分子量 402.40 CAS 1353016-71-3 溶剂 溶于DMSO, DMF, DCM, THF, Chloroform 存储条件 -20冷冻保存 保存时间 一年 结构式 DBCO&#xff08;二苯并环辛炔&#xff09;是一种环炔烃&…

怎么将视频转为音频mp3格式?这些转换方法一分钟就能学会

随着现在娱乐方式的多样化&#xff0c;我们可以在闲暇时间做一些令人放松的事情。对于我来说&#xff0c;就很喜欢一边听歌一边发呆。我之前喜欢的一位歌手&#xff0c;他的翻唱歌曲以及原创音乐都得到了网友很高的评价&#xff0c;但是有些歌曲在平台上没有音源&#xff0c;我…

【内网安全-CS】Cobalt Strike启动运行上线方法

目录 一、启动运行 1、第一步&#xff1a;进入cs目录 2、第二步&#xff1a;查看本机ip 3、第三步&#xff1a;启动"团队服务器" 4、第四步&#xff1a;客户端连接 二、上线方法 1、第一步&#xff1a;生成监听器 2、第二步&#xff1a;生成木马 3、第三步&…

如何将智能设备关联至云开发中的项目?

将应用中已经连接的设备关联至云项目后&#xff0c;就可以在 涂鸦 IoT 开发平台 通过云开发主动管理和控制对应的设备。云开发提供多种应用中的设备关联方式&#xff1a; 关联自有 App 账号关联自有小程序关联涂鸦 App 账号关联 SaaS 方式一&#xff1a;关联自有 App 大家可以…

深度学习入门(六十)循环神经网络——门控循环单元GRU

深度学习入门&#xff08;六十&#xff09;循环神经网络——门控循环单元GRU前言循环神经网络——门控循环单元GRU课件关注一个序列门候选隐状态隐状态总结教材1 门控隐状态1.1 重置门和更新门1.2 候选隐状态1.4 隐状态2 从零开始实现2.1 初始化模型参数2.2 定义模型2.3 训练与…

前端本地存储数据库 IndexedDB 存储文件

介绍 IndexedDB 是一种底层 API&#xff0c;用于在客户端存储大量的结构化数据。目前各浏览器都已支持&#xff0c;兼容性很好。 特点 IndexedDB 是一个基于 JavaScript 的面向对象数据库&#xff0c;IndexedDB 允许您存储和检索用键索引的对象&#xff1b;可以存储结构化克隆…

MySQL8.0基础篇

文章目录一、MySQL概述1、数据库概述1.1 数据库作用1.2 数据库的相关概念2、MySQL概述2.1 概述2.2 RDBMS与非RDBMS3、MySQL环境安装3.1 MySQL的下载、安装、配置(win)3.2 MySQL登录3.3 MySQL演示使用3.4 MySQL目录结构与源码二、SQL查询1、SQL详情1.1 SQL分类1.2 SQL语言的规则…

Docker和docker-compose中部署nginx-rtmp实现流媒体服务与oob和ffmpeg推流测试

场景 Windows上搭建Nginx RTMP服务器并使用FFmpeg实现本地视频推流&#xff1a; Windows上搭建Nginx RTMP服务器并使用FFmpeg实现本地视频推流_霸道流氓气质的博客-CSDN博客_nginx-rtmp-win64 上面讲的是在windows中搭建nginx-rtmp&#xff0c;如果实在centos中使用docker或…

使用Git拉取和推送到仓库

使用Git拉取和推送到仓库 0、前置工作 首先安装和配置git &#xff0c;参考&#xff1a; git安装教程_嘴巴嘟嘟的博客-CSDN博客_全局安装gitGit上传文件代码到GitHub&#xff08;超详细&#xff09;_蓝布棉的博客-CSDN博客_git上传文件到github仓库 没有仓库的情况 创建仓…