机器人中的数值优化(五)——信赖域方法

这篇具有很好参考价值的文章主要介绍了机器人中的数值优化(五)——信赖域方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

   本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,下半部分介绍带约束的优化,中间会穿插一些路径规划方面的应用实例



   七、信赖域方法

   1、信赖域方法简介

   信赖域方法(Trust Region Methods)是一种用于非线性优化的数值优化方法,旨在寻找目标函数的最小值。信赖域算法是一种迭代算法,即从给定的初始解出发,通过逐步迭代,不断改进,直到获得满意的近似最优解为止。其基本思想是把最优化问题转化为一系列简单的局部寻优问题。

   它的核心思想是在当前点的局部模型和真实模型之间建立一个可信区域(Trust Region),并在可信区域内寻找更优的解。

   该方法在解决非线性优化问题时,常使用局部二次模型来近似目标函数,并在每个迭代步骤中解决这个二次模型的最小化问题。信赖域方法是求解非线性最优化问题的有效方法之一,广泛应用于计算机视觉、机器学习、优化控制等领域。


   2、信赖域方法基本思想

   信赖域方法的基本思想是将问题分解为多个步骤。首先,用一个二次模型来近似目标函数,这个模型只在一个局部域内是准确的。其次,在这个局部域内求解二次模型的最小值。最后,使用这个最小值来更新优化变量,然后检查更新后的函数值是否小于当前的函数值。如果是,则扩大局部域的半径,否则缩小局部域的半径,以此控制每个步骤的更新大小。

   那么为什么要构建局部模型,而不使用真实模型呢?

   假设在点 x k x_k xk处,我们欲求下降方向 d x d_x dx,若直接求解极小值问题 m i n f ( x k + d ) min f(x_k+ d) minf(xk+d)去得到 d k d_k dk,那么这个问题与原问题复杂程度相同,而关于方向d的问题应该是相对简单、易求的。所以,解决这个问题简单可行的方法是:利用Taylor展式,在点 x k x_k xk的邻域中,使用 f ( x k + d ) f(x_k+ d) f(xk+d)的一阶近似函数或二阶近似函数作为局部模型代替 f ( x k + d ) f(x_k+ d) f(xk+d)去求 d k d_k dk(常使用二阶近似函数),我们记这个局部模型函数为 q k ( d ) q_k(d) qk(d).求取局部模型 q k ( d ) q_k(d) qk(d)的极小点,并将其作为迭代方向 d k d_k dk ,即求

   min ⁡ d q k ( d ) \operatorname*{min}_{d}q_{k}(d) dminqk(d)


   q k ( d ) q_k(d) qk(d)近似 f ( x k + d ) f(x_k+ d) f(xk+d)的好坏,是受到 x k x_k xk处邻域大小的影响的.合适的邻域和合适的近似函数的选取,可以保证 q k ( d ) q_k(d) qk(d) f ( x k + d ) f(x_k+ d) f(xk+d)的一个好的近似函数,如取

   q k ( d ) = f k + ∇ f k T d + 1 2 d T ∇ 2 f k d q_k(d)=f_k + \nabla f_k^T d + \frac{1}{2} d^T \nabla^2 f_k d qk(d)=fk+fkTd+21dT2fkd

   当||d||较小时, q k ( d ) q_k(d) qk(d)近似 f ( x k + d ) f(x_k+ d) f(xk+d)的误差亦小. 如果 x k x_k xk处的邻域太大,就无法保证 q k ( d ) q_k(d) qk(d) f ( x k + d ) f(x_k+ d) f(xk+d)的好的近似函数,此时可能会出现 q k ( d ) q_k(d) qk(d)的极小点与目标函数 f ( x k + d ) f(x_k+ d) f(xk+d)的极小点相差甚远的情况. 而邻域的大小决定了步长的长短,太短的步长会增加算法的迭代次数,影响算法的收敛速度,所以领域也不能取得过小。

   因此,每步迭代在 x k x_k xk处选择一个合适的邻域,在这个邻域中求解 min ⁡ d q k ( d ) \operatorname*{min}_{d}q_{k}(d) mindqk(d),这就是信赖域方法的思想.这个邻域,我们称之为信赖域,即在此信赖域中,我们相信 q k ( d ) q_k(d) qk(d) f ( x k + d ) f(x_k+ d) f(xk+d)的好的近似函数.

   假定在第k步迭代已得 x k x_k xk以及信赖域的半径 Δ k \Delta_k Δk,则信赖域的子问题即为求解如下表达式,得到 d k d_k dk

   min ⁡ q k ( d ) , s.t. ∥ d ∥ ⩽ Δ k , Δ k > 0 \begin{array}{l}\min q_k(d),\\ \textrm{s.t.}\|d\|\leqslant\Delta_k,\Delta_k>0\end{array} minqk(d),s.t.dΔk,Δk>0

   在得到新的迭代点 x k + 1 = x k + d k x_{k+1}=x_k+d_k xk+1=xk+dk之后,我们可以判断 Δ k \Delta_k Δk是否是下一步迭代的合适的信赖域半径,若不合适,可以修正 Δ k \Delta_k Δk得下一步迭代的 Δ k + 1 \Delta_{k+1} Δk+1,上式中的范数可依方法而定。


   那么如何衡量 Δ k \Delta_k Δk是否是下一步迭代的合适的信赖域半径呢?

   应该根据 x k x_k xk q k ( d ) q_k(d) qk(d)近似 f ( x k + d ) f(x_k+ d) f(xk+d)的好坏来确定,具体来说,可以根据从 x k x_k xk x k + d k x_k+d_k xk+dk f ( x ) f(x) f(x)的实际减少量 Δ f k \Delta f_k Δfk与近似函数 q k ( d ) q_k(d) qk(d)的减少量 Δ q k \Delta q_k Δqk之比 γ k \gamma_k γk来衡量,其中 q k ( 0 ) = f ( x k ) q_k(0)=f(x_k) qk(0)=f(xk)

   Δ f k = f ( x k ) − f ( x k + d k ) Δ q k = q k ( 0 ) − q k ( d k ) γ k = Δ f k Δ q k \begin{array}{l}\Delta f_k=f(x_k)-f(x_k+d_k)\\ \\ \Delta q_k=q_k(0)-q_k(d_k)\\ \\ \gamma_k=\dfrac{\Delta f_k}{\Delta q_k}\end{array} Δfk=f(xk)f(xk+dk)Δqk=qk(0)qk(dk)γk=ΔqkΔfk

   γ k \gamma_k γk接近1时,表明 q k ( d ) q_k(d) qk(d)近似 f ( x k + d ) f(x_k+ d) f(xk+d)的程度好,下一步迭代应增大 Δ k \Delta_k Δk;当 γ k \gamma_k γk为接近于零的正数时,表明 q k ( d ) q_k(d) qk(d)近似 f ( x k + d ) f(x_k+ d) f(xk+d)的程度不好,下一步迭代应减小 Δ k \Delta_k Δk;当 γ k \gamma_k γk为零或负数时,说明 f ( x k + d k ) ≥ f ( x k ) f(x_k+ d_k)≥ f(x_k) f(xk+dk)f(xk) x k + d k x_k+ d_k xk+dk不应被接受为下一步的迭代点,这时只应缩小信赖域的半径 γ k \gamma_k γk:,并重新求解。

机器人中的数值优化(五)——信赖域方法,数值优化方法,数值优化,信赖域方法,最优化方法,路径规划,学习笔记

   3、信赖域方法的具体步骤

   (1)初始化:选择一个初始点 x 0 x_0 x0,设定信赖域的初始大小 Δ 0 \Delta_0 Δ0,初始化迭代次数k=0。

   (2)开始迭代:判断是否满足终止条件(例如目标函数的值达到了一定的精度),若满足则输出 x k x_k xk,迭代停止

   (3)构建局部模型:在当前点 x k x_k xk处,构建一个局部二次模型,

   q k ( d ) = f k + ∇ f k T d + 1 2 d T ∇ 2 f k d q_k(d)=f_k + \nabla f_k^T d + \frac{1}{2} d^T \nabla^2 f_k d qk(d)=fk+fkTd+21dT2fkd

   其中, f k f_k fk是目标函数在 x k x_k xk处的函数值, ∇ f k \nabla f_k fk是目标函数在 x k x_k xk处的梯度, ∇ 2 f k \nabla^2 f_k 2fk是目标函数在 x k x_k xk处的Hessian矩阵的近似值。

   (4)寻找下降方向:求解 q k ( d ) q_k(d) qk(d)的最小值 d k d_k dk,满足 ∣ d k ∣ ≤ Δ k |d_k| \leq \Delta_k dkΔk,其中 Δ k \Delta_k Δk是当前信赖域的半径。

   (5)计算实际下降量和预测下降量:计算从 x k x_k xk x k + d k x_k+d_k xk+dk f ( x ) f(x) f(x)的实际减少量 Δ f k \Delta f_k Δfk与近似函数 q k ( d ) q_k(d) qk(d)的减少量 Δ q k \Delta q_k Δqk之比 γ k \gamma_k γk

   (6)更新信赖域大小:根据比值 γ k \gamma_k γk的大小更新信赖域大小

   如果 γ k \gamma_k γk一定程度上接近于1(比如说 γ k \gamma_k γk>0.75)说明局部模型对目标函数有较好的拟合效果,可以增加信赖域的大小 Δ k + 1 = min ⁡ ( γ 2 Δ k , Δ max ⁡ ) \Delta_{k+1}=\min(\gamma_2 \Delta_k, \Delta_{\max}) Δk+1=min(γ2Δk,Δmax),其中 γ 2 > 1 \gamma_2>1 γ2>1是一个大于1的常数, Δ max ⁡ \Delta_{\max} Δmax是信赖域大小的上限。

   如果 γ k \gamma_k γk一定程度上接近于0(比如说 γ k \gamma_k γk<0.25)说明局部模型对目标函数的拟合效果较差,应该减少信赖域的大小 Δ k + 1 = γ 1 Δ k \Delta_{k+1}=\gamma_1 \Delta_k Δk+1=γ1Δk,其中 0 < γ 1 < 1 0<\gamma_1<1 0<γ1<1是一个小于1的常数。

   如果 γ k \gamma_k γk位于0~1之间,既不靠近0也不靠近1(比如说0.25< γ k \gamma_k γk<0.75)说明局部模型对目标函数的拟合效果既不好也不坏,可以保持信赖域不变 Δ k + 1 = Δ k \Delta_{k+1}=\Delta_k Δk+1=Δk

   (7)判断是否接受新的点 x k + 1 = x k + d k x_{k+1}=x_k+d_k xk+1=xk+dk

   如果 γ k \gamma_k γk<=0,说明 f ( x k + d k ) ≥ f ( x k ) f(x_k+ d_k)≥ f(x_k) f(xk+dk)f(xk) x k + d k x_k+ d_k xk+dk不应被接受为下一步的迭代点,取 x k + 1 = x k x_{k+1}=x_k xk+1=xk,转到第(2)步继续迭代,重新求取第k次迭代的解。

   如果 γ k \gamma_k γk>0,说明 f ( x k + d k ) < f ( x k ) f(x_k+ d_k)< f(x_k) f(xk+dk)<f(xk) x k + d k x_k+ d_k xk+dk可以被接受为下一步的迭代点,取 x k + 1 = x k + d k x_{k+1}=x_k+d_k xk+1=xk+dk,并将迭代数加1,即k=k+1,转到第(2)步继续迭代。


   4、总结

   与线搜索方法先在 x k x_k xk点求得下降方向 d k d_k dk,再沿 d k d_k dk方向确定步长 a k a_k ak不同,信赖域方法是先限定步长的范围,再同时确定下降方向 d k d_k dk和步长 a k a_k ak

   信赖域方法相对于其他优化算法的优点在于它可以保证每次迭代都可以得到一个可行解,并且可以保证在可信区域内寻找更优的解,从而增加算法的稳定性和可靠性。此外,信赖域方法也可以灵活地处理约束条件和不等式约束问题。

   然而,信赖域方法也存在一些缺点。例如,它可能会陷入局部最优解,并且每次迭代需要计算Hessian矩阵或其近似,计算成本较高。同时,信赖域大小的选取也需要一定的经验和调试。

   总的来说,信赖域方法是一种有效的非线性优化算法,可以用于解决一类较为复杂的优化问题。



   参考资料:

   1、机器人中的数值优化

   2、信赖域算法

   3、数值最优化方法(高立 编著)文章来源地址https://www.toymoban.com/news/detail-696532.html

到了这里,关于机器人中的数值优化(五)——信赖域方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 机器人中的数值优化(十三)——QP二次规划

       本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,下半部分介绍带约束的优化,中间会

    2024年02月09日
    浏览(41)
  • 机器人中的数值优化(七)——修正阻尼牛顿法

       本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,下半部分介绍带约束的优化,中间会

    2024年02月09日
    浏览(36)
  • 机器人中的数值优化(十)——线性共轭梯度法

       本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,下半部分介绍带约束的优化,中间会

    2024年02月09日
    浏览(54)
  • 机器人中的数值优化(六)—— 线搜索最速下降法

       本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,下半部分介绍带约束的优化,中间会

    2024年02月10日
    浏览(51)
  • 机器人中的数值优化(十二)——带约束优化问题简介、LP线性规划

       本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,下半部分介绍带约束的优化,中间会

    2024年02月09日
    浏览(66)
  • 机器人中的数值优化(十四)——罚函数法(Penalty Method)、障碍函数法(Barrier Method)、拉格朗日松弛法(Lagrangian Relaxation)

       本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,下半部分介绍带约束的优化,中间会

    2024年02月04日
    浏览(42)
  • 机器学习笔记之最优化理论与方法(一)最优化问题概述

    从本节开始,将对 最优化理论与方法 进行简单认识。 无论是 最优化理论 还是 最优化方法 ,讨论的 对象 都是 最优化问题 。 关于 最优化问题 的一种简单描述:最优化问题本质上属于 决策问题 。 例如 路径选择 问题:确定达到目的地最佳路径的计量标准 。其中问题的 目

    2024年02月11日
    浏览(48)
  • 情感分析中的情感分析机器人:基于语音识别的方法

    作者:禅与计算机程序设计艺术 引言 1.1. 背景介绍 随着人工智能技术的快速发展,自然语言处理(Natural Language Processing,NLP)和情感分析(Emotion Analysis,EA)在众多领域取得了广泛的应用,如社交媒体分析、客户服务、心理健康等。在众多情感分析应用中,基于语音识别的

    2024年02月06日
    浏览(34)
  • 机器学习笔记之最优化理论与方法(七)无约束优化问题——常用求解方法(上)

    本节将介绍 无约束优化问题 的常用求解方法,包括 坐标轴交替下降法、最速下降法 。 本节是对优化算法(十~十七)最速下降法(梯度下降法)的理论补充,其中可能出现一些定理的 证明过程 这里不再赘述,并在相应位置 附加链接 。 从本节开始,将介绍 四大类 无约束优化问

    2024年02月10日
    浏览(52)
  • 机器学习笔记之最优化理论与方法(九)无约束优化问题——常用求解方法(下)

    上一节介绍了 牛顿法、拟牛顿法 。本节将继续以 拟牛顿法 为基础,介绍 DFP , BFGS text{DFP},text{BFGS} DFP , BFGS 方法 。 经典牛顿法缺陷与修正牛顿法 关于 经典牛顿法 中关于 下降方向 D k ( k = 1 , 2 , ⋯   , ∞ ) mathcal D_k(k=1,2,cdots,infty) D k ​ ( k = 1 , 2 , ⋯ , ∞ ) 的 数学符号 表

    2024年02月09日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包