第六章: 拟牛顿法
文章目录
拟牛顿法由物理学家W.C.Davidson于上世纪五十年代中期首创, 并由Fletcher和Powell证实有效性, 从而一夜之间转变了非线性优化的格局. 在接下来的二十年里, 遂出现了大量的变体.
第二章指出, 拟牛顿法实质上就是改变目标函数在局部的二次近似模型, 具体地, 就是以对称正定阵 B k B_k Bk代替原有的Hessian, 并在迭代中 不断更新. 第三章则指出拟牛顿法的 超线性收敛速度. 由于它的实施过程并不涉及Hessian, 因此在某些问题上拟牛顿法比牛顿法要更加方便有效. 本章主要讨论拟牛顿法在 中小型问题上的应用, 对于大型问题我们将讨论放在下一章.
值得一提的是, 如今Hessian并不需要显式地获取. 我们可以用后面将要介绍的自动微分技术 (automatic differentiaton techniques), 仅用函数值或一阶信息就能在一定精度下计算之. 不过 自动微分在许多场景下仍然是无法应用的, 且二阶信息在实际计算上并不比一阶信息优越. 因此拟牛顿法仍然广受欢迎.
1. BFGS算法
1.1 算法介绍
最受欢迎的拟牛顿法要数BFGS算法, 其命名为发明者的首字母缩写: Broyden-Fletcher-Goldfarb-Shanno. 我们在第二章中曾经提及DFP算法 (另一种拟牛顿法)并简要概述了BFGS算法. 下面我们来详细讨论后者的构成、理论性质和实施要点.
首先是拟牛顿法对目标函数的二次近似: 设当前迭代点为
x
k
x_k
xk, 设二次近似模型为
m
k
(
p
)
=
f
k
+
∇
f
k
T
p
+
1
2
p
T
B
k
p
.
m_k(p)=f_k+\nabla f_k^Tp+\frac{1}{2}p^TB_kp.
mk(p)=fk+∇fkTp+21pTBkp.这里
B
k
B_k
Bk为
n
×
n
n\times n
n×n的对称正定矩阵, 它在每一步迭代都会被更新. 对这一凸二次模型, 极小点
p
k
p_k
pk具有显式表达式:
p
k
=
−
B
k
−
1
∇
f
k
,
p_k=-B_k^{-1}\nabla f_k,
pk=−Bk−1∇fk,从而新的迭代点为
x
k
+
1
=
x
k
+
α
k
p
k
,
x_{k+1}=x_k+\alpha_kp_k,
xk+1=xk+αkpk,其中步长
α
k
\alpha_k
αk的选取满足Wolfe条件.
下面我们来具体讨论
B
k
B_k
Bk的更新方法. 假设在
x
k
+
1
x_{k+1}
xk+1处有新的二次近似模型:
m
k
+
1
(
p
)
=
f
k
+
1
+
∇
f
k
+
1
T
p
+
1
2
p
T
B
k
+
1
p
.
m_{k+1}(p)=f_{k+1}+\nabla f_{k+1}^Tp+\frac{1}{2}p^TB_{k+1}p.
mk+1(p)=fk+1+∇fk+1Tp+21pTBk+1p.对于
B
k
+
1
B_{k+1}
Bk+1我们应当加什么样的约束呢? 比如:
- B k + 1 B_{k+1} Bk+1的对称性.
-
m
k
+
1
m_{k+1}
mk+1的梯度应当等于目标函数
f
f
f在最近的两个迭代点
x
k
,
x
k
+
1
x_k,x_{k+1}
xk,xk+1上的梯度. 由于
m
k
+
1
(
0
)
m_{k+1}(0)
mk+1(0)已经是
∇
f
k
+
1
\nabla f_{k+1}
∇fk+1, 因此只需
∇
m
k
+
1
(
−
α
k
p
k
)
=
∇
f
k
+
1
−
α
k
B
k
+
1
p
k
=
∇
f
k
\nabla m_{k+1}(-\alpha_kp_k)=\nabla f_{k+1}-\alpha_kB_{k+1}p_k=\nabla f_k
∇mk+1(−αkpk)=∇fk+1−αkBk+1pk=∇fk
⇒
B
k
+
1
α
k
p
k
=
∇
f
k
+
1
−
∇
f
k
.
\Rightarrow B_{k+1}\alpha_kp_k=\nabla f_{k+1}-\nabla f_k.
⇒Bk+1αkpk=∇fk+1−∇fk.记
s
k
=
x
k
+
1
−
x
k
=
α
k
p
k
,
y
k
=
∇
f
k
+
1
−
∇
f
k
,
s_k=x_{k+1}-x_k=\alpha_kp_k,\quad y_k=\nabla f_{k+1}-\nabla f_k,
sk=xk+1−xk=αkpk,yk=∇fk+1−∇fk,则之前的条件变成
B
k
+
1
s
k
=
y
k
.
B_{k+1}s_k=y_k.
Bk+1sk=yk.我们将此称为割线方程 (secant equation), 也有称为拟牛顿方程. 注意到
B
k
+
1
B_{k+1}
Bk+1是对称正定阵, 因此割线方程隐含条件
s
k
T
y
k
>
0
s_k^Ty_k>0
skTyk>0. 事实上当
f
f
f是强凸函数时, 这一隐含条件是自动成立的. 而对非凸函数这一点并不总是对的. 因此我们有必要通过线搜索的方式强加之隐含条件. 不过这在(强)Wolfe条件下已能保证: 由曲率条件, 我们有
∇
f
k
+
1
T
s
k
≥
c
2
∇
f
k
T
s
k
\nabla f_{k+1}^Ts_k\ge c_2\nabla f_k^Ts_k
∇fk+1Tsk≥c2∇fkTsk
⇒
y
k
T
s
k
≥
(
c
2
−
1
)
α
k
∇
f
k
T
p
k
.
\Rightarrow y_k^Ts_k\ge(c_2-1)\alpha_k\nabla f_k^Tp_k.
⇒ykTsk≥(c2−1)αk∇fkTpk.由于
c
2
<
1
c_2<1
c2<1,
p
k
p_k
pk为下降方向 (这是由于
B
k
B_k
Bk正定, 后面会说到这可以通过要求初始
B
0
B_0
B0正定获得) , 因此右端为正数, 隐含条件成立.
注意隐含条件成立的情况下, 割线方程的解仍然可能有无穷个 (我们后面会证明满足隐含条件的正定矩阵是存在的). 这是因为对称 B B B的自由度为 n ( n + 1 ) / 2 n(n+1)/2 n(n+1)/2, 而隐含条件至多可以去掉 n n n个自由度. 我们当然可以通过 B B B的正定性得到其 n n n个主子式为正, 从而加上 n n n个不等式约束, 但这仍然不能保证唯一解. 因此我们还要求 - B k + 1 B_{k+1} Bk+1在某种意义下与当前的 B k B_k Bk是最接近的. 这也称为是最小修正原理.
综合以上, 我们就是要求解下面的问题: min B ∥ B − B k ∥ s . t . B = B T , B s k = y k , \begin{array}{ll}\min_B & \Vert B-B_k\Vert\\\mathrm{s.t.} & B=B^T,\quad Bs_k=y_k,\end{array} minBs.t.∥B−Bk∥B=BT,Bsk=yk,其中 ∥ ⋅ ∥ \Vert\cdot\Vert ∥⋅∥为某种范数, 而不同的选择会导致不同的你牛顿方法. 其中最易于求解的且可以导出尺度不变方法的范数为加权Frobenius范数: ∥ A ∥ W = ∥ W 1 / 2 A W 1 / 2 ∥ F , \Vert A\Vert_W=\Vert W^{1/2}AW^{1/2}\Vert_F, ∥A∥W=∥W1/2AW1/2∥F,其中 ∥ ⋅ ∥ F \Vert\cdot\Vert_F ∥⋅∥F定义为 ∥ C ∥ F 2 = ∑ i = 1 n ∑ j = 1 n c i j 2 \Vert C\Vert_F^2=\sum_{i=1}^n\sum_{j=1}^nc_{ij}^2 ∥C∥F2=∑i=1n∑j=1ncij2, W W W选取为满足关系式 W y k = s k Wy_k=s_k Wyk=sk的加权矩阵 (这一点保证了尺度不变性). 事实上, W W W有一个天然的选取方式, 即 W = G ˉ k − 1 W=\bar{G}_k^{-1} W=Gˉk−1, 其中 G ˉ k \bar{G}_k Gˉk为平均Hessian, 定义为 G ˉ k = ∫ 0 1 ∇ 2 f ( x k + τ α k p k )   d τ . \bar{G}_k=\int_0^1\nabla^2f(x_k+\tau\alpha_kp_k)\,\mathrm{d}\tau. Gˉk=∫01∇2f(xk+ταkpk)dτ.则由Taylor定理, 就有 y k = G ˉ k α k p k = G ˉ k s k . y_k=\bar{G}_k\alpha_kp_k=\bar{G}_ks_k. yk=Gˉkαkpk=Gˉksk.以上优化问题具有唯一解为 ( D F P ) B k + 1 = ( I − ρ k y k s k T ) B k ( I − ρ k s k y k T ) + ρ k y k y k T , \mathrm{(DFP)}\quad B_{k+1}=(I-\rho_ky_ks_k^T)B_k(I-\rho_ks_ky_k^T)+\rho_ky_ky_k^T, (DFP)Bk+1=(I−ρkykskT)Bk(I−ρkskykT)+ρkykykT,其中 ρ k = 1 y k T s k . \rho_k=\frac{1}{y_k^Ts_k}. ρk=ykTsk1.以上更新 B k B_k Bk的公式称为DFP公式, 其推导过程在此略去. 之后我们还会介绍BFGS公式并推导之. DFP公式的推导则是类似的. 利用Sherman-Morrison-Woodbury公式 (Low Rank Update), 我们还可以直接更新 B k B_k Bk的逆, 从而省去了计算 B k − 1 p k B_k^{-1}p_k Bk−1pk的步骤而只需进行矩阵-向量乘积. 将 B k B_k Bk的逆记为 H k = B k − 1 . H_k=B_k^{-1}. Hk=Bk−1.由DFP公式和Sherman-Morrison-Woodbury公式, 我们就有 ( D F P ) 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 y k T s k . (\mathrm{DFP})\quad 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}. (DFP)Hk+1=Hk−ykTHkykHkykykTHk+ykTskskskT.注意到DFP公式的后两项都是秩为1的矩阵, 因此DFP公式可以看做是对 H k H_k Hk的秩2修正 (类似地, 对 B k B_k Bk也是如此). 这就反映了拟牛顿法的本质思想: 与其在每一步耗时耗力地计算 H k H_k Hk( B k B_k Bk), 我们直接用秩为2的项对其进行修正, 从而大幅度减少计算量. 与此同时, 关于目标函数最新的信息也就集中在这一秩为2的项中.
DFP公式无疑是高效的, 不过它很快就被BFGS公式所超越. 后者的想法与前者的唯一不同在于: 后者是基于
H
k
+
1
H_{k+1}
Hk+1与
H
k
H_k
Hk的差距不大而导出的, 而前者是基于
B
k
+
1
B_{k+1}
Bk+1与
B
k
B_k
Bk的差距不大而导出. 尽管句法结构上极其相似, 但实际上确是可能做着完全不同的事情——就算
B
k
+
1
B_{k+1}
Bk+1与
B
k
B_k
Bk及其接近, 也不免
H
k
+
1
H_{k+1}
Hk+1与
H
k
H_k
Hk相距甚远. 这与矩阵的条件数相关. 事实证明, 这样的想法能够带来更佳的效果, 从而也使BFGS公式成为最有效的拟牛顿更新公式. 下面我们来推导这一公式:
我们现在的问题转为
min
H
∥
H
−
H
k
∥
W
s
.
t
.
H
=
H
T
,
H
y
k
=
s
k
.
\begin{array}{ll}\min_H & \Vert H-H_k\Vert_W\\\mathrm{s.t.} & H=H^T,\quad Hy_k=s_k.\end{array}
minHs.t.∥H−Hk∥WH=HT,Hyk=sk.注意此时的
H
k
+
1
H_{k+1}
Hk+1应当满足的割线方程是
H
k
+
1
y
k
=
s
k
H_{k+1}y_k=s_k
Hk+1yk=sk; 目标函数中的加权矩阵
W
W
W则应满足
W
s
k
=
y
k
Ws_k=y_k
Wsk=yk (这取之前的
G
ˉ
k
\bar{G}_k
Gˉk即可). 由于皆为等式约束, 因此可用Lagrange乘子法求其稳定点. 为方便起见, 这里短暂记
H
k
=
H
∗
=
(
h
1
∗
,
h
2
∗
,
…
,
h
n
∗
)
H_k=H^*=(h_1^*,h_2^*,\ldots,h_n^*)
Hk=H∗=(h1∗,h2∗,…,hn∗). 设
H
=
(
H
i
j
)
=
(
h
1
,
h
2
,
…
,
h
n
)
,
W
=
(
w
i
j
)
=
(
w
1
,
w
2
,
…
,
w
n
)
H=(H_{ij})=(h_1,h_2,\ldots,h_n),W=(w_{ij})=(w_1,w_2,\ldots,w_n)
H=(Hij)=(h1,h2,…,hn),W=(wij)=(w1,w2,…,wn). 则
Λ
=
∑
i
j
(
w
i
⋅
(
h
j
−
h
j
∗
)
)
(
w
j
⋅
(
h
i
−
h
i
∗
)
)
−
∑
i
<
j
α
i
j
(
H
i
j
−
H
j
i
)
−
λ
T
(
H
y
k
−
s
k
)
=
∑
i
j
(
w
i
⋅
(
h
j
−
h
j
∗
)
)
(
w
j
⋅
(
h
i
−
h
i
∗
)
)
−
∑
i
j
α
i
j
H
i
j
−
λ
T
(
H
y
k
−
s
k
)
(
定
义
α
i
j
=
−
α
j
i
)
.
\begin{aligned}\Lambda&=\sum_{ij}(w_i\cdot(h_j-h_j^*))(w_j\cdot(h_i-h_i^*))-\sum_{i<j}\alpha_{ij}(H_{ij}-H_{ji})-\lambda^T(Hy_k-s_k)\\&=\sum_{ij}(w_i\cdot(h_j-h_j^*))(w_j\cdot(h_i-h_i^*))-\sum_{ij}\alpha_{ij}H_{ij}-\lambda^T(Hy_k-s_k)(定义\alpha_{ij}=-\alpha_{ji}).\end{aligned}
Λ=ij∑(wi⋅(hj−hj∗))(wj⋅(hi−hi∗))−i<j∑αij(Hij−Hji)−λT(Hyk−sk)=ij∑(wi⋅(hj−hj∗))(wj⋅(hi−hi∗))−ij∑αijHij−λT(Hyk−sk)(定义αij=−αji).这里
A
=
(
α
i
j
)
,
λ
A=(\alpha_{ij}),\lambda
A=(αij),λ均为Lagrange乘子. 求偏导并置0可得 (以下记
y
k
=
y
,
s
k
=
s
y_k=y,s_k=s
yk=y,sk=s)
0
=
∂
Λ
∂
H
i
j
=
∑
l
2
w
i
l
(
w
j
⋅
(
h
l
−
h
l
∗
)
)
−
α
i
j
−
λ
i
y
j
=
2
∑
l
w
i
l
(
W
T
(
H
−
H
∗
)
)
j
l
−
α
i
j
−
λ
i
y
j
=
2
∑
l
(
W
T
(
H
−
H
∗
)
)
j
l
w
l
i
−
α
i
j
−
λ
i
y
j
(
∵
W
的
对
称
性
)
=
2
(
W
T
(
H
−
H
∗
)
W
)
j
i
−
α
i
j
−
λ
i
y
j
=
2
(
W
(
H
−
H
∗
)
W
)
i
j
−
α
i
j
−
λ
i
y
j
(
∵
W
和
H
的
对
称
性
)
.
\begin{aligned}0=\frac{\partial\Lambda}{\partial H_{ij}}&=\sum_l2w_{il}(w_j\cdot(h_l-h_l^*))-\alpha_{ij}-\lambda_iy_j\\&=2\sum_lw_{il}(W^T(H-H^*))_{jl}-\alpha_{ij}-\lambda_iy_j\\&=2\sum_l(W^T(H-H^*))_{jl}w_{li}-\alpha_{ij}-\lambda_iy_j(\because W的对称性)\\&=2(W^T(H-H^*)W)_{ji}-\alpha_{ij}-\lambda_iy_j\\&=2(W(H-H^*)W)_{ij}-\alpha_{ij}-\lambda_iy_j(\because W和H的对称性).\end{aligned}
0=∂Hij∂Λ=l∑2wil(wj⋅(hl−hl∗))−αij−λiyj=2l∑wil(WT(H−H∗))jl−αij−λiyj=2l∑(WT(H−H∗))jlwli−αij−λiyj(∵W的对称性)=2(WT(H−H∗)W)ji−αij−λiyj=2(W(H−H∗)W)ij−αij−λiyj(∵W和H的对称性).写成矩阵形式就得到以下式子:
0
=
2
W
(
H
−
H
∗
)
W
−
A
−
λ
y
T
,
A
T
=
−
A
,
W
T
=
W
,
H
T
=
H
,
(
H
∗
)
T
=
H
∗
,
H
y
=
s
,
W
s
=
y
.
\begin{aligned}0&=2W(H-H^*)W-A-\lambda y^T,\\A^T&=-A,\\W^T&=W,\\H^T&=H,\\(H^*)^T&=H^*,\\Hy&=s,\\Ws&=y.\end{aligned}
0ATWTHT(H∗)THyWs=2W(H−H∗)W−A−λyT,=−A,=W,=H,=H∗,=s,=y.我们可以利用转置和
H
,
W
H,W
H,W的对称性和
A
A
A的反对称性得到以下关系式:
0
=
2
W
(
H
−
H
∗
)
W
−
A
−
λ
y
T
,
0
=
2
W
(
H
−
H
∗
)
W
+
A
−
y
λ
T
,
⇒
0
=
4
W
(
H
−
H
∗
)
W
−
λ
y
T
−
y
λ
T
.
\begin{aligned}0&=2W(H-H^*)W-A-\lambda y^T,\\0&=2W(H-H^*)W+A-y\lambda^T,\\\Rightarrow 0&=4W(H-H^*)W-\lambda y^T-y\lambda^T.\end{aligned}
00⇒0=2W(H−H∗)W−A−λyT,=2W(H−H∗)W+A−yλT,=4W(H−H∗)W−λyT−yλT.我们将利用此式计算
H
H
H, 为此先计算
λ
y
T
+
y
λ
T
4
\frac{\lambda y^T+y\lambda^T}{4}
4λyT+yλT. 上式左右内积
s
s
s得到:
0
=
4
(
y
−
W
H
∗
y
)
−
λ
(
y
⋅
s
)
−
y
(
λ
⋅
s
)
.
0=4(y-WH^*y)-\lambda(y\cdot s)-y(\lambda\cdot s).
0=4(y−WH∗y)−λ(y⋅s)−y(λ⋅s).再左乘
s
T
s^T
sT得到:
0
=
4
(
y
⋅
s
)
−
4
(
y
T
H
∗
y
)
−
2
(
y
⋅
s
)
(
λ
⋅
s
)
.
0=4(y\cdot s)-4(y^TH^*y)-2(y\cdot s)(\lambda\cdot s).
0=4(y⋅s)−4(yTH∗y)−2(y⋅s)(λ⋅s).这表明
λ
⋅
s
=
2
ρ
y
T
(
s
−
H
∗
y
)
,
其
中
ρ
=
1
/
y
⋅
s
.
\lambda\cdot s=2\rho y^T(s-H^*y),\quad 其中\rho=1/y\cdot s.
λ⋅s=2ρyT(s−H∗y),其中ρ=1/y⋅s.再把这个代入我们的向量等式:
0
=
4
(
y
−
W
H
∗
y
)
−
λ
(
y
⋅
s
)
−
y
(
λ
⋅
s
)
=
4
(
y
−
W
H
∗
y
)
−
λ
(
y
⋅
s
)
−
y
[
2
ρ
y
T
(
s
−
H
∗
y
)
]
⇒
λ
=
4
ρ
(
y
−
W
H
∗
y
)
−
2
ρ
2
[
y
T
(
s
−
H
∗
y
)
]
y
.
\begin{aligned}0&=4(y-WH^*y)-\lambda(y\cdot s)-y(\lambda\cdot s)\\&=4(y-WH^*y)-\lambda(y\cdot s)-y[2\rho y^T(s-H^*y)]\\\Rightarrow\lambda&=4\rho(y-WH^*y)-2\rho^2[y^T(s-H^*y)]y.\end{aligned}
0⇒λ=4(y−WH∗y)−λ(y⋅s)−y(λ⋅s)=4(y−WH∗y)−λ(y⋅s)−y[2ρyT(s−H∗y)]=4ρ(y−WH∗y)−2ρ2[yT(s−H∗y)]y.右乘
y
T
y^T
yT得:
λ
y
T
=
4
ρ
(
y
−
W
H
∗
y
)
y
T
−
2
ρ
2
[
y
T
(
s
−
H
∗
y
)
]
y
y
T
.
\lambda y^T=4\rho(y-WH^*y)y^T-2\rho^2[y^T(s-H^*y)]yy^T.
λyT=4ρ(y−WH∗y)yT−2ρ2[yT(s−H∗y)]yyT.转置:
y
λ
T
=
4
ρ
y
(
y
T
−
y
T
H
∗
W
)
−
2
ρ
2
[
y
T
(
s
−
H
∗
y
)
]
y
y
T
.
y\lambda^T=4\rho y(y^T-y^TH^*W)-2\rho^2[y^T(s-H^*y)]yy^T.
yλT=4ρy(yT−yTH∗W)−2ρ2[yT(s−H∗y)]yyT.结合上面两式:
1
4
(
λ
y
T
+
y
λ
T
)
=
ρ
(
2
y
y
T
−
W
H
∗
y
y
T
−
y
y
T
H
∗
W
)
−
ρ
2
[
y
T
(
s
−
H
∗
y
)
]
y
y
T
.
\frac{1}{4}(\lambda y^T+y\lambda^T)=\rho(2yy^T-WH^*yy^T-yy^TH^*W)-\rho^2[y^T(s-H^*y)]yy^T.
41(λyT+yλT)=ρ(2yyT−WH∗yyT−yyTH∗W)−ρ2[yT(s−H∗y)]yyT.对上式左乘和右乘
W
−
1
W^{-1}
W−1. 注意
W
s
=
y
⇒
s
=
W
−
1
y
⇒
y
T
W
−
1
=
s
Ws=y\Rightarrow s=W^{-1}y\Rightarrow y^TW^{-1}=s
Ws=y⇒s=W−1y⇒yTW−1=s. 因此
1
4
W
−
1
(
λ
y
T
+
y
λ
T
)
W
−
1
=
2
ρ
s
s
T
−
ρ
H
∗
y
s
T
−
ρ
s
y
T
H
∗
−
ρ
2
(
y
T
s
)
s
s
T
+
ρ
2
(
y
T
H
∗
y
)
s
s
T
=
2
ρ
s
s
T
−
ρ
H
∗
y
s
T
−
ρ
s
y
T
H
∗
−
ρ
s
s
T
+
s
ρ
2
(
y
T
H
∗
y
)
s
T
(
由
ρ
的
定
义
)
=
ρ
s
s
T
−
ρ
H
∗
y
s
T
−
ρ
s
y
T
H
∗
+
s
ρ
2
(
y
T
H
∗
y
)
s
T
.
\begin{aligned}\frac{1}{4}W^{-1}(\lambda y^T+y\lambda^T)W^{-1}&=2\rho ss^T-\rho H^*ys^T-\rho sy^TH^*-\rho^2(y^Ts)ss^T+\rho^2(y^TH^*y)ss^T\\&=2\rho ss^T-\rho H^*ys^T-\rho sy^TH^*-\rho ss^T+s\rho^2(y^TH^*y)s^T(由\rho的定义)\\&=\rho ss^T-\rho H^*ys^T-\rho sy^TH^*+s\rho^2(y^TH^*y)s^T.\end{aligned}
41W−1(λyT+yλT)W−1=2ρssT−ρH∗ysT−ρsyTH∗−ρ2(yTs)ssT+ρ2(yTH∗y)ssT=2ρssT−ρH∗ysT−ρsyTH∗−ρssT+sρ2(yTH∗y)sT(由ρ的定义)=ρssT−ρH∗ysT−ρsyTH∗+sρ2(yTH∗y)sT.最后得到BFGS公式:
0
=
4
W
(
H
−
H
∗
)
W
−
λ
y
T
−
y
λ
T
⇒
H
=
1
4
W
−
1
(
λ
y
T
+
y
λ
T
)
W
−
1
+
H
∗
=
ρ
s
s
T
−
ρ
H
∗
y
s
T
−
ρ
s
y
T
H
∗
+
s
ρ
2
(
y
T
H
∗
y
)
s
T
+
H
∗
(
由
上
一
段
)
=
H
∗
(
I
−
ρ
y
s
T
)
+
ρ
s
s
T
−
ρ
s
y
T
H
∗
+
(
ρ
s
y
T
)
H
∗
(
ρ
y
s
T
)
=
H
∗
(
I
−
ρ
y
s
T
)
+
ρ
s
s
T
−
ρ
s
y
T
H
∗
(
I
−
ρ
y
s
T
)
=
ρ
s
s
T
+
(
I
−
ρ
s
y
T
)
H
∗
(
I
−
ρ
y
s
T
)
.
\begin{aligned}0&=4W(H-H^*)W-\lambda y^T-y\lambda^T\\\Rightarrow H&=\frac{1}{4}W^{-1}(\lambda y^T+y\lambda^T)W^{-1}+H^*\\&=\rho ss^T-\rho H^*ys^T-\rho sy^TH^*+s\rho^2(y^TH^*y)s^T+H^*(由上一段)\\&=H^*(I-\rho ys^T)+\rho ss^T-\rho sy^TH^*+(\rho sy^T)H^*(\rho ys^T)\\&=H^*(I-\rho ys^T)+\rho ss^T-\rho sy^TH^*(I-\rho ys^T)\\&=\rho ss^T+(I-\rho sy^T)H^*(I-\rho ys^T).\end{aligned}
0⇒H=4W(H−H∗)W−λyT−yλT=41W−1(λyT+yλT)W−1+H∗=ρssT−ρH∗ysT−ρsyTH∗+sρ2(yTH∗y)sT+H∗(由上一段)=H∗(I−ρysT)+ρssT−ρsyTH∗+(ρsyT)H∗(ρysT)=H∗(I−ρysT)+ρssT−ρsyTH∗(I−ρysT)=ρssT+(I−ρsyT)H∗(I−ρysT).用一个式子表示:
(
B
F
G
S
)
H
k
+
1
=
(
I
−
ρ
k
s
k
y
k
T
)
H
k
(
I
−
ρ
k
y
k
s
k
T
)
+
ρ
k
s
k
s
k
T
.
(\mathrm{BFGS})\quad H_{k+1}=(I-\rho_ks_ky_k^T)H_k(I-\rho_ky_ks_k^T)+\rho_ks_ks_k^T.
(BFGS)Hk+1=(I−ρkskykT)Hk(I−ρkykskT)+ρkskskT.类似地, 结合Sherman-Morrison-Woodbury公式, 我们就有BFGS公式的
B
k
B_k
Bk版本:
(
B
F
G
S
)
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
.
\mathrm{(BFGS)}\quad B_{k+1}=B_k-\frac{B_ks_ks_k^TB_k}{s_k^TB_ks_k}+\frac{y_ky_k^T}{y_k^Ts_k}.
(BFGS)Bk+1=Bk−skTBkskBkskskTBk+ykTskykykT.尽管DFP公式与BFGS公式都有两种形式的表示, 但我们一般默认DFP指的是对
H
H
H的公式, BFGS指的是对
B
B
B的公式. 当然这里遗留下来的问题就包括初始矩阵
H
0
H_0
H0如何选取. 我们将在后面讨论之. 结合上述, 我们得到算法1.
算法1 (BFGS Method)
Given starting point
x
0
x_0
x0, convergence tolerance
ϵ
>
0
\epsilon>0
ϵ>0, inverse Hessian approximation
H
0
H_0
H0;
k
←
0
k\leftarrow 0
k←0;
while
∥
∇
f
k
∥
>
ϵ
\Vert\nabla f_k\Vert>\epsilon
∥∇fk∥>ϵ
\quad\quad
Compute search direction
p
k
=
−
H
k
∇
f
k
p_k=-H_k\nabla f_k
pk=−Hk∇fk;
\quad\quad
Set
x
k
+
1
=
x
k
+
α
k
p
k
x_{k+1}=x_k+\alpha_kp_k
xk+1=xk+αkpk where
α
k
\alpha_k
αk is computed from a line search procedure to satisfy the Wolfe conditions;
\quad\quad
Define
s
k
=
x
k
+
1
−
x
k
s_k=x_{k+1}-x_k
sk=xk+1−xk and
y
k
=
∇
f
k
+
1
−
∇
f
k
y_k=\nabla f_{k+1}-\nabla f_k
yk=∇fk+1−∇fk;
\quad\quad
Compute
H
k
+
1
H_{k+1}
Hk+1 by means of BFGS formula;
k
←
k
+
1
\quad\quad k\leftarrow k+1
k←k+1;
end (while)
不难注意到, 算法的每一步迭代只需要
O
(
n
2
)
O(n^2)
O(n2)计算量. 且由之前第三章的分析, 我们已经知道BFGS算法具有超线性收敛速度. 相较牛顿法而言, 尽管速度上由劣势, 但其计算耗费足以相抵.
需要指出的是, 尽管直接应用BFGS公式的
B
k
B_k
Bk版本会导致需要求解
B
k
p
k
=
−
∇
f
k
B_kp_k=-\nabla f_k
Bkpk=−∇fk, 从而有
O
(
n
3
)
O(n^3)
O(n3)的计算量, 但后面我们会提到如何利用更新
B
k
B_k
Bk的Cholesky因子来在
O
(
n
2
)
O(n^2)
O(n2)内求解之.
需要额外提及的是, 若在最小修正中使用
F
F
F-范数且不要求对称, 则会得到另一种更新公式:
B
ˉ
+
=
B
+
(
y
−
B
s
)
s
T
s
T
s
.
\bar{B}_+=B+\frac{(y-Bs)s^T}{s^Ts}.
Bˉ+=B+sTs(y−Bs)sT.注意到这是一种秩1修正, 其特点在于最小限度地改变了原矩阵的特征子空间. 我们很容易就能验证上式的正确性:
∥
B
ˉ
+
−
B
∥
F
=
∥
(
y
−
B
s
)
s
T
s
T
s
∥
F
=
∥
(
B
+
−
B
)
s
s
T
s
T
s
∥
F
≤
∥
B
+
−
B
∥
F
,
∀
B
+
:
B
+
s
=
y
.
\Vert \bar{B}_+-B\Vert_F=\left\Vert\frac{(y-Bs)s^T}{s^Ts}\right\Vert_F=\left\Vert(B_+-B)\frac{ss^T}{s^Ts}\right\Vert_F\le\Vert B_+-B\Vert_F,\quad \forall B_+: B_+s=y.
∥Bˉ+−B∥F=∥∥∥∥sTs(y−Bs)sT∥∥∥∥F=∥∥∥∥(B+−B)sTsssT∥∥∥∥F≤∥B+−B∥F,∀B+:B+s=y.不保持对称性的更新有用吗? 如果仍然将视野局限在单个目标函数的优化问题上, 似乎没什么用处. 但若放眼于多目标函数优化或者是非线性方程组求解, 由于此时Jacobi矩阵未必对称, 上述公式便有了实践意义.
1.2 算法性质
之前已经指出拟牛顿法的超线性收敛性质. 下面用一个具体的实例展示其效用. 对Rosenbrock函数 f ( x ) = 100 ( x 2 − x 1 2 ) 2 + ( 1 − x 1 ) 2 , f(x)=100(x_2-x_1^2)^2+(1-x_1)^2, f(x)=100(x2−x12)2+(1−x1)2,以 ( − 1.2 , 1 ) (-1.2,1) (−1.2,1)为初始点, 实施最速下降法、BFGS算法、非精确牛顿法(后面在大规模环境下会提到), 其中步长选取满足Wolfe条件. 实验表明: 为将梯度范数减小到 1 0 − 5 10^{-5} 10−5以下, 最速下降法需要5264步迭代, BFGS算法和牛顿法则分别只需要34步和21步迭代. 以下是三者的(部分)收敛表格:
最速下降法 | BFGS | 牛顿法 |
---|---|---|
1.827e-04 | 1.70e-03 | 3.48e-02 |
1.826e-04 | 1.17e-03 | 1.44e-02 |
1.824e-04 | 1.34e-04 | 1.82e-04 |
1.823e-04 | 1.01e-06 | 1.17e-08 |
下面再对BFGS和DFP算法的推导过程作进一步阐释.
- BFGS公式是保正定的. 注意到推导出BFGS公式的极小化问题并没有显式地要求 B k B_k Bk是正定的. 不过我们可以证明: 如果 H k H_k Hk是正定的, 则更新得到的 H k + 1 H_{k+1} Hk+1也必定是正定的. 注意到 ρ k > 0 \rho_k>0 ρk>0, 因此BFGS公式是良定的. 对于 ∀ z ≠ 0 \forall z\ne0 ∀z̸=0, 我们有 z T H k + 1 z = w T H k w + ρ k ( z T s k ) 2 ≥ 0 , z^TH_{k+1}z=w^TH_kw+\rho_k(z^Ts_k)^2\ge0, zTHk+1z=wTHkw+ρk(zTsk)2≥0,其中我们定义 w = z − ρ k y k ( s k T z ) w=z-\rho_ky_k(s_k^Tz) w=z−ρkyk(skTz). 由 H k H_k Hk的正定性, 等号成立仅当 z T s k = 0 z^Ts_k=0 zTsk=0. 而这时 w = z ≠ 0 w=z\ne0 w=z̸=0, 从而第一项为正. 总之, H k + 1 H_{k+1} Hk+1是正定的. 进一步地, 我们说只要初始近似矩阵 B 0 ( H 0 ) B_0(H_0) B0(H0)是正定阵, 则后面所有的近似矩阵都是正定的.
- BFGS公式是尺度不变的. 构建BFGS公式时的极小化问题中还需要使得目标函数是尺度不变的. 为此我们构建了矩阵 W W W并令目标在加权矩阵范数下极小. 不过在最后的公式中我们并没有发现任何 W W W的身影. 这也是这一方法的独到之处. 我们也可以选取其他的 W W W诱导加权范数 (但未必保证尺度不变性), 但一般不会显著地优于BFGS算法.
- BFGS算法在应用到二次函数时具有许多有趣的性质. 我们将这一部分的讨论放在后面进行, 到时会涉及更加广泛的一类更新公式——Broyden族, 而BFGS公式仅仅是它的一种特殊情形.
- BFGS公式具有自修正性. 若 H k H_k Hk错误地反映了目标函数的曲率信息且若这一近似减缓了迭代的进程, 则BFGS公式往往会在后面几步修正近似. 相比之下, DFP算法就没有这么好的自修正性, 这也导致了它在实际应用中表现不佳. 不过, BFGS的自修正性仅仅在有合适的线搜索为前提时才会满足, 例如Wolfe条件.
- BFGS公式和DFP公式是对偶存在的—— s ↔ y , B ↔ H s\leftrightarrow y,B\leftrightarrow H s↔y,B↔H. 这一对称性并不奇怪, 毕竟我们的算法构成和推导方式就是如此的类似.
1.3 实施细节
算法1还需要增添许多细节才能成为实用的算法.
1.3.1 初始步长的选取
我们提到线搜索需满足(强)Wolfe条件, 应当指明搜索应当以 α k = 1 \alpha_k=1 αk=1为开端. 这是因为单位步长最后在一定条件下总会被接收, 从而达成超线性收敛. 系数 c 1 = 1 0 − 4 , c 2 = 0.9 c_1=10^{-4},c_2=0.9 c1=10−4,c2=0.9是较为常用的选择.
1.3.2 初始近似矩阵的选取
最简单的选取方式, 就是
H
0
←
β
I
H_0\leftarrow \beta I
H0←βI, 其中
β
\beta
β为一实数. 但这样一来
β
\beta
β的选取就成了问题: 如果
β
\beta
β过大, 则第一步
p
0
=
−
β
g
0
p_0=-\beta g_0
p0=−βg0就会过长, 从而需要更多次获取函数值来确定合适的步长
α
0
\alpha_0
α0. 一些软件会要求用户预先给定
δ
\delta
δ作为第一步的长度, 然后设
H
0
=
δ
∥
g
0
∥
−
1
I
H_0=\delta\Vert g_0\Vert^{-1}I
H0=δ∥g0∥−1I.
一种高效的启发式方法是, 在计算完第一步后但在第一次BFGS更新之前, 变换初始矩阵的尺度. 我们将临时的
H
0
=
I
H_0=I
H0=I改成
H
0
←
y
k
T
s
k
y
k
T
y
k
I
.
H_0\leftarrow \frac{y_k^Ts_k}{y_k^Ty_k}I.
H0←ykTykykTskI.注意这里的
s
k
,
y
k
s_k,y_k
sk,yk是第一步尝试后得到的参量. 这使得
H
0
H_0
H0更加接近
∇
2
f
(
x
0
)
−
1
\nabla^2f(x_0)^{-1}
∇2f(x0)−1: 假设平均Hessian是正定矩阵, 则存在
G
ˉ
k
1
/
2
\bar{G}_k^{1/2}
Gˉk1/2使得
G
ˉ
k
=
G
ˉ
k
1
/
2
G
ˉ
k
1
/
2
\bar{G}_k=\bar{G}_k^{1/2}\bar{G}_k^{1/2}
Gˉk=Gˉk1/2Gˉk1/2. 定义
z
k
=
G
ˉ
k
1
/
2
s
k
z_k=\bar{G}_k^{1/2}s_k
zk=Gˉk1/2sk并由
y
k
=
G
ˉ
k
s
k
y_k=\bar{G}_ks_k
yk=Gˉksk, 得到
y
k
T
s
k
y
k
T
y
k
=
(
G
ˉ
k
1
/
2
s
k
)
T
G
ˉ
k
1
/
2
s
k
(
G
ˉ
k
1
/
2
s
k
)
T
G
ˉ
k
G
ˉ
k
1
/
2
s
k
=
z
k
T
z
k
z
k
T
G
ˉ
k
z
k
.
\frac{y_k^Ts_k}{y_k^Ty_k}=\frac{(\bar{G}_k^{1/2}s_k)^T\bar{G}_k^{1/2}s_k}{(\bar{G}_k^{1/2}s_k)^T\bar{G}_k\bar{G}_k^{1/2}s_k}=\frac{z_k^Tz_k}{z_k^T\bar{G}_kz_k}.
ykTykykTsk=(Gˉk1/2sk)TGˉkGˉk1/2sk(Gˉk1/2sk)TGˉk1/2sk=zkTGˉkzkzkTzk.上式的倒数便是
G
ˉ
k
\bar{G}_k
Gˉk的一个特征值的近似, 从而也是
∇
2
f
(
x
0
)
\nabla^2f(x_0)
∇2f(x0)的一个特征值的近似. 从而其本身是
∇
2
f
(
x
0
)
−
1
\nabla^2f(x_0)^{-1}
∇2f(x0)−1的一个特征值的近似.
1.3.3 BFGS算法之 B k B_k Bk版本的应用
之前我们利用Sherman-Morrison-Woodbury公式得到了BFGS公式的 B k B_k Bk更新版本, 并指出直接使用会徒增计算量. 因此, 我们不应当显式地储存 B k B_k Bk, 而应当储存这一矩阵的Cholesky因子 L k D k L k T L_kD_kL_k^T LkDkLkT. 我们可以从 B k B_k Bk的更新公式推出 L k , D k L_k,D_k Lk,Dk的更新公式, 而这一操作仅需 O ( n 2 ) O(n^2) O(n2)的计算量. 由于Cholesky分解后 B k p k = − ∇ f k B_kp_k=-\nabla f_k Bkpk=−∇fk也可以在 O ( n 2 ) O(n^2) O(n2)内解决, 因此总的运算量与算法1是相差无几的 (至少在量阶上). 这一方法的潜在优势为: 当 D k D_k Dk的对角元不够大时, 我们可以对其修正以保证算法的稳定性. 不过实际应用表明这样的优势并不明显, 我们仍然更加倾向于使用算法1. 下面我们来具体地阐述这一方法. 在这之前先证明之前遗留的一个问题: 满足隐含条件且满足割线方程的对称正定矩阵是存在的. 以下省略下标, 并记 B k + 1 = B + B_{k+1}=B_+ Bk+1=B+.
注意矩阵 B + B_+ B+对称正定当且仅当存在可逆矩阵 J + J_+ J+使得 B + = J + J + T B_+=J_+J_+^T B+=J+J+T. 因此此时割线方程等价于 J + J + T s = y J_+J_+^Ts=y J+J+Ts=y. 而寻求 B + B_+ B+的存在也就等价于:
- 选取 J + J_+ J+: 存在 v v v, J + v = y J_+v=y J+v=y;
- 选取 v v v: J + T s = v J_+^Ts=v J+Ts=v.
设 B B B有Cholesky分解 B = L L T B=LL^T B=LLT. 事实上, 令 J + = L + ( y − L v ) v T v T v J_+=L+\frac{(y-Lv)v^T}{v^Tv} J+=L+vTv(y−Lv)vT即可满足1. 进一步推算, v = L T s + v ( y − L v ) T s v T v . v=L^Ts+v\frac{(y-Lv)^Ts}{v^Tv}. v=LTs+vvTv(y−Lv)Ts.因此, v v v有形式 v = α L T s v=\alpha L^Ts v=αLTs. 代入上式解得 α 2 = y T s s T L L T s = y T s s T B s . \alpha^2=\frac{y^Ts}{s^TLL^Ts}=\frac{y^Ts}{s^TBs}. α2=sTLLTsyTs=sTBsyTs.取 v = y T s s T B s L T s v=\sqrt{\frac{y^Ts}{s^TBs}}L^Ts v=sTBsyTsLTs即可. 现在我们要更新 B B B的Cholesky因子. 我们以普通的Cholesky分解为例, 即 B = L L T B=LL^T B=LLT. 注意到 B + = J + J + T , J + = L + ( y − L v ) v T v T v B_+=J_+J_+^T,\quad J_+=L+\frac{(y-Lv)v^T}{v^Tv} B+=J+J+T,J+=L+vTv(y−Lv)vT中, J + J_+ J+不见得是下三角阵, 因此我们需要将分解化成 B + = L + L + T B_+=L_+L_+^T B+=L+L+T. 这也是主要的计算量所在. 注意到 J + J_+ J+实际上是由 L L L经秩1修正得到的. 我们可以写作 J + = L + u ~ v ~ T . J_+=L+\tilde{u}\tilde{v}^T. J+=L+u~v~T.对秩1矩阵作Givens变换是极其方便的, 因为它任意两行皆成比例. 因此可以同时旋转两行. 我们分别对行号为 ( 1 , 2 ) , ( 2 , 3 ) , … , ( n − 1 , n ) (1,2),(2,3),\ldots,(n-1,n) (1,2),(2,3),…,(n−1,n)的行做Givens变换 (一共 n − 1 n-1 n−1次), 最终将得到只有第一行非零的矩阵. 记这一过程的Givens旋转矩阵为 G G G, 它是正交矩阵. 若在 L L L上同时作用上 G G G, 则 G ( L + u ~ v ~ T ) G(L+\tilde{u}\tilde{v}^T) G(L+u~v~T)将是一个下Hessenberg矩阵. 于是再用 n − 1 n-1 n−1次Givens变换即可将其转变为下三角矩阵. 记这一阶段的Givens变换矩阵为 G ~ \tilde{G} G~, 于是我们就有 G ~ G ( L + u ~ v ~ T ) = L + . \tilde{G}G(L+\tilde{u}\tilde{v}^T)=L_+. G~G(L+u~v~T)=L+.易验证 B + = L + L + T B_+=L_+L_+^T B+=L+L+T. 以上计算量可验证在 O ( n 2 ) O(n^2) O(n2).
1.3.4 线搜索条件的重要性
若线搜索不当 (例如没有满足Wolfe条件), 则BFGS算法的表现可能会大打折扣. 例如, 一些软件实施的是Armjo回溯线搜索: 首先尝试步长 α k = 1 \alpha_k=1 αk=1, 再连续减少之直至满足充分下降条件. 对于这样的策略, 我们无法保证隐含条件 y k T s k > 0 y_k^Ts_k>0 ykTsk>0是成立的. 为了克服这一缺陷, 有些人提出直接跳过更新直接令 H k + 1 = H k H_{k+1}=H_k Hk+1=Hk. 不过这一方案并不提倡, 因为这样的跳步可能会过于频繁以至于 H k H_k Hk无法捕捉到重要的曲率信息. 在后面的章节中, 我们会讨论阻滞BFGS更新——它可以更高效地处理隐含条件不成立的情形.
1.3.5 关于内存
在使用 H H H版本的BFGS公式时, 我们因不用计算逆矩阵而欣喜若狂, 但仔细一想便会发现 H k H_k Hk的使用也并不简单. 首先 H k H_k Hk的更新公式中有大量的向量, 因此与负梯度相乘相当于做内积. 这样的计算量在 O ( n ) O(n) O(n). 但要注意到中间的 H k H_k Hk. 如果我们不希望存储 H H H, 则就必须回溯之前所有的 H k H_k Hk来计算这一次的乘积. 如果每一次都回溯之前所有的向量, 真正实施起来倒不如直接存储 H k H_k Hk了. 因此有人提出一种想法: 不妨仅用最近几次 (如 m m m个) 的向量来更新, 这样再取前 m m m步中的 H k 0 H_k^0 Hk0为某一设定的好算的矩阵, 就可以将计算量和存储量严格控制在最低限度. 此时计算过程甚至不会涉及任何的矩阵-向量乘积. 这被称作是有限内存BFGS算法 (LM-BFGS). 详细内容我们将在后面的章节展示.
2. 对称秩1方法
2.1 介绍
在BFGS公式和DFP公式中, 更新矩阵
B
k
+
1
B_{k+1}
Bk+1与原矩阵
B
k
B_k
Bk都是差一个秩为2的矩阵, 我们也称之为秩2修正. 基于这样的观察, 我们自然会问: 是否存在更加简洁的秩1修正公式能够同时兼顾矩阵对称性与割线方程呢? 下面我们就来介绍一种对称秩1修正方法. 与之前的秩2修正不同的是, 这种方法不再保证更新后的矩阵仍然是正定的.
设有对称秩1更新公式为
B
k
+
1
=
B
k
+
σ
v
v
T
,
B_{k+1}=B_k+\sigma vv^T,
Bk+1=Bk+σvvT,其中
σ
∈
{
−
1
,
+
1
}
\sigma\in\{-1,+1\}
σ∈{−1,+1}, 且
σ
,
v
\sigma,v
σ,v的选取应当使得
B
k
+
1
B_{k+1}
Bk+1满足割线方程
y
k
=
B
k
+
1
s
k
y_k=B_{k+1}s_k
yk=Bk+1sk. 代入可得
y
k
=
B
k
s
k
+
[
σ
v
T
s
k
]
v
.
y_k=B_ks_k+[\sigma v^Ts_k]v.
yk=Bksk+[σvTsk]v.由于方括号内是个标量, 因此我们可以说
v
v
v是
y
k
−
B
k
s
k
y_k-B_ks_k
yk−Bksk的一个倍数, 即存在标量
δ
\delta
δ使得
v
=
δ
(
y
k
−
B
k
s
k
)
v=\delta(y_k-B_ks_k)
v=δ(yk−Bksk). 将这一表示代回, 就得到
y
k
−
B
k
s
k
=
σ
δ
2
[
s
k
T
(
y
k
−
B
k
s
k
)
]
(
y
k
−
B
k
s
k
)
.
y_k-B_ks_k=\sigma\delta^2[s_k^T(y_k-B_ks_k)](y_k-B_ks_k).
yk−Bksk=σδ2[skT(yk−Bksk)](yk−Bksk).显然等式成立当且仅当
σ
=
s
i
g
n
[
s
k
T
(
y
k
−
B
k
s
k
)
]
,
δ
=
±
∣
s
k
T
(
y
k
−
B
k
s
k
)
∣
−
1
/
2
.
\sigma=\mathrm{sign}[s_k^T(y_k-B_ks_k)],\quad\delta=\pm|s_k^T(y_k-B_ks_k)|^{-1/2}.
σ=sign[skT(yk−Bksk)],δ=±∣skT(yk−Bksk)∣−1/2.因此唯一满足要求的对称秩1公式为
(
S
R
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
.
\mathrm{(SR1)}\quad B_{k+1}=B_k+\frac{(y_k-B_ks_k)(y_k-B_ks_k)^T}{(y_k-B_ks_k)^Ts_k}.
(SR1)Bk+1=Bk+(yk−Bksk)Tsk(yk−Bksk)(yk−Bksk)T.同样地, 利用Sherman-Morrison-Woodbury公式就得到对应的矩阵逆更新公式:
(
S
R
1
)
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
.
\mathrm{(SR1)}\quad H_{k+1}=H_k+\frac{(s_k-H_ky_k)(s_k-H_ky_k)^T}{(s_k-H_ky_k)^Ty_k}.
(SR1)Hk+1=Hk+(sk−Hkyk)Tyk(sk−Hkyk)(sk−Hkyk)T.注意到SR1公式可以保持可逆性, 但不能保持正定性. 这一点在早期只使用线搜索进行优化的日子里, 一度被视为SR1公式的一项主要缺点. 然而, 随着信赖域方法的出现, SR1公式便重新登上舞台且呈现出强大的能力. 事实上, 它能产生不定Hessian近似的性质反而成为了其主要的优势.
不过SR1公式的缺陷也是明显的, 即公式中的分母可能会很小, 从而导致数值不稳定. 这一点即使放在凸二次函数下也可能发生. 这样一来所谓的SR1公式也就不复存在. 通过对
B
k
B_k
Bk版本的探究 (对
H
k
H_k
Hk版本也类似), 我们发现了三种可能的情形:
- ( y k − B k s k ) T s k ≠ 0 (y_k-B_ks_k)^Ts_k\ne0 (yk−Bksk)Tsk̸=0: 这说明存在唯一的SR1公式满足割线方程, SR1公式良定;
- y k = B k s k y_k=B_ks_k yk=Bksk: 此时唯一满足割线方程的SR1公式就是 B k + 1 = B k B_{k+1}=B_k Bk+1=Bk;
- y k ≠ B k s k , ( y k − B k s k ) T s k = 0 y_k\ne B_ks_k,(y_k-B_ks_k)^Ts_k=0 yk̸=Bksk,(yk−Bksk)Tsk=0: 此时不存在满足割线方程的SR1公式.
最后一种情形会引发数值不稳定. 这从侧面反映, SR1公式不再能满足所有的要求, 此时应当转向秩2公式.
SR1公式还有许多我们可以探究的方面和优点, 如:
- 我们可以加入一些防护措施 (Safeguard)来避免上述的数值不稳定现象;
- SR1公式往往能产生优于BFGS公式的Hessian近似;
- 在带约束问题的拟牛顿法或求解部分可分离问题的方法中, 我们就不再需要强加隐含条件 y k T s k > 0 y_k^Ts_k>0 ykTsk>0, 此时BFGS公式反倒不合理. 而SR1公式能够更好反映目标函数在当前位置的曲率信息.
下面介绍一种防护措施. 我们在实际应用中发现, 若分母很小, 我们直接跳过更新往往能带来较好的表现. 这就是说, 我们仅在 ∣ s k T ( y k − B k s k ) ∣ ≥ r ∥ s k ∥ ∥ y k − B k s k ∥ , r ∈ ( 0 , 1 ) |s_k^T(y_k-B_ks_k)|\ge r\Vert s_k\Vert\Vert y_k-B_ks_k\Vert,\quad r\in(0,1) ∣skT(yk−Bksk)∣≥r∥sk∥∥yk−Bksk∥,r∈(0,1)时更新 B k B_k Bk. 这里的 r r r往往取较小的数, 如 1 0 − 8 10^{-8} 10−8. 否则, 我们直接令 B k + 1 = B k B_{k+1}=B_k Bk+1=Bk.
这里出现一个问题: 为什么SR1方法可以跳步, BFGS方法却不建议跳步呢? 事实上这两种情形是截然不同的. s k T ( y k − B k s k ) ≈ 0 s_k^T(y_k-B_ks_k)\approx0 skT(yk−Bksk)≈0较难出现, 这是因为这要求某些向量以特定的方式出现. 当这种情况发生, 跳过更新似乎不会对迭代产生什么负面影响. 这并不奇怪, 因为上面的约等式还可以写成 s k T G ˉ s k ≈ s k T B k s k , s_k^T\bar{G}s_k\approx s_k^TB_ks_k, skTGˉsk≈skTBksk,其中 G ˉ \bar{G} Gˉ为上一步的平均Hessian. 这就说明当前的 B k B_k Bk沿着 s k s_k sk的曲率已经正确反映真实情况了. 相反, BFGS公式要求的隐含条件 s k T y k ≥ 0 s_k^Ty_k\ge0 skTyk≥0很容易被破坏 (例如线搜索不满足Wolfe条件), 从而跳步会极为频繁地出现, 从而影响了Hessian近似的质量.
下面给出使用信赖域框架的SR1方法的一个正式的表述. 使用信赖域作为框架是因为信赖域更能接受不定矩阵的使用.
算法2 (SR1 Trust-Region Method)
Given starting point
x
0
x_0
x0, initial Hessian approximation
B
0
B_0
B0, trust-region radius
Δ
0
\Delta_0
Δ0, convergence tolerance
ϵ
>
0
\epsilon>0
ϵ>0, parameters
η
∈
(
0
,
1
0
−
3
)
\eta\in(0,10^{-3})
η∈(0,10−3) and
r
∈
(
0
,
1
)
r\in(0,1)
r∈(0,1);
k
←
0
k\leftarrow 0
k←0;
while
∥
∇
f
k
∥
>
ϵ
\Vert\nabla f_k\Vert>\epsilon
∥∇fk∥>ϵ
\quad\quad
Compute
s
k
s_k
sk by solving the subproblem
min
s
∇
f
k
T
s
+
1
2
s
T
B
k
s
s
.
t
.
∥
s
∥
≤
Δ
k
;
\min_s\nabla f_k^Ts+\frac{1}{2}s^TB_ks\quad \mathrm{s.t.}\Vert s\Vert\le\Delta_k;
smin∇fkTs+21sTBkss.t.∥s∥≤Δk;
\quad\quad
Compute
y
k
=
∇
f
(
x
k
+
s
k
)
−
∇
f
k
,
a
r
e
d
=
f
k
−
f
(
x
k
+
s
k
)
(
a
c
t
u
a
l
  
r
e
d
u
c
t
i
o
n
)
,
p
r
e
d
=
−
(
∇
f
k
T
s
k
+
1
2
s
k
T
B
k
s
k
)
(
p
r
e
d
i
c
t
e
d
  
r
e
d
u
c
t
i
o
n
)
;
\begin{aligned}y_k&=\nabla f(x_k+s_k)-\nabla f_k,\\\mathrm{ared}&=f_k-f(x_k+s_k)\quad\mathrm{(actual\:\: reduction)},\\\mathrm{pred}&=-\left(\nabla f_k^Ts_k+\frac{1}{2}s_k^TB_ks_k\right)\quad\mathrm{(predicted \:\:reduction)};\end{aligned}
ykaredpred=∇f(xk+sk)−∇fk,=fk−f(xk+sk)(actualreduction),=−(∇fkTsk+21skTBksk)(predictedreduction);
\quad\quad
if ared/pred
>
η
>\eta
>η
x
k
+
1
=
x
k
+
s
k
;
\quad\quad\quad\quad x_{k+1}=x_k+s_k;
xk+1=xk+sk;
\quad\quad
else
x
k
+
1
=
x
k
;
\quad\quad\quad\quad x_{k+1}=x_k;
xk+1=xk;
\quad\quad
end (if)
\quad\quad
if ared/pred
>
0.75
>0.75
>0.75
\quad\quad\quad\quad
if
∥
s
k
∥
≤
0.8
Δ
k
\Vert s_k\Vert\le0.8\Delta_k
∥sk∥≤0.8Δk
Δ
k
+
1
=
Δ
k
;
\quad\quad\quad\quad\quad\quad\Delta_{k+1}=\Delta_k;
Δk+1=Δk;
\quad\quad\quad\quad
else
Δ
k
+
1
=
2
Δ
k
;
\quad\quad\quad\quad\quad\quad\Delta_{k+1}=2\Delta_k;
Δk+1=2Δk;
\quad\quad\quad\quad
end (if)
\quad\quad
else if
0.1
≤
0.1\le
0.1≤ared/pred
≤
0.75
\le0.75
≤0.75
Δ
k
+
1
=
Δ
k
;
\quad\quad\quad\quad\Delta_{k+1}=\Delta_k;
Δk+1=Δk;
\quad\quad
else
Δ
k
+
1
=
0.5
Δ
k
;
\quad\quad\quad\quad\Delta_{k+1}=0.5\Delta_k;
Δk+1=0.5Δk;
\quad\quad
end (if)
\quad\quad
if
∣
s
k
T
(
y
k
−
B
k
s
k
)
∣
≥
r
∥
s
k
∥
∥
y
k
−
B
k
s
k
∥
|s_k^T(y_k-B_ks_k)|\ge r\Vert s_k\Vert\Vert y_k-B_ks_k\Vert
∣skT(yk−Bksk)∣≥r∥sk∥∥yk−Bksk∥
\quad\quad\quad\quad
Use SR1 to compute
B
k
+
1
B_{k+1}
Bk+1(even if
x
k
+
1
=
x
k
x_{k+1}=x_k
xk+1=xk);
\quad\quad
else
B
k
+
1
←
B
k
;
\quad\quad\quad\quad B_{k+1}\leftarrow B_k;
Bk+1←Bk;
\quad\quad
end (if)
k
←
k
+
1
;
\quad\quad k\leftarrow k+1;
k←k+1;
end (while)
以上是信赖域方法的典型形式. 具体说来, 我们使用了一种特定的更新信赖域半径的策略, 不过这也可以用其他的代替.
为获得较快的收敛速度, 我们有时需要沿着坏方向
s
k
s_k
sk更新
B
k
B_k
Bk. 坏方向的产生说明
B
k
B_k
Bk不能较好地近似当前方向的Hessian. 如果我们不更新近似, 就有可能产生连锁效应, 阻滞超线性收敛.
2.2 性质
SR1公式的一大优势在于, 能够产生对Hessian的良好近似. 我们首先对目标函数为二次函数的情形进行讨论. 对于这种函数, 步长的选取并不影响更新, 因此为检验更新的效果, 我们不妨假设步长一致为1, 即 p k = − H k ∇ f k , x k + 1 = x k + p k . p_k=-H_k\nabla f_k,\quad x_{k+1}=x_k+p_k. pk=−Hk∇fk,xk+1=xk+pk.此时 p k = s k p_k=s_k pk=sk.
定理1 设 f : R n → R f:\mathbb{R}^n\to\mathbb{R} f:Rn→R为强凸二次函数 f ( x ) = b T x + 1 2 x T A x f(x)=b^Tx+\frac{1}{2}x^TAx f(x)=bTx+21xTAx, 其中 A A A对称正定. 则对于任意初始点 x 0 x_0 x0以及任意初始矩阵 H 0 H_0 H0, 若对于所有的 k k k都有 ( s k − H k y k ) T y k ≠ 0 (s_k-H_ky_k)^Ty_k\ne 0 (sk−Hkyk)Tyk̸=0, 则由SR1产生的序列 { x k } \{x_k\} {xk}至多经 n n n步收敛到极小点. 此外, 若进行了 n n n步且搜索方向 p k p_k pk是线性无关的, 则 H n = A − 1 H_n=A^{-1} Hn=A−1.
证明: 由假设
(
s
k
−
H
k
y
k
)
T
y
k
≠
0
(s_k-H_ky_k)^Ty_k\ne0
(sk−Hkyk)Tyk̸=0, SR1更新总是良定的. 我们先用数学归纳法证明
H
k
y
j
=
s
j
,
j
=
0
,
1
,
…
,
k
−
1.
H_ky_j=s_j,\quad j=0,1,\ldots,k-1.
Hkyj=sj,j=0,1,…,k−1.换句话说, 我们证明割线方程不仅仅沿着最近的搜索方向成立, 对之前所有的方向也都成立.
由定义, SR1公式满足割线方程, 所以
H
1
y
0
=
s
0
H_1y_0=s_0
H1y0=s0. 假设上述对某个
k
>
1
k>1
k>1成立, 下证
k
+
1
k+1
k+1的情形. 由归纳假设,
(
s
k
−
H
k
y
k
)
T
y
j
=
s
k
T
y
j
−
y
k
T
(
H
k
y
j
)
=
s
k
T
y
j
−
y
k
T
s
j
=
0
,
∀
j
<
k
,
(s_k-H_ky_k)^Ty_j=s_k^Ty_j-y_k^T(H_ky_j)=s_k^Ty_j-y_k^Ts_j=0,\quad \forall j<k,
(sk−Hkyk)Tyj=skTyj−ykT(Hkyj)=skTyj−ykTsj=0,∀j<k,其中最后一个等式是因为在二次函数下恒有
y
i
=
A
s
i
y_i=As_i
yi=Asi. 因此由SR1公式可得
H
k
+
1
y
j
=
H
k
y
j
=
s
j
,
∀
j
<
k
.
H_{k+1}y_j=H_ky_j=s_j,\quad\forall j<k.
Hk+1yj=Hkyj=sj,∀j<k.而
H
k
+
1
y
k
=
s
k
H_{k+1}y_k=s_k
Hk+1yk=sk是由割线方程满足的, 因此
k
+
1
k+1
k+1也成立. 因此这对任意
k
k
k都成立.
若算法进行了
n
n
n步且所有的
{
s
j
}
\{s_j\}
{sj}线性无关, 则
s
j
=
H
n
y
j
=
H
n
A
s
j
,
j
=
0
,
1
,
…
,
n
−
1.
s_j=H_ny_j=H_nAs_j,\quad j=0,1,\ldots,n-1.
sj=Hnyj=HnAsj,j=0,1,…,n−1.这说明
H
n
A
=
I
⇒
H
n
=
A
−
1
H_nA=I\Rightarrow H_n=A^{-1}
HnA=I⇒Hn=A−1. 因此, 在
x
n
x_n
xn处将实施牛顿步, 从而下一迭代点
x
k
+
1
x_{k+1}
xk+1就是解, 算法终止.
现在考虑搜索方向线性相关的情形. 设
s
k
s_k
sk为之前搜索方向的线性组合, 即存在标量
ξ
i
\xi_i
ξi使得
s
k
=
ξ
0
s
0
+
⋯
+
ξ
k
−
1
s
k
−
1
.
s_k=\xi_0s_0+\cdots+\xi_{k-1}s_{k-1}.
sk=ξ0s0+⋯+ξk−1sk−1.因此
H
k
y
k
=
H
k
A
s
k
=
ξ
0
H
k
A
s
0
+
⋯
+
ξ
k
−
1
H
k
A
s
k
−
1
=
ξ
0
H
k
y
0
+
⋯
+
ξ
k
−
1
H
k
y
k
−
1
=
ξ
0
s
0
+
⋯
+
ξ
k
−
1
s
k
−
1
=
s
k
.
\begin{aligned}H_ky_k&=H_kAs_k\\&=\xi_0H_kAs_0+\cdots+\xi_{k-1}H_kAs_{k-1}\\&=\xi_0H_ky_0+\cdots+\xi_{k-1}H_ky_{k-1}\\&=\xi_0s_0+\cdots+\xi_{k-1}s_{k-1}\\&=s_k.\end{aligned}
Hkyk=HkAsk=ξ0HkAs0+⋯+ξk−1HkAsk−1=ξ0Hky0+⋯+ξk−1Hkyk−1=ξ0s0+⋯+ξk−1sk−1=sk.这就得到
H
k
(
∇
f
k
+
1
−
∇
f
k
)
=
−
H
k
∇
f
k
,
H_k(\nabla f_{k+1}-\nabla f_k)=-H_k\nabla f_k,
Hk(∇fk+1−∇fk)=−Hk∇fk,从中由
H
k
H_k
Hk可逆就推出
∇
f
k
+
1
=
0
\nabla f_{k+1}=0
∇fk+1=0. 因此
x
k
+
1
x_{k+1}
xk+1就是解. 证毕.
以上定理表明: 当目标函数
f
f
f是二次函数时, 不论线搜索如何, 割线方程都沿之前所有的搜索方向成立. BFGS公式也有类似的结果, 只是需要加上线搜索精确的假设. 我们会最下一节证明之.
而对于一般的非线性函数, SR1公式将在一定条件下持续产生Hessian的良好近似. 我们不加证明的叙述之.
定理2 设 f f f二阶连续可微, 其Hessian有界且在一点 x ∗ x^* x∗的一个邻域内Lipschitz连续. 设 { x k } \{x_k\} {xk}为收敛到 x ∗ x^* x∗的任一序列. 设对于所有的 k k k都有 ∣ s k T ( y k − B k s k ) ∣ ≥ r ∥ s k ∥ ∥ y k − B k s k ∥ , r ∈ ( 0 , 1 ) , |s_k^T(y_k-B_ks_k)|\ge r\Vert s_k\Vert\Vert y_k-B_ks_k\Vert, \quad r\in(0,1), ∣skT(yk−Bksk)∣≥r∥sk∥∥yk−Bksk∥,r∈(0,1),且 s k s_k sk一致线性无关. 则由SR1公式产生的 B k B_k Bk满足 lim k → ∞ ∥ B k − ∇ 2 f ( x ∗ ) ∥ = 0. \lim_{k\to\infty}\Vert B_k-\nabla^2f(x^*)\Vert=0. k→∞lim∥Bk−∇2f(x∗)∥=0.这里"一致线性无关"大致是指, s k s_k sk不会都落在小于 n n n维的子空间中. 这一假设一般 (但也不总是) 是成立的.
3. Broyden族
至今, 我们已讨论了BFGS、DFP、SR1这三种拟牛顿公式, 但事实上还存在许多其他的公式没有讨论. 其中最吸引人的当属Broyden族, 其更新公式均具有以下形式
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
+
ϕ
k
(
s
k
T
B
k
s
k
)
v
k
v
k
T
,
B_{k+1}=B_k-\frac{B_ks_ks_k^TB_k}{s_k^TB_ks_k}+\frac{y_ky_k^T}{y_k^Ts_k}+\phi_k(s_k^TB_ks_k)v_kv_k^T,
Bk+1=Bk−skTBkskBkskskTBk+ykTskykykT+ϕk(skTBksk)vkvkT,其中
ϕ
k
\phi_k
ϕk为标量参数,
v
k
=
y
k
y
k
T
s
k
−
B
k
s
k
s
k
T
B
k
s
k
.
v_k=\frac{y_k}{y_k^Ts_k}-\frac{B_ks_k}{s_k^TB_ks_k}.
vk=ykTskyk−skTBkskBksk.易知, BFGS和DFP公式都是Broyden族的一员——BFGS公式对应于
ϕ
k
=
0
\phi_k=0
ϕk=0, DFP公式对应于
ϕ
k
=
1
\phi_k=1
ϕk=1. 因此我们可以将Broyden族写成这两个公式的线性组合:
B
k
+
1
=
(
1
−
ϕ
k
)
B
k
+
1
B
F
G
S
+
ϕ
k
B
k
+
1
D
F
P
.
B_{k+1}=(1-\phi_k)B_{k+1}^{\mathrm{BFGS}}+\phi_kB_{k+1}^{\mathrm{DFP}}.
Bk+1=(1−ϕk)Bk+1BFGS+ϕkBk+1DFP.这一关系式表明, Broyden族中的所有成员均满足割线方程, 且由于BFGS和DFP在满足隐含条件时保持正定性, 因此在Broyden族中
0
≤
ϕ
k
≤
1
0\le\phi_k\le1
0≤ϕk≤1也同样保持正定性.
至今已有许多关于所谓的限制Broyden族的研究, 即限制Broyden族至
ϕ
k
∈
[
0
,
1
]
\phi_k\in[0,1]
ϕk∈[0,1]. 当应用于二次函数时, 它也同SR1公式一样具有一些特殊性质. 由于下面的分析独立于步长选取, 我们假设
p
k
=
−
B
k
−
1
∇
f
k
,
x
k
+
1
=
x
k
+
p
k
.
p_k=-B_k^{-1}\nabla f_k,\quad x_{k+1}=x_k+p_k.
pk=−Bk−1∇fk,xk+1=xk+pk.
定理3 设 f : R n → R f:\mathbb{R}^n\to\mathbb{R} f:Rn→R为强凸二次函数 f ( x ) = b T x + 1 2 x T A x f(x)=b^Tx+\frac{1}{2}x^TAx f(x)=bTx+21xTAx, 其中 A A A对称正定. 设 x 0 x_0 x0为任意初始点, B 0 B_0 B0为任意初始矩阵, 后续 B k B_k Bk由限制Broyden族产生. 令 λ 1 k ≤ λ 2 k ≤ ⋯ ≤ λ n k \lambda_1^k\le\lambda_2^k\le\cdots\le\lambda_n^k λ1k≤λ2k≤⋯≤λnk为矩阵 A 1 2 B k − 1 A 1 2 A^{\frac{1}{2}}B_k^{-1}A^{\frac{1}{2}} A21Bk−1A21的特征值, 于是对于所有的 k k k, 我们有 min { λ i k , 1 } ≤ λ i k + 1 ≤ max { λ i k , 1 } , i = 1 , 2 , … , n . \min\{\lambda_i^k,1\}\le\lambda_i^{k+1}\le\max\{\lambda_i^k,1\},\quad i=1,2,\ldots,n. min{λik,1}≤λik+1≤max{λik,1},i=1,2,…,n.需指出, 上述不等式对于 ϕ k ̸ ∈ [ 0 , 1 ] \phi_k\not\in[0,1] ϕk̸∈[0,1]不成立.
下面我们不加证明地讨论这个结论的意义. 若 A 1 2 B k − 1 A 1 2 A^{\frac{1}{2}}B_k^{-1}A^{\frac{1}{2}} A21Bk−1A21的特征值都是1, 则 B k B_k Bk就是二次目标函数的Hessian A A A. 这是理想状态, 因此我们希望这些特征值尽可能地靠近1. 事实上, 上面的不等式就告诉我们特征值序列 { λ i k } \{\lambda_i^k\} {λik}单调向1收敛 (不一定收敛到1). 更重要的是, 定理3的结论对于非精确线搜索同样成立.
尽管定理3可能会让人觉得最好的更新公式属于限制Broyden族中, 但实际情况并非如此. 已有一些分析和计算结果表明允许
ϕ
k
\phi_k
ϕk为负 (当然要在可控范围内) 的算法往往要比BFGS算法更加优越. SR1公式就是个例子: 它也是Broyden族中的一员, 其中
ϕ
k
=
s
k
T
y
k
s
k
T
y
k
−
s
k
T
B
k
s
k
,
\phi_k=\frac{s_k^Ty_k}{s_k^Ty_k-s_k^TB_ks_k},
ϕk=skTyk−skTBkskskTyk,但它却不属于限制Broyden族, 这是因为这样的
ϕ
k
\phi_k
ϕk可能落在
[
0
,
1
]
[0,1]
[0,1]之外.
在本节接下来部分, 我们来更确切地讨论保持正定性的
ϕ
k
\phi_k
ϕk的取值区间. 这要用到下面的定理:
定理4 (Interlacing Eigenvalue Theorem) 设
A
∈
R
n
×
n
A\in\mathbb{R}^{n\times n}
A∈Rn×n为对称阵, 具有特征值
λ
1
≥
λ
2
≥
⋯
≥
λ
n
\lambda_1\ge\lambda_2\ge\cdots\ge\lambda_n
λ1≥λ2≥⋯≥λn. 设
z
∈
R
n
:
∥
z
∥
=
1
z\in\mathbb{R}^n: \Vert z\Vert=1
z∈Rn:∥z∥=1,
α
∈
R
\alpha\in\mathbb{R}
α∈R. 记
A
+
α
z
z
T
A+\alpha zz^T
A+αzzT的特征值为
ξ
1
≥
ξ
2
≥
⋯
≥
ξ
n
\xi_1\ge\xi_2\ge\cdots\ge\xi_n
ξ1≥ξ2≥⋯≥ξn, 则对于
α
\alpha
α有
ξ
1
≥
λ
1
≥
ξ
2
≥
λ
2
≥
ξ
3
≥
⋯
≥
ξ
n
≥
λ
n
,
\xi_1\ge\lambda_1\ge\xi_2\ge\lambda_2\ge\xi_3\ge\cdots\ge\xi_n\ge\lambda_n,
ξ1≥λ1≥ξ2≥λ2≥ξ3≥⋯≥ξn≥λn,且
∑
i
=
1
n
ξ
i
−
λ
i
=
α
.
\sum_{i=1}^n\xi_i-\lambda_i=\alpha.
i=1∑nξi−λi=α.若
α
<
0
\alpha<0
α<0, 则对应
λ
1
≥
ξ
1
≥
λ
2
≥
ξ
2
≥
λ
3
≥
⋯
≥
λ
n
≥
ξ
n
,
\lambda_1\ge\xi_1\ge\lambda_2\ge\xi_2\ge\lambda_3\ge\cdots\ge\lambda_n\ge\xi_n,
λ1≥ξ1≥λ2≥ξ2≥λ3≥⋯≥λn≥ξn,且
∑
i
=
1
n
ξ
i
−
λ
i
=
α
.
\sum_{i=1}^n\xi_i-\lambda_i=\alpha.
i=1∑nξi−λi=α.
换句话说, 经秩1修正后的矩阵的特征值与原矩阵的特征值呈交错分布, 且当
α
>
0
\alpha>0
α>0时为非负调整, 当
α
<
0
\alpha<0
α<0时为非正调整. 调整的总量为
α
\alpha
α, 这也正好是秩1修正的2-范数
∥
α
z
z
T
∥
2
\Vert\alpha zz^T\Vert_2
∥αzzT∥2.
证明: 不妨假设
A
,
A
+
α
z
z
T
A,A+\alpha zz^T
A,A+αzzT均为加边对角阵, 即
A
=
(
γ
b
T
b
d
i
a
g
(
a
i
)
)
,
A
+
α
z
z
T
=
(
γ
+
α
b
T
b
d
i
a
g
(
a
i
)
)
.
A=\begin{pmatrix}\gamma & b^T\\b & \mathrm{diag}(a_i)\end{pmatrix},\quad A+\alpha zz^T=\begin{pmatrix}\gamma+\alpha & b^T\\ b & \mathrm{diag}(a_i)\end{pmatrix}.
A=(γbbTdiag(ai)),A+αzzT=(γ+αbbTdiag(ai)).事实上, 对于秩1矩阵
α
z
z
T
\alpha zz^T
αzzT, 存在正交矩阵
R
R
R, 使得
R
T
(
α
z
z
T
)
R
=
(
α
O
O
O
)
,
R^T(\alpha zz^T)R=\begin{pmatrix} \alpha & O\\ O & O\end{pmatrix},
RT(αzzT)R=(αOOO),若记
R
T
A
R
=
(
γ
a
T
a
A
n
−
1
)
,
R^TAR=\begin{pmatrix} \gamma & a^T\\a & A_{n-1}\end{pmatrix},
RTAR=(γaaTAn−1),则存在
n
−
1
n-1
n−1阶正交阵
S
S
S, 使得
S
T
A
n
−
1
S
=
d
i
a
g
(
a
i
)
.
S^TA_{n-1}S=\mathrm{diag}(a_i).
STAn−1S=diag(ai).若我们定义
Q
Q
Q为
Q
=
R
(
1
O
O
S
)
,
Q=R\begin{pmatrix} 1 & O\\O & S\end{pmatrix},
Q=R(1OOS),则
Q
Q
Q是正交矩阵, 且
Q
T
(
A
+
α
z
z
T
)
Q
=
(
γ
b
T
b
d
i
a
g
(
a
i
)
)
+
(
α
O
O
O
)
,
Q^T(A+\alpha zz^T)Q=\begin{pmatrix} \gamma & b^T\\b &\mathrm{diag}(a_i)\end{pmatrix}+\begin{pmatrix}\alpha & O\\O & O\end{pmatrix},
QT(A+αzzT)Q=(γbbTdiag(ai))+(αOOO),其中
b
=
S
T
a
b=S^Ta
b=STa. 因此
A
A
A与
A
+
α
z
z
T
A+\alpha zz^T
A+αzzT的特征值就等于
(
γ
b
T
b
d
i
a
g
(
a
i
)
)
与
(
γ
+
α
b
T
b
d
i
a
g
(
a
i
)
)
\begin{pmatrix}\gamma & b^T\\b&\mathrm{diag}(a_i)\end{pmatrix}与\begin{pmatrix}\gamma+\alpha & b^T\\b&\mathrm{diag}(a_i)\end{pmatrix}
(γbbTdiag(ai))与(γ+αbbTdiag(ai))的特征值.
设
b
b
b只有
s
s
s个分量不为0. 若
b
j
b_j
bj为0, 则
a
j
a_j
aj便是
A
A
A的特征值. 适当选取只与后
n
−
1
n-1
n−1行有关的置换阵
P
P
P, 我们可得矩阵
B
=
P
T
A
P
=
(
γ
b
T
O
b
d
i
a
g
(
β
i
)
O
O
O
d
i
a
g
(
γ
i
)
)
.
B=P^TAP=\begin{pmatrix} \gamma & b^T & O\\b & \mathrm{diag}(\beta_i) & O\\O & O & \mathrm{diag}(\gamma_i)\end{pmatrix}.
B=PTAP=⎝⎛γbObTdiag(βi)OOOdiag(γi)⎠⎞.这里仍用
b
b
b表示边上的向量, 只是现在
b
b
b的分量都不是0.
d
i
a
g
(
β
i
)
\mathrm{diag}(\beta_i)
diag(βi)是
s
s
s阶的,
d
i
a
g
(
γ
i
)
\mathrm{diag}(\gamma_i)
diag(γi)是
n
−
1
−
s
n-1-s
n−1−s阶的,
β
i
,
γ
i
\beta_i,\gamma_i
βi,γi合在一起是
a
i
a_i
ai的一个排列. 注意某些
γ
i
\gamma_i
γi可以是
d
i
a
g
(
a
i
)
\mathrm{diag}(a_i)
diag(ai)的重特征值. 因此,
A
A
A的特征值为
γ
i
\gamma_i
γi以及矩阵
C
=
(
γ
b
T
b
d
i
a
g
(
β
i
)
)
C=\begin{pmatrix}\gamma & b^T\\b &\mathrm{diag}(\beta_i)\end{pmatrix}
C=(γbbTdiag(βi))的特征值. 若
s
=
0
s=0
s=0, 则
C
C
C就是元素
γ
\gamma
γ, 此时
A
A
A的特征值为
d
i
a
g
(
a
i
)
\mathrm{diag}(a_i)
diag(ai)的特征值以及
γ
\gamma
γ. 若不然, 我们考察
C
C
C的特征多项式, 即
(
γ
−
λ
)
∏
i
=
1
s
(
β
i
−
λ
)
−
∑
j
=
1
s
b
j
2
∏
i
≠
j
(
β
i
−
λ
)
=
0.
(\gamma-\lambda)\prod_{i=1}^s(\beta_i-\lambda)-\sum_{j=1}^sb_j^2\prod_{i\ne j}(\beta_i-\lambda)=0.
(γ−λ)i=1∏s(βi−λ)−j=1∑sbj2i̸=j∏(βi−λ)=0.假定
β
)
i
\beta)i
β)i中只有
t
t
t个不同的值, 不失一般性, 可令它们为
β
1
,
β
2
,
…
,
β
t
\beta_1,\beta_2,\ldots,\beta_t
β1,β2,…,βt, 重数依次为
r
1
,
r
2
,
…
,
r
t
r_1,r_2,\ldots,r_t
r1,r2,…,rt, 于是
r
1
+
r
2
+
⋯
+
r
t
=
s
.
r_1+r_2+\cdots+r_t=s.
r1+r2+⋯+rt=s.显然特征多项式有因子
∏
i
=
1
t
(
β
i
−
λ
)
r
i
−
1
,
\prod_{i=1}^t(\beta_i-\lambda)^{r_i-1},
i=1∏t(βi−λ)ri−1,因此
β
i
\beta_i
βi为
C
C
C的特征值, 重数为
r
i
−
1
r_i-1
ri−1. 将特征多项式除以
∏
i
=
1
t
)
β
i
−
λ
)
r
i
\prod_{i=1}^t)\beta_i-\lambda)^{r_i}
∏i=1t)βi−λ)ri, 我们得到
C
C
C的其余特征值是方程
0
=
(
γ
−
λ
)
−
∑
i
=
1
t
c
i
2
(
β
i
−
λ
)
−
1
≡
γ
−
f
(
λ
)
0=(\gamma-\lambda)-\sum_{i=1}^tc_i^2(\beta_i-\lambda)^{-1}\equiv\gamma-f(\lambda)
0=(γ−λ)−i=1∑tci2(βi−λ)−1≡γ−f(λ)的根, 其中
c
i
2
c_i^2
ci2为与
β
i
\beta_i
βi有关的
b
j
2
b_j^2
bj2之和, 因而它严格大于0.
上图给出了 f ( λ ) f(\lambda) f(λ)的图像, 其中不同的 β i \beta_i βi按降序排列. 显然 γ = f ( λ ) \gamma=f(\lambda) γ=f(λ)的 t + 1 t+1 t+1个根——记为 δ 1 , δ 2 , … , δ t + 1 \delta_1,\delta_2,\ldots,\delta_{t+1} δ1,δ2,…,δt+1——满足关系式 ∞ > δ 1 > β 1 ; β i − 1 > δ i > β i ( i = 2 , 3 , … , t ) ; β t > δ t + 1 > − ∞ . \infty>\delta_1>\beta_1;\beta_{i-1}>\delta_i>\beta_i(i=2,3,\ldots,t);\beta_t>\delta_{t+1}>-\infty. ∞>δ1>β1;βi−1>δi>βi(i=2,3,…,t);βt>δt+1>−∞.因此 A A A的 n n n个特征值分成三组:
- 相应于 b i = 0 b_i=0 bi=0的特征值 γ 1 , γ 2 , … , γ n − 1 − s \gamma_1,\gamma_2,\ldots,\gamma_{n-1-s} γ1,γ2,…,γn−1−s, 它们等于 a i a_i ai中的 n − 1 − s n-1-s n−1−s个数;
- 由 ( r i − 1 ) (r_i-1) (ri−1)个等于 β i ( i = 1 , 2 , … , t ) \beta_i(i=1,2,\ldots,t) βi(i=1,2,…,t)的值所组成的 s − t s-t s−t歌特征值, 它们等于 a i a_i ai中另外的 s − t s-t s−t个数;
- t + 1 t+1 t+1个特征值等于 δ i \delta_i δi. 若 t = 0 t=0 t=0, 则 δ 1 = γ \delta_1=\gamma δ1=γ.
由此一来, 如果 α > 0 \alpha>0 α>0, 则第三组的特征值将不减; 如果 α < 0 \alpha<0 α<0, 则第三组的特征值将不增. 且易得交错分布. 证毕.
因此在Broyden族中, 只要
ϕ
k
\phi_k
ϕk为正, 特征值就不会减少, 从而
B
k
+
1
B_{k+1}
Bk+1在
ϕ
k
≥
0
\phi_k\ge0
ϕk≥0时都是正定的. 反过来, 若
ϕ
k
<
0
\phi_k<0
ϕk<0, 则特征值将不增. 随着
ϕ
k
\phi_k
ϕk的减小, 更新后的矩阵将变得奇异接着不定. 例如当
ϕ
k
c
=
1
1
−
μ
k
,
μ
k
=
(
y
k
T
B
k
−
1
y
k
)
(
s
k
T
B
k
s
k
)
(
y
k
T
s
k
)
2
\phi_k^c=\frac{1}{1-\mu_k},\quad \mu_k=\frac{(y_k^TB_k^{-1}y_k)(s_k^TB_ks_k)}{(y_k^Ts_k)^2}
ϕkc=1−μk1,μk=(ykTsk)2(ykTBk−1yk)(skTBksk)时,
B
k
+
1
B_{k+1}
Bk+1就是奇异的 (未验证) . 由Cauchy-Schwarz不等式可知
μ
k
≥
1
\mu_k\ge1
μk≥1, 从而
ϕ
k
c
≤
0
\phi_k^c\le0
ϕkc≤0. 因此对于任意对称正定的初始矩阵
B
0
B_0
B0, 且若对每个
k
k
k都有
s
k
T
y
k
>
0
s_k^Ty_k>0
skTyk>0,
ϕ
k
>
ϕ
k
c
\phi_k>\phi_k^c
ϕk>ϕkc, 则由Broyden公式产生的
B
k
B_k
Bk都保持对称正定性.
当线搜索精确时, 所有
ϕ
k
≥
ϕ
k
c
\phi_k\ge\phi_k^c
ϕk≥ϕkc的Broyden公式将产生相同的迭代序列 (未验证) . 这个结论对一般的非线性函数都是正确的, 此时所有Broyden族中的公式产生的搜索方向只有长度的区别.
类似于SR1方法, Broyden族在应用于二次函数时也有许多良好的性质 (以精确线搜索为前提). 我们不加证明的叙述于下面的定理中.
定理5 设Broyden族中的某一公式应用于强凸二次函数 f ( x ) = b T x + 1 2 x T A x f(x)=b^Tx+\frac{1}{2}x^TAx f(x)=bTx+21xTAx, 其中 x 0 x_0 x0为初始点, B 0 B_0 B0为任意对称正定的初始矩阵. 假设 α k \alpha_k αk为精确步长, ϕ k ≥ ϕ k c , ∀ k \phi_k\ge\phi_k^c,\forall k ϕk≥ϕkc,∀k. 则下面的叙述正确.
- 迭代点独立于 ϕ k \phi_k ϕk的选取, 且经至多 n n n步收敛于解;
- 割线方程对所有先前的搜索方向都成立, 即 B k s j = y j , j = k − 1 , k − 2 , … , 1 ; B_ks_j=y_j,\quad j=k-1,k-2,\ldots,1; Bksj=yj,j=k−1,k−2,…,1;
- 若初始矩阵 B 0 = I B_0=I B0=I, 则产生的迭代点与共轭梯度法产生的迭代点相同. 特别地, 搜索方向相互共轭, 即 s i T A s j = 0 , i ≠ j ; s_i^TAs_j=0,\quad i\ne j; siTAsj=0,i̸=j;
- 若经 n n n步迭代, 则 B n = A B_n=A Bn=A.
注意1,2,4与定理1是类似的.
我们可以稍微推广定理5: 它在Hessian近似保持非奇异但不必正定时仍然成立. (因此, 只要选取的
ϕ
k
\phi_k
ϕk不致产生奇异矩阵, 我们允许
ϕ
k
<
ϕ
k
c
\phi_k<\phi_k^c
ϕk<ϕkc.) 我们也可以推广第3条为, 若初始矩阵
B
0
B_0
B0不是单位阵, 则Broyden族等价于预处理共轭梯度法, 其中
B
0
B_0
B0作为预处理子.
类似于定理5这样的结论往往招徕研究人员的注意. 这是因为实际应用时的非精确线搜索可能会导致算法表现出现极大不同. 尽管如此, 这样的分析仍然促进了拟牛顿法的发展.
4. 收敛分析
本节我们讨论BFGS算法与SR1方法的全局与局部收敛性. 由于关于BFGS算法的分析结果更具有一般性和启发性, 我们将着重介绍之, 而只简略介绍SR1方法. 与之前的最速下降法与牛顿法不同的是, 拟牛顿法是以更新公式计算Hessian的近似, 这也增加了分析的复杂性.
提前说明, 即使BFGS算法与SR1方法在实际应用中被证实是极为强健的, 但我们不能对一般的非线性目标函数建立起真正的全局收敛性: 即, 我们无法对拟牛顿法证明, 从任意初始点和任意初始矩阵出发, 算法都能收敛到稳定点. 事实上, 这一性质至今还未得到证明. 在我们的分析中, 我们会假设
- 目标函数为凸; 或
- 迭代点满足一定的性质.
不过就局部而言, 我们在一定的条件下是可以证明它们的超线性收敛速度的.
以下以
∥
⋅
∥
\Vert\cdot\Vert
∥⋅∥表示欧式向量或矩阵范数, 以
G
(
x
)
G(x)
G(x)表示Hessian矩阵
∇
2
f
(
x
)
\nabla^2f(x)
∇2f(x).
4.1 BFGS算法的全局收敛性
我们假定目标函数具有如下性质:
- f f f二阶连续可微;
- 水平集 L = { x ∈ R n ∣ f ( x ) ≤ f ( x 0 ) } \mathcal{L}=\{x\in\mathbb{R}^n|f(x)\le f(x_0)\} L={x∈Rn∣f(x)≤f(x0)}是凸集, 且存在正常数 m , M m,M m,M使得 m ∥ z ∥ 2 ≤ z T G ( x ) z ≤ M ∥ z ∥ 2 , ∀ z ∈ R n , x ∈ L . m\Vert z\Vert^2\le z^TG(x)z\le M\Vert z\Vert^2,\quad\forall z\in\mathbb{R}^n,x\in\mathcal{L}. m∥z∥2≤zTG(x)z≤M∥z∥2,∀z∈Rn,x∈L.
其中第2条说明
G
(
x
)
G(x)
G(x)在
L
\mathcal{L}
L上是正定的, 从而
f
f
f在
L
\mathcal{L}
L上有唯一极小点
x
∗
x^*
x∗.
我们利用假设考察两个常数
y
k
T
s
k
s
k
T
s
k
,
y
k
T
y
k
y
k
T
s
k
\frac{y_k^Ts_k}{s_k^Ts_k},\frac{y_k^Ty_k}{y_k^Ts_k}
skTskykTsk,ykTskykTyk的界. 由平均Hessian矩阵的性质,
y
k
T
s
k
s
k
T
s
k
=
s
k
T
G
ˉ
k
s
k
s
k
T
s
k
≥
m
.
\frac{y_k^Ts_k}{s_k^Ts_k}=\frac{s_k^T\bar{G}_ks_k}{s_k^Ts_k}\ge m.
skTskykTsk=skTskskTGˉksk≥m.由于
G
ˉ
k
\bar{G}_k
Gˉk正定, 因此可定义它的平方根矩阵. 定义
z
k
=
G
ˉ
k
1
/
2
s
k
z_k=\bar{G}_k^{1/2}s_k
zk=Gˉk1/2sk, 从而
y
k
T
y
k
y
k
T
s
k
=
s
k
T
G
ˉ
k
2
s
k
s
k
T
G
ˉ
k
s
k
=
z
k
T
G
ˉ
k
z
k
z
k
T
z
k
≤
M
.
\frac{y_k^Ty_k}{y_k^Ts_k}=\frac{s_k^T\bar{G}_k^2s_k}{s_k^T\bar{G}_ks_k}=\frac{z_k^T\bar{G}_kz_k}{z_k^Tz_k}\le M.
ykTskykTyk=skTGˉkskskTGˉk2sk=zkTzkzkTGˉkzk≤M.下面我们证明BFGS算法的全局收敛性. 我们将不再像在第三章第二节中那样建立关于Hessian近似
B
k
B_k
Bk条件数的界, 而是引入矩阵的迹与行列式来估计Hessian近似矩阵的最大和最小特征值.
定理6 设
B
0
B_0
B0为任意对称正定初始矩阵,
x
0
x_0
x0为使假设成立的初始点. 则由算法1 (
ϵ
=
0
\epsilon=0
ϵ=0) 产生的序列
{
x
k
}
\{x_k\}
{xk}将收敛于
f
f
f的极小点
x
∗
x^*
x∗.
证明: 定义
m
k
=
y
k
T
s
k
s
k
T
s
k
,
M
k
=
y
k
T
y
k
y
k
T
s
k
,
m_k=\frac{y_k^Ts_k}{s_k^Ts_k},\quad M_k=\frac{y_k^Ty_k}{y_k^Ts_k},
mk=skTskykTsk,Mk=ykTskykTyk,由之前的讨论可知
m
k
≥
m
,
M
k
≤
M
.
m_k\ge m,\quad M_k\le M.
mk≥m,Mk≤M.计算BFGS更新公式两端的迹可得
t
r
(
B
k
+
1
)
=
t
r
(
B
k
)
−
∥
B
k
s
k
∥
2
s
k
T
B
k
s
k
+
∥
y
k
∥
2
y
k
T
s
k
.
\mathrm{tr}(B_{k+1})=\mathrm{tr}(B_k)-\frac{\Vert B_ks_k\Vert^2}{s_k^TB_ks_k}+\frac{\Vert y_k\Vert^2}{y_k^Ts_k}.
tr(Bk+1)=tr(Bk)−skTBksk∥Bksk∥2+ykTsk∥yk∥2.下面计算BFGS更新公式两段的行列式. 这里要用到一个秩2修正的行列式引理.
引理
det
(
I
+
x
y
T
+
u
v
T
)
=
(
1
+
y
T
x
)
(
1
+
v
T
u
)
−
(
y
T
u
)
(
v
T
x
)
.
\det(I + xy^T+uv^T)=(1+y^Tx)(1+v^Tu)-(y^Tu)(v^Tx).
det(I+xyT+uvT)=(1+yTx)(1+vTu)−(yTu)(vTx).
引理的证明: 不妨设
x
̸
∥
u
x\not\parallel u
x̸∥u, 则以
x
,
u
x,u
x,u为列向量的矩阵可以扩充成可逆矩阵, 即存在
Q
=
(
x
,
u
,
w
1
,
…
,
w
n
−
2
)
Q=(x,u,w_1,\ldots,w_{n-2})
Q=(x,u,w1,…,wn−2)可逆. 因此
det
(
I
+
x
y
T
+
u
v
T
)
=
det
(
Q
−
1
(
I
+
(
x
,
u
)
(
y
T
v
T
)
)
Q
)
=
det
(
I
+
(
e
1
,
e
2
)
(
y
T
x
y
T
u
⋯
v
T
x
v
T
u
⋯
)
)
=
det
(
I
+
(
y
T
x
y
T
u
⋯
v
T
x
v
T
u
⋯
)
(
e
1
,
e
2
)
)
=
det
(
I
+
(
y
T
x
y
T
u
v
T
x
v
T
u
)
)
=
(
1
+
y
T
x
)
(
1
+
v
T
u
)
−
(
y
T
u
)
(
v
T
x
)
.
\begin{aligned}\det(I+xy^T+uv^T)&=\det\left(Q^{-1}\left(I+(x,u)\begin{pmatrix}y^T\\v^T\end{pmatrix}\right)Q\right)\\&=\det\left(I+(e_1,e_2)\begin{pmatrix}y^Tx & y^Tu & \cdots\\v^Tx & v^Tu & \cdots\end{pmatrix}\right)\\&=\det\left(I + \begin{pmatrix}y^Tx & y^Tu & \cdots\\v^Tx & v^Tu & \cdots\end{pmatrix}(e_1,e_2)\right)\\&=\det\left(I + \begin{pmatrix}y^Tx & y^Tu\\v^Tx & v^Tu\end{pmatrix}\right)\\&=(1+y^Tx)(1+v^Tu)-(y^Tu)(v^Tx).\end{aligned}
det(I+xyT+uvT)=det(Q−1(I+(x,u)(yTvT))Q)=det(I+(e1,e2)(yTxvTxyTuvTu⋯⋯))=det(I+(yTxvTxyTuvTu⋯⋯)(e1,e2))=det(I+(yTxvTxyTuvTu))=(1+yTx)(1+vTu)−(yTu)(vTx).回到定理6的证明. 因此
det
(
B
k
+
1
)
=
det
(
B
k
)
det
(
I
−
s
k
s
k
T
B
k
s
k
T
B
k
s
k
+
B
k
−
1
y
k
y
k
T
y
k
T
s
k
)
=
det
(
B
k
)
y
k
T
s
k
s
k
T
B
k
s
k
.
\begin{aligned}\det(B_{k+1})&=\det(B_k)\det\left(I-\frac{s_ks_k^TB_k}{s_k^TB_ks_k}+\frac{B_k^{-1}y_ky_k^T}{y_k^Ts_k}\right)\\&=\det(B_k)\frac{y_k^Ts_k}{s_k^TB_ks_k}.\end{aligned}
det(Bk+1)=det(Bk)det(I−skTBkskskskTBk+ykTskBk−1ykykT)=det(Bk)skTBkskykTsk.我们证明全局收敛性的主要工具仍然是Zoutendijk定理. 现定义
cos
θ
k
=
s
k
T
B
k
s
k
∥
s
k
∥
∥
B
k
s
k
∥
,
q
k
=
s
k
T
B
k
s
k
s
k
T
s
k
.
\cos\theta_k=\frac{s_k^TB_ks_k}{\Vert s_k\Vert\Vert B_ks_k\Vert},\quad q_k=\frac{s_k^TB_ks_k}{s_k^Ts_k}.
cosθk=∥sk∥∥Bksk∥skTBksk,qk=skTskskTBksk.于是
∥
B
k
s
k
∥
2
s
k
T
B
k
s
k
=
∥
B
k
s
k
∥
2
∥
s
k
∥
2
(
s
k
T
B
k
s
k
)
2
s
k
T
B
k
s
k
∥
s
k
∥
2
=
q
k
cos
2
θ
k
.
\frac{\Vert B_ks_k\Vert^2}{s_k^TB_ks_k}=\frac{\Vert B_ks_k\Vert^2\Vert s_k\Vert^2}{(s_k^TB_ks_k)^2}\frac{s_k^TB_ks_k}{\Vert s_k\Vert^2}=\frac{q_k}{\cos^2\theta_k}.
skTBksk∥Bksk∥2=(skTBksk)2∥Bksk∥2∥sk∥2∥sk∥2skTBksk=cos2θkqk.此外, 还有
det
(
B
k
+
1
)
=
det
(
B
k
)
y
k
T
s
k
s
k
T
s
k
s
k
T
s
k
s
k
T
B
k
s
k
=
det
(
B
k
)
m
k
q
k
.
\det(B_{k+1})=\det(B_k)\frac{y_k^Ts_k}{s_k^Ts_k}\frac{s_k^Ts_k}{s_k^TB_ks_k}=\det(B_k)\frac{m_k}{q_k}.
det(Bk+1)=det(Bk)skTskykTskskTBkskskTsk=det(Bk)qkmk.下面结合迹和行列式定义正定矩阵
B
B
B的函数
ψ
(
B
)
=
t
r
(
B
)
−
ln
(
det
(
B
)
)
.
\psi(B)=\mathrm{tr}(B)-\ln(\det(B)).
ψ(B)=tr(B)−ln(det(B)).易知
ψ
(
B
)
>
0
\psi(B)>0
ψ(B)>0. 因此
ψ
(
B
k
+
1
)
=
t
r
(
B
k
)
+
M
k
−
q
k
cos
2
θ
k
−
ln
(
det
(
B
k
)
)
−
ln
m
k
+
ln
q
k
=
ψ
(
B
k
)
+
(
M
k
−
ln
m
k
−
1
)
+
[
1
−
1
k
cos
2
θ
k
+
ln
q
k
cos
2
θ
k
]
+
ln
cos
2
θ
k
.
\begin{aligned}\psi(B_{k+1})&=\mathrm{tr}(B_k)+M_k-\frac{q_k}{\cos^2\theta_k}-\ln(\det(B_k))-\ln m_k+\ln q_k\\&=\psi(B_k)+(M_k-\ln m_k-1)+\left[1-\frac{1_k}{\cos^2\theta_k}+\ln\frac{q_k}{\cos^2\theta_k}\right]+\ln\cos^2\theta_k.\end{aligned}
ψ(Bk+1)=tr(Bk)+Mk−cos2θkqk−ln(det(Bk))−lnmk+lnqk=ψ(Bk)+(Mk−lnmk−1)+[1−cos2θk1k+lncos2θkqk]+lncos2θk.由于函数
h
(
t
)
=
1
−
t
+
ln
t
h(t)=1-t+\ln t
h(t)=1−t+lnt对所有
t
>
0
t>0
t>0均非正, 从而递推可得
0
<
ψ
(
B
k
+
1
)
≤
ψ
(
B
0
)
+
c
(
k
+
1
)
+
∑
j
=
0
k
ln
cos
2
θ
j
,
0<\psi(B_{k+1})\le\psi(B_0)+c(k+1)+\sum_{j=0}^k\ln\cos^2\theta_j,
0<ψ(Bk+1)≤ψ(B0)+c(k+1)+j=0∑klncos2θj,其中
c
=
M
−
ln
m
−
1
c=M-\ln m-1
c=M−lnm−1(不妨设)为正. 注意到拟牛顿法迭代公式
x
k
+
1
=
x
k
+
α
k
p
k
,
p
k
=
−
B
k
−
1
∇
f
k
⇒
s
k
=
−
α
k
B
k
−
1
∇
f
k
,
x_{k+1}=x_k+\alpha_kp_k,p_k=-B_k^{-1}\nabla f_k\Rightarrow s_k=-\alpha_kB_k^{-1}\nabla f_k,
xk+1=xk+αkpk,pk=−Bk−1∇fk⇒sk=−αkBk−1∇fk,因此
θ
k
\theta_k
θk也是最速下降方向和搜索方向的夹角. 联系Zoutendijk定理, 序列
{
∥
∇
f
k
∥
}
\{\Vert \nabla f_k\Vert\}
{∥∇fk∥}在0的邻域外仅当
cos
θ
j
→
0
\cos\theta_j\to0
cosθj→0.
下面用反证法证明, 假设
cos
θ
j
→
0
\cos\theta_j\to0
cosθj→0. 从而存在
k
1
>
0
k_1>0
k1>0使得对于所有的
j
>
k
1
j>k_1
j>k1, 有
ln
cos
2
θ
j
<
−
2
c
.
\ln\cos^2\theta_j<-2c.
lncos2θj<−2c.由此对于
k
>
k
1
k>k_1
k>k1均有:
0
<
ψ
(
B
0
)
+
c
(
k
+
1
)
+
∑
j
=
0
k
1
ln
cos
2
θ
j
+
∑
j
=
k
1
+
1
k
(
−
2
c
)
=
ψ
(
B
0
)
+
∑
j
=
0
k
1
ln
cos
2
θ
j
+
2
c
k
1
+
c
−
c
k
.
\begin{aligned}0&<\psi(B_0)+c(k+1)+\sum_{j=0}^{k_1}\ln\cos^2\theta_j+\sum_{j=k_1+1}^k(-2c)\\&=\psi(B_0)+\sum_{j=0}^{k_1}\ln\cos^2\theta_j+2ck_1+c-ck.\end{aligned}
0<ψ(B0)+c(k+1)+j=0∑k1lncos2θj+j=k1+1∑k(−2c)=ψ(B0)+j=0∑k1lncos2θj+2ck1+c−ck.然而右端对于充分大的
k
k
k显然是负的, 从而矛盾. 因此存在指标
{
j
k
}
k
=
1
,
2
,
…
\{j_k\}_{k=1,2,\ldots}
{jk}k=1,2,…使得
cos
θ
j
k
≥
δ
>
0
\cos\theta_{j_k}\ge\delta>0
cosθjk≥δ>0. 由Zoutendijk定理这说明
lim inf
∥
∇
f
k
∥
=
0
\liminf\Vert\nabla f_k\Vert=0
liminf∥∇fk∥=0. 由于问题强凸, 这足以说明
x
k
→
x
∗
x_k\to x^*
xk→x∗. 证毕.
定理6已被推广至整个限制Broyden族上, 除了DFP方法 (即
ϕ
k
=
0
\phi_k=0
ϕk=0). 这是因为随着
ϕ
k
\phi_k
ϕk向1逼近, 一些自修正的性质将会极大地弱化.
上述分析的一个推广可以推出迭代序列是线性收敛的. 特别地, 我们可证明序列
{
∥
x
k
−
x
∗
∥
}
\{\Vert x_k-x^*\Vert\}
{∥xk−x∗∥}满足
∑
k
=
1
∞
∥
x
k
−
x
∗
∥
<
∞
.
\sum_{k=1}^{\infty}\Vert x_k-x^*\Vert<\infty.
k=1∑∞∥xk−x∗∥<∞.我们不证明之, 而假定它成立, 进而证明超线性收敛性.
4.2 BFGS算法的超线性收敛性
我们利用第三章中拟牛顿法超线性收敛的充分条件
lim
k
→
∞
∥
(
B
k
−
∇
2
f
(
x
∗
)
p
k
∥
∥
p
k
∥
=
0
\lim_{k\to\infty}\frac{\Vert (B_k-\nabla^2f(x^*)p_k\Vert}{\Vert p_k\Vert}=0
k→∞lim∥pk∥∥(Bk−∇2f(x∗)pk∥=0来证明超线性收敛性. 注意这一结论对于一般的非线性目标函数仍然成立. 为此我们需要添加额外的假设: Hessian矩阵
G
G
G在
x
∗
x^*
x∗处Lipshcitz连续, 即
∥
G
(
x
)
−
G
(
x
∗
)
∥
≤
L
∥
x
−
x
∗
∥
,
\Vert G(x)-G(x^*)\Vert\le L\Vert x-x^*\Vert,
∥G(x)−G(x∗)∥≤L∥x−x∗∥,其中
x
x
x在
x
∗
x^*
x∗附近,
L
L
L为正常数.
我们引入如下参量:
s
~
k
=
G
∗
1
/
2
s
k
,
y
~
k
=
G
∗
−
1
/
2
y
k
,
B
~
k
=
G
∗
−
1
/
2
B
k
G
∗
−
1
/
2
,
\tilde{s}_k=G_*^{1/2}s_k,\quad \tilde{y}_k=G_*^{-1/2}y_k,\quad\tilde{B}_k=G_*^{-1/2}B_kG_*^{-1/2},
s~k=G∗1/2sk,y~k=G∗−1/2yk,B~k=G∗−1/2BkG∗−1/2,其中
G
∗
=
G
(
x
∗
)
G_*=G(x^*)
G∗=G(x∗),
x
∗
x^*
x∗为
f
f
f的一个极小点. 类似于之前定理6的证明, 我们定义
cos
θ
~
k
=
s
~
k
T
B
~
k
s
~
k
∥
s
~
k
∥
∥
B
~
k
s
~
k
∥
,
q
~
k
=
s
~
k
T
B
~
k
s
~
k
∥
s
~
k
∥
2
,
\cos\tilde{\theta}_k=\frac{\tilde{s}_k^T\tilde{B}_k\tilde{s}_k}{\Vert\tilde{s}_k\Vert\Vert\tilde{B}_k\tilde{s}_k\Vert},\quad\tilde{q}_k=\frac{\tilde{s}_k^T\tilde{B}_k\tilde{s}_k}{\Vert\tilde{s}_k\Vert^2},
cosθ~k=∥s~k∥∥B~ks~k∥s~kTB~ks~k,q~k=∥s~k∥2s~kTB~ks~k,
M
~
k
=
∥
y
~
k
∥
2
y
~
k
T
s
~
k
,
m
~
k
=
y
~
k
T
s
~
k
s
~
k
T
s
~
k
.
\tilde{M}_k=\frac{\Vert\tilde{y}_k\Vert^2}{\tilde{y}_k^T\tilde{s}_k},\quad\tilde{m}_k=\frac{\tilde{y}_k^T\tilde{s}_k}{\tilde{s}_k^T\tilde{s}_k}.
M~k=y~kTs~k∥y~k∥2,m~k=s~kTs~ky~kTs~k.在BFGS公式左右端左乘于右乘
G
∗
−
1
/
2
G_*^{-1/2}
G∗−1/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
.
\tilde{B}_{k+1}=\tilde{B}_k-\frac{\tilde{B}_k\tilde{s}_k\tilde{s}_k^T\tilde{B}_k}{\tilde{s}_k^T\tilde{B}_k\tilde{s}_k}+\frac{\tilde{y}_k\tilde{y}_k^T}{\tilde{y}_k^T\tilde{s}_k}.
B~k+1=B~k−s~kTB~ks~kB~ks~ks~kTB~k+y~kTs~ky~ky~kT.由于这一表达式与BFGS公式具有同样的形式, 因此同样地有
ψ
(
B
~
k
+
1
)
=
ψ
(
B
~
k
)
+
(
M
~
k
−
ln
m
~
k
−
1
)
+
[
1
−
q
~
k
cos
2
θ
~
k
+
ln
q
~
k
cos
2
θ
~
k
]
+
ln
cos
2
θ
~
k
.
\begin{aligned}\psi(\tilde{B}_{k+1})&=\psi(\tilde{B}_k)+(\tilde{M}_k-\ln\tilde{m}_k-1)\\&+\left[1-\frac{\tilde{q}_k}{\cos^2\tilde{\theta}_k}+\ln\frac{\tilde{q}_k}{\cos^2\tilde{\theta}_k}\right]+\ln\cos^2\tilde{\theta}_k.\end{aligned}
ψ(B~k+1)=ψ(B~k)+(M~k−lnm~k−1)+[1−cos2θ~kq~k+lncos2θ~kq~k]+lncos2θ~k.由于
y
k
=
G
ˉ
k
s
k
,
y_k=\bar{G}_ks_k,
yk=Gˉksk,所以
y
k
−
G
∗
s
k
=
(
G
ˉ
k
−
G
∗
)
s
k
,
y_k-G_*s_k=(\bar{G}_k-G_*)s_k,
yk−G∗sk=(Gˉk−G∗)sk,从而
y
~
k
−
s
~
k
=
G
∗
−
1
/
2
(
G
ˉ
k
−
G
∗
)
G
∗
−
1
/
2
s
~
k
.
\tilde{y}_k-\tilde{s}_k=G_*^{-1/2}(\bar{G}_k-G_*)G_*^{-1/2}\tilde{s}_k.
y~k−s~k=G∗−1/2(Gˉk−G∗)G∗−1/2s~k.由假设条件,
∥
y
~
k
−
s
~
k
∥
≤
∥
G
∗
−
1
/
2
∥
2
∥
s
~
k
∥
∥
G
ˉ
k
−
G
∗
∥
≤
∥
G
∗
−
1
/
2
∥
2
∥
s
~
k
∥
L
ϵ
k
,
\Vert\tilde{y}_k-\tilde{s}_k\Vert\le\Vert G_*^{-1/2}\Vert^2\Vert\tilde{s}_k\Vert\Vert\bar{G}_k-G_*\Vert\le\Vert G_*^{-1/2}\Vert^2\Vert\tilde{s}_k\Vert L\epsilon_k,
∥y~k−s~k∥≤∥G∗−1/2∥2∥s~k∥∥Gˉk−G∗∥≤∥G∗−1/2∥2∥s~k∥Lϵk,其中
ϵ
k
=
max
{
∥
x
k
+
1
−
x
∗
∥
,
∥
x
k
−
x
∗
∥
}
.
\epsilon_k=\max\{\Vert x_{k+1}-x^*\Vert,\Vert x_k-x^*\Vert\}.
ϵk=max{∥xk+1−x∗∥,∥xk−x∗∥}.因此
∥
y
~
k
−
s
~
k
∥
∥
s
~
k
∥
≤
c
ˉ
ϵ
k
,
\frac{\Vert\tilde{y}_k-\tilde{s}_k\Vert}{\Vert\tilde{s}_k\Vert}\le\bar{c}\epsilon_k,
∥s~k∥∥y~k−s~k∥≤cˉϵk,其中
c
ˉ
\bar{c}
cˉ为一正常数. 下面我们将利用此式证明拟牛顿法的超线性收敛.
定理7 设
f
f
f二阶连续可微且BFGS算法产生的迭代点收敛到满足假设条件的极小点
x
∗
x^*
x∗. 且设
∑
k
=
1
∞
∥
x
k
−
x
∗
∥
<
∞
.
\sum_{k=1}^{\infty}\Vert x_k-x^*\Vert<\infty.
k=1∑∞∥xk−x∗∥<∞.于是
x
k
x_k
xk超线性收敛于
x
∗
x^*
x∗.
证明: 由三角不等式,
∥
y
~
k
∥
−
∥
s
~
k
∥
≤
c
ˉ
ϵ
k
∥
s
~
k
∥
,
∥
s
~
k
∥
−
∥
y
~
k
∥
≤
c
ˉ
ϵ
k
∥
s
~
k
∥
,
\Vert\tilde{y}_k\Vert-\Vert\tilde{s}_k\Vert\le\bar{c}\epsilon_k\Vert\tilde{s}_k\Vert,\quad \Vert\tilde{s}_k\Vert-\Vert\tilde{y}_k\Vert\le\bar{c}\epsilon_k\Vert\tilde{s}_k\Vert,
∥y~k∥−∥s~k∥≤cˉϵk∥s~k∥,∥s~k∥−∥y~k∥≤cˉϵk∥s~k∥,从而
(
1
−
c
ˉ
ϵ
k
)
∥
s
~
k
∥
≤
∥
y
~
k
∥
≤
(
1
+
c
ˉ
ϵ
k
)
∥
s
~
k
∥
.
(1-\bar{c}\epsilon_k)\Vert\tilde{s}_k\Vert\le\Vert\tilde{y}_k\Vert\le(1+\bar{c}\epsilon_k)\Vert\tilde{s}_k\Vert.
(1−cˉϵk)∥s~k∥≤∥y~k∥≤(1+cˉϵk)∥s~k∥.平方后可得
(
1
−
c
ˉ
ϵ
k
)
2
∥
s
~
k
∥
2
−
2
y
~
k
T
s
~
k
+
∥
s
~
k
∥
2
≤
∥
y
~
k
∥
2
−
2
y
~
k
T
s
~
k
+
∥
s
~
k
∥
2
≤
c
ˉ
2
ϵ
k
2
∥
s
~
k
∥
2
,
(1-\bar{c}\epsilon_k)^2\Vert \tilde{s}_k\Vert^2-2\tilde{y}_k^T\tilde{s}_k+\Vert\tilde{s}_k\Vert^2\le\Vert\tilde{y}_k\Vert^2-2\tilde{y}_k^T\tilde{s}_k+\Vert\tilde{s}_k\Vert^2\le\bar{c}^2\epsilon_k^2\Vert\tilde{s}_k\Vert^2,
(1−cˉϵk)2∥s~k∥2−2y~kTs~k+∥s~k∥2≤∥y~k∥2−2y~kTs~k+∥s~k∥2≤cˉ2ϵk2∥s~k∥2,因此
2
y
~
k
T
s
~
k
≥
(
1
−
2
c
ˉ
ϵ
k
+
c
ˉ
2
ϵ
k
2
+
1
−
c
ˉ
2
ϵ
k
2
)
∥
s
~
k
∥
2
=
2
(
1
−
c
ˉ
ϵ
k
)
∥
s
~
k
∥
2
.
2\tilde{y}_k^T\tilde{s}_k\ge(1-2\bar{c}\epsilon_k+\bar{c}^2\epsilon_k^2+1-\bar{c}^2\epsilon_k^2)\Vert\tilde{s}_k\Vert^2=2(1-\bar{c}\epsilon_k)\Vert\tilde{s}_k\Vert^2.
2y~kTs~k≥(1−2cˉϵk+cˉ2ϵk2+1−cˉ2ϵk2)∥s~k∥2=2(1−cˉϵk)∥s~k∥2.由
m
~
k
\tilde{m}_k
m~k的定义可得
m
~
k
=
y
~
k
T
s
~
k
∥
s
~
k
∥
2
≥
1
−
c
ˉ
ϵ
k
.
\tilde{m}_k=\frac{\tilde{y}_k^T\tilde{s}_k}{\Vert\tilde{s}_k\Vert^2}\ge1-\bar{c}\epsilon_k.
m~k=∥s~k∥2y~kTs~k≥1−cˉϵk.类似地我们可以得到
M
~
k
=
∥
y
~
k
∥
2
y
~
k
T
s
~
k
≤
1
+
c
ˉ
ϵ
k
1
−
c
ˉ
ϵ
k
.
\tilde{M}_k=\frac{\Vert\tilde{y}_k\Vert^2}{\tilde{y}_k^T\tilde{s}_k}\le\frac{1+\bar{c}\epsilon_k}{1-\bar{c}\epsilon_k}.
M~k=y~kTs~k∥y~k∥2≤1−cˉϵk1+cˉϵk.因
x
k
→
x
∗
x_k\to x^*
xk→x∗, 所以
ϵ
k
→
0
\epsilon_k\to0
ϵk→0, 从而存在
c
>
c
ˉ
c>\bar{c}
c>cˉ使得下面不等式对于充分大的
k
k
k成立:
M
~
k
≤
1
+
2
c
ˉ
1
−
c
ˉ
ϵ
k
ϵ
k
≤
1
+
c
ϵ
k
.
\tilde{M}_k\le1+\frac{2\bar{c}}{1-\bar{c}\epsilon_k}\epsilon_k\le1+c\epsilon_k.
M~k≤1+1−cˉϵk2cˉϵk≤1+cϵk.再次利用
h
(
t
)
=
1
−
t
+
ln
t
h(t)=1-t+\ln t
h(t)=1−t+lnt的非正性,
−
x
1
−
x
−
ln
(
1
−
x
)
=
h
(
1
1
−
x
)
≤
0.
\frac{-x}{1-x}-\ln(1-x)=h\left(\frac{1}{1-x}\right)\le0.
1−x−x−ln(1−x)=h(1−x1)≤0.于是对于充分大的
k
k
k我们可以假设
c
ˉ
ϵ
k
<
1
2
\bar{c}\epsilon_k<\frac{1}{2}
cˉϵk<21, 因此
ln
(
1
−
c
ˉ
ϵ
k
)
≥
−
c
ˉ
ϵ
k
1
−
c
ˉ
ϵ
k
≥
−
2
c
ˉ
ϵ
k
.
\ln(1-\bar{c}\epsilon_k)\ge\frac{-\bar{c}\epsilon_k}{1-\bar{c}\epsilon_k}\ge-2\bar{c}\epsilon_k.
ln(1−cˉϵk)≥1−cˉϵk−cˉϵk≥−2cˉϵk.所以对于充分大的
k
k
k,
ln
m
~
k
≥
ln
(
1
−
c
ˉ
ϵ
k
)
≥
−
2
c
ˉ
ϵ
k
>
−
2
c
ϵ
k
.
\ln\tilde{m}_k\ge\ln(1-\bar{c}\epsilon_k)\ge-2\bar{c}\epsilon_k>-2c\epsilon_k.
lnm~k≥ln(1−cˉϵk)≥−2cˉϵk>−2cϵk.因此
0
<
ψ
(
B
~
k
+
1
)
≤
ψ
(
B
~
k
)
+
3
c
ϵ
k
+
ln
cos
2
θ
~
k
+
[
1
−
q
~
k
cos
2
θ
~
k
+
ln
q
~
k
cos
2
θ
~
k
]
.
0<\psi(\tilde{B}_{k+1})\le\psi(\tilde{B}_k)+3c\epsilon_k+\ln\cos^2\tilde{\theta}_k+\left[1-\frac{\tilde{q}_k}{\cos^2\tilde{\theta}_k}+\ln\frac{\tilde{q}_k}{\cos^2\tilde{\theta}_k}\right].
0<ψ(B~k+1)≤ψ(B~k)+3cϵk+lncos2θ~k+[1−cos2θ~kq~k+lncos2θ~kq~k].累和以上, 我们有
∑
j
=
0
∞
(
ln
1
cos
2
θ
~
j
−
[
1
−
q
~
k
cos
2
θ
~
k
+
ln
q
~
k
cos
2
θ
~
k
]
)
≤
ψ
(
B
~
0
)
+
3
c
∑
j
=
0
∞
ϵ
j
<
+
∞
.
\sum_{j=0}^{\infty}\left(\ln\frac{1}{\cos^2\tilde{\theta}_j}-\left[1-\frac{\tilde{q}_k}{\cos^2\tilde{\theta}_k}+\ln\frac{\tilde{q}_k}{\cos^2\tilde{\theta}_k}\right]\right)\le\psi(\tilde{B}_0)+3c\sum_{j=0}^{\infty}\epsilon_j<+\infty.
j=0∑∞(lncos2θ~j1−[1−cos2θ~kq~k+lncos2θ~kq~k])≤ψ(B~0)+3cj=0∑∞ϵj<+∞.由于中括号内非正, 而
ln
(
1
/
cos
2
θ
~
j
)
≥
0
\ln\left(1/\cos^2\tilde{\theta}_j\right)\ge0
ln(1/cos2θ~j)≥0, 因此
lim
j
→
∞
ln
1
cos
2
θ
~
j
=
0
,
lim
j
→
∞
[
1
−
q
~
k
cos
2
θ
~
k
+
ln
q
~
k
cos
2
θ
~
k
]
=
0
,
\lim_{j\to\infty}\ln\frac{1}{\cos^2\tilde{\theta}_j}=0,\quad\lim_{j\to\infty}\left[1-\frac{\tilde{q}_k}{\cos^2\tilde{\theta}_k}+\ln\frac{\tilde{q}_k}{\cos^2\tilde{\theta}_k}\right]=0,
j→∞limlncos2θ~j1=0,j→∞lim[1−cos2θ~kq~k+lncos2θ~kq~k]=0,
⇒
lim
j
→
∞
cos
θ
~
j
=
1
,
lim
j
→
∞
q
~
j
=
1.
\Rightarrow\lim_{j\to\infty}\cos\tilde{\theta}_j=1,\quad \lim_{j\to\infty}\tilde{q}_j=1.
⇒j→∞limcosθ~j=1,j→∞limq~j=1.我们现在只需套用超线性收敛的充分条件.
∥
G
∗
−
1
/
2
(
B
k
−
G
∗
)
s
k
∥
2
∥
G
∗
1
/
2
s
k
∥
2
=
∥
(
B
~
k
−
I
)
s
~
k
∥
2
∥
s
~
k
∥
2
=
∥
B
~
k
s
~
k
∥
2
−
2
s
~
k
T
B
~
k
s
~
k
+
s
~
k
T
s
~
k
s
~
k
T
s
~
k
=
q
~
k
2
cos
2
θ
~
k
−
2
q
~
k
+
1.
\begin{aligned}\frac{\Vert G_*^{-1/2}(B_k-G_*)s_k\Vert^2}{\Vert G_*^{1/2}s_k\Vert^2}&=\frac{\Vert(\tilde{B}_k-I)\tilde{s}_k\Vert^2}{\Vert\tilde{s}_k\Vert^2}\\&=\frac{\Vert\tilde{B}_k\tilde{s}_k\Vert^2-2\tilde{s}_k^T\tilde{B}_k\tilde{s}_k+\tilde{s}_k^T\tilde{s}_k}{\tilde{s}_k^T\tilde{s}_k}\\&=\frac{\tilde{q}_k^2}{\cos^2\tilde{\theta}_k}-2\tilde{q}_k+1.\end{aligned}
∥G∗1/2sk∥2∥G∗−1/2(Bk−G∗)sk∥2=∥s~k∥2∥(B~k−I)s~k∥2=s~kTs~k∥B~ks~k∥2−2s~kTB~ks~k+s~kTs~k=cos2θ~kq~k2−2q~k+1.由于右端收敛到0, 因此
lim
k
→
∞
∥
(
B
k
−
G
∗
)
s
k
∥
∥
s
k
∥
=
0.
\lim_{k\to\infty}\frac{\Vert(B_k-G_*)s_k\Vert}{\Vert s_k\Vert}=0.
k→∞lim∥sk∥∥(Bk−G∗)sk∥=0.这说明单位步长
α
k
=
1
\alpha_k=1
αk=1将最终在解附近满足Wolfe条件, 从而达成超线性收敛. 证毕
4.3 SR1方法的收敛性分析
SR1方法的收敛性质并不如BFGS算法那么好理解. 事实上, 除了之前叙述的关于二次函数的结论, 我们至今没有获得像定理6 (全局收敛性) 和定理7 (局部超线性收敛) 的结论. 然而关于信赖域SR1方法却有一个很有意思的结果: 若目标函数有唯一稳定点, SR1从不跳步且 B k B_k Bk上有界, 则 x k x_k xk以 ( n + 1 ) − (n+1)- (n+1)−步超线性收敛速度收敛于 x ∗ x^* x∗. 这一结论不需要信赖域子问题的精确求解. 我们不加证明地叙述之:
定理8 设算法2产生迭代点 x k x_k xk. 假设下面的条件满足:
- 序列不终止, 但始终落在一个有界闭凸集 D D D中, 其上 f f f二阶连续可微且具有唯一稳定点 x ∗ x^* x∗.;
- Hessian ∇ 2 f ( x ∗ ) \nabla^2f(x^*) ∇2f(x∗)正定, 且 ∇ 2 f ( x ) \nabla^2f(x) ∇2f(x)在 x ∗ x^* x∗的一个邻域内Lipschitz连续;
- 范数序列 { ∥ B k ∥ } \{\Vert B_k\Vert\} {∥Bk∥}有界;
- SR1不跳步.
则
lim
k
→
∞
x
k
=
x
∗
\lim_{k\to\infty}x_k=x^*
limk→∞xk=x∗, 且我们有
lim
k
→
∞
∥
x
k
+
n
+
1
−
x
∗
∥
∥
x
k
−
x
∗
∥
=
0.
\lim_{k\to\infty}\frac{\Vert x_{k+n+1}-x^*\Vert}{\Vert x_k-x^*\Vert}=0.
k→∞lim∥xk−x∗∥∥xk+n+1−x∗∥=0.
相比之下, BFGS算法无需第3条假设. 之前提到, SR1不保证正定性. 实际中,
B
k
B_k
Bk可能在任一步迭代不定, 从而信赖域的边界约束会在任意大的
k
k
k处起作用. 不过有意思的是, 可以证明在定理8的条件下, SR1在大多数时间内还是能够产生正定矩阵的. 具体说就是
lim
k
→
∞
{
B
j
}
正
定
的
指
标
数
k
=
1.
\lim_{k\to\infty}\frac{\{B_j\}正定的指标数}{k}=1.
k→∞limk{Bj}正定的指标数=1.这点与初始Hessian近似正定与否无关.