牛顿法和拟牛顿法

牛顿法和拟牛顿法

跟最速下降法一样, 牛顿法也是求解无约束优化问题最早使用的经典算法之一. 其基本思想是用迭代点 x k x_k xk处的一阶导数 (梯度) 和二阶导数 (Hesse阵) 对目标函数进行二次函数近似, 然后把二次模型的极小点作为新的迭代点, 并不断重复这一过程, 直至求得满足精度的近似极小点
无约束最优化问题
min ⁡ x ∈ R n f ( x ) \min _{x \in \mathbf{R}^{n}} f(x) xRnminf(x)牛顿法迭代公式推导
f ( x ) f(x) f(x) 的 Hesse 阵 G ( x ) = ∇ 2 f ( x ) G(x)=\nabla^{2} f(x) G(x)=2f(x) 连续, 其在 x k x_k xk处的泰勒展开式的前三项: f ( x ) = f k + g k T ( x − x k ) + 1 2 ( x − x k ) T G k ( x − x k ) f(x)=f_{k}+g_{k}^{T}\left(x-x_{k}\right)+\frac{1}{2}\left(x-x_{k}\right)^{T} G_{k}\left(x-x_{k}\right) f(x)=fk+gkT(xxk)+21(xxk)TGk(xxk)这里 f k = f ( x k ) , g k = ∇ f ( x k ) , G k = ∇ 2 f ( x k ) = [ ∂ 2 f ∂ x i ∂ x j ] n×n ⁡ f_{k}=f\left(x_{k}\right), g_{k}=\nabla f\left(x_{k}\right), G_{k}=\nabla^{2} f\left(x_{k}\right)=\left[\frac{\partial^{2} f}{\partial x_{i} \partial x_{j}}\right]_{\operatorname{n \times n}} fk=f(xk),gk=f(xk),Gk=2f(xk)=[xixj2f]n×n
由函数 f f f有极值的必要条件是在极值点处一阶导数(梯度)为 0 0 0,当Hesse阵是正定矩阵时,有极小值.对 f ( x ) f(x) f(x)求一阶导得 ∇ f ( x ) = g k + G k ( x − x k ) = 0 \nabla f(x)=g_{k}+G_{k}\left(x-x_{k}\right)=0 f(x)=gk+Gk(xxk)=0 G k G_{k} Gk非奇异,由上式得牛顿法的迭代公式 x k + 1 = x k − G k − 1 g k x_{k+1}=x_{k}-G_{k}^{-1} g_{k} xk+1=xkGk1gk每次迭代需求Hesse阵的逆 G k − 1 G_{k}^{-1} Gk1,实际中可通过先解 G k d k = − g k G_{k} d_{k}=-g_{k} Gkdk=gk d k d_k dk,然后令 x k + 1 = x k + d k x_{k+1}=x_{k}+d_{k} xk+1=xk+dk来避免求逆.
迭代终止:计算 g k = ∇ f ( x k ) g_{k}=\nabla f\left(x_{k}\right) gk=f(xk),若 ∥ g k ∥ ≤ ε \left\|g_{k}\right\| \leq \varepsilon gkε,停算输出 x ∗ ≈ x k x^{*} \approx x_{k} xxk
拟牛顿法
牛顿法的优点是具有二阶收敛速度,但当Hesse阵 G ( x k ) = ∇ 2 f ( x k ) G\left(x_{k}\right)=\nabla^{2} f\left(x_{k}\right) G(xk)=2f(xk)不正定时,不能保证所产生的方向是目标函数在 x k x_k xk处的下降方向. 特别 G ( x k ) G\left(x_{k}\right) G(xk)奇异时,算法无法继续进行下去,尽管修正牛顿法可以克服这一缺陷, 但其中的修正参数 μ k \mu_{k} μk的选取很难把握, 过大或过小都会影响到收敛速度. 此外, 牛顿法的每一迭代步都需要目标函数的二阶导数, 即 Hesee 阵, 对于大规模问题其计算量是惊人的.
即将介绍的拟牛顿法克服了这些缺点, 并且在一定条件下这类算法仍然 具有较快的收敛速度 — 超线性收敛速度.
拟牛顿法的基本思想是在牛顿法中用某个近似矩阵 B k B_k Bk取代Hesee阵 G k = ∇ 2 f ( x k ) G_{k}=\nabla^{2} f\left(x_{k}\right) Gk=2f(xk) . 通常 B k B_k Bk应具有下面的三个特点
( 1 ) (1) (1) B k ≈ G k B_{k} \approx G_{k} BkGk, 使相应的算法产生的方向近似于牛顿方向,以确保算法有较快的收敛速度.
( 2 ) (2) (2) 所有的 B k B_k Bk是对称正定的,从而使得算法所产生的搜索方向是函数 f f f x k x_k xk处的下降方向.
( 3 ) (3) (3) 矩阵 B k B_k Bk更新规则相对简单,即通常采用一个秩 1 1 1或秩 2 2 2矩阵进行校正.
f : R n → R f : \mathbb{R}^{n} \rightarrow \mathbb{R} f:RnR在开集 D ⊂ R n D \subset \mathbb{R}^{n} DRn上二次连续可微, f f f x k + 1 x_{k+1} xk+1处二次近似模型为: f ( x ) ≈ f ( x k + 1 ) + g k + 1 T ( x − x k + 1 ) + 1 2 ( x − x k + 1 ) T G k + 1 ( x − x k + 1 ) f(x) \approx f\left(x_{k+1}\right)+g_{k+1}^{T}\left(x-x_{k+1}\right)+\frac{1}{2}\left(x-x_{k+1}\right)^{T} G_{k+1}\left(x-x_{k+1}\right) f(x)f(xk+1)+gk+1T(xxk+1)+21(xxk+1)TGk+1(xxk+1)对上式求导得 g ( x ) ≈ g k + 1 + G k + 1 ( x − x k + 1 ) g(x) \approx g_{k+1}+G_{k+1}\left(x-x_{k+1}\right) g(x)gk+1+Gk+1(xxk+1) x = x k x=x_{k} x=xk,位移 s k = x k + 1 − x k s_{k}=x_{k+1}-x_{k} sk=xk+1xk,梯度差 y k = g k + 1 − g k y_{k}=g_{k+1}-g_{k} yk=gk+1gk ,则有 G k + 1 s k ≈ y k ( 1 ) G_{k+1} s_{k} \approx y_{k}\qquad(1) Gk+1skyk(1)构造Hesse阵的近似矩阵 B k B_k Bk满足这种关系,即
B k + 1 s k = y k B_{k+1} s_{k}=y_{k} Bk+1sk=yk上式称作拟牛顿方程或拟牛顿条件,令 H k + 1 = B k + 1 − 1 H_{k+1}=B_{k+1}^{-1} Hk+1=Bk+11,则得到拟牛顿方程的另一形式: H k + 1 y k = s k ( 2 ) H_{k+1} y_{k}=s_{k}\qquad(2) Hk+1yk=sk(2) 其中 H k + 1 H_{k+1} Hk+1是Hesse阵逆的近似.
由牛顿法搜索方向为 d k = − G k − 1 g k d_{k}=-G_{k}^{-1} g_{k} dk=Gk1gk ,因此拟牛顿法的搜索方向 d k = − H k g k d_{k}=-H_{k} g_{k} dk=Hkgk B k d k = − g k B_{k} d_{k}=-g_{k} Bkdk=gk确定
根据 B k B_k Bk的第三个特点,可令 B k + 1 = B k + E k , H k + 1 = H k + D k ( 3 ) B_{k+1}=B_{k}+E_{k}, \quad H_{k+1}=H_{k}+D_{k} \qquad (3) Bk+1=Bk+Ek,Hk+1=Hk+Dk(3)其中 E k , D k E_{k}, D_{k} Ek,Dk是秩 1 1 1或秩 2 2 2矩阵。
将拟牛顿方程 ( 1 ) (1) (1)和校正规则 ( 3 ) (3) (3)确立的方法称为拟牛顿法

对称秩 1 1 1校正公式,在 ( 3 ) (3) (3)中取 E k = α u k u k T E_{k}=\alpha u_{k} u_{k}^{T} Ek=αukukT(秩 1 1 1矩阵性质),其中 α ∈ R , u k ∈ R n \alpha \in \mathbb{R}, u_{k} \in \mathbb{R}^{n} αR,ukRn由拟牛顿方程 ( 1 ) (1) (1) ( B k + α u k u k T ) s k = y k \left(B_{k}+\alpha u_{k} u_{k}^{T}\right) s_{k}=y_{k} (Bk+αukukT)sk=yk α ( u k T s k ) u k = y k − B k s k ( 4 ) \alpha\left(u_{k}^{T} s_{k}\right) u_{k}=y_{k}-B_{k} s_{k} \qquad(4) α(ukTsk)uk=ykBksk(4) ( u k T s k ) \left(u_{k}^{T} s_{k}\right) (ukTsk)计算结果为一常数,因此上式表明向量 u k u_k uk平行于 ( y k − B k s k ) \left(y_{k}-B_{k} s_{k}\right) (ykBksk),即存在常数 β \beta β使得 u k = β ( y k − B k s k ) u_{k}=\beta\left(y_{k}-B_{k} s_{k}\right) uk=β(ykBksk),故有 E k = α β 2 ( y k − B k s k ) ( y k − B k s k ) T E_{k}=\alpha \beta^{2}\left(y_{k}-B_{k} s_{k}\right)\left(y_{k}-B_{k} s_{k}\right)^{T} Ek=αβ2(ykBksk)(ykBksk)T于是,由 ( 4 ) (4) (4) α β 2 [ ( y k − B k s k ) T s k ] ( y k − B k s k ) = ( y k − B k s k ) \alpha \beta^{2}\left[\left(y_{k}-B_{k} s_{k}\right)^{T} s_{k}\right]\left(y_{k}-B_{k} s_{k}\right)=\left(y_{k}-B_{k} s_{k}\right) αβ2[(ykBksk)Tsk](ykBksk)=(ykBksk)
( y k − B k s k ) T s k ≠ 0 \left(y_{k}-B_{k} s_{k}\right)^{T} s_{k} \neq 0 (ykBksk)Tsk̸=0,可取 α β 2 [ ( y k − B k s k ) T s k ] = 1 \alpha \beta^{2}\left[\left(y_{k}-B_{k} s_{k}\right)^{T} s_{k}\right]=1 αβ2[(ykBksk)Tsk]=1,即 α β 2 = 1 ( y k − B k s k ) T s k , E k = ( y k − B k s k ) ( y k − B k s k ) T ( y k − B k s k ) T s k \alpha \beta^{2}=\frac{1}{\left(y_{k}-B_{k} s_{k}\right)^{T} s_{k}}, \quad E_{k}=\frac{\left(y_{k}-B_{k} s_{k}\right)\left(y_{k}-B_{k} s_{k}\right)^{T}}{\left(y_{k}-B_{k} s_{k}\right)^{T} s_{k}} αβ2=(ykBksk)Tsk1,Ek=(ykBksk)Tsk(ykBksk)(ykBksk)T故得称秩 1 1 1校正公式: B k + 1 = B k + ( y k − B k s k ) ( y k − B k s k ) T ( y k − B k s k ) T s k B_{k+1}=B_{k}+\frac{\left(y_{k}-B_{k} s_{k}\right)\left(y_{k}-B_{k} s_{k}\right)^{T}}{\left(y_{k}-B_{k} s_{k}\right)^{T} s_{k}} Bk+1=Bk+(ykBksk)Tsk(ykBksk)(ykBksk)T类似可得 H k + 1 = H k + ( s k − H k y k ) ( s k − H k y k ) T ( s k − H k y k ) T y k H_{k+1}=H_{k}+\frac{\left(s_{k}-H_{k} y_{k}\right)\left(s_{k}-H_{k} y_{k}\right)^{T}}{\left(s_{k}-H_{k} y_{k}\right)^{T} y_{k}} Hk+1=Hk+(skHkyk)Tyk(skHkyk)(skHkyk)T

BFGS算法
其基本思想是:在上节拟牛顿法 ( 3 ) (3) (3)式中修正矩阵 E k E_k Ek为秩 2 2 2矩阵: E k = α u k u k T + β v k v k T E_{k}=\alpha u_{k} u_{k}^{T}+\beta v_{k} v_{k}^{T} Ek=αukukT+βvkvkT其中 u k , v k ∈ R n u_{k}, v_{k} \in \mathbb{R}^{n} uk,vkRn是待定向量, α , β ∈ R \alpha, \beta \in \mathbb{R} α,βR是待定实数,于是拟牛顿方程 ( 1 ) (1) (1)可得 ( B k + α u k u k T + β v k v k T ) s k = y k \left(B_{k}+\alpha u_{k} u_{k}^{T}+\beta v_{k} v_{k}^{T}\right) s_{k}=y_{k} (Bk+αukukT+βvkvkT)sk=yk α ( u k T s k ) u k + β ( v k T s k ) v k = y k − B k s k \alpha\left(u_{k}^{T} s_{k}\right) u_{k}+\beta\left(v_{k}^{T} s_{k}\right) v_{k}=y_{k}-B_{k} s_{k} α(ukTsk)uk+β(vkTsk)vk=ykBksk满足上式的向量 u k u_k uk v k v_k vk不唯一,可取 u k u_k uk v k v_k vk分别平行于 B k s k B_{k} s_{k} Bksk y k y_k yk,即令 u k = γ B k s k , v k = θ y k u_{k}=\gamma B_{k} s_{k}, v_{k}=\theta y_{k} uk=γBksk,vk=θyk,其中 γ , θ \gamma, \theta γ,θ是待定参数,于是我们有 E k = α γ 2 B k s k s k T B k + β θ 2 y k y k T E_{k}=\alpha \gamma^{2} B_{k} s_{k} s_{k}^{T} B_{k}+\beta \theta^{2} y_{k} y_{k}^{T} Ek=αγ2BkskskTBk+βθ2ykykT u k u_k uk v k v_k vk的表达式代入 α ( u k T s k ) u k + β ( v k T s k ) v k = y k − B k s k \alpha\left(u_{k}^{T} s_{k}\right) u_{k}+\beta\left(v_{k}^{T} s_{k}\right) v_{k}=y_{k}-B_{k} s_{k} α(ukTsk)uk+β(vkTsk)vk=ykBksk α [ ( γ B k s k ) T s k ] ( γ B k s k ) + β [ ( θ y k ) T s k ] ( θ y k ) = y k − B k s k \alpha\left[\left(\gamma B_{k} s_{k}\right)^{T} s_{k}\right]\left(\gamma B_{k} s_{k}\right)+\beta\left[\left(\theta y_{k}\right)^{T} s_{k}\right]\left(\theta y_{k}\right)=y_{k}-B_{k} s_{k} α[(γBksk)Tsk](γBksk)+β[(θyk)Tsk](θyk)=ykBksk整理得 [ α γ 2 ( s k T B k s k ) + 1 ] B k s k + [ β θ 2 ( y k T s ) − 1 ] y k = 0 \left[\alpha \gamma^{2}\left(s_{k}^{T} B_{k} s_{k}\right)+1\right] B_{k} s_{k}+\left[\beta \theta^{2}\left(y_{k}^{T} s\right)-1\right] y_{k}=0 [αγ2(skTBksk)+1]Bksk+[βθ2(ykTs)1]yk=0此时可令 α γ 2 ( s k T B k s k ) + 1 = 0 \alpha \gamma^{2}\left(s_{k}^{T} B_{k} s_{k}\right)+1=0 αγ2(skTBksk)+1=0 β θ 2 ( y k T s ) − 1 = 0 \beta \theta^{2}\left(y_{k}^{T} s\right)-1=0 βθ2(ykTs)1=0,即 α γ 2 = − 1 s k T B k s k , β θ 2 = 1 y k T s k \alpha \gamma^{2}=-\frac{1}{s_{k}^{T} B_{k} s_{k}}, \quad \beta \theta^{2}=\frac{1}{y_{k}^{T} s_{k}} αγ2=skTBksk1,βθ2=ykTsk1从而得到如下得BFGS秩 2 2 2修正公式: B k + 1 = B k − B k s k s k T B k s k T B k s k + y k y k T y k T s k B_{k+1}=B_{k}-\frac{B_{k} s_{k} s_{k}^{T} B_{k}}{s_{k}^{T} B_{k} s_{k}}+\frac{y_{k} y_{k}^{T}}{y_{k}^{T} s_{k}} Bk+1=BkskTBkskBkskskTBk+ykTskykykT显然,若 B k B_k Bk对称,校正后的 B k + 1 B_{k+1} Bk+1也对称。
引理:设 B k B_k Bk对称正定, B k + 1 B_{k+1} Bk+1由BFGS校正公式确定,那么 B k + 1 B_{k+1} Bk+1对称正定的充要条件是 y k T s k > 0 y_{k}^{T} s_{k}>0 ykTsk>0

DFP算法
类似于BFGS校正公式的推导,可得DFP校正公式如下
H k + 1 = H k − H k y k y k T H k y k T H k y k + s k s k T s k T y k H_{k+1}=H_{k}-\frac{H_{k} y_{k} y_{k}^{T} H_{k}}{y_{k}^{T} H_{k} y_{k}}+\frac{s_{k} s_{k}^{T}}{s_{k}^{T} y_{k}} Hk+1=HkykTHkykHkykykTHk+skTykskskT显然,若 H k H_k Hk对称,校正后的 H k + 1 H_{k+1} Hk+1也对称
引理:设 H k H_k Hk对称正定, H k + 1 H_{k+1} Hk+1由DFP校正公式确定,那么 H k + 1 H_{k+1} Hk+1对称正定的充要条件是 s k T y k > 0 s_{k}^{T} y_{k}>0 skTyk>0

Broyden族算法
由BFGS和DFP校正的凸组合产生的一类校正族 B k + 1 θ = θ k B k + 1 D F P + ( 1 − θ k ) B k + 1 B F G S = B k − B k s k s k T B k s k T B k s k + y k y k T s k T y k + θ k u k u k T \begin{aligned} B_{k+1}^{\theta} &=\theta_{k} B_{k+1}^{\mathrm{DFP}}+\left(1-\theta_{k}\right) B_{k+1}^{\mathrm{BFGS}} \\ &=B_{k}-\frac{B_{k} s_{k} s_{k}^{T} B_{k}}{s_{k}^{T} B_{k} s_{k}}+\frac{y_{k} y_{k}^{T}}{s_{k}^{T} y_{k}}+\theta_{k} u_{k} u_{k}^{T} \end{aligned} Bk+1θ=θkBk+1DFP+(1θk)Bk+1BFGS=BkskTBkskBkskskTBk+skTykykykT+θkukukT其中, θ k \theta_{k} θk为实参数, u k u_k uk由下式定义: u k = s k T B k s k ( y k y k T s k − B k s k s T B k s k ) u_{k}=\sqrt{s_{k}^{T} B_{k} s_{k}}\left(\frac{y_{k}}{y_{k}^{T} s_{k}}-\frac{B_{k} s_{k}}{s^{T} B_{k} s_{k}}\right) uk=skTBksk (ykTskyksTBkskBksk)这类校正公式称为Broyden族,可以发现当 θ k = 0 \theta_{k}=0 θk=0,即得到BFGS公式,当 θ k = 1 \theta_{k}=1 θk=1得到DFP公式
对应地,关于 H k H_k Hk的Broyden族校正公式为 H k + 1 ϕ = ϕ k H k + 1 B F G S + ( 1 − ϕ k ) H k + 1 D F P = H k − H k y k y k T H k y k T H k y k + s k s k T s k T y k + ϕ k v k v k T \begin{aligned} H_{k+1}^{\phi} &=\phi_{k} H_{k+1}^{\mathrm{BFGS}}+\left(1-\phi_{k}\right) H_{k+1}^{\mathrm{DFP}} \\ &=H_{k}-\frac{H_{k} y_{k} y_{k}^{T} H_{k}}{y_{k}^{T} H_{k} y_{k}}+\frac{s_{k} s_{k}^{T}}{s_{k}^{T} y_{k}}+\phi_{k} v_{k} v_{k}^{T} \end{aligned} Hk+1ϕ=ϕkHk+1BFGS+(1ϕk)Hk+1DFP=HkykTHkykHkykykTHk+skTykskskT+ϕkvkvkT其中 ϕ k \phi_{k} ϕk为实参数, v k v_k vk由下式定义: v k = y k T H k y k ( s k y k T s k − H k y k y k T H k y k ) v_{k}=\sqrt{y_{k}^{T} H_{k} y_{k}}\left(\frac{s_{k}}{y_{k}^{T} s_{k}}-\frac{H_{k} y_{k}}{y_{k}^{T} H_{k} y_{k}}\right) vk=ykTHkyk (ykTskskykTHkykHkyk)可以证明参数 θ k \theta_{k} θk ϕ k \phi_{k} ϕk之间的关系为 θ k = 1 − ϕ k 1 − ϕ k ( 1 − μ k ) \theta_{k}=\frac{1-\phi_{k}}{1-\phi_{k}\left(1-\mu_{k}\right)} θk=1ϕk(1μk)1ϕk
其中 μ k = ( s k T B k s k ) ( y k T H k y k ) ( s k T y k ) 2 \mu_{k}=\frac{\left(s_{k}^{T} B_{k} s_{k}\right)\left(y_{k}^{T} H_{k} y_{k}\right)}{\left(s_{k}^{T} y_{k}\right)^{2}} μk=(skTyk)2(skTBksk)(ykTHkyk)
u k T s k = 0 u_{k}^{T} s_{k}=0 ukTsk=0 v k T y k = 0 v_{k}^{T} y_{k}=0 vkTyk=0,因此Broyden族校正公式于任何参数 θ k \theta_{k} θk ϕ k \phi_{k} ϕk都满足牛顿方程 ( 1 ) (1) (1) ( 2 ) (2) (2)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值