机器人中的数值优化(八)——拟牛顿方法(上)

   本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,下半部分介绍带约束的优化,中间会穿插一些路径规划方面的应用实例



   十、拟牛顿方法

   1、拟牛顿方法介绍

   Newton方法的缺点是在每步迭代时需计算Hesse矩阵 ∇ 2 f ( x k ) \nabla^2 f(x_k) 2f(xk),为此要计算n(n + 1)/2个二阶偏导数;若该方法产生的迭代点不能充分接近极小点, ∇ 2 f ( x k ) \nabla^2 f(x_k) 2f(xk)的正定性不能保证。Newton方法的优点在于它具有二阶收敛的速度.这促使我们去考虑是否可以构造一种方法,它既不需要计算二阶偏导数,又具有较快的收敛速度。

在这里插入图片描述
   假设我们要构造一个矩阵M去近似Hessian矩阵,那么M应该满足什么条件?

   ①:它应该不需要计算所有元素的二阶导

   ②:可以不用显式的求解线性方程组,方程组应该有闭式解,以便很快的解出

   ③:它应该不需要是满秩的,所以它的存储应该是紧凑的

   ④:它必须保持下降方向,即它必须是正定的

   ⑤:它应该包含曲率信息(局部二次近似),即应该逼近Hessian矩阵

在这里插入图片描述


   从下图的推导可以看出,当近似矩阵M是正定的矩阵时,可以保证搜索方向与负梯度方向成锐角,即可保证搜索方向为下降方向。

在这里插入图片描述


   ☆☆☆注:在深蓝学院课程机器人中的数值优化中,用H表示Hessian矩阵,用M表示Hessian矩阵的近似,用B表示M的逆矩阵,而在数值最优化方法(高立 编著)这本书中,用B表示Hessian矩阵的近似,而用H表示B的逆矩阵,在下文的文字描述中采用数值最优化方法(高立 编著)这本书中的表示方法,下文中的图片大部分是基于深蓝学院课程机器人中的数值优化课程中的PPT进行修改补充后而形成的,采用该课程的表示方法


   假定当前迭代点为 x k + 1 x_{k+1} xk+1,若我们用已得到的 x k x_{k} xk x k + 1 x_{k+1} xk+1及其一阶导数信息 ∇ f ( x k ) \nabla f\left(x_{k}\right) f(xk) ∇ f ( x k + 1 ) \nabla f\left(x_{k+1}\right) f(xk+1),构造一个正定矩阵 B k + 1 B_{k+1} Bk+1作为 ∇ f 2 ( x k + 1 ) \nabla f^2\left(x_{k+1}\right) f2(xk+1)的近似,这样下降方向 d k + 1 d_{k+1} dk+1 由以下方程组给出

   B k + 1 d = − ∇ f ( x k + 1 ) {B}_{k+1}d=-\nabla f\left(x_{k+1}\right) Bk+1d=f(xk+1)

   然而这样做仍需求解一个线性方程组.进一步的改进为用相同的信息构造一个矩阵 H k + 1 H_{k+1} Hk+1作为 ∇ f 2 ( x k + 1 ) − 1 \nabla f^2\left(x_{k+1}\right)^{-1} f2(xk+1)1的近似,这样下降方向 d k + 1 d_{k+1} dk+1就可以由下式给出

   d = − H k + 1 ∇ f ( x k + 1 ) d=-H_{k+1}\nabla f\left(x_{k+1}\right) d=Hk+1f(xk+1)

   近似矩阵的构造应该是简单有效的,它应具有如下的条件:

   ①:只需 f ( x ) f(x) f(x)的一阶导数信息;

   ②: B k + 1 {B}_{k+1} Bk+1 ( H k + 1 ) (H_{k+1}) (Hk+1)正定,以保证方向的下降性;

   ③:方法具有较快的收敛速度。


   对梯度进行泰勒展开,去掉高阶小量,可得下式

   ∇ f ( x k + 1 ) − ∇ f ( x k ) ≈ ∇ 2 f ( x ) ∗ ( x k + 1 − x k ) \nabla f\left(x_{k+1}\right)-\nabla f\left(x_{k}\right) ≈ \nabla^2 f(x)*(x_{k+1}-x_k) f(xk+1)f(xk)2f(x)xk+1xk

   若进行以下定义:

   s k = x k + 1 − x k , y k = ∇ f ( x k + 1 ) − ∇ f ( x k ) , \begin{array}{c}s_k=x_{k+1}-x_k,\\ \\ y_k=\nabla f\left(x_{k+1}\right)-\nabla f\left(x_{k}\right),\end{array} sk=xk+1xk,yk=f(xk+1)f(xk),

   B k + 1 {B}_{k+1} Bk+1作为 ∇ f 2 ( x k + 1 ) \nabla f^2\left(x_{k+1}\right) f2(xk+1)的近似,应该满足以下方程:

   B k + 1 s k = y k B_{k+1}s_k=y_k Bk+1sk=yk

   该方程称为拟Newton方程或拟Newton条件。若记 H k + 1 = B k + 1 − 1 , H_{k+1}=B_{k+1}^{-1}, Hk+1=Bk+11, H k + 1 H_{k+1} Hk+1应该满足下式

   H k + 1 y k = s k . H_{k+1}y_k=s_k. Hk+1yk=sk.

   拟Newton方法是指由 B k + 1 d = − ∇ f ( x k + 1 ) {B}_{k+1}d=-\nabla f\left(x_{k+1}\right) Bk+1d=f(xk+1)式或者 d = − H k + 1 ∇ f ( x k + 1 ) d=-H_{k+1}\nabla f\left(x_{k+1}\right) d=Hk+1f(xk+1)式确定迭代方向d的最优化方法,其中的 B k + 1 {B}_{k+1} Bk+1需满足拟 Newton条件 B k + 1 s k = y k B_{k+1}s_k=y_k Bk+1sk=yk H k + 1 {H}_{k+1} Hk+1需满足拟Newton条件 H k + 1 y k = s k H_{k+1}y_k=s_k Hk+1yk=sk

   下面我们给出一般拟Newton方法的结构,其算法以矩阵 H k + 1 H_{k+1} Hk+1的迭代为例.


   在上述算法中,初始矩阵H通常取为单位矩阵,这样算法的第一步迭代的迭代方向取为负梯度方向.

   那么如何修正 H k {H}_{k} Hk H k + 1 {H}_{k+1} Hk+1呢?,即如何确定在下式中的 Δ H k \Delta H_k ΔHk呢?

   H k + 1 = H k + Δ H k H_{k+1}=H_k+\Delta H_k Hk+1=Hk+ΔHk

   Δ H k \Delta H_k ΔHk的取法是多种多样的,但它应具有简单、计算量小、有效的特点.下面介绍几种重要的修正 H k H_k Hk B k B_k Bk的公式.


   1、拟牛顿方法修正公式

   (1)对称秩1公式(SR1)

   对称秩1(Symmetric Rank 1,SR1)公式是由Broyden、Davidon等人独立提出的。

   H k + 1 S R 1 = H k + ( s k − H k y k ) ( s k − H k y k ) T ( s k − H k y k ) T y k , H_{k+1}^{\mathrm{SR1}}=H_k+\dfrac{(s_k-H_ky_k)(s_k-H_ky_k)^{\mathrm{T}}}{(s_k-H_ky_k)^{\mathrm{T}}y_k}, Hk+1SR1=Hk+(skHkyk)Tyk(skHkyk)(skHkyk)T,

   B k + 1 S R 1 = B k + ( y k − B k s k ) ( y k − B k s k ) T ( y k − B k s k ) T s k . B_{k+1}^{\mathrm{SR1}}=B_k+\dfrac{(y_k-B_k s_k)(y_k-B_k s_k)^{\mathrm{T}}}{(y_k-B_k s_k)^{\mathrm{T}}s_k}. Bk+1SR1=Bk+(ykBksk)Tsk(ykBksk)(ykBksk)T.


   (2)DFP公式

   DFP公式,或者说DFP方法,首先是由Davidon于1959年提出,后经Fletcher 和 Powell发展得到的。该方法是第一个被提出的拟 Newton方法,它为拟 Newton方法的建立与发展奠定了基础.

   H k + 1 D F P = H k + s k s k T s k T y k − H k y k y k T H k y k T H k y k . H_{k+1}^{\mathrm{DFP}}=H_k+\frac{s_k s_k^{\mathrm{T}}}{s_k^{\mathrm{T}}y_k}-\frac{H_ky_ky_k^{\mathrm{T}}H_k}{y_k^{\mathrm{T}}H_ky_k}. Hk+1DFP=Hk+skTykskskTykTHkykHkykykTHk.

   我们称采用DFP公式来修正矩阵的拟Newton方法为DFP方法。假定 H k H_k Hk H k + 1 H_{k+1} Hk+1都可逆,根据Shermann-Morrison-Woodbury 公式,由上式可以导出 B k + 1 B_{k+1} Bk+1的修正公式

   B k + 1 D F P = B k + ( 1 + s k T B k s k s k T y k ) y k y k T s k T y k − ( y k s k T B k + B k s k y k T s k T y k ) . B_{k+1}^{\mathrm{DFP}}=B_{k}+\left(1+\frac{s_{k}^{\mathrm{T}}B_{k}s_{k}}{s_{k}^{\mathrm{T}}y_{k}}\right)\frac{y_{k}y_{k}^{\mathrm{T}}}{s_{k}^{\mathrm{T}}y_{k}}-\left(\frac{y_{k}s_{k}^{\mathrm{T}}B_{k}+B_{k}s_{k}y_{k}^{\mathrm{T}}}{s_{k}^{\mathrm{T}}y_{k}}\right). Bk+1DFP=Bk+(1+skTykskTBksk)skTykykykT(skTykykskTBk+BkskykT).

   上式其实也是下面问题的解:

   min ⁡ ∥ W − T ( B − B k ) W − 1 ∥ F , s.t. B = B T , B s k = y k , \begin{array}{l}\min\|W^{-\mathrm T}(B-B_k)W^{-1}\|_{\mathrm F},\\ \text{s.t.}\quad B=B^{\mathrm T},B s_k=y_k,\end{array} minWT(BBk)W1F,s.t.B=BT,Bsk=yk,

   其中 W ∈ R n × n W ∈R^{n×n} WRn×n非奇异。 W T W = B W^TW=B WTW=B满足拟Newton条件 B s k = y k Bs_k=y_k Bsk=yk、这个问题的目的是在所有对称、满足拟Newton条件的矩阵中,寻找在加权F范数意义下与 B k B_k Bk的差最小的矩阵.如果在这个问题中改变目标函数的矩阵范数,就得到其他的拟Newton修正公式



   参考资料:

   1、数值最优化方法(高立 编著)

   2、机器人中的数值优化


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

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

相关文章

Google colab 基于BERTopic 特朗普推文的动态主题建模

目录 动态主题模型 下载 BERTopic 数据处理 基本主题模型 随时间推移的主题 注意参数 docs timestamps global_tuning evolution_tuning nr_bins 随时间推移可视化主题 我们将使用动态主题建模和BERTopic来可视化特朗普推文中的主题如何随着时间的推移而演变。这些…

elementUI可拖拉宽度抽屉

1&#xff0c;需求&#xff1a; 在elementUI的抽屉基础上&#xff0c;添加可拖动侧边栏宽度的功能&#xff0c;实现效果如下&#xff1a; 2&#xff0c;在原组件上添加自定义命令 <el-drawer v-drawerDrag"left" :visible.sync"drawerVisible" direc…

Linux图形栈入门概念

Mesa在图形栈中的位置 游戏引擎&#xff1a; 游戏引擎指的是一种软件框架&#xff0c;通过编程和各种工具&#xff0c;帮助开发者设计、构建和运行视频游戏。它相当于一个虚拟的世界创造工具&#xff0c;提供了各种功能模块和资源&#xff0c;如渲染引擎、物理引擎(碰撞检测、重…

【PowerQuery】PowerQuery学习路径

PowerQuery这么好,怎么去学习呢?相信很多初读本书的朋友迫切的希望了解整个PowerQuery全景知识和它提供的相应的功能。但是对于PowerQuery来说,一开始就会进行自定义函数的构建当然也是不可能的,这里有相应的学习路径来进行由浅入深的学习,帮助读者更好的理解PowerQuery的…

【PowerQuery】PowerQuery导入JSON数据

Json数据是目前使用的最为频繁和广泛的一种数据交换格式,JSON的全称为JavaScript Object Notation。Json 主要用于在互联网的消息的数据交换信息传递,他的格式与XML有什么区别呢?为什么不用XML,用Json有啥好处呢?我们接下来讨论下Json相比XML的优势: XML传递的数据过多服…

4.5V 至 23V、TAS2781RYYR音频放大器、QPF4617TR13 Wi-Fi® 6E非线性前端模块和DRV2667RGPR全集成压电式触觉驱动器

一、TAS2781RYYR&#xff0c;具有集成式音频处理和扬声器保护的 25W、4.5V 至 23V 数字输入 D 类放大器 介绍&#xff1a;TAS2781 是一款单声道、数字输入 D 类音频放大器&#xff0c;专为将高峰值功率高效率驱动到扬声器进行了优化。D类放大器在 18V 电源电压下可向 4Ω 负载…

idea查找maven所有依赖

文章目录 idea自带的依赖结构图idea安装maven helper插件 idea自带的依赖结构图 缺点是只有依赖&#xff0c;没有版本 idea安装maven helper插件 settings–>plugins–>搜索maven helper并安装 安装后打开pom.xml文件会有依赖解析 勾选conflict就是有冲突的依赖选中…

YOLOv5算法改进(10)— 替换主干网络之GhostNet

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。GhostNet是一种针对计算机视觉任务的深度神经网络架构&#xff0c;它于2020年由中国科学院大学的研究人员提出。GhostNet的设计目标是在保持高精度的同时&#xff0c;减少模型的计算和存储成本。GhostNet通过引入Ghost模块…

Ubuntu22.04上下左右全方位美化教程

Ubuntu22.04上下左右全方位美化教程 以Plank替代Dock甲板安装使用优化除了Plank之外还有Ubuntu-Launchpad可以替代Dock Tweak-Tool配置主题Theme的配置下载解压配置 Icon文件夹显示风格的配置Cursors鼠标风格优化Background背景、Lock锁屏以及登陆页面的更换过渡动画配置安装 E…

大数据的关键技术之——大数据采集

大数据的关键技术之——大数据采集 本文目录&#xff1a; 一、写在前面的话 二、大数据采集概念 三、大数据采集步骤 3.1、大数据采集步骤&#xff08;总体角度&#xff09; 3.2、大数据采集步骤&#xff08;数据集角度&#xff09; 3.3、大数据采集步骤&#xff08;数据…

TCP之三次握手四次挥手

在前面的文章中我们了解到http是基于TCP/IP协议的&#xff0c;这篇文章我们来了解一下TCP/IP。 一、TCP与UDP 1、UDP 基于非连接。类似于写信&#xff0c;不能保证对方能不能接收到&#xff0c;接收到的内容是否完整&#xff0c;顺序是否正确。 优缺点&#xff1a;性能损耗小…

优化爬虫效率:利用HTTP代理进行并发请求

网络爬虫作为一种自动化数据采集工具&#xff0c;广泛应用于数据挖掘、信息监测等领域。然而&#xff0c;随着互联网的发展和网站的增多&#xff0c;单个爬虫往往无法满足大规模数据采集的需求。为了提高爬虫的效率和性能&#xff0c;我们需要寻找优化方法。本文将介绍一种利用…

网络安全行业岗位缺口有多大?看看美国有多少岗位空缺

网络安全行业岗位缺口一直很大&#xff0c;在各类统计中其实并不能完全客观的反应这个缺口&#xff0c;不过都可以作为一个参考。同时&#xff0c;网络安全行业岗位的人员能力参差不齐&#xff0c;不仅仅在数量上有所欠缺&#xff0c;同时从质量上更加加剧了对人才的需求。我们…

深入探讨梯度下降:优化机器学习的关键步骤(一)

文章目录 &#x1f340;引言&#x1f340;什么是梯度下降&#xff1f;&#x1f340;损失函数&#x1f340;梯度(gradient)&#x1f340;梯度下降的工作原理&#x1f340;梯度下降的变种&#x1f340;随机梯度下降&#xff08;SGD&#xff09;&#x1f340;批量梯度下降&#xf…

UML基础

统一建模语言&#xff08;UML是 Unified Modeling Language的缩写, 是用来对软件系统进行可视化建模的一种语言。UML为面向对象开发系统的产品 进行说明、可视化、和编制文档的一种标准语言。 共有9种图 UML中的图其实不止九种 (相同的图还可能会有不同的名称), 这里的九种图是…

SSM(Spring-Mybatis-SpringMVC)

文章目录 1. 介绍1.1 概念介绍 2 SSM整合框架3. SSM功能模块开发4 测试4.1 业务层接口测试4.2 表现层接口测试 5.优化 -表现层数据封装6.异常处理 1. 介绍 1.1 概念介绍 SSM项目是指基于SpringSpringMVCMyBatis框架搭建的Java Web项目。 Spring是负责管理和组织项目的IOC容器和…

selenium 动态爬取页面使用教程以及使用案例

Selenium 介绍 概述 Selenium是一款功能强大的自动化Web浏览器交互工具。它可以模拟真实用户在网页上的操作&#xff0c;例如点击、滚动、输入等等。Selenium可以爬取其他库难以爬取的网站&#xff0c;特别是那些需要登录或使用JavaScript的网站。Selenium可以自动地从Web页面…

[羊城杯 2020] easyphp

打开题目&#xff0c;源代码 <?php$files scandir(./); foreach($files as $file) {if(is_file($file)){if ($file ! "index.php") {unlink($file);}}}if(!isset($_GET[content]) || !isset($_GET[filename])) {highlight_file(__FILE__);die();}$content $_GE…

【广州华锐互动】AR技术在配电系统运维中的应用

随着科技的不断发展&#xff0c;AR(增强现实)技术逐渐走进了我们的生活。在电力行业&#xff0c;AR技术的应用也为巡检工作带来了许多新突破&#xff0c;提高了巡检效率和安全性。本文将从以下几个方面探讨AR配电系统运维系统的新突破。 首先&#xff0c;AR技术可以实现虚拟巡检…

opencv鼠标事件函数setMouseCallback()详解

文章目录 opencv鼠标事件函数setMouseCallback()详解1、鼠标事件函数&#xff1a;&#xff08;1&#xff09;鼠标事件函数原型&#xff1a;setMouseCallback()&#xff0c;此函数会在调用之后不断查询回调函数onMouse()&#xff0c;直到窗口销毁&#xff08;2&#xff09;回调函…