数值优化-信赖域方法

信赖域方法

除了之前讲过的线搜索方法,信赖域方法(trust region)也是数值优化中的一类重要的方法。在信赖域方法中我们需要定义一个信赖域,在这个信赖域中使用替代函数来代替原来的目标函数,通过优化替代函数来优化目标函数。本文和书中一致,采用二次函数来作为替代函数(model function m k m_k mk)。 m k m_k mk是原函数 f f f x k x_k xk这点处的泰勒级数展开。

f ( x k + p ) = f k + g k T p + 1 2 p T ∇ 2 f ( x k + t p ) p f(x_k+p)=f_k+g^T_kp+\frac{1}{2}p^T \nabla^2f(x_k+tp)p f(xk+p)=fk+gkTp+21pT2f(xk+tp)p m k ( p ) = f k + g k T p + 1 2 p T B k p m_k(p)=f_k+g^T_kp+\frac{1}{2}p^TB_kp mk(p)=fk+gkTp+21pTBkp

信赖域大小调节

既然有了信赖域,我们就需要定义信赖域的大小。我们需要使用一个评判标准来告知信赖域的设定是否合理,我们使用 ρ k \rho_k ρk来判断。

ρ k = f ( x k ) − f ( x k + p k ) m k ( 0 ) − m k ( p k ) \rho_k=\frac{f(x_k)-f(x_k+p_k)}{m_k(0)-m_k(p_k)} ρk=mk(0)mk(pk)f(xk)f(xk+pk)

分子为实际减小量,分母为预测减小量。当两者越接近1说明替代函数的效果越好。当信赖域大小导致不好的时候,需要减小信赖域,信赖域效果很好的时候需要增加信赖域范围。

在这里插入图片描述

优化替代函数问题

在信赖域方法中,我们需要对子问题进行求解。

在这里插入图片描述

求解这类问题可以求解精确解或者求解近似解。

在这里插入图片描述

精确解

当上述的条件符合时,4.8b只有两种可能, λ = 0 \lambda=0 λ=0或者 ∇ − ∥ p ∗ ∥ = 0 \nabla-\left\| p^*\right\|=0 p=0。假设子问题的解在信赖域内,那么只可能是 λ = 0 \lambda=0 λ=0。此时我们有 B p ∗ = − g Bp^*=-g Bp=g(B是半正定的)。当另一种情况时 ∇ − ∥ p ∗ ∥ = 0 \nabla-\left\| p^*\right\|=0 p=0,可以得到 λ p ∗ = − B p ∗ − g = − ∇ m ( p ∗ ) \lambda p^*=-Bp^*-g=-\nabla m(p^*) λp=Bpg=m(p),此时解的方向和m的负梯度方向是相同的。

近似解

cauchy point:cauthy point 这个点就是mk在最速下降方向上的最小值,同时受到信赖域的约束。

第一个方法是dogleg方法,使用dogleg方法的前提是B必须是正定的。第二个方法是two-dimensional subspace minimization,当B不是正定时也可以使用。

在这里插入图片描述

在这里和前面不同的是我们并没有使用泰勒展开中的二次项,而是只展开到了一次项。所以说这是一个近似的解。引进 τ k \tau_k τk的目的是为了保证信赖域的约束,并且使得 m k ( τ p k s ) m_k(\tau p^s_k) mk(τpks)在置信域内有最小值。(4.9)问题的解是 p k c = − τ k Δ k ∥ g k ∥ g k p^c_k=-\tau_k \frac{\Delta_k}{\left\| g_k \right\|}g_k pkc=τkgkΔkgk。我们需要讨论 g k T B k g k ≤ 0 g^T_k B_k g_k \leq0 gkTBkgk0 g k T B k g k > 0 g^T_k B_k g_k >0 gkTBkgk>0的情况。

τ k = { 1  if  g k T B k g k ≤ 0 min ⁡ ( ∥ g k ∥ 3 / ( Δ k g k T B k g k ) , 1 )  otherwise  \tau_{k}= \begin{cases}1 & \text { if } g_{k}^{T} B_{k} g_{k} \leq 0 \\ \min \left(\left\|g_{k}\right\|^{3} /\left(\Delta_{k} g_{k}^{T} B_{k} g_{k}\right), 1\right) & \text { otherwise }\end{cases} τk={1min(gk3/(ΔkgkTBkgk),1) if gkTBkgk0 otherwise 

初看这个式子可能不太清楚其由来,其实是二次函数求极值的问题的解。当第一种情况时,函数随着 τ \tau τ单调递减,为了在信赖域以内,我们能取的最大的 τ \tau τ为1。另一种情况时,需要代入 τ p k s \tau p^s_k τpks到函数中去,求导数令其等于零。,可以解出 τ = ∥ g k ∥ 3 Δ k g k T B g k \tau=\frac{\left\| g_k \right\|^3}{\Delta_kg_k^TBg_k} τ=ΔkgkTBgkgk3,当这个值大于了信赖域边界时不能直接取这个值,此时导数恒小于零,函数单调递减,所以 τ \tau τ取值为1。

dogleg method

在这里插入图片描述

当B是正定的时候,我们可以比较简单的知道,无约束最小化函数值的m为 p B = − B − 1 g p^B=-B^{-1}g pB=B1g。当这个点是可达的时候,这是问题的解

p ∗ ( Δ ) = p B , w h e n   Δ ≥ ∥ p B ∥ p^*(\Delta)=p^B,\quad when \,\Delta \geq \left\| p^B \right\| p(Δ)=pB,whenΔ pB

Δ \Delta Δ的值比 p B p^B pB小很多的时候,我们忽略二次项,得到一个近似的解

p ∗ ( Δ ) ≈ − Δ g ∥ g ∥ , w h e n   Δ   i s   s m a l l p^*(\Delta)\approx-\Delta\frac{g}{\left\| g \right\|}, \quad when\,\Delta \,is\,small p(Δ)Δgg,whenΔissmall

Δ \Delta Δ的值属于中等大小的时候,dgoleg方法使用两个路径合起来来寻找近似最优解。

第一条线是从起始点到最速下降方向的最小点。

p U = − g T g g T B g g p^U=-\frac{g^Tg}{g^TBg}g pU=gTBggTgg

第二条是从 p U p^U pU p B p^B pB,我们把总的轨迹用下列公式表示

p ~ ( τ ) = { τ p U 0 ≤ τ ≤ 1 p U + ( τ − 1 ) ( p B − p U ) 1 ≤ τ ≤ 2 \begin{equation} \tilde{p}(\tau)= \begin{cases} \tau p^U \quad 0\leq\tau\leq1\\ p^U+(\tau-1)(p^B-p^U)\quad 1\leq\tau\leq2 \end{cases} \nonumber \end{equation} p~(τ)={τpU0τ1pU+(τ1)(pBpU)1τ2

书中这里讲的不是很详细,我看了一篇博客讲的不错,链接放到文末了。

参考资料

①:Numerical Optimization

②:暴力拆解《Numerical Optimization》之信任域方法(下)——Dogleg(狗腿方法)_xiaopihaierletian的博客-CSDN博客

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值