机器人中的数值优化(二)—— 凸函数的性质

news2024/9/24 9:22:02

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



   三、凸函数的性质

   (1)凸函数满足Jensen不等式,如下所示:

   f ( θ x + ( 1 − θ ) y ) ≤ θ f ( x ) + ( 1 − θ ) f ( y ) \begin{aligned}f(\theta x+(1-\theta)y)\leq\theta f(x)+(1-\theta)f(y)\end{aligned} f(θx+(1θ)y)θf(x)+(1θ)f(y)


   此外,若 f ( θ x + ( 1 − θ ) y ) \begin{aligned}f(\text{}\theta x+(1-\theta)y)\\ \end{aligned} f(θx+(1θ)y)均小于 θ f ( x ) + ( 1 − θ ) f ( y ) \begin{aligned}\theta f(x)+(1-\theta)f(y)\end{aligned} θf(x)+(1θ)f(y),则称为严格凸函数,若在某些位置处取等号,则称为一般凸函数,,若将Jensen不等式中的小于号换成大于号,则为凹函数,同样分严格凹函数和一般凹函数,如下图所示:$$$$


   (2)可借助上方图来判断是否为凸函数

   上方图即函数上方的区域,若函数中任意两点连线均位于其上方图内,则该函数为凸函数,否则为凹函数,如下图所示:


   (3)凸函数具有凸子水平集

   如下面左图所示的函数f(x),取水平线y=α,f(x)<=α部分对应的x集合,称为该凸函数的子水平集,凸函数的子水平集也是凸的,下面右图给出了一个二维的例子,其子水平集是图中橙色区域所示的位置。


   值得注意的是,非凸函数的子水平集也可能是凸的,下图中左图的函数是非凸的拟凸函数,而其子水平集是凸的


   (4)任意多个凸函数的和或者加权相加依然是凸函数 ,多个拟凸函数的和不一定是拟凸函数。所有的的范数,如1范数、2范数、无穷范数等都是凸函数(因为范数必然满足三角不等式,则Jensen不等式成立,必为凸函数)


   (5)凸函数的解集也是凸的



   (6)凸函数经过仿射变换后依然是凸函数

   仿射变换就是把x乘以一个矩阵A,再加上一个向量b,如下所示,凸函数经过仿射变换后依然是凸函数(可通过满足Jensen不等式来证明),凸函数经过仿射变换后其上方图也是凸的。

   f ( x ) → f ( A x + b ) \begin{align*}f(x)&\quad\text{→}\quad f(Ax+b)\end{align*} f(x)f(Ax+b)




   (7)凸函数具有逐点最大保持凸性

   若定义g(x)为几个凸函数中的最大值,则g(x)也是凸的

   g ( x ) = max ⁡ i f i ( x ) g(x)=\max\limits_i f_i(x) g(x)=imaxfi(x)

   一些运算可以用max函数来表示,如绝对值、无穷范数、最大特征值等,如下所示,其也是凸函数。


   以下四个函数均为凸函数:



   (8)一个可微的凸函数一定位于其任意一点的线性近似的上方


   (9)凸函数梯度等于0的点,是局部最小值,同时也是全局最小值


   (10)若一个光滑函数的Hessian矩阵是半正定的,即 ∇ 2 f ( x ) \begin{aligned}\nabla^2f(x)\end{aligned} 2f(x)>=0,则该函数是凸函数。此外,对于一个非凸光滑函数而言,在其局部极小值处的Hessian矩阵也是半正定的。

   f ( x ) = x T Q x > = 0 f(x)=x^{\text{T}}Qx>=0 f(x)=xTQx>=0,仅在x等于0处取等号,则其为严格凸函数,仅有一个最小值,若在x不等于0处也可以取等号,则其为一般凸函数,存在多个最小值,如下图所示:


   (11)强凸性

   强凸性代表着一个函数凸的程度,或者说强度,若凸函数满足以下表达式,则该函数具有强凸性,其中m大于0

   f ( y ) ≥ f ( x ) + ( y − x ) T ∇ f ( x ) + m 2 ∥ y − x ∥ 2 \begin{aligned}f(y)\geq f(x)+(y-x)^T\nabla f(x)+\frac{m}{2}\|y-x\|^2\end{aligned} f(y)f(x)+(yx)Tf(x)+2myx2

   由上述的性质(8)可知, f ( y ) ≥ f ( x ) + ( y − x ) T ∇ f ( x ) \begin{aligned}f(y)\geq f(x)+(y-x)^T\nabla f(x)\end{aligned} f(y)f(x)+(yx)Tf(x)对于任意一个凸函数必然成立,强凸性对凸函数提出了更高的要求,即在线性近似的基础上,又叠加了一个二次函数 m 2 ∥ y − x ∥ 2 \dfrac{m}{2}\left\|y-x\right\|^2 2myx2,即若某个凸函数位于下图中的绿色曲线上方,则可以认为该凸函数具备强凸性。

   进一步,若该函数的Hessian存在时,则下式成立,其中 λ min \lambda_{\text{min}} λmin代表最小特征值

   可以这样理解,若一个Hessian存在的凸函数,它的Hessian矩阵是严格正定的,并且它的最小奇异值也是正的,则这个函数就是一个强凸的函数。


   (12)Lipschitz常数

   Lipschitz常数M满足下式,直观上可以理解为任意两点的梯度的差值不会比它们距离的M倍更大

   ∥ ∇ f ( x ) − ∇ f ( y ) ∥ ≤ M ∥ y − x ∥ \|\nabla f(x)-\nabla f(y)\|\leq M\|y-x\| ∥∇f(x)f(y)Myx

   上式成立,则可进一步得到下式:

   f ( y ) ≤ f ( x ) + ( y − x ) T ∇ f ( x ) + M 2 ∥ y − x ∥ 2 f(y)\leq f(x)+(y-x)^T\nabla f(x)+\dfrac M2\|y-x\|^2 f(y)f(x)+(yx)Tf(x)+2Myx2

   在性质(11)中,若凸函数具有强凸性,则其必然位于强凸性曲线的上面,即其存在下届,若该函数的Lipschitz常数也存在,则又找到了一个上界,此时,该凸函数位于这两条曲线的之间,这样就可以把一个函数凸的程度刻画出来。

   进一步,若x是局部极小值,则 ∇ f ( x ) \nabla f(x) f(x)=0,此时,这两个不等式变为下式:,其中m和M可以用来判别一个函数的条件数

   f ( y ) − f ( x ⋆ ) ≥ m 2 ∥ y − x ⋆ ∥ 2 f ( y ) − f ( x ⋆ ) ≤ M 2 ∥ y − x ⋆ ∥ 2 f(y)-f(x^{\star})\geq\dfrac{m}{2}\left\|y-x^{\star}\right\|^2\quad\quad f(y)-f(x^{\star})\leq\dfrac{M}{2}\left\|y-x^{\star}\right\|^2 f(y)f(x)2myx2f(y)f(x)2Myx2


   (13)凸函数的条件数

   对光滑函数而言,若它的Hessian矩阵存在,则对其进行奇异值分解(SVD),最大得奇异值除以最小的奇异值就是条件数;对于可导,但是不一定具有Hessian矩阵到的凸函数,M/m即为条件数;对于一般的不可微的凸函数,在局部极小值中获取等高线,等高线构成图形(近似椭圆或椭球)的长轴/短轴,即为条件数


   条件数决定了我们在优化算法里面是否要利用函数的高阶信息,有些算法对于条件数很小时,收敛很快,但是条件数很大时,不能收敛的很快,此时需要利用函数的曲率信息来更快的收敛到极小值


   (14)次微分(次梯度)

   为分析不可微的凸函数的收敛性和高阶信息引入次微分,次微分即在给定凸函数上任意取一点,寻找它的包络线,若在该点处,可微,包络线可取该点的切线,若在该点处连续但不可微,它的包络线可能有多个,可以取左导数形成的切线,也可以取右导数形成的切线,或者位于这两条切线之间的任意一条切线也可以。

   次微分(次梯度)就是包络的超平面,或者切线所构成的切平面所构成的斜率的集合。另外一种,我们可以定义一个函数的次梯度为方向导数的凸包,例如,凸函数在某点处不可导,左导数是g1,右导数是g2,则由g1和g2构成的凸包θ*g1+(1-θ)*g2称为函数在这个点处的次梯度。

   函数的局部极小值处梯度为0,对于梯度不存在的点,判定一个点是否是最优的就是判断0是否属于这个点处次梯度的集合,如下图所示的绝对值函数在0点处微分不存在,其左导数是-1,右导数是1,则θ*-1+(1-θ)*1=1-2θ,其中θ属于0 ~ 1,则1-2θ的取值范围为-1 ~ 1,包含0,即绝对值函数在0这个点处的次梯度包含0元素,则0这个点是一个局部极小点,所以次微分的作用是用来判断一个点是否是不可微的凸函数一个极小值。


   下图中第一个函数是凸的但不光滑的函数

   下面的两个图分别对应上面两个图的俯视图,彩色线段是等高线,黑色箭头是沿着等高线的切线方向,在①处次微分是图中所绘制的三个红色向量的线性组合,包含0向量,因此,①处的点是一个局部极小点,在②处次微分是图中所绘制的两个红色向量的线性组合,不包含0向量,因此②处不是局部极小值点,同理可得,③处是局部极小值点,④处不是局部极小值点。

   一般来说,如果一个函数是光滑的,沿着梯度的反方向走可以让函数值下降,但是对于一个非光滑的函数而言,并不是这样,沿着次微分(次梯度)的反方向走,不一定使得函数值下降,即负次微分方向不一定是下降方向 。

   所以非光滑的函数对优化问题的求解带来一些困难,如果,我们知道我们求解问题的非光滑性来源于那些地方,大多数来源于拟合、max等,如果一个函数是分段光滑的,我们可以知道不光滑处位于分段的交界处。

   对于非光滑的函数而言,最速下降的方向并不一定是梯度的反方向,因为,有时会不可微,不存在梯度,此时,最速下降方向一定是次梯度集合里面模长最小的那个向量的反方向。


   (15)梯度单调性

   对于凸函数而言,无论是可微。还是不可微,它们都有一种梯度单调性或者说,次梯度单调性的性质。任何凸函数的(次)梯度都是单调的。

   对于可微的凸函数,梯度单调性表现为,任意两点y与x之差,以及它们在该处梯度之差的内积是大于等于0的,如下式所示:

   ⟨ y − x , ∇ f ( y ) − ∇ f ( x ) ⟩ ≥ 0 \langle y-x,\nabla f(y)-\nabla f(x)\rangle\geq0 yx,f(y)f(x)⟩0

   同理,对于不可微的凸函数,则把上式中的梯度换成次梯度,如下式所示:

   ⟨ y − x , g y − g x ⟩ ≥ 0 , g x ∈ ∂ f ( x ) , g y ∈ ∂ f ( y ) \langle y-x,g_y-g_x\rangle\geq0,g_x\in\partial f(x),g_y\in\partial f(y) yx,gygx0,gxf(x),gyf(y)


   参考资料:

   1、机器人中的数值优化


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

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

相关文章

CentOS7(二)Go、Java、Python、Node开发环境配置

文章目录 Go环境配置Java环境配置Python环境配置Node 环境配置 CentOS7&#xff08;一&#xff09;安装和基础配置 CentOS7&#xff08;二&#xff09;Go、Java、Python、Node开发环境配置 根据前文&#xff0c;我们将所有的自定义环境变量&#xff0c;都收拢在了 /root/.bash_…

如何选一款适合企业的进销存软件?这款软件推荐给你

我们先来聊一聊&#xff0c;什么是进销存&#xff1f; 进销存是指企业管理过程中采购&#xff08;进&#xff09;—>入库&#xff08;存&#xff09;—>销售&#xff08;销&#xff09;的动态管理过程。 再来详细拆解下—— 进&#xff1a;指询价、采购到入库与付款的…

Jmeter实验笔记

Jmeter实验 一、基础操作 启动Jmeter 点击bin目录下的&#xff0c;jmeter进行启动 修改界面语言为中文 发起一个最基本的请求 GET请求 线程组&#xff0c;Http请求&#xff0c;察看结果树 提示:参数、消息体数据这两个按钮是互斥的、只要其中一个有数据&#xff…

【配电网重构】【SOE】随机配电网重构中的开关开换方法研究(Matlab代码实现)

&#x1f4a5; &#x1f4a5; &#x1f49e; &#x1f49e; 欢迎来到本博客 ❤️ ❤️ &#x1f4a5; &#x1f4a5; &#x1f3c6; 博主优势&#xff1a; &#x1f31e; &#x1f31e; &#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 …

数组index相同的数组进行合并

index相等的数据进行合并 let formJson [{remind: "请输入电话",sort: 0,title: "电话",type: 1,uuid: "15e343c1-060d-TL51f-8ace-23a968e9e2b9"},{remind: "请输入姓名",sort: 0,title: "姓名",type: 1,uuid: "15e…

文件,IO流,FileInputStream,FileOutputStream,FileReader和FileWriter是字符流

文件就是保存数据的地方文件流&#xff1a;文件在程序中是以流的形式来操作的 java程序&#xff08;内存&#xff09;<-----输入流-----文件&#xff08;磁盘&#xff0c;光盘等&#xff09;java程序&#xff08;内存&#xff09;------输出流----->文件&#xff08;磁盘…

用栈的思想实现将一个十进制数字转换为八进制--数据结构

魔王的介绍&#xff1a;&#x1f636;‍&#x1f32b;️一名双非本科大一小白。魔王的目标&#xff1a;&#x1f92f;努力赶上周围卷王的脚步。魔王的主页&#xff1a;&#x1f525;&#x1f525;&#x1f525;大魔王.&#x1f525;&#x1f525;&#x1f525; ❤️‍&#x1f…

单点定位2米精度?这张卡差点干掉了RTK(内有轨迹对比图)

单点定位2米精度&#xff1f;现在的定位芯片卷成这样了&#xff1f;上面两张卡一款是主打高性能融合定位的星斗3&#xff0c;另一款是主打高性价比高精度低功耗的DNA-1&#xff0c;今天小编给两张定位卡做评测。 话不多说先上轨迹图&#xff1a; 这张图是我们拿着星斗3号RTK定…

小程序封装拖拽菜单组件(uniapp拖拽排序,自定义菜单)

效果展示 思路 使用movable-area作为可移动区域,并在内部循环渲染列表项view,绑定touch事件。在mounted生命周期函数内获取区域movable-area的dom信息,记录列表项的坐标信息。在methods中定义了列表项的touchstart、touchmove和touchend事件的方法,用于实现列表项的拖拽移动和…

偶数社区投稿丨OushuDB学习实践系列(一):开一家超市

大家好&#xff0c;我是镜镜呀&#xff0c;也是一名技术开发人员。本系列内容&#xff0c;也将由技术点出发&#xff0c;从数据库的使用、实践开始&#xff0c;逐步增加对整体的认知&#xff0c;由点及面&#xff0c;真正理解 OushuDB、数据湖仓一体在技术上的变革&#xff0c;…

@Configuration 和 @Component 注解的区别

一句话概括就是 Configuration 中所有带 Bean 注解的方法都会被动态代理&#xff0c;因此调用该方法返回的都是同一个实例。 理解&#xff1a;调用Configuration类中的Bean注解的方法&#xff0c;返回的是同一个示例&#xff1b; 而调用Component类中的Bean注解的方法&#x…

【社区图书馆】携程架构与实践图书

发这篇博文主要是想学习一下携程的架构。携程出了一本《携程架构实践》&#xff0c;无奈现在还没开源。看京东价大概109元人民币。如果看到次博文的网友能发我一本《携程架构实践》pdf。不胜感谢。或者实体书籍也行。其实我不怎么需要实体书籍&#xff0c;因为技术的东西很快会…

使用 IDEA 远程 Debug 调试

背景 有时候我们需要进行远程的debug&#xff0c;本文研究如何进行远程debug&#xff0c;以及使用 IDEA 远程debug的过程中的细节。看完可以解决你的一些疑惑。 配置 远程debug的服务&#xff0c;以springboot微服务为例。首先&#xff0c;启动springboot需要加上特定的参数。…

小白下载以后打不开怎么解决

我们重装系统时&#xff0c;大家会遇到各种各样的问题&#xff0c;现在有一些想用小白一键重装系统工具来帮助自己完成系统重装时&#xff0c;却发现我们打不开这个工具&#xff0c;现在不知道其原因有哪些&#xff0c;那么大家今天就来告诉小伙伴们小白一键重装官网下载以后打…

计算机概述

计算机&#xff1a; 硬件&#xff1a; CPU&#xff08;Central Processing Unit&#xff0c;中央处理器&#xff09;靠大脑思考&#xff0c;电脑靠CPU来运算、控制。硬盘&#xff08;Hard Disk Drive&#xff09; 计算机最主要的存储设备&#xff0c;容量大&#xff0c;断电数…

创新,阿里首发微服务实施手册我粉了,原来微服务还可以这样玩

微服务 相信大家在网上会看到很多帖子把分布式跟微服务放在一起讨论。确实&#xff0c;微服务就是一种分布式架构的设计方法。但是&#xff0c;在微服务概念还没有出现之前&#xff0c;分布式这个概念并不能引起人们的强烈关注&#xff0c;如果说自己擅长分布式架构设计&#…

TCP,TCP 连接建立,TCP 连接断开,Socket 编程

目录 TCP基本认识 TCP 头格式有哪些&#xff1f; 为什么需要 TCP 协议&#xff1f; TCP 工作在哪一层&#xff1f; 什么是 TCP &#xff1f; 什么是 TCP 连接&#xff1f; #如何唯一确定一个 TCP 连接呢&#xff1f; UDP 和 TCP 有什么区别呢&#xff1f;分别的应用场景是…

【教学类-34-02】拼图(英文大写字母)3*2格子(中班主题《个别化拼图》偏艺术-美术)

作品展示&#xff1a; 背景需求 3*4块运动拼图对幼儿有点难&#xff08;不熟悉图案内容、拼图数量多&#xff09; 1、选择幼儿相对熟悉的的字母&#xff08;26个&#xff0c;基本满足28人&#xff09; 2、拼图数量&#xff1a;2*36块 3、做的小一点&#xff0c;一张2份&am…

【软件测试面试】全网最全,自动化测试面试题总结大全(付答案)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 面试题1&#xff…

企企通项目入选《2023爱分析·供应链和采购数字化最佳实践案例》

近日&#xff0c;“2023爱分析供应链和采购数字化最佳实践案例”评选活动落下帷幕&#xff0c;主要围绕实践领先性、案例创新性、应用成熟度、价值创造四个维度对候选实践案例进行评选。企企通凭借自身丰富的采购供应链解决方案经验&#xff0c;以“迈金科技采购数字化管理平台…