1、为什么要将e(x)写成e(x+dx)的形式?
2、J(x)是什么对什么的导数?

理解
1、形式上来说,e(x)和e(x+dx)并没有任何区别,以为dx本身就是小量,只要x+dx还在作用域?内,函数的意思就是一样的。
更土一点的解析,假设定义域是在[-100,100],那么只要x+dx在这个范围内,函数表示的意思就一样。

既然意思一样,为何要写成这个形式?
因为我们接下来要做的是进行迭代优化,迭代优化需要指定一个起点,即这里的e(x+dx)的x在某次迭代中,是固定的,那么e(x+dx)就变成了dx的函数了。
为何要把原本是x的函数变成是dx的函数呢?
迭代的含义是,在每一步都找到最好的变化量。像这个公式,在某次迭代中指定了x,使得e(x+dx)在x=x0附近,这段小范围的曲线(假设e(x)是一个曲线),最低点在哪里?只需要对dx求导就可以得知了。

2、J是谁对谁的?
这里的J是函数e(x)对x的求导。上面说了,迭代会指定一个x=x0,在这里开始处理,找到最优的一个dx,将dx叠加到x上,形成新的x1,再继续。
所以,这个J描述的是在x=x0处,函数e(x)的导数的具体的值,这个具体的值描述了变量随自变量的变化程度,而dx就是自变量的变化程度。
用J也是对e(x)这个函数的线性化的方法,用了这个方法后,可以将e(x+dx)展开成为dx的函数:
e(x+dx)=e(x)+J*dx,因为这里的x是指定的等于x0,J是可以计算的,所以在某次迭代中整个就成为了:e(x0)+J(x0)dx,就是dx的函数。
如果要优化的就是这个e(x0)+J(x0)
dx,好像没法开展,所以会有最小二乘,即:
(e(x0)+Jdx) * (e(x0)+Jdx)
这个展开来就是关于dx的二次函数了,对dx求导并令导数为0,即可求出dx的值。

求出的这个dx的值含义是什么?
就是在该次迭代中,指定的x0附近对应的那段曲线,如果x0加上计算出来的dx,就可以得到这一小段曲线的最小值。为什么不是整体的最小值?因为J是对原函数e(x)的线性近似,只有在展开点(某次迭代点x0)处的近似才是相对准确的。当然如果e(x)本身就是线性函数,那也不用这么麻烦了,直接求导就可以知道了。

通过上面逐次迭代,不断的找出一小段曲线的对应的最低点,最终逼近整段曲线的最低点。

如果曲线是多波浪的,初值的取值就非常重要,不然就可能最终停留在非全局最低的地方,这也是为什么用imu来做预估,再用点云匹配的原因。让点云匹配在合适的地方进行。
尤其是对应阶梯,每个阶梯都是一样的,如果没有准确的估计值(估计值离真值差距起码小于半个阶梯),那么就可能错位匹配了。

3、再补充一个问题
对于 f ( x ) = x 2 + 3 x f(x)=x^2 +3x f(x)=x2+3x
怎么找极值?
直接求导。 上面的最小二乘,就是将 e 2 ( x ) e^2(x) e2(x)
通过指定迭代点展开成: e 2 ( x + d x ) e^2(x+dx) e2(x+dx) 指定展开点x0,变成:
e 2 ( x 0 + d x ) e^2(x_0+dx) e2(x0​+dx)
得到类似上二次方程的形式,得到x(即dx)。

就是说,在将原问题在某点展开线性化后,就成为了简单的求导求极值计算的问题。

当然,如果就要对 f ( x ) = x 2 + 3 x f(x)=x^2+3x f(x)=x2+3x 利用迭代方式求解,也可以。用梯度方法,不断逼近。
即,同样假设一个初值x0,计算该处的梯度,然后指定一个步长lamda,计算下一个点:
x1=x0-f’(x0)*lamda .
直到满足要求为止。
不过显然,对于这种简单凸函数,简单处理即可。

关于优化公式的小白理解相关推荐

  1. 小白理解k-svd算法

    小白理解k-svd字典学习 一.字典学习 字典学习也可简单称之为稀疏编码,字典学习偏向于学习字典D.从矩阵分解角度,看字典学习过程:给定样本数据集Y,Y的每一列表示一个样本:字典学习的目标是把Y矩阵分 ...

  2. 红色买绿色出 简单易操作的买卖点公式 散户小白都能看懂

    好久没来csdn了,在最初,CSDN是用来记录我做前端写的笔记,后面在工作期间,接触了产品,就转岗了,慢慢的,csdn就很少写了,但是我觉得这里可以作为我记录心得的一个地方,还是挺好的. 因为产品规划 ...

  3. [codeforces 1327E] Count The Blocks 打表找规律+根据规律找公式+优化公式

    Educational Codeforces Round 84 (Rated for Div. 2)   比赛人数13522 [codeforces 1327E]  Count The Blocks  ...

  4. 凸优化教程学习与理解(mark)

    凸优化教程学习与理解(mark) 1. 什么是凸优化 1.1 优化问题的一般形式 1.2 优化问题的几种分类 1.2.1. 早期划分为线性规划和非线性规划: 1.2.2 凸规划和非凸规划; 1.2.3 ...

  5. Adam优化器(通俗理解)

    网上关于Adam优化器的讲解有很多,但总是卡在某些部分,在此,我将部分难点解释进行了汇总.理解有误的地方还请指出. Adam,名字来自:Adaptive Moment Estimation,自适应矩估 ...

  6. 贝叶斯优化(Bayesian Optimization)深入理解

    目前在研究Automated Machine Learning,其中有一个子领域是实现网络超参数自动化搜索,而常见的搜索方法有Grid Search.Random Search以及贝叶斯优化搜索.前两 ...

  7. sql语句查询性能的优化思想(个人理解)

    我对sql语句优化的理解,从以下四个方面入手: 1.改写SQL: 2.调整数据库或者系统的参数. 3.调整表结构: 4.建索引. 后续会继续完善的^-^ 转载于:https://blog.51cto. ...

  8. VINS紧耦合优化公式及代码解析

    1.首先确定待优化的状态变量 对应代码,优化参数为: Vector3d Ps[(WINDOW_SIZE + 1)];(平移向量) Vector3d Vs[(WINDOW_SIZE + 1)];(速度) ...

  9. 均值定理最大值最小值公式_如何理解中值定理?三大微分中值定理的几何意义及其证明介绍。...

    本文是为了下篇文章<三大微分中值定理的应用-经典例题>作基础准备 本文参考谢惠民<数学分析习题课讲义>和裴礼文<数学分析中的典型问题与方法>中的内容.已看过的同学可 ...

最新文章

  1. 学习游戏渲染(Shader)的用处
  2. java 泛型机制_java中的泛型机制
  3. TSQL与PL/SQL的比较
  4. ruby中!!_Ruby反向! 功能
  5. 使用zlib库实现gzip格式压缩
  6. 《Java虚拟机原理图解》1.1、class文件基本组织结构
  7. java中signum使用_Java.math.BigInteger.signum()方法实例
  8. 梅州市2021普通高考成绩查询,梅州高考成绩查询入口
  9. OLEDB, ODEB, ADO.NET Abbreviation
  10. 仓库出租平台有哪些_日用品仓库出租哪家划算周到
  11. 计算机sci论文怎么写,SCI论文从写作到发表步骤攻略
  12. 1寸,2的照片多大啊
  13. u盘插入计算机显示被写保护,u盘被写保护了怎么去掉保护,教您解除u盘被写保护...
  14. 【代码】eclipse搭建ssm框架所需约束
  15. 【总结】NPU/CPU/GPU 傻傻分不清?
  16. vuepress-theme-reco评论管理
  17. android有什么作用,Android 7.0有什么功能 Android N完整功能参数介绍
  18. 02论文分享与分析——基于ROS的移动机械臂底层规划及运动仿真
  19. 智能硬件——身份证识别skd
  20. 如何快速建立一个网络爬虫(初学者指南)

热门文章

  1. 中国制造网(made-in-china)的排名技巧
  2. 新一届CMO获奖名单公布:人大附中、上海中学霸榜,深圳中学选手夺魁
  3. 【新书推荐】【2017.06】外国文学(全两册)《囚鸟》+《寻找时间的人》
  4. 港口数字化转型不能盲目跟风
  5. STM32+DAC8830驱动程序
  6. 一文搞懂 php 中的 DI 依赖注入
  7. Java 根据多边形坐标点 计算多边形面积
  8. 51单片机c语言延时计算软件,51单片机精确延时程序大集合+初值计算工具
  9. 统计学习方法李航版第十章部分课后习题python答案
  10. FFmpeg视频剪辑拼接