机器人中的数值优化之最速下降法
本文ppt来自深蓝学院《机器人中的数值优化》
目录
1 迭代方向
2 步长的选择
3 Armijo condition
4 非精确线搜索的优势
1 迭代方向
梯度方向是函数上升最快的方向,而负梯度方向则是函数下降最快的方向,因此最速下降法就是以负梯度方向为迭代方向,当函数非光滑时,迭代点不存在梯度时,以次梯度集合内的取最小模长的负方向为迭代方向。对于次梯度的介绍,读者请参考(1条消息) 机器人中的数值优化之凸函数_无意2121的博客-CSDN博客
2 步长的选择
前面我们讨论了迭代方向如何选择,现在讨论在迭代方向上走多少步长合适,这里列出了四种方法
- 恒定步长
- 不断衰减的步长
- 精确线搜索
- 非精确线搜索
如果采用恒定步长迭代,将导致不停的震荡,始终无法收敛
如果采用衰减步长迭代,可以保证收敛,但是随着步长越来越短,收敛越来越慢
因此我们需要一个兼顾收敛性与收敛速度的步长调整方法
精确线搜索:相当于以步长为自变量又进行一次求最优解的过程,这能保证每次迭代得到的优化最彻底,但实际上这导致我们又需要去求解子优化问题,本来就是在求解优化问题,又化归成一系列子优化问题,只不过变成一维优化问题,但是求解时间还是有较大损耗
非精确线搜索:我们不希望再求解子优化问题,也就是只希望每次得到一个接近最优解的步长,即满足一些条件,接下来将详细介绍这个条件(Armijo condition)
3 Armijo condition
将迭代步长看作自变量画出图,然后对当前迭代点进行一阶近似,然后对此直线的斜率进行松弛也就是乘上一个0到1的系数,得到另一条直线,在这条直线下方的区域都是下降比较充分的
而这里也采用了一种二分的方法,当二分到满足Armijo condition时,就可以停止二分,取此步长
迭代的终止条件是梯度足够小,或者次梯度包含0
4 非精确线搜索的优势
这两张图表明非精确线搜索在工程上由于精确线搜索,一般来说迭代时间与迭代次数和每次迭代需要的时间乘积成正比,虽然精确线搜索iteration很小,但每次iteration的time cost很大,就使得总耗时大,非精确线搜索与之相反,iteration虽然多,但每次iteration的time cost很小
这里我们还需要考虑条件数的问题,条件数很大将导致最速下降法每次迭代震荡很厉害,因此当条件数很大时,不适用最速下降法,对于条件数,不清楚的读者可以参考机器人中的数值优化之凸函数_无意2121的博客-CSDN博客
可见当条件数很大时,曲率信息我们不能忽略,下一节我们将介绍包含curvature info 的优化算法
机器人中的数值优化之最速下降法相关推荐
- 机器人中的数值优化|【二】最速下降法,可行牛顿法的python实现,以Rosenbrock function为例
机器人中的数值优化|[二]最优化方法:最速下降法,可行牛顿法的python实现,以Rosenbrock function为例 在上一节中提到了我们详细探讨了数值优化/最优化理论中的基本概念和性质,现在 ...
- 机器人中的数值优化之凸函数
本文ppt来自深蓝学院<机器人中的数值优化> 目录 1 凸函数的性质 2 凸函数的性质 1 凸函数的性质 凸函数最重要的性质就是Jensen's inequality,也就是琴生不等式. ...
- 机器人中的数值优化之基本概念
本文ppt来自深蓝学院<机器人中的数值优化> 目录 1 推荐书单 2 优化问题的基本范式 3 数值优化在机器人领域的应用 1 推荐书单 对于英语阅读有困难的同学可以看第一本书,对于最优化的 ...
- 机器人中的数值优化(三)—— 无约束最优化方法基础、线搜索准则
本系列文章主要是我在学习<数值优化>过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程<机器人中的数值优化>和高立编著的<数值最优化方法>等,本系列文 ...
- 机器人中的数值优化|【一】数值优化基础
数值优化基础 凸集 Convex Sets 凸集的定义 令X是线性空间.如果对于X的子集S中的所有x和y,并且在区间 [0,1]中的所有t,点 ( 1 − t ) x + t y (1-t)x + t ...
- el-select 多选取值_数值优化|笔记整理(3)——线搜索中的步长选取方法,线性共轭梯度法...
上一节笔记传送门: 学弱猹:数值优化|笔记整理(2)--线搜索:步长选取条件的收敛性zhuanlan.zhihu.com ------------------------------------ 大 ...
- 回溯法采用的搜索策略_数值优化|笔记整理(3)——线搜索中的步长选取方法,线性共轭梯度法...
上一节笔记传送门: 学弱猹:数值优化|笔记整理(2)--线搜索:步长选取条件的收敛性zhuanlan.zhihu.com ------------------------------------ 大 ...
- 机器视觉在服务机器人中的应用
本文从服务机器人对视觉技术的需求入手,围绕口罩识别.人体姿态估计.物体识别等机器视觉技术在不同类型服务机器人中的研究与应用实践进行深度讲解,最后就优必选机器视觉技术在机器人中的未来研究方向给出自己的思 ...
- 强化学习在机器人中的应用
强化学习是机器学习中的一个子领域,其中智能体通过与环境的交互,观测交互结果以及获得相应的回报.这种学习的方式是模拟人或动物的学习过程 我们人类,与我们所处的环境有一个直接的感官接触,我们可以通过执行动 ...
最新文章
- Windows 窗体启动和关闭的事件顺序
- 关于选择博客网站的一点看法
- Python排序算法(一)冒泡排序、选择排序、插入排序
- Web前端期末大作业--绿色自适应医疗健康医院网页设计(HTML+CSS+JavaScript+)实现
- 今天的捉蝴蝶真有趣的 格式工厂
- Smart-Mall新零售商城系统
- C#LeetCode刷题之#226-翻转二叉树(Invert Binary Tree)
- java 火星坐标转wgs84_js中火星坐标、百度坐标、WGS84坐标转换实现方法示例
- 汇编语言常见错误(转载)
- Linux 系统使用之 VMware Tools安装
- Scala 编程---类和对象
- JS中的拖动之—— ondragstart,ondrag,ondragend , ondragenter , ondragover , ondragleave, ondrop 的区别...
- GJB 质量保证大纲(模板)
- win10 计算机组策略,win10家庭版系统找不到组策略gpedit.msc的解决方法
- 移动前端图片压缩上传
- 服务器打印后台程序没有响应,Win10提示打印后台处理程序服务没有运行如何解决...
- 大航海时代: 流行5掠夺篇
- formality软件使用教程
- qt中使用qwt实现实时曲线显示
- 某地区现代男科医院营销策划方案