ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

06

2020-11-23 08:02:06  阅读:415  来源: 互联网

标签:BFGS right 06 top 牛顿 frac left


无约束优化-----拟牛顿法

1拟牛顿方程

牛顿法的迭代:

\[x^{k+1} = x^k - α_kG({x}^k)^{-1} ∇f({x}^k)\tag1 \]

考虑以下的坏情况:

  1. 目标函数不是凸的,因此Hessian矩阵\(G({x})\)可能不是正定的。
  2. Hessian矩阵的逆\(G({x})^{-1}\)不存在。

按照前面Hessian矩阵的介绍,在多自变量情况下,则可将$ f\left(x\right) $在 $x^{\left(k+1\right)} $二阶泰勒展开式可写为:

\[\begin{align*} \\& f\left(x\right) ≈ f\left(x^{\left(k+1\right)}\right)+∇f({x}^{(k+1)})^{T}\left(x-x^{\left(k+1\right)}\right)+\dfrac{1}{2}\left(x-x^{\left(k+1\right)}\right)^{T} G\left(x^{\left(k+1\right)}\right)\left(x-x^{\left(x+1\right)}\right)\end{align*} \tag2 \]

定义\(g(x)=∇f({x})\),对(2)进行求导,得

\[\begin{align*} \\& g(x)≈g^{k+1}+G\left(x^{\left(k+1\right)}\right)\left(x-x^{\left(x+1\right)}\right)=g^{k+1}+G_{k+1}\left(x-x^{\left(x+1\right)}\right)\end{align*} \]

定义

\[s^k = x^{k+1}-x^{k},y^k =g^{k+1}-g^k \]

然后我们就得到了

\[y^k ≈G_{k+1}s^k , ~~ s^k≈G_{k+1}^{-1}y^k \]

拟牛顿法的基本想法:在牛顿法的迭代中,需要计算Hessian矩阵的逆矩阵 \(G({x})^{-1}\) ,这一计算比较复杂,还有上述两种坏的情况。所以用一个 [公式] 阶矩阵 \(H_k=H(x^{(k)})\) 来近似代替 \(G_k^{-1}=G^{-1}(x^{(k)})\) 。

拟牛顿方程:

\[s^k=H_{k+1}^{}y^k , ~~ y^k =H_{k+1}^{-1}s^k\tag3 \]

2拟牛顿方法

\(\large\color{#70f3ff}{\boxed{\color{brown}{算法流程} }}\)

  1. 选择初始点\(x_1\)和初始正定对称矩阵\(H_1\),设k = 1。
  2. 计算\(g^k\)。如果\(g^k = 0\),停止;否则,转到步骤3.
  3. 计算\(H_k\),让\(d^k =−H_kg^k\)。
  4. 直线搜索:用精确性搜索或者非精确性搜索选择步长 \(α_k\)
  5. 迭代: \(x^{k+1} = x^k + α_kd^k, k = k + 1\). 转到步骤2。

\(\large\color{#70f3ff}{\boxed{\color{brown}{对称秩1更新公式} }}\)

显然,我们希望\(H_{k+1}\)能轻松计算出来。假设\(H_{k+1} - H_k\)的\(rank\)为1,即

\[H_{k+1} - H_k=ab^T \]

对于某些\(a, b∈R^n\)。通过拟牛顿方程,我们有

\[s^k=H_{k}^{}y^k+a(b^Ty^{k})\\ a =\dfrac{s^k -H_{k}^{}y^{k} }{b^Ty^{k}} \]

(注:一般\(s^k=H_{k}^{}y^k\neq 0\),即\(H_{k}\)不满足拟牛顿方程,所以\(a \neq 0\)。)现在,我们有

\[H_{k+1} =H_k+\dfrac{(s^k -H_{k}^{}y^{k})b^T }{b^Ty^{k}} \]

为了保持\(H_{k+1}\)对称,我们需要让b平行于$s^k -H_{k}^{}y^{k} $。因此

\[H_{k+1} =H_k+\dfrac{(s^k -H_{k}^{}y^{k})(s^k -H_{k}^{}y^{k})^T }{(s^k -H_{k}^{}y^{k})^Ty^{k}} \]

\(\large\color{#70f3ff}{\boxed{\color{brown}{对称秩二更新公式} }}\)

上述公式不能保证\(H_{k+1}\)是正定的。由于只有一个选择,我们不得不考虑可能的秩二更新公式。假设

\[H_{k+1} - H_k=(a,b)(u,v)^T \]

通过拟牛顿方程,我们有

\[s^k=H_{k+1}^{}y^k = H_{k}^{}y^k+(a,b)(u^Ty^k,v^Ty^k)^T \]

因此

\[(u^Ty^k)a +(v^Ty^k)b=s^k-H_ky^k \]

一个简单的方法就是选择\(a=s^k,b=H_ky^k\)。然后,根据对称性,我们可以把秩二公式写成

\[H_{k+1}=H_k+(s^k,H_ky^k)\begin{pmatrix} a_{11} &a_{12}\\ a_{21}& a_{22} \end{pmatrix}(s^k,H_ky^k)^T \]

通过拟牛顿方程,我们有

\(\large\color{#70f3ff}{\boxed{\color{brown}{BFGS} }}\)

如果我们用矩阵 \(B_k\)替代 \(G_k ,\)\(B_k\)需要满足这个条件:\(y^k=B_{k+1}s^k\)

设 $B_k $的迭代关系是:

\[B_k = B_{k-1} + auu^\top + bvv^\top \]

带入拟牛顿条件:

\[a(u^\top s^k)u + b(v^\top s^k)v = y^k-B_{k-1} s^k \]

于是可以令:

\[u=y^k\\ v=B_{k-1} s^k \]

因此a和b满足: $a = \frac{1}{y_k^{T} s^k} $和 \(b =- \frac{1}{ s_k ^\top B_{k-1} s_k}\)

所以更新公式变成了:

\[B_k = B_{k-1} + \frac{y_k y_k^\top}{y_k^\top s_k} - \frac{B_{k-1} s_k s_k^\top B_{k-1} }{ s_k ^\top B_{k-1} s_k}\tag4 \]

由Woodbury公式:

\[(A+U D V)^{-1}=A^{-1}-A^{-1} U\left(D^{-1}+V A^{-1} U\right)^{-1} V A^{-1} \]

BFGS也可以写成逆矩阵的形式:

\[H_k=\left(I-\frac{y_{k} s_{k}^\top}{y_{k}^\top s_{k}}\right)H_{k-1}\left(I-\frac{s_{k} y_{k}^\top}{y_{k}^\top s_{k}}\right)+\frac{y_{k} y_{k}^\top}{y_{k}^\top s_{k}} \]

BFGS的时间复杂度为 \(O(n^2)\)

\(\large\color{#70f3ff}{\boxed{\color{brown}{DFS} }}\)

能不能通过第一个拟牛顿条件\(s^k=H_{k+1}^{}y^k\) 进行更行更新呢,也就是直接找到与海森矩阵的逆矩阵的相似。

设 \(H_k = H_{k-1} + auu^\top + bvv^\top\)

带入拟牛顿条件,得到:

\[(au^\top y_k)u+ (bv^\top y_k)v = s_k -y_k H_{k-1} \]

令 \(u=s_k,v=-y_k H_{k-1},a=\frac{1}{s_k^\top y_k},b = -\frac{1}{y_k^\top G_{k-1} y_k}\)

迭代公式为:

\[H_k = H_{k-1} + \frac{s_k s_k^\top}{s_k^\top y_k} -\frac{H_{k-1} y_k y_k ^\top H_{k-1} }{y_k^\top H_{k-1} y_k}\tag5 \]

DFP的时间复杂度为 \(O(n^2)\)

3Broyden class

Broyden族是更广义的拟牛顿法,它包括了所有的逆牛顿法。

Broyden族的更新公式为:

B_k = (1-\phi)B_k^{BFGS} + \phi B_k^{BFGS} ,\phi \in RB_k = (1-\phi)B_k^{BFGS} + \phi B_k^{BFGS} ,\phi \in R

我们可以从BFGS算法矩阵 B_{k+1}=B_{k}+\dfrac{y_{k}y_{k}^{T}}{y_{k}^{T}\delta_{k} }- \dfrac{B_{k}\delta_{k}\delta_{k}^{T}B_{k}}{\delta_{k}^{T}B_{k}\delta_{k}}B_{k+1}=B_{k}+\dfrac{y_{k}y_{k}^{T}}{y_{k}^{T}\delta_{k} }- \dfrac{B_{k}\delta_{k}\delta_{k}^{T}B_{k}}{\delta_{k}^{T}B_{k}\delta_{k}} 的迭代公式得到BFGS算法关于 G_kG_k 的迭代公式。

\begin{align} \& G_{k}=B_{k}^{-1},\quad G_{k+1}=B_{k+1}^{-1}\end{align}\\begin{align} \& G_{k}=B_{k}^{-1},\quad G_{k+1}=B_{k+1}^{-1}\end{align}\

两次应用Sherman-Morrison公式,得 \begin{align} \& G_{k+1}=\left(I- \dfrac{\delta_{k}y_{k}^{T}}{\delta_{k}^{T}y_{k}}\right)G_{k}\left(I-\dfrac{\delta_{k}y_{k}^{T}}{\delta_{k}^{T}y_{k}}\right)^{T}+\dfrac{\delta_{k}\delta_{k}^{T}}{\delta_{k}^{T}y_{k}}\end{align}\\begin{align} \& G_{k+1}=\left(I- \dfrac{\delta_{k}y_{k}^{T}}{\delta_{k}^{T}y_{k}}\right)G_{k}\left(I-\dfrac{\delta_{k}y_{k}^{T}}{\delta_{k}^{T}y_{k}}\right)^{T}+\dfrac{\delta_{k}\delta_{k}^{T}}{\delta_{k}^{T}y_{k}}\end{align}\

称为BFGS算法关于 G_{k}G_{k} 的迭代公式。

其中Sherman-Morrison公式:假设 AA 是 nn 阶可逆矩阵, u,vu,v 是 nn 维向量,且 A+uv^TA+uv^T 也是可逆矩阵,则: (A+uv^T)^{-1}=A^{-1}-\frac{A^{-1}uv^TA^{-1}}{1+v^TA^{-1}u}\(A+uv^T)^{-1}=A^{-1}-\frac{A^{-1}uv^TA^{-1}}{1+v^TA^{-1}u}\

令由DFP算法 G_{k}G_{k} 的迭代公式得到的 G_{k+1}G_{k+1} 记作 G^{DFP}G^{DFP} ,由BFGS算法 G_{k}G_{k} 的迭代公式得到的 G_{k+1}G_{k+1} 记作 G^{BFGS}G^{BFGS} ,由于 G^{DFP}G^{DFP} 和 G^{BFGS}G^{BFGS} 均满足拟牛顿条件,则两者的线性组合 \begin{align} \& G_{k+1}=\alpha G^{DFP}+\left(1-\alpha\right) G^{BFGS}\end{align}\\begin{align} \& G_{k+1}=\alpha G^{DFP}+\left(1-\alpha\right) G^{BFGS}\end{align}\

也满足拟牛顿条件,而且是正定的。其中, 0 \leq \alpha \leq 10 \leq \alpha \leq 1 。该类算法称为Broyden类算法。

同时,让 \phi\phi 取不同的值,Broyden族可以退化为之前的拟牛顿方法

{\text { BFGS corresponds to } \phi=0} {\text { BFGS corresponds to } \phi=0}

{\text { DFS corresponds to } \phi=1} {\text { DFS corresponds to } \phi=1}

{\text { SR1 corresponds to } \phi=\frac{y^{T} s} {\left(y^{T} s-s^{T} B s\right)}}{\text { SR1 corresponds to } \phi=\frac{y^{T} s} {\left(y^{T} s-s^{T} B s\right)}}

参考文献

李航:《统计学习方法》,清华大学出版社

梯度下降(Gradient Descent)小结

牛顿法与拟牛顿法学习笔记

https://blog.csdn.net/songbinxu

https://zhuanlan.zhihu.com/p/144736223

https://blog.csdn.net/itplus/article/details/21896981

https://zhuanlan.zhihu.com/p/37524275

https://zhuanlan.zhihu.com/p/46536960

https://zhuanlan.zhihu.com/p/136523614

https://zhuanlan.zhihu.com/p/77497823

https://zhuanlan.zhihu.com/p/93856102

https://zhuanlan.zhihu.com/p/98721926

https://zhuanlan.zhihu.com/p/111755038

标签:BFGS,right,06,top,牛顿,frac,left
来源: https://www.cnblogs.com/liangjiangjun/p/14022642.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有