机器人中的数值优化之修正阻尼牛顿法

news2024/11/14 16:18:40

本文ppt来自深蓝学院《机器人中的数值优化》

目录

1 Newton's Method

2 Pratical Newton's Method


1 Newton's Method

当我们引入函数的二阶信息就考虑到了curvature info,这里先对函数进行泰勒展开,取二阶近似,对近似后的函数取最优解,通过梯度等于0得到一个等式

当函数是二次型时,近似没有起到效果,迭代的过程就是求解原函数最优解的过程,因此当然一次迭代就能得到最优解

这是利用牛顿法的一次迭代举例 

将牛顿法与最速下降法相比,牛顿法需要的迭代次数很少就能直达最优解,但是由于需要求解hessian矩阵的逆,导致,每一步的迭代时间有所增加 

但我们还需要注意牛顿法的适用条件是hessian矩阵正定,否则会出现上述两种情况,若半正定可能找不到最优解若负定,将使迭代方向变成上升方向,因此我们必须保证迭代方向与负梯度方向成锐角

2 Pratical Newton's Method

当遇到hessian矩阵不是正定时,我们需要构造一个足够接近hessian的正定矩阵M

backtracking line search不需要梯度与hessian

 

首先M矩阵等于hessian矩阵加上一个单位阵乘上一个系数

对于对称正定线性方程组而言,可采用Cholesky分解或Bunch-Kaufman 分解对下降方向d进行快速求解。

假如函数为凸函数,M矩阵可以利用 cholesky 分解,将稠密的矩阵分解为上三角与下三角乘积,具体的数学推导请参考[数值计算] LU分解、LUP分解、Cholesky分解 - 知乎 (zhihu.com)

假如函数为非凸函数, M矩阵可以利用 Bunch-Kaufman 分解,具体的数学推导请参考LDLT分解法_百度百科 (baidu.com)

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

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

相关文章

springboot 线程池

为什么要使用线程池 使用线程池之后,不需要频繁的去创建和销毁线程(比如项目中手动创建线程,new Thread 类,我们可以把创建和销毁的线程的过程去掉),从而让线程得到重复的使用。并且可以对线程进行统一的管…

手把手教你用 Python 搭建一个图像分类器

深度学习是使用人工神经网络进行机器学习的一个子集,目前已经被证明在图像分类方面非常强大。 尽管这些算法的内部工作在数学上是严格的,但 Python 库(比如 keras)使这些问题对我们所有人都可以接近。 在本文中,我将介绍一个简单的图像分类…

机器人中的数值优化之最速下降法

本文ppt来自深蓝学院《机器人中的数值优化》 目录 1 迭代方向 2 步长的选择 3 Armijo condition 4 非精确线搜索的优势 1 迭代方向 梯度方向是函数上升最快的方向,而负梯度方向则是函数下降最快的方向,因此最速下降法就是以负梯度方向为迭代方向…

二叉树的构造和相关功能的代码实现及解析

目录 一.二叉树类的定义 二.构造二叉树(构造函数) 三.为二叉树插入节点(insert_value) 四.移除根节点(remove_root,lchild_leaf) 五.移除二叉树中的某值(remove,remove_value) 六.清空二叉树 七.前、中、后序遍历 一.二叉树类的定义 二叉树类的定…

Django入门学习-了解基本模块

目录 MVT设计了解 认识MVT 实际操作 Template: View: 路由配置 Model: 默认的后台管理模块 初始化admin模块 应用中Admin注册 MVT设计了解 认识MVT Django的web设计模型是MVT: Model:数据存储层,处理所有数据相关的业…

idea+ApifoxUploader+Apifox真是内外双修,香

前言 最近部门为整合后端组、前端组、测试组、需求组、产品组等组之间的工作流程,旨在提高协调与高效,其中之一就是希望开发组(后端、前端)开发的接口能及时更新,测试组能做接口测试,后期方便出文档&#x…

大公司为什么禁止SpringBoot项目使用Tomcat?

本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~ Github地址:https://github.com/…

【2】burpsuite屏蔽浏览器无用流量包方法

0x01 问题描述经常会使用火狐或者谷歌去burpsuite对站点进行测试,但是在测试的过程中burpsuite经常抓到火狐浏览器自身的数据包或者其他无用的数据包,这就对我们工作的效率大有影响,所以这里来告诉大家如何解决此类问题。0x02 问题复现访问网…

星环科技数据治理与数据价值评估实践分享

数据价值评估背景 自2015年8月国务院《促进大数据发展行动纲要》提出“数据已成为国家基础性战略资源”以来,我国出台了诸多政策和法案,推进数据的发展和数据要素的资产化。 2019年10月,第十九届四中全会关于《推进国家治理体系和治理能力现…

Node.js安装详细教程

安装 Node.js 官网下载安装包https://nodejs.org/zh-cn/,一直【下一步】安装即可。 设置Windows操作系统全局环境变量 为什么设置环境变量? 当我们在cmd命令行中输入命令时,系统首先会在当前目录下去找命令对应的可执行程序,如果…

后端校验(hibernate-validator)

目录一、介绍和依赖二、方法的 Model 参数校验三、方法的非 Model 参数校验四、常用注解五、快速失败六、自定义校验规则一、介绍和依赖 hibernate-validator 是 Java 中常用的后端校验框架 https://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/【…

提取各种数据结构中的元素将提取结果合并为迭代对象 itertools.chain(*a,b)

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 提取各种数据结构中的元素 将提取结果合并为迭代对象 itertools.chain(*a,b) [太阳]选择题 以下python代码最后输出正确的一项是? from itertools import chain a[(1, A), (2, B), …

Java高效率复习-线程基础[线程]

内容大纲 线程相关概念 并发并行 当只有一个CPU时,会执行并发的效果,在多个应用程序之间快速切换,而有多个CPU时,则多个CPU独立执行,而当进程多于CPU个数时,则会出现并发并行的情况,总有一个CPU…

如何炼就数据分析的思维?

目录 前言结构化思维假说演绎思维指标化思维维度分析思维 前言 面对数据异常,我们经常会出现“好像是A原因引起的?”“貌似和B原因也相关?““有可能是 C操作不当“的主观臆测。 或者,拿到一个分析议题,分析”11 月销售…

@ConfigurationProperties注解使用方法(内含源代码)

ConfigurationProperties注解使用方法(内含源代码) 源代码下载链接地址:https://download.csdn.net/download/weixin_46411355/87400774 目录ConfigurationProperties注解使用方法(内含源代码)源代码下载链接地址&…

怎么识别截图中的文字?这三个方法让你轻松学会

在日常工作或学习中,我们会经常在网上查阅一些资料,当遇到一些优美的句子或者段落时,都会手动摘抄下来,这种记录方式不仅很耗时,还耗费精力,并且现在很多网站都已经不支持文本复制了,遇到这种情…

6.验证面试高频问题整理(附答案)

目录 Q126.top-down phase、bottom-up phase有哪些 Q127.为什么build_phase是top-down phase,connect_phase是bottom-up phase Q128.$size用于packed array和unpacked array分别得到的什么 Q129.class和struct的异同 Q130.class和module的异同 Q131.对象创建的…

MAC系统 LightGBM模型转为pmml格式

一、配置JAVA环境和Maven环境 参考以下两个博客即可 MAC 系统安装 JDK 及环境变量配置_蜗牛的博客-CSDN博客_mac jdk环境变量配置 MAC 系统安装 Maven 及环境变量配置_蜗牛的博客-CSDN博客_mac安装mpv 二、下载JPMML-LightGBM 先在Git上下载 直接下载或使用git clone http…

Aop切面编程原理和Spring实现

Aop切面编程概念 AOP切面编程一般可以帮助我们在不修改现有代码的情况下,对程序的功能进行拓展,往往用于实现 日志处理,权限控制,性能检测,事务控制等 AOP实现的原理就是动态代理,在有接口的情况下,使用JDK动态代理,在没有接口的情况下使用cglib动态代理 为Dao层所有的add方法…

字体反爬,一种来自字体设计师的跨行反爬案例 | 案例 28

本篇博客涉及的内容非常有价值,尤其是在反爬领域。 核心内容为自定义字体文件反爬。 文章目录准备工作在 Web 页面中使用字体文件整理文字编码Flask 中随机一串数字,渲染到前台总结准备工作 在正式编写代码前,需要先安装 FontCreator &#…