【数值优化基础 (自动驾驶)】—— 知识点(方便回顾)

发布于:2024-04-27 ⋅ 阅读:(25) ⋅ 点赞:(0)

笔记:机器人学中的数值优化(一)
数值优化简介
1.优化问题

min f(x)
s.t.g(x)<=0 h(x)=0

假设:(1)目标函数有下界(2)下水平集不能无界

2.凸包问题:给定点集,求构成凸包的点

3.常见的凸集:超平面、半平面、球的表面、球、多项式、半正定锥

4.保持凸性的运算:

(1)两个凸集的交集
(2)两个凸集的和
(3)两个凸集的叉乘

5.hessian矩阵在函数光滑时是对称矩阵

6.梯度:使每一点下降最快的方向

7.区分Hessian矩阵与Jacobian矩阵,Hessian矩阵对应的函数是向量映射到标量,矩阵元素是二阶信息,而Jacobian矩阵对应的函数是向量映射到向量,矩阵元素是一阶信息

8.凸函数最重要的性质就是琴生不等式,能取到等号则是一般凸函数,不取等号则是强凸函数

9.凸函数<=>上方图是凸集

10.凸函数的下水平集是凸集

11.关心凸函数的原因

(1)凸性容易保持
(2)任何的局部最优解都是全局最优解
(3)解集是凸的
(4)凸函数在很多运算中能够被保留(求和、仿射变换、逐点max)

12.一阶条件 => 仅凸函数的最优性

13.二阶条件:满足 ∇ 2 f ( x ) ⪰ 0 \nabla^{2} f(x) \succeq 0 2f(x)0,一个光滑的函数是凸的。Hessian函数是光滑函数的一个很好的局部模型

13.强凸意味着hessian矩阵严格正定。有利于提高算法的收敛速率

14.次梯度的反方向不一定是下降方向

15.梯度单调性:任何凸函数的(次)梯度都是单调的

16.最速下降法就是以负梯度方向为迭代方向,当函数非光滑时,迭代点不存在梯度时,以次梯度集合内的取最小模长的负方向为迭代方向

17.迭代方向的步长选择:
(1)恒定步长:导致不停的震荡,始终无法收敛
(2)不断衰减的步长:可以保证收敛,但是随着步长越来越短,收敛越来越慢
(3)精确线搜索:求解时间损耗
(4)非精确线搜索:不再求解子优化问题,希望每次得到一个接近最优解的步长

18.条件数很大将导致最速下降法每次迭代震荡很厉害,因此当条件数很大时,不适用最速下降法

19.修正阻尼牛顿法:最小化二次逼近,如果函数是二次函数,那么牛顿法只需一步就能达到最优。

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

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

22.评价数值优化方法的三个方面:(1)收敛速度(2)适用于不同功能的稳定性(3)每次迭代的计算量

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

24.工程上的方法:构造一个足够接近hessian的正定矩阵M、通过因式分解而不是求逆来求解线性系统、线搜索不需要grad和Hessian

25.自动驾驶规划目标:算出一条满足约束的最优轨迹

最优:平滑、舒适、尽可能短(耗时少)
约束:轨迹连续性、无碰撞、交规、车辆动力学

26.一般求复杂函数在复杂约束下的最小值问题都采用迭代法:牛顿、最速下降、高斯牛顿

27.凸优化:求凸函数在凸空间的最小值问题

28.静态+动态避障约束空间都不是凸的

29.求解非凸问题的主要思路是找非凸问题中的凸结构

30.对于非凸函数和非凸空间:连续空间离散化后,离散约束空间的最优解,不断迭代得到最优解

31.采样点越少,容易收敛到局部最优。采样越多,容易发生维数灾难

32.为什么引入二次规划?

多项式求极值是二维空间的问题,而运动规划的优化问题是高维的。高维空间的优化问题是十分复杂的,我们如果将其建立为一个类似于我们熟悉的多项式求极值问题,我们当然希望选择对优化来说最理想的二次。如果问题的维度也高,次数也高,就很难求解了。

33.维度是指变量的个数,而次数是指多项式的阶次

34.二次规划在自动驾驶中有两个比较经典的应用:
(1)百度Apollo EM planner用QP求解局部最优解
(2)MPC控制器将有约束的MPC问题转化为QP问题

35.运动规划的是在凸空间么?

显然特别不凸,因为中间有车挡着,相当于有洞。任何中空的或具有凹痕都不是凸集。如果能实现路径规划与速度规划解耦,可以通过动态规划算法在 l ( s ) l(s) l(s)空间内寻找几个凸集,在每个凸集内部,可以实现QP算法