[toc]
最速下降法
最速下降法即下降方向是梯度的负方向,步长由精确线搜索得到
一般步骤如下:
- 给出$x_0,k:=0$
- 若终止条件满足,迭代停止
- 计算$d_k=-g_k$
- 精确线搜索得到$\alpha_k$
- $x_{k+1}:=x_k-\alpha_kg_k,k:=k+1$,转步2
对目的函数$min_x\ f(x)=\frac{1}{2}x^TAx+b^Tx+c$
一阶导数$g_k= \nabla{f(x_k)} =Ax+b$
又更新公式为$x_{k+1}=x_k-\alpha_kg_k$
求$\alpha$,由$g_{k+1}^Tg_k=0$,带入
所以
所以$\alpha_k=\Large\frac{g_k^Tg_k}{g_k^TAg_k}$
所以$x_{k+1}=x_k-\Large{\frac{g_k^Tg_k}{g_k^TAg_k}}\normalsize g_k$
Newton 方法
对于要优化的目标函数$f(x)$,当前迭代点为$x_k$,则$f(x)$在$x_k$处的Taylor展开式为
当$x_k$固定时,$d$取多少使得$f(x_k+d)$最小?当$f(x_k+d)$最小,则$f(x_k+d)$对$d$的偏导为0
拟Newton方法
Newton方法的缺点:每步迭代都需要计算Hesse矩阵,为此需要计算二阶偏导;若该方法产生的迭代点不能充分接近极小点,$G_k$的正定性不能保证
Newton方法的优点:具有二阶收敛速度
所以我们构造一种不需要计算二阶偏导,又具有较快的收敛速度,我们采用了拟Newton方法
对目标函数$f(x)$在$x_{k+1}$处进行Taylor展开,得到
令$x=x_k$,有$f(x_k)=f(x_{k+1})+G_{k+1}(x_k-x_{k+1})$
令$f(x_{k+1})-f(x_k)=y_k,x_{k+1}-x_k=s_k$,则有
因为$B_{k+1}$是$G_{k+1}$的近似矩阵,所以同样的也有:
若记$H_{k+1}=B_{k+1}^{-1}$,则
拟牛顿方法是确定迭代方向d的最优化方法
每次迭代中,我们还要修正$H_{k+1}$,即是$H_{k+1}=H_k+\Delta{H_k}$中确定$\Delta H_k$
拟Newton法修正公式
对称秩1公式(Symmetric Rank 1,SR1)
令$B_{k+1}=arg\ min_{B^T=B}||B-B_k||$
考虑更新$B_{k+1}=B_k + \frac{1}{a}vv^T$,代入$B_{k+1}s_k=y_k$,得到
所以$v$与$y_k-B_ks_k$同向,令$v=\tilde{a}(y_k-B_ks_k)$,则
设$b=\Large\frac{\tilde a^2}{a}$,两边同乘于$s_k$,得
由$b=\Large\frac{\tilde a^2}{a}$,令$\tilde a=1$,得到$a=(y_k-B_ks_k)^Ts_k$
将$\tilde a=1$代入$v=\tilde{a}(y_k-B_ks_k)$,得到$v=y_k-B_ks_k$
将$v=y_k-B_ks_k,a=(y_k-B_ks_k)^Ts_k$代入$B_{k+1}=B_k+\Large\frac{1}{a}\normalsize vv^T$,得到
DFP公式
对秩2公式$H_{k+1}=H_k + \alpha u_ku_k^T+ \beta v_kv_k^T$
令$E_k = \alpha u_ku_k^T+ \beta v_kv_k^T$则$H_{k+1}=H_k+E_k$,代入拟牛顿方程$H_{k+1}y_k=s_k$,得到
其中$v_k^Ty_k=\begin{bmatrix}v_1\...\\v_n\end{bmatrix}^T\begin{bmatrix}y_1\...\\y_n\end{bmatrix}=v_1y_1+…+v_ny_n$是一个常数,$u_k^Ty_k$同理
即是
假设$u_k=rH_ky_k,v_k=\theta s_k$,则
代入$\alpha(u_k^Ty_k)u_k+\beta(v_k^Ty_k)v_k=s_k-H_ky_k$,得
令$[\alpha r^2(y_k^TH_ky_k)+1]=0,[\beta\theta^2(s_k^Ty_k)-1]=0$.得到
所以
为什么$H_k^T=H_k$?
因为Hesse矩阵是对称矩阵,而$H_k=B_k^{-1}\approx G_k^{-1}$
BFGS公式
考虑$B_{k+1}=B_k+\alpha{vv^T}+\beta{uu^T}$
代入拟牛顿方程$B_{k+1}s_k=y_k$,得
观察式子,可令$v=ry_k,u=\theta B_ks_k$,代入上式得
则,可令
又
将$\alpha r^2$和$\beta\theta^2$代入,得