拟牛顿法,DFP,BFGS,SR-1
作者:互联网
1.拟牛顿法思想
考虑\(f(x)\)在当前是\(x^k\)处的二次函数
\[m_k(x):=f(x^k)+\nabla f(x^k)^T(x-x^k)+\frac{1}{2}(x-x^k)^TB_k(x-x^k) \]其中\(B_k\succ 0\)
利用min \(m_k(x)\)得方向,\(d^k=-B_k^{-1}\nabla f(x^k)\)
拟牛顿法框架
- 0.初始化 \(x^0,\epsilon,B_0 \succ 0,k:=0\)
- 1.如果\(||\nabla f(x^k)|| \le \epsilon?\),注意这里对矩阵是做范数操作
- 2.计算\(d^k=-B_k^{-1}\nabla f(x^k)\),这里矩阵\(B_k\)每次都要修正
- 3.确定步长\(\alpha_k\)
- 4.令\(x^{k+1}=x^k+\alpha_k d^k\)
关键问题:\(B_{k+1}\)矩阵的确定
2.拟牛顿法方程(基本要求)
在\(x^{k+1}\)处,要获得\(B_{k+1}\)
\[\nabla f(x^{k+1})-\nabla f(x^k)=B_{k+1}(x^{k+1}-x^k) \]理解
\[\begin{cases}x^{k+1}:\nabla f(x^{k+1});B_{k+1}\\ x^{k}:\nabla f(x^{k});B_{k} \end{cases} \]\[\Rightarrow \nabla f(x^{k+1})-\nabla f(x^k)=\nabla^2f(\xi)(x^{k+1}-x^k) \]\[\xi =\lambda x^k +(1-\lambda) x^{k+1},\lambda \in {0,1},中值定理 \]\[\]\(({B_{k+1}})_{n\times n}\in S^n,有\frac{n(n+1)}{2}个元素待定,n个方程\)
\(记y_k=\nabla f(x^{k+1})-\nabla f(x^k),s_k=x^{k+1}-x^k,上式简记为\)
\(共记H_k=B_k^{-1}\)
拟牛顿法方程表示为
\[s_k=H_{k+1}y_k \]满足拟牛顿法方程的矩阵有很多!
3.构建矩阵\(B_k\)方法
基于已有信息\((y_k,S_k,B_k)\)获取\(B_{k+1}\),或基于\((y_k,s_k,H_k)\)获取\(H_{k+1}\)
第一类方法,选择满足拟牛顿法方程且与\(B_k\)近似的矩阵
或者
\[min\ ||H-H_k||,s.t.\ Hy_k = s_k \]第二类方法:对\(B_k\)或者\(H_k\)进行校正,如(重点)
\[令B_{k+1}=B_k+\Delta B \]\[\to rank-2校正,要求\Delta B的秩为2,有DFP方法,BFGS方法 \]\[\to rank-1校正,要求\Delta B的秩为1,有SR-方法 \]4.DFP方法(Davidan-Fletcher-Powell)
DFP方法可以看做是对\(H_k\)进行rank-2校正
\[(DFP)H_{k+1}=H_k-\frac{H_ky_ky_k^TH_k}{y_k^TH_ky_k} + \frac{s_ks_k^T}{y_k^Ts_k} \]什么是秩1 矩阵?
\(任意向量 u=\begin{pmatrix}
u_1 \\
u_2 \\
...\\
u_n
\end{pmatrix}, v=\begin{pmatrix}
v_1 \\
v_2 \\
...\\
v_n
\end{pmatrix},u^Tv就是秩1矩阵,u^Tu也是秩1矩阵,u^Tu+v^Tv就是秩2矩阵,u,v线性无关\)
则\(H_{k+1}=H_k+auu^T+bw^T,a,b是标量,u,v\in R^n,注意s.t.\ H_{k+1}y_k=s_k\)
\(代入H_ky_k+auu^Ty_k+bvv^Ty_k=s_k\)
\(H_ky_k+auu^Ty_k+bvv^Ty_k-s_k=0\)
\(令u=H_ky_k,并且令前面一半H_ky_k+auu^Ty_k =0(随便取一个解就行)\)
\(得到1+au^Ty_k=0\)
\(即a=-\frac{1}{u^Ty_k}=-\frac{1}{y_k^TH_k^Ty_k}\)
\(继续令 v=s_k,并令bv(v^Ty_k)-s_k=0,得到(bv^Ty_k-1)=0,b=\frac{1}{v^Ty_k}=\frac{1}{s_k^Ty_k}\)
好了,结合上面两个结论就是DFP的公式
\(\begin{cases}
a=-\frac{1}{u^Ty_k}=-\frac{1}{y_k^TH_k^Ty_k}\\
b=\frac{1}{v^Ty_k}=\frac{1}{s_k^Ty_k}
\end{cases}\)
还有一条路,如果矩阵范数恰好是Frobenius范数,\(B_{k+1}\)是可以求出来的,也就是最优偶问题
\(\begin{cases}
min\ ||B-B_k||_F\\
s.t.\ Bs_k =y_k \\
B=B^T
\end{cases}\Rightarrow B^*=B_{k+1}\),同时,\(B_{k+1}\)的公式就是DFP公式
5.BFGS(Broyden-Fletcher-Goldfarb-Shannon)方法
这个Shannon 就是信息论的鼻祖
BFGS主要是从\(B_k\),不是从\(H_k\)入手
BFGS公式
推导过程和DFP过程是对称的
求\(B_{k+1}还要求逆,这么多此一举的原因是什么\)?
\(B_{k+1}^{-1}可利用Sherman-Morrison公式显示写出\)
Sherman-Morrison公式
\(设A\in R^{m\times n},且A为可逆矩阵,u,v\in R^n为列向量,则A+uv^T可逆,当且仅当1+v^TA^{-1}u\ne0,且当A+uv^T可逆时,该逆矩阵公式如下\)
\[(A+uv^T)^{-1}=A^{-1}-\frac{A^{-1}uv^{-1}A^{-1}}{1+v^TA^{-1}u} \]证明
\(思路,即证明(A+uv^T)(A+uv^T)^T=(A+uv^T)^T(A+uv^T)=I即可\)
\((A+uv^T)(A^{-1}-\frac{A^{-1}uv^{-1}A^{-1}}{1+v^TA^{-1}u})\)
\(=AA^{-1}+uv^TA^{-1}-\frac{AA^{-1}uv^TA^{-1}+uv^TA^{-1}uv^TA^{-1}}{1+v^TA^{-1}u}\)
\(=I+uv^TA^{-1}-\frac{u(1+v^TA^{-1}u)}{1+v^TA^{-1}u}\)
\(注意此时的分母1+v^TA^{-1}u 是一个标量,上下可以约去,不过要求1+v^TA^{-1}u \ne 0\)
\(=I+uv^TA^{-1}-uv^TA^{-1}\)
\(=I\)
扩展
\((A+\frac{uv^T}{\lambda})^{-1}=A^{-1}-\frac{A^{-1}uvA^{-1}}{\lambda + v^TA^{-1}u}\)
\(或者 (A-\frac{uv^T}{\lambda})^{-1}=A^{-1}-\frac{A^{-1}uvA^{-1}}{\lambda - v^TA^{-1}u}\)
回到BFGS
BFGS是目前最有效的拟牛顿法,具有超线性收敛的性质
6.Broyden族
DFP与BFGS的线性组合
\(\lambda B_{k+1}^{DFP} + (1-\lambda ) B_{k+1}^{BFGS},\lambda \in [0,1]\)
7.SR-1方法
rank-1校正
\[B_{k+1}=B_{k}+\frac{(y_k-B_ks_k)(y_k-B_ks_k)^T}{(y_k-B_ks_k)s_k} \]\[B_{k+1}=B_k+auu^T \]\[满足\quad B_{k+1}s_k=y_k \]\[B_ks+k+au(u^Ts_k)=y_k \]\[au(u^Ts_k)=y_k-B_ks_k \]\(令u=y_k-B_ks_k,得到au^Ts_k=1\)
\(即a=\frac{1}{u^Ts_k}=\frac{1}{(y_k-B_ks_k)^Ts_k}\)
将\(\begin{cases}
u=y_k-B_ks_k \\
a=\frac{1}{u^Ts_k}=\frac{1}{(y_k-B_ks_k)^Ts_k}\\
\end{cases}代入 \quad B_{k+1}s_k=y_k\)
SR-1迭代公式更简单,但不能保证正定性,适当条件下才能达到n步超线性收敛
标签:BFGS,nabla,frac,Ty,SR,uv,DFP,ks,TA 来源: https://www.cnblogs.com/boyknight/p/16058125.html