ICode9

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

拟牛顿法,DFP,BFGS,SR-1

2022-03-26 17:31:16  阅读:234  来源: 互联网

标签:BFGS nabla frac Ty SR uv DFP ks TA


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,上式简记为\)

\[y_k=B_{k+1}s_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\ ||B-B_k||(范数),s.t.\ Bs_k=y_k,B=B^T \]

或者

\[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公式

\[B_{k+1}=B_k-\frac{B_k}{s_ks_k^TB_k}{s_k^TB_ks_k}+\frac{y_ky_k^T}{y_k^Ts_k} \]

推导过程和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

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

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

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

ICode9版权所有