数值优化(四)

Trust-Region-Methods

Trust-Region Method(置信域方法)利用目标函数在迭代点的函数值与导数信息来建立一个二次型模型用来近似表示目标函数,而在距离迭代点多远的范围之内可以相信这个二次型模型,这个范围就是置信域。

二次型模型

在迭代点的二次型模型具体表示为\[m_k(p)=f_k+\nabla f_k^T p+ \frac{1}{2}p^T B_k p\]式子中\(f_k\)是目标函数在第k个迭代点的取值,\(B_k\)是一个对称矩阵,一般来说,很容易想到它会是\(x_k\)点的Hessian矩阵,不过这里并不要求必须是Hessian矩阵,\(B_k\)的不同也导出了不同类型的方法。

算法大致过程

TRM在达到目标任务的过程中,一是要不断求解二次型模型的子问题,第二就是要适当地控制置信域,为此,考虑一个比值\[\rho_k = \frac{f(x_k)-f(x_k+p_k)}{m_k(0)-m_k(p_k)}\]可以看见,分子是实际目标函数的下降量,而分母是二次型局部模型的下降量,\(p_k\)的选择必定使得分母是非负的,通过\(\rho_k\),能够知道根据局部模型做出的决定与真实函数情况有多少程度的符合。每次迭代计算相应的\(\rho_k\),并根据\(\rho_k\)来调整置信域。下面的伪代码是具体的设置。
1443026-20180716170733744-659682596.png
算法的框架已经很明了了,现在剩下的问题是如何求解局部二次型子问题,即如何根据二次型模型得到一个\(p_k\)来尽量最小化二次型。

子问题求解

本章介绍的三个子问题近似求解方法都是基于Cauchy点的。

Cauchy点

(下面的\(g_k\)实际上是\(\nabla f_k\),而\(g\)就表示\(\nabla f\),意思是专注于同一个迭代步骤中的过程)
1443026-20180717172716921-880359319.png
上图是Cauchy点的定义,抛开繁杂的符合定义,其实可以看出,Cauchy点就是梯度负方向上的二次型最低点,这样他的意义就明了很多。重要的是,Cauchy点有闭式解,不难得到:
1443026-20180717172950178-1956782769.png

dogleg方法

如果置信域足够大,即\(\delta_k > \|p^B\|\),其中\(p^B=-B^{-1}g\)是二次型的全局最优点。而置信域不够大的时候,二次型中二次项的影响会很小,此时将二次型的二次项直接忽略,只根据一次项的信息来决定优化点,那么随着\(\delta_k\)的增大,优化点的轨迹显然是从中心到Cauchy点的连线。dogleg方法就是简单的折中了,从下图可以看的很明白。
1443026-20180717174225686-1832471924.png
dogleg方法需要\(B_k\)是正定的,在这样的条件下,置信域与优化轨道只有一个交点,并且顺着优化轨道,\(m_k\)单调递减。

Two-Dimension Subspace方法

这种方法书上介绍的很不详细,大致上是在梯度方向和全局点方向张成的二维子空间中优化\(m_k\),即\[\min \limits_p m(p)=f+g^Tp+\frac{1}{2}p^TBp \quad s.t.\|p\| \leq \delta,p\in span \left[g,B^{-1}g \right]\]

Steihaug's approach

是一种对共轭梯度法的改进,这里不再细说。

精确求解子问题

对二次型,有下面的非常有用的结论
1443026-20180717180427616-331520086.png
有了这个结论,我们可以用牛顿法来寻找\(\lambda\)的取值,从而得到非常精确的子问题最优解点。
具体过程的话,首先将对称矩阵\(B\)做分解化为标准型,即\(B=Q\Lambda Q^T\),根据第一个条件,定义\[p(\lambda)=-(B+\lambda I)^{-1}g=-\sum_{j=1}^n \frac{q_j^Tg}{\lambda_j+\lambda}q_j\]\(q_j\)是Q的第\(j\)个列向量。设\(\lambda_1\)是B最小的特征值,那么\[\lim\limits_{\lambda \rightarrow \infty}\|p(\lambda) = 0\]如果\(q_j^TB\neq 0\)\[\lim\limits_{\lambda \rightarrow \lambda_j} \|p(\lambda)\|=\infty\]于是可以用牛顿法求解\[\|p(\lambda)-\Delta \|=0\]
\(q_1^Tg=0\),情况就要复杂一些,此时可能在\((\lambda_1,\infty)\)内没有解,如果没有解,又由条件3,\(lambda\)只能取\(\lambda_1\),此时将\(p(\lambda_1)\)稍做修改,让他加上一个与\(B-\lambda_1I\)正交的单位向量,条件一不被破坏,但使得我们可以通过改变单位向量的系数来调整p的模,从而满足条件二了,这个系数也是非常容易确定的。

转载于:https://www.cnblogs.com/mathematic-offering/p/9318385.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值