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

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

目录

1 迭代方向 

2 步长的选择 

3 Armijo condition

4 非精确线搜索的优势


1 迭代方向 

机器人中的数值优化之最速下降法_第1张图片机器人中的数值优化之最速下降法_第2张图片

梯度方向是函数上升最快的方向,而负梯度方向则是函数下降最快的方向,因此最速下降法就是以负梯度方向为迭代方向,当函数非光滑时,迭代点不存在梯度时,以次梯度集合内的取最小模长的负方向为迭代方向。对于次梯度的介绍,读者请参考(1条消息) 机器人中的数值优化之凸函数_无意2121的博客-CSDN博客

2 步长的选择 

机器人中的数值优化之最速下降法_第3张图片 机器人中的数值优化之最速下降法_第4张图片

前面我们讨论了迭代方向如何选择,现在讨论在迭代方向上走多少步长合适,这里列出了四种方法

  • 恒定步长
  • 不断衰减的步长
  • 精确线搜索
  • 非精确线搜索

机器人中的数值优化之最速下降法_第5张图片 机器人中的数值优化之最速下降法_第6张图片

如果采用恒定步长迭代,将导致不停的震荡,始终无法收敛

如果采用衰减步长迭代,可以保证收敛,但是随着步长越来越短,收敛越来越慢

因此我们需要一个兼顾收敛性与收敛速度的步长调整方法

精确线搜索:相当于以步长为自变量又进行一次求最优解的过程,这能保证每次迭代得到的优化最彻底,但实际上这导致我们又需要去求解子优化问题,本来就是在求解优化问题,又化归成一系列子优化问题,只不过变成一维优化问题,但是求解时间还是有较大损耗

非精确线搜索:我们不希望再求解子优化问题,也就是只希望每次得到一个接近最优解的步长,即满足一些条件,接下来将详细介绍这个条件(Armijo condition)

3 Armijo condition

机器人中的数值优化之最速下降法_第7张图片

迭代步长看作自变量画出图,然后对当前迭代点进行一阶近似,然后对此直线的斜率进行松弛也就是乘上一个0到1的系数,得到另一条直线,在这条直线下方的区域都是下降比较充分的

机器人中的数值优化之最速下降法_第8张图片而这里也采用了一种二分的方法,当二分到满足Armijo condition时,就可以停止二分,取此步长

迭代的终止条件是梯度足够小,或者次梯度包含0

4 非精确线搜索的优势

机器人中的数值优化之最速下降法_第9张图片

机器人中的数值优化之最速下降法_第10张图片

这两张图表明非精确线搜索在工程上由于精确线搜索,一般来说迭代时间与迭代次数和每次迭代需要的时间乘积成正比,虽然精确线搜索iteration很小,但每次iteration的time cost很大,就使得总耗时大,非精确线搜索与之相反,iteration虽然多,但每次iteration的time cost很小

机器人中的数值优化之最速下降法_第11张图片机器人中的数值优化之最速下降法_第12张图片

这里我们还需要考虑条件数的问题,条件数很大将导致最速下降法每次迭代震荡很厉害,因此当条件数很大时,不适用最速下降法,对于条件数,不清楚的读者可以参考机器人中的数值优化之凸函数_无意2121的博客-CSDN博客

机器人中的数值优化之最速下降法_第13张图片可见当条件数很大时,曲率信息我们不能忽略,下一节我们将介绍包含curvature info 的优化算法

你可能感兴趣的:(数值优化,人工智能,性能优化,算法,机器人)