06
作者:互联网
无约束优化-----拟牛顿法
1拟牛顿方程
牛顿法的迭代:
\[x^{k+1} = x^k - α_kG({x}^k)^{-1} ∇f({x}^k)\tag1 \]考虑以下的坏情况:
- 目标函数不是凸的,因此Hessian矩阵\(G({x})\)可能不是正定的。
- 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}{算法流程} }}\)
- 选择初始点\(x_1\)和初始正定对称矩阵\(H_1\),设k = 1。
- 计算\(g^k\)。如果\(g^k = 0\),停止;否则,转到步骤3.
- 计算\(H_k\),让\(d^k =−H_kg^k\)。
- 直线搜索:用精确性搜索或者非精确性搜索选择步长 \(α_k\)
- 迭代: \(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 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}} 的迭代公式得到BFGS算法关于 G_k 的迭代公式。
记 \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}\
称为BFGS算法关于 G_{k} 的迭代公式。
其中Sherman-Morrison公式:假设 A 是 n 阶可逆矩阵, u,v 是 n 维向量,且 A+uv^T 也是可逆矩阵,则: (A+uv^T)^{-1}=A^{-1}-\frac{A^{-1}uv^TA^{-1}}{1+v^TA^{-1}u}\
令由DFP算法 G_{k} 的迭代公式得到的 G_{k+1} 记作 G^{DFP} ,由BFGS算法 G_{k} 的迭代公式得到的 G_{k+1} 记作 G^{BFGS} ,由于 G^{DFP} 和 G^{BFGS} 均满足拟牛顿条件,则两者的线性组合 \begin{align} \& G_{k+1}=\alpha G^{DFP}+\left(1-\alpha\right) G^{BFGS}\end{align}\
也满足拟牛顿条件,而且是正定的。其中, 0 \leq \alpha \leq 1 。该类算法称为Broyden类算法。
同时,让 \phi 取不同的值,Broyden族可以退化为之前的拟牛顿方法
{\text { BFGS corresponds to } \phi=0}
{\text { DFS corresponds to } \phi=1}
{\text { SR1 corresponds to } \phi=\frac{y^{T} s} {\left(y^{T} s-s^{T} B s\right)}}
参考文献
李航:《统计学习方法》,清华大学出版社
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