目录
5.牛顿法
5.1 基本牛顿法
5.1.1 牛顿法的定义
牛顿法的基本原理是对目标函数在当前点的局部邻域采用二次多项式 q ( x ) q(x) q(x) 来做近似,并用 q ( x ) q(x) q(x) 的最小值点作为下一个迭代点.
目标函数 f f f 在当前位置 x k x_k xk 处的二次 Taylor 展开为 q k ( x ) = f ( x k ) + ∇ f ( x k ) T ( x − x k ) + 1 2 ( x − x k ) T ∇ 2 f ( x k ) ( x − x k ) + o ( ( x − x k ) 2 ) \begin{aligned}q_k(x)=f(x_k)+\nabla f(x_k)^T(x-x_k)+\frac{1}{2}(x-x_k)^T\nabla^2f(x_k)(x-x_k)\end{aligned}+o((x-x_k)^2) qk(x)=f(xk)+∇f(xk)T(x−xk)+21(x−xk)T∇2f(xk)(x−xk)+o((x−xk)2)为了方便起见,记 d k = x − x k d_k=x-x_k dk=x−xk,则上述Taylor展开公式可以写为 q k ( x ) = f ( x k ) + ∇ f ( x k ) T d k + 1 2 d k T ∇ 2 f ( x k ) d k + o ( ∣ ∣ d k ∣ ∣ 2 ) \begin{aligned}q_k(x)=f(x_k)+\nabla f(x_k)^Td_k+\frac{1}{2}d_k^T\nabla^2f(x_k)d_k\end{aligned}+o( ||d_k||^2) qk(x)=f(xk)+∇f(xk)Tdk+21dkT∇2f(xk)dk+o(∣∣dk∣∣2)现在我们不考虑二次以上的项,直接用 q k ( x ) = f ( x k ) + ∇ f ( x k ) T d k + 1 2 d k T ∇ 2 f ( x k ) d k q_k(x)=f(x_k)+\nabla f(x_k)^Td_k+\frac{1}{2}d_k^T\nabla^2f(x_k)d_k qk(x)=f(xk)+∇f(xk)Tdk+21dkT∇2f(xk)dk 来做为 f f f 在 x k x_k xk 处的近似.
为了使得该次迭代的函数值下降得尽可能多,我们可以最小化 h ( d k ) = f ( x k ) + ∇ f ( x k ) T d k + 1 2 d k T ∇ 2 f ( x k ) d k h(d_k)=f(x_k)+\nabla f(x_k)^Td_k+\frac{1}{2}d_k^T\nabla^2f(x_k)d_k h(dk)=f(xk)+∇f(xk)Tdk+21dkT∇2f(xk)dk,令 ∇ h ( d k ) = ∇ f ( x k ) + ∇ f 2 ( x k ) d k = 0 \nabla h(d_k)=\nabla f(x_k)+\nabla f^2(x_k)d_k=0 ∇h(dk)=∇f(xk)+∇f2(xk)dk=0,可以得到 d = − ∇ 2 f ( x k ) − 1 ∇ f ( x k ) d=-\nabla^2f(x_k)^{-1}\nabla f(x_k) d=−∇2f(xk)−1∇f(xk)因此迭代方程可以写为 x k + 1 = x k + d k = x k − ∇ 2 f ( x k ) − 1 ∇ f ( x k ) x_{k+1}=x_k+d_k=x_k-\nabla^2f(x_k)^{-1}\nabla f(x_k) xk+1=xk+dk=xk−∇2f(xk)−1∇f(xk)称 d k : = x k + 1 − x k d_k := x_{k+1} − x_{k} dk:=xk+1−xk 是 x k x_k xk 处的 牛顿方向,其中 d k d_k dk 是线性方程组 ∇ 2 f ( x k ) d = − ∇ f ( x k ) \nabla^2f(x_k)d=-\nabla f(x_k) ∇2f(xk)d=−∇f(xk)的解,其计算量通常为 O ( n 3 ) O(n^3) O(n3)次浮点运算,此外还需要计算 Hessian 矩阵 ∇ 2 f ( x k ) ∇^2f(x_k) ∇2f(xk) 和梯度 ∇ f ( x k ) ∇f(x_k) ∇f(xk),我们可以将牛顿法的优化函数算法表示如下:
算法 5.1 (基本牛顿法) 选定迭代初值 x 0 ∈ Ω x_0\in\Omega x0∈Ω,选取 ϵ > 0 \epsilon>0 ϵ>0,重复以下操作 :
(1) 若 ∣ ∣ ∇ f ( x k ) ∣ ∣ < ϵ ||\nabla f(x_k)||<\epsilon ∣∣∇f(xk)∣∣<ϵ,终止迭代,输出 x k x_k xk 和 f ( x k ) f(x_k) f(xk)
(2) 计算梯度 : ∇ f ( x k ) :\nabla f(x_k) :∇f(xk)
(3) 计算 H e s s i a n Hessian Hessian矩阵 : ∇ 2 f ( x k ) :\nabla^2f(x_k) :∇2f(xk)
(4) 计算方向 : d k = − ∇ 2 f ( x k ) − 1 ∇ f ( x k ) :d_k=-\nabla^2f(x_k)^{-1}\nabla f(x_k) :dk=−∇2f(xk)−1∇f(xk)
(5) 更新迭代点 : x k + 1 = x k − d :x_{k+1}=x_k-d :xk+1=xk−d,返回步骤 (1)
5.1.2 牛顿法的性质
下面来看看牛顿法有哪些性质.
命题 5.1.1 (仿射不变性) 设
f
:
R
n
→
R
f:\mathbb{R}^n\to\mathbb{R}
f:Rn→R 是二阶连续可微,
T
:
R
n
→
R
n
T:\mathbb{R}^n\to\mathbb{R}^n
T:Rn→Rn 是可逆仿射变换,记
y
=
T
x
y=Tx
y=Tx ,构造
h
(
x
)
=
f
(
T
x
)
h(x)=f(Tx)
h(x)=f(Tx) ,记单次迭代的牛顿步为
n
x
=
−
(
∇
2
h
(
x
)
)
−
1
∇
h
(
x
)
n_x=-(\nabla^2h(x))^{-1}\nabla h(x)
nx=−(∇2h(x))−1∇h(x) ,则对于牛顿法单步迭代有:
y
+
n
y
=
T
(
x
+
n
x
)
y+n_y=T(x+n_x)
y+ny=T(x+nx)也就是说对于可逆仿射变换,牛顿法保持不变。
在证明之前,先补充几个关于矩阵微分的结论:
-
如果矩阵 A A A 是 n × m n×m n×m 维的,向量 y y y 是 m m m 维列向量,使用分母布局,则 d ( A y ) d y = A T \frac{d(Ay)}{dy}=A^T dyd(Ay)=AT
-
如果矩阵 A A A 是 m m m 维方阵,向量 y y y 是 m m m 维列向量,使用分母布局,则 d ( y T A y ) d y = A T y + A y \frac{d(y^TAy)}{dy}=A^Ty+Ay dyd(yTAy)=ATy+Ay,特别地,如果 A A A 还是对称矩阵,则上式等于 2 A y 2Ay 2Ay
好啦,下面就来证明牛顿法的仿射不变性:
证.由于仿射变换是线性变换,于是只需证明 n y = T n x n_y=Tn_x ny=Tnx,即只要证 n x = T − 1 x y n_x=T^{-1}x_y nx=T−1xy,由于 n x = − ( ∇ 2 h ( x ) ) − 1 ∇ h ( x ) = − ( T ⊤ ∇ 2 f ( y ) T ) − 1 T ⊤ ∇ f ( y ) = − T − 1 ∇ 2 f ( y ) ∇ f ( y ) = T − 1 n y \begin{aligned}{n}_{x}& =-(\nabla^2h(x))^{-1}\nabla h(x) \\ &=-\left(T^\top\nabla^2f(y)T\right)^{-1}T^\top\nabla f(y) \\ &=-T^{-1}\nabla^2f(y)\nabla f(y) \\ &=T^{-1}n_y \end{aligned} nx=−(∇2h(x))−1∇h(x)=−(T⊤∇2f(y)T)−1T⊤∇f(y)=−T−1∇2f(y)∇f(y)=T−1ny证毕.
应用仿射不变性,当牛顿法用于 Hessian矩阵条件数为1的二次型时,牛顿法可以在任意迭代起点确定一条包含最优点的二次曲线,而最优点就在该曲线的最低点上。因此,对于条件数为1的二次型,牛顿法一步到位很显然。对于非标准形式的二次型,都可以对条件数为1的二次型做仿射变换得到,而仿射变换下的牛顿法不变,所以对于不同的二次型而言牛顿法都可以做到一步就收敛到最优点。
命题 5.1.2 (局部收敛性) 设目标函数
f
f
f 在其局部极小点
x
∗
x^*
x∗ 的一个邻域
D
D
D 内二阶连续可微,其
H
e
s
s
i
a
n
Hessian
Hessian 矩阵
∇
2
f
(
x
)
\nabla^2f(x)
∇2f(x) 在此领域内满足
L
i
p
s
c
h
i
t
z
Lipschitz
Lipschitz 条件:存在
β
>
0
\beta>0
β>0, 使得
∥
∇
2
f
(
x
)
−
∇
2
f
(
y
)
∥
2
≤
β
∥
x
−
y
∥
2
,
∀
x
,
y
∈
D
.
\begin{align} \|\nabla^2f(x)-\nabla^2f(y)\|_2\leq\beta\|x-y\|_2,\quad\forall x,y\in D.\end{align}
∥∇2f(x)−∇2f(y)∥2≤β∥x−y∥2,∀x,y∈D.又设
∇
2
f
(
x
∗
)
\nabla^2f(x^*)
∇2f(x∗) 是正定的,那么当初值
x
0
x_{0}
x0 充分接近
x
∗
x^*
x∗ 时,
N
e
w
t
o
n
Newton
Newton 迭代所得点列
{
x
k
}
\{x_k\}
{xk} 至少依二阶收敛于
x
∗
x^*
x∗.
证.因为 ∇ 2 f ( x ) \nabla^2f(x) ∇2f(x) 在 x ∗ x^* x∗ 的某邻域内存在且连续, ∇ 2 f ( x ∗ ) \nabla^2f(x^*) ∇2f(x∗) 是正定的,由于正定性具有稳定性(在充分小扰动下仍是正定的),所以 ∇ 2 f ( x ) \nabla^2f(x) ∇2f(x) 在 x ∗ x^* x∗ 的某邻域内仍是正定的,并且 ∇ 2 f ( x ) − 1 \nabla^2f(x)^{-1} ∇2f(x)−1 存在且是连续的. 于是存在 r > 0 r>0 r>0 使得 B ( x ∗ , r ) ⊂ D B(x^*,r)\subset D B(x∗,r)⊂D,且 ∇ 2 f ( x ) − 1 \nabla^2f(x)^{-1} ∇2f(x)−1 在 B ( x ∗ , r ) B(x^*,r) B(x∗,r) 内连续,且有界,即存在 β 1 > 0 \beta_1>0 β1>0, 满足 ∥ ∇ 2 f ( x ) − 1 ∥ 2 ≤ β 1 , ∀ x ∈ B ( x ∗ , r ) . \|\nabla^2f(x)^{-1}\|_2\leq\beta_1,\quad\forall x\in B(x^*,r). ∥∇2f(x)−1∥2≤β1,∀x∈B(x∗,r).于是, 当 x k ∈ B ( x ∗ , r ) x_{k}\in B(x^{*},r) xk∈B(x∗,r) 时,利用 ∇ f ( x ∗ ) = 0 \nabla f(x^*)=0 ∇f(x∗)=0 和 Taylor 公式,有 x k + 1 − x ∗ = x k − x ∗ − ∇ 2 f ( x k ) − 1 ∇ f ( x k ) = ∇ 2 f ( x k ) − 1 [ ∇ 2 f ( x k ) ( x k − x ∗ ) − ∇ f ( x k ) ] = ∇ 2 f ( x k ) − 1 [ ∇ 2 f ( x k ) ( x k − x ∗ ) − ( ∇ f ( x k ) − ∇ f ( x ∗ ) ) ] = ∇ 2 f ( x k ) − 1 [ ∇ 2 f ( x k ) − ∇ 2 f ( x k + θ ( x ∗ − x k ) ) ] ( x k − x ∗ ) . \begin{aligned}x_{k+1}-x^{*}&=x_k-x^*-\nabla^2f(x_k)^{-1}\nabla f(x_k) \\ &=\nabla^2f(x_k)^{-1}[\nabla^2f(x_k)(x_k-x^*)-\nabla f(x_k)] \\ &=\nabla^2f(x_k)^{-1}[\nabla^2f(x_k)(x_k-x^*)-(\nabla f(x_k)-\nabla f(x^*))] \\ &=\nabla^2f(x_k)^{-1}[\nabla^2f(x_k)-\nabla^2f(x_k+\theta(x^*-x_k))](x_k-x^*). \end{aligned} xk+1−x∗=xk−x∗−∇2f(xk)−1∇f(xk)=∇2f(xk)−1[∇2f(xk)(xk−x∗)−∇f(xk)]=∇2f(xk)−1[∇2f(xk)(xk−x∗)−(∇f(xk)−∇f(x∗))]=∇2f(xk)−1[∇2f(xk)−∇2f(xk+θ(x∗−xk))](xk−x∗).其中, θ ∈ ( 0 , 1 ) \theta\in(0,1) θ∈(0,1),所以有 ∥ x k + 1 − x ∗ ∥ 2 ≤ ∥ ∇ 2 f ( x k ) − 1 ∥ 2 ∥ ∇ 2 f ( x k ) − ∇ 2 f ( x k + θ ( x ∗ − x k ) ) ∥ 2 ∥ x k − x ∗ ∥ 2 ≤ β 1 β ∥ x k − x ∗ ∥ 2 . \begin{aligned}\|x_{k+1}-x^*\|_2&\le\|\nabla^2f(x_k)^{-1}\|_2\|\nabla^2f(x_k)-\nabla^2f(x_k+\theta(x^*-x_k))\|_2\|x_k-x^*\|_2\\&\le\beta_1\beta\|x_k-x^*\|^2.\end{aligned} ∥xk+1−x∗∥2≤∥∇2f(xk)−1∥2∥∇2f(xk)−∇2f(xk+θ(x∗−xk))∥2∥xk−x∗∥2≤β1β∥xk−x∗∥2.不妨设 r r r 足够小,使得 β β 1 r ≤ 1 \beta\beta_1r\leq1 ββ1r≤1. 那么 ∥ x k + 1 − x ∗ ∥ 2 ≤ ∥ x k − x ∗ ∥ 2 < r \|x_{k+1}-x^*\|_2\leq\|x_k-x^*\|_2<r ∥xk+1−x∗∥2≤∥xk−x∗∥2<r. 这说明 x k + 1 ∈ B ( x ∗ , r ) x_{k+1}\in B(x^*,r) xk+1∈B(x∗,r),且 ∥ x k + 1 − x ∗ ∥ 2 ≤ β β 1 ∥ x k − x ∗ ∥ 2 2 \|x_{k+1}-x^*\|_2\leq\beta\beta_1\|x_k-x^*\|_2^2 ∥xk+1−x∗∥2≤ββ1∥xk−x∗∥22.所以, { x k } \{x_k\} {xk} 至少依二阶收敛于 x ∗ x^* x∗.
5.1.3 牛顿法的优缺点
优点:
- 在最优点附近二次收敛。
- 具有仿射不变性,对坐标系的选择不敏感。
- 不会随着问题维度的增大而大幅增加所需的迭代次数。
- 不需要通过线搜确定迭代更新的步长。
缺点:
- 计算和储存Hessian矩阵及其逆矩阵需要很高的成本,计算Hessian 矩阵的算法复杂度是 O ( n 3 ) O(n^3) O(n3)
- Hessian矩阵不一定是可逆的,同时Hessian矩阵也不一定是正定的,当Hessian矩阵不可逆时,牛顿法失效
- 牛顿法得到的搜索方向不一定是下降方向,只有当Hessian 矩阵正定的时候由牛顿法得到搜素方向才是下降的。
虽然牛顿法的优点众多,但是实际应用中很少使用牛顿法,因为牛顿法对于Hessian 矩阵正定的条件过于苛刻,实际问题中不一定都能满足这个条件,为此人们也提出了一些牛顿方法的改进版.
5.2 阻尼牛顿法
在 Newton 法中,当
∇
2
f
(
x
k
)
\nabla^2f(x_k)
∇2f(xk) 为正定矩阵时,若
∇
f
(
x
k
)
≠
0
\nabla f(x_k)\neq0
∇f(xk)=0,则 Newton 方向
d
k
:
=
−
∇
2
f
(
x
k
)
−
1
∇
f
(
x
k
)
d_k:=-\nabla^2f(x_k)^{-1}\nabla f(x_k)
dk:=−∇2f(xk)−1∇f(xk) 满足
∇
f
(
x
k
)
T
d
k
:
=
−
∇
f
(
x
k
)
T
∇
2
f
(
x
k
)
−
1
∇
f
(
x
k
)
<
0
\nabla f(x_k)^Td_k:=-\nabla f(x_k)^T\nabla^2f(x_k)^{-1}\nabla f(x_k)<0
∇f(xk)Tdk:=−∇f(xk)T∇2f(xk)−1∇f(xk)<0所以,Newton 方向在
∇
2
f
(
x
k
)
\nabla^2f(x_k)
∇2f(xk) 为正定矩阵时一定是下降方向.为此,我们沿着 Newton 方向做线搜索:
x
k
+
1
=
x
k
+
α
k
d
k
,
d
k
:
=
−
∇
2
f
(
x
k
)
−
1
∇
f
(
x
k
)
,
\begin{aligned}x_{k+1}=x_k+\alpha_kd_k,\quad d_k&:=-\nabla^2f(x_k)^{-1}\nabla f(x_k),\end{aligned}
xk+1=xk+αkdk,dk:=−∇2f(xk)−1∇f(xk),其中
α
k
>
0
\alpha_k>0
αk>0 是阻尼因子.
命题 5.2.1 (阻尼 Newton 法的收敛性) 设 f ∈ C 2 ( R n ) , x 0 ∈ R n , D f\in C^2(\mathbb{R}^n),~x_0\in\mathbb{R}^n,~D f∈C2(Rn), x0∈Rn, D 是 R n \mathbb{R}^n Rn 中一个凸集,满足 l e v f ( x 0 ) ( f ) ⊂ D , z T ∇ 2 f ( x ) z ≥ β ∥ z ∥ 2 2 , ∀ x ∈ D , z ∈ R n , \mathbf{lev}_{f(x_0)}(f)\subset D,\quad z^T\nabla^2f(x)z\geq\beta\|z\|_2^2,\quad\forall x\in D,\:z\in\mathbb{R}^n, levf(x0)(f)⊂D,zT∇2f(x)z≥β∥z∥22,∀x∈D,z∈Rn,其中 β > 0 \beta>0 β>0 为一常数. 那么,以 x 0 x_0 x0 为初始点,当 ∇ f ( x k ) ≠ 0 \nabla f(x_k)\neq0 ∇f(xk)=0 时以 N e w t o n Newton Newton 方向 d k : = − ∇ 2 f ( x k ) − 1 ∇ f ( x k ) d_k:=-\nabla^2f(x_k)^{-1}\nabla f(x_k) dk:=−∇2f(xk)−1∇f(xk) 作为搜索方向,采用精确搜索,或 G o l d s t e i n Goldstein Goldstein 准则,或 W o l f e Wolfe Wolfe 准则所得的迭代点列 { x k } \{x_k\} {xk} 满足:或者存在 k ≥ 0 k\geq0 k≥0 使得 ∥ ∇ f ( x k ) ∥ 2 = 0 \|\nabla f(x_k)\|_2=0 ∥∇f(xk)∥2=0,或者 lim k → ∞ ∥ ∇ f ( x k ) ∥ 2 = 0 \lim_{k\to\infty}\|\nabla f(x_k)\|_2=0 limk→∞∥∇f(xk)∥2=0.
5.3 拟牛顿法
5.3.1 拟牛顿法基本思想
Newton 法和阻尼 Newton 法在每一步迭代均需计算 Hessian 矩阵,而二阶导数的计算常常有较大的计算量.实际上,拟 Newton 是一类改进Newton法的方法,拟 Newton 法的基本思想是用一个可逆矩阵 B k B_k Bk 近似 ∇ 2 f ( x k ) \nabla^2f(x_k) ∇2f(xk),然后以 d k : = − B k − 1 ∇ f ( x k ) d_k:=-B_k^{-1}\nabla f(x_k) dk:=−Bk−1∇f(xk) 作为迭代修正量,即 x k + 1 = x k + d k . B k x_{k+1}=x_k+d_k.\quad B_k xk+1=xk+dk.Bk 应满足如下条件:
( 1 ) B k ≈ ∇ 2 f ( x k ) (1)\:B_{k}\approx\nabla^{2}f(x_{k}) (1)Bk≈∇2f(xk)
( 2 ) B k (2)\:B_k (2)Bk 对称正定,以保证 d k : = − B k − 1 ∇ f ( x k ) d_k:=-B_k^{-1}\nabla f(x_k) dk:=−Bk−1∇f(xk) 为下降方向
( 3 ) B k (3)\:B_k (3)Bk 的计算应比 ∇ 2 f ( x k ) \nabla^2f(x_k) ∇2f(xk) 明显简单,不然还不如直接计算 Hessian矩阵呢
下面我们来看看
B
k
B_k
Bk 应该如何构造,记
y
k
:
=
∇
f
(
x
k
+
1
)
−
∇
f
(
x
k
)
,
s
k
:
=
x
k
+
1
−
x
k
.
\begin{align}y_k:=\nabla f(x_{k+1})-\nabla f(x_k),\quad s_k:=x_{k+1}-x_k.\end{align}
yk:=∇f(xk+1)−∇f(xk),sk:=xk+1−xk.
根据 Taylor 公式有
∇
f
(
x
k
+
1
)
−
∇
f
(
x
k
)
=
∇
2
f
(
x
k
+
θ
k
(
x
k
+
1
−
x
k
)
)
(
x
k
+
1
−
x
k
)
,
θ
k
∈
(
0
,
1
)
,
\nabla f(x_{k+1})-\nabla f(x_k)=\nabla^2f\big(x_k+\theta_k(x_{k+1}-x_k)\big)(x_{k+1}-x_k),\quad\theta_k\in(0,1),
∇f(xk+1)−∇f(xk)=∇2f(xk+θk(xk+1−xk))(xk+1−xk),θk∈(0,1),
我们可以选取
B
k
B_k
Bk 或
B
k
+
1
B_{k+1}
Bk+1 为
∇
2
f
(
x
k
+
θ
k
(
x
k
+
1
−
x
k
)
)
\nabla^2f(x_k+\theta_k(x_{k+1}-x_k))
∇2f(xk+θk(xk+1−xk)),即选择
B
k
B_k
Bk 或
B
k
+
1
B_{k+1}
Bk+1 满足
B
k
s
k
=
y
k
或
B
k
+
1
s
k
=
y
k
.
\begin{aligned}B_ks_k=y_k\quad&\text{或}\quad B_{k+1}s_k=y_k.\end{aligned}
Bksk=yk或Bk+1sk=yk.为了避免求解逆矩阵
B
k
−
1
B_k^{-1}
Bk−1,令
H
k
:
=
B
k
−
1
H_k:=B_k^{-1}
Hk:=Bk−1,那么上式等价于
H
k
y
k
=
s
k
或
H
k
+
1
y
k
=
s
k
.
\begin{align}H_ky_k&=s_k&&\text{或}&&H_{k+1}y_k&=s_k.\end{align}
Hkyk=sk或Hk+1yk=sk.从给定的初值
x
0
,
H
0
x_0,H_0
x0,H0 出发,
k
k
k 次迭代后若当前已求得
x
k
x_k
xk 和
H
k
H_k
Hk, 那么可以求得 Newton 方向
d
k
:
=
−
H
k
∇
f
(
x
k
)
d_k:=-H_k\nabla f(x_k)
dk:=−Hk∇f(xk),然后通过线搜索求得
x
k
+
1
x_{k+1}
xk+1, 进而通过(8.5.3)求得
y
k
y_k
yk 和
s
k
s_k
sk.所以, 我们采用 (2) 的第二个方程,即
H
k
+
1
y
k
=
s
k
,
\begin{align}H_{k+1}y_k=s_k,\end{align}
Hk+1yk=sk,求
H
k
+
1
H_{k+1}
Hk+1, 进而在
∥
∇
f
(
x
k
+
1
∥
2
≠
0
\|\nabla f(x_{k+1}\|_2\neq0
∥∇f(xk+1∥2=0 的情况下进一步往下迭代,上述迭代流程可以图示如下:
⋯
→
(
x
k
,
H
k
)
→
∇
f
(
x
k
)
→
d
k
⟶
线搜索
x
k
+
1
→
{
s
k
∇
f
(
x
k
+
1
)
→
y
k
⟶
(
4
)
H
k
+
1
→
⋯
\cdots\to(x_k,H_k)\to\nabla f(x_k)\to d_k\overset{\text{线搜索}}{\longrightarrow }x_{k+1}\to\begin{cases}s_k\\\nabla f(x_{k+1})\to y_k\end{cases}\overset{(4)}{\longrightarrow}H_{k+1}\to\cdots
⋯→(xk,Hk)→∇f(xk)→dk⟶线搜索xk+1→{sk∇f(xk+1)→yk⟶(4)Hk+1→⋯
我们将上述流程写成求解
m
i
n
min
min
f
(
x
)
f(x)
f(x) 的如下拟 Newton 算法.
算法 5.3 (拟 Newton 法)
(5.3.1) 取初值
x
0
x_0
x0 和初始矩阵
H
0
H_0
H0,以及停止参数
ϵ
>
0
\epsilon>0
ϵ>0. 计算
∇
f
(
x
0
)
\nabla f(x_0)
∇f(x0),令
k
=
0
k=0
k=0.
(5.3.2) 若 ∥ ∇ f ( x k ) ∥ ≤ ϵ \|\nabla f(x_k)\|\leq\epsilon ∥∇f(xk)∥≤ϵ,转第 (5.3.5)步.
(5.3.3) 计算 d k : = − H k ∇ f ( x k ) d_k:=-H_k\nabla f(x_k) dk:=−Hk∇f(xk),沿方向 d k d_k dk 进行线搜索求 α k \alpha_k αk, 计算 x k + 1 = x k + α k d k x_{k+1}=x_k+\alpha_kd_k xk+1=xk+αkdk 以及 ∇ f ( x k + 1 ) \nabla f(x_{k+1}) ∇f(xk+1).进而按 (2)即按照 y k : = ∇ f ( x k + 1 ) − ∇ f ( x k ) , s k : = x k + 1 − x k y_k:=\nabla f(x_{k+1})-\nabla f(x_k),\quad s_k:=x_{k+1}-x_k yk:=∇f(xk+1)−∇f(xk),sk:=xk+1−xk 计算 s k s_k sk 和 y k . y_k. yk.
(5.3.4) 按照(4)即 H k + 1 y k = s k H_{k+1}y_k=s_k Hk+1yk=sk 求正定矩阵 H k + 1 H_{k+1} Hk+1 .令 k = k + 1 k=k+1 k=k+1.转第 (5.3.2)步.
(5.3.5) 令 x ∗ = x k x^*=x_k x∗=xk, 程序结束.
上述算法实际上是带有阻尼系数(最优步长 α k \alpha_k αk)的拟牛顿法,如果替换(5.3.3)中的迭代式 x k + 1 = x k + α k d k x_{k+1}=x_k+\alpha_kd_k xk+1=xk+αkdk为 x k + 1 = x k + d k x_{k+1}=x_k+d_k xk+1=xk+dk则为 n a i v e naive naive 的拟牛顿法.
下面我们来看看拟牛顿法和牛顿法之间的联系,根据迭代式
x
k
+
1
=
x
k
+
d
x_{k+1}=x_k+d
xk+1=xk+d,我们希望下一个迭代点的函数值
f
(
x
k
+
1
)
f(x_{k+1})
f(xk+1)要尽可能地小于
f
(
x
k
)
f(x_k)
f(xk),为此我们利用 Taylor 公式,将
f
(
x
k
+
1
)
f(x_{k+1})
f(xk+1)展开如下:
f
(
x
k
+
1
)
=
f
(
x
k
+
d
)
=
f
(
x
k
)
+
g
k
T
d
+
o
(
∣
∣
d
∣
∣
2
)
f(x_{k+1})=f(x_k+d)=f(x_k)+g_k^Td+o(||d||^2)
f(xk+1)=f(xk+d)=f(xk)+gkTd+o(∣∣d∣∣2)上式中
g
k
T
=
∇
f
(
x
k
)
T
g_k^T=\nabla f(x_k)^T
gkT=∇f(xk)T,当
d
d
d足够小时,我们可以用线性部分
f
(
x
k
)
+
g
k
T
d
f(x_k)+g_k^Td
f(xk)+gkTd 来作为函数值
f
(
x
k
+
1
)
f(x_{k+1})
f(xk+1) 的近似(这是微积分里泰勒公式的结论,大家应该都懂得啦~),因为我们想要迭代过程中函数值是下降的,则需要满足
g
k
T
d
<
0
g_k^Td <0
gkTd<0,同时为了使得函数值下降幅度最大,相当于求解优化问题:
max
d
∣
g
k
T
d
∣
\max_d|g_k^Td|
dmax∣gkTd∣为了和之前的拟牛顿法的
B
k
B_k
Bk 联系起来,可以使用椭球范数
来约束
d
d
d 的取值,不妨设
∣
∣
d
∣
∣
B
k
=
∣
∣
d
T
B
k
d
∣
∣
=
1
||d||_{B_{k}}=||d^TB_kd||=1
∣∣d∣∣Bk=∣∣dTBkd∣∣=1。那么要优化的问题就是如下的式子:
max
d
∣
g
k
T
d
∣
∣
∣
d
∣
∣
B
k
=
1
\max_d|g_k^Td|\quad||d||_{B_k}=1
dmax∣gkTd∣∣∣d∣∣Bk=1由Cauchy-Schwartz不等式,可得:
∣
g
k
T
d
∣
=
(
g
k
T
d
)
2
≤
(
g
k
T
B
k
−
1
g
k
)
(
d
T
B
k
d
)
=
g
k
T
B
k
−
1
g
k
|g_k^Td|=\sqrt{(g_k^Td)^2}\leq\sqrt{(g_k^TB_k^{-1}g_k)(d^TB_kd)}=\sqrt{g_k^TB_k^{-1}g_k}
∣gkTd∣=(gkTd)2≤(gkTBk−1gk)(dTBkd)=gkTBk−1gk根据不等式等号成立的条件,当且仅当
d
=
−
B
k
−
1
g
k
d=-B_k^{-1}g_k
d=−Bk−1gk 时,上述不等式等号成立.
故,在我们将 d d d 在 ∣ ∣ ⋅ ∣ ∣ B k ||\cdot||_{B_k} ∣∣⋅∣∣Bk 意义下的椭球范数设为定值时,可以得到下降幅度最大的方向为 d = − B k − 1 g k d=-B_k^{-1}g_k d=−Bk−1gk 。因此我们可以说拟牛顿法是在 ∣ ∣ ⋅ ∣ ∣ B k ||\cdot||_{B_k} ∣∣⋅∣∣Bk 下的最速下降法。
由于每次迭代时的 B k B_k Bk都会变化,那么度量 d d d 的范数也会随之变化,因此,我们会将这样的方法称为变尺度法.
而当 B k = I B_k=I Bk=I 时,拟牛顿方向变为梯度下降方向,所以我们也可以说梯度下降法是在 ∣ ∣ ⋅ ∣ ∣ ||\cdot|| ∣∣⋅∣∣ ( L 2 L_2 L2 范数)下的最速下降法;而普通的牛顿法则是在 ∣ ∣ ⋅ ∣ ∣ ∇ 2 f ( x k ) ||\cdot||_{\nabla^2f(x_k)} ∣∣⋅∣∣∇2f(xk) 下的最速下降法.
5.3.2 拟牛顿法的求解构造
一般而言,满足(4)即
H
k
+
1
y
k
=
s
k
H_{k+1}y_k=s_k
Hk+1yk=sk 的正定矩阵
H
k
+
1
H_{k+1}
Hk+1 是不唯一的. 考虑到计算性能,我们当然希望以尽量少的计算代价来构造它,其中有一种简单的方法,称为校正法,即令
H
k
+
1
:
=
H
k
+
R
k
,
k
=
0
,
1
,
⋯
\begin{align} H_{k+1}:=H_k+R_k,\quad k=0,1,\cdots \end{align}
Hk+1:=Hk+Rk,k=0,1,⋯其中
R
k
R_k
Rk 是校正矩阵,并且校正矩阵
R
k
R_k
Rk 是对称的. 将之代入
H
k
+
1
y
k
=
s
k
H_{k+1}y_k=s_k
Hk+1yk=sk, 得
R
k
y
k
=
s
k
−
H
k
y
k
.
\begin{align}R_ky_k=s_k-H_ky_k.\end{align}
Rkyk=sk−Hkyk.所以,问题归结为构造满足(6) 的矩阵
R
k
R_k
Rk:
当
H
k
y
k
=
s
k
H_ky_k=s_k
Hkyk=sk 时,零矩阵
R
k
:
=
0
R_k:=0
Rk:=0 便满足(6). 此时,可取
H
k
+
1
=
H
k
.
H_{k+1}=H_k.
Hk+1=Hk.
当
H
k
y
k
≠
s
k
H_ky_k\neq s_k
Hkyk=sk 时,我们有多种方法构造
R
k
R_k
Rk, 下面我们构造具有最小秩的修正矩阵
R
k
R_k
Rk. 根据实对称矩阵的特征分解可知,
r
a
n
k
(
R
k
)
=
m
\mathbf{rank}(R_k) = m
rank(Rk)=m 当且仅当存在线性无关的向量
u
1
,
.
.
.
,
u
m
u_1,...,u_m
u1,...,um 和非零实数
α
1
,
.
.
.
,
α
m
\alpha_1,...,\alpha_m
α1,...,αm,使得
R
k
=
α
1
u
1
u
m
T
+
.
.
.
+
α
m
u
m
u
m
T
R_k=\alpha_1u_1u_m^T+...+\alpha_mu_mu_m^T
Rk=α1u1umT+...+αmumumT.
秩1校正
所谓秩 1 校正是使用秩为 1 的矩阵 R k R_k Rk 作为校正项. 由于 R k R_k Rk 是对称的,利用特征分解我们知道 R k R_k Rk 秩 1 对称矩阵当且仅当存在 λ ∈ R , u ∈ R n , ∥ u ∥ 2 = 1 \lambda\in\mathbb{R},\quad u\in\mathbb{R}^n,\quad\|u\|_2=1 λ∈R,u∈Rn,∥u∥2=1, 使得 R k : = λ u u T . R_k:=\lambda uu^T. Rk:=λuuT.
SR1
设
H
k
y
k
≠
s
k
H_ky_k\neq s_k
Hkyk=sk 且存在秩 1 矩阵
R
k
:
=
λ
u
u
T
R_k:=\lambda uu^T
Rk:=λuuT 满足 (6),即
R
k
y
k
=
s
k
−
H
k
y
k
R_ky_k=s_k-H_ky_k
Rkyk=sk−Hkyk,则有
λ
(
u
T
y
k
)
u
=
s
k
−
H
k
y
k
.
\begin{align} \lambda(u^Ty_k)u=s_k-H_ky_k.\end{align}
λ(uTyk)u=sk−Hkyk.上式两边与
y
k
y_k
yk 做内积,将等式的维度对齐有可以得到
λ
(
u
T
y
k
)
2
=
(
s
k
−
H
k
y
k
)
T
y
k
\lambda(u^Ty_k)^2=(s_k-H_ky_k)^Ty_k
λ(uTyk)2=(sk−Hkyk)Tyk, 且
(
s
k
−
H
k
y
k
)
(
s
k
−
H
k
y
k
)
T
=
λ
2
(
u
T
y
k
)
2
u
u
T
=
λ
(
u
T
y
k
)
2
R
k
=
[
(
s
k
−
H
k
y
k
)
T
y
k
]
R
k
.
(s_k-H_ky_k)(s_k-H_ky_k)^T=\lambda^2(u^Ty_k)^2uu^T=\lambda(u^Ty_k)^2R_k=\begin{bmatrix}(s_k-H_ky_k)^Ty_k\end{bmatrix}R_k.
(sk−Hkyk)(sk−Hkyk)T=λ2(uTyk)2uuT=λ(uTyk)2Rk=[(sk−Hkyk)Tyk]Rk.将上式带入(5)得
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
.
\begin{align} H_{k+1}=H_k+\frac{(s_k-H_ky_k)(s_k-H_ky_k)^T}{(s_k-H_ky_k)^Ty_k}.\end{align}
Hk+1=Hk+(sk−Hkyk)Tyk(sk−Hkyk)(sk−Hkyk)T.公式(8)称为对称秩 1 校正公式 (Symmetric Rank One Correction, SR1). 它们是
Broyden 和 Davidon 分别于 1967 年和 1968 年提出.(PS:SR1是William C. Davidon在1956年提出的,但由于缺少收敛性分析,所以Davidon的论文被拒稿,导致SR1算法没能成为第一个公认的拟牛顿法)如上所述,秩 1 校正的前提是假设存在秩 1 校正满足
R
k
y
k
=
s
k
−
H
k
y
k
R_ky_k=s_k-H_ky_k
Rkyk=sk−Hkyk. 此时我们推得
(
s
k
−
H
k
y
k
)
T
y
k
≠
0
(s_k-H_ky_k)^Ty_k\neq0
(sk−Hkyk)Tyk=0, 且有递推公式
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{(s_k-H_ky_k)(s_k-H_ky_k)^T}{(s_k-H_ky_k)^Ty_k}
Hk+1=Hk+(sk−Hkyk)Tyk(sk−Hkyk)(sk−Hkyk)T.
反过来,当 ( s k − H k y k ) T y k ≠ 0 (s_k-H_ky_k)^Ty_k\neq0 (sk−Hkyk)Tyk=0 时,易见由(8) 所得到的 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. 考虑到 H k y k = s k H_ky_k=s_k Hkyk=sk 的情形,我们得到如下秩 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 如果 ( H k y k − s k ) T y k ≠ 0 , 0 如果 H k y k = s k . \begin{align} H_{k+1}=H_k+\begin{cases}\frac{(s_k-H_ky_k)(s_k-H_ky_k)^T}{(s_k-H_ky_k)^Ty_k}&\text{如果}~(H_ky_k-s_k)^Ty_k\neq0,\\0&\text{如果}~H_ky_k=s_k.\end{cases}\end{align} Hk+1=Hk+{(sk−Hkyk)Tyk(sk−Hkyk)(sk−Hkyk)T0如果 (Hkyk−sk)Tyk=0,如果 Hkyk=sk. 于是可以知道,若 H k H_k Hk 正定并且 ( s k − H k y k ) T y k > 0 (s_k-H_ky_k)^Ty_k>0 (sk−Hkyk)Tyk>0, 那么由(8)所定义的 H k + 1 H_{k+1} Hk+1 也是正定的. 迭代公式(9)并不包含 H k y k ≠ s k H_ky_k\neq s_k Hkyk=sk 而 ( H k y k − s k ) T y k = 0 (H_ky_k-s_k)^Ty_k=0 (Hkyk−sk)Tyk=0 的情形.实际上,在这种情况下秩 1 迭代不存在,也就是说,不存在秩 1 矩阵 R k R_k Rk 使得 R k y k = s k − H k y k R_ky_k=s_k-H_ky_k Rkyk=sk−Hkyk 成立. 因而,我们需要考虑更复杂一点的校正矩阵.
秩2校正
如上所述,对称秩 1 公式在迭代的第 k k k 步,要求存在秩 1 矩阵 R k R_k Rk 使得 R k y k = s k − H k y k R_ky_k=s_k-H_ky_k Rkyk=sk−Hkyk 成立;同时,当 H k y k ≠ s k H_ky_k\neq s_k Hkyk=sk 时,需要满足 ( s k − H k y k ) T y k > 0 (s_k-H_ky_k)^Ty_k>0 (sk−Hkyk)Tyk>0 才能保证存在秩 1 校正矩阵 R k R_k Rk 满足(6). 为此突破这些局限性,我们考虑如下的秩 2 校正法.
DFP
设
u
,
v
∈
R
n
u,v\in\mathbb{R}^n
u,v∈Rn,
α
,
β
∈
R
\alpha,\beta\in\mathbb{R}
α,β∈R.令
H
k
+
1
=
H
k
+
α
u
u
T
+
β
v
v
T
.
\begin{aligned}H_{k+1}=H_k+\alpha uu^T+\beta vv^T.\end{aligned}
Hk+1=Hk+αuuT+βvvT.将该式带入到
H
k
+
1
y
k
=
s
k
H_{k+1}y_k=s_k
Hk+1yk=sk 可以得到
H
k
y
k
+
α
(
u
T
y
k
)
u
+
β
(
v
T
y
k
)
v
=
s
k
\begin{aligned}H_ky_k+\alpha(u^Ty_k)u+\beta(v^Ty_k)v=s_k\end{aligned}
Hkyk+α(uTyk)u+β(vTyk)v=sk为简化表达式,当
u
T
y
k
≠
0
,
v
T
y
k
≠
0
u^Ty_k\neq0,v^Ty_k\neq0
uTyk=0,vTyk=0,我们可以选取适当的
α
,
β
\alpha,\beta
α,β,使得
α
(
u
T
y
k
)
=
β
(
v
T
y
k
)
=
1
\alpha(u^Ty_k)=\beta(v^Ty_k)=1
α(uTyk)=β(vTyk)=1.那么上式化为
H
k
y
k
+
u
+
v
=
s
k
.
H_ky_k+u+v=s_k.
Hkyk+u+v=sk.因此,我们只要取
u
:
=
s
k
,
v
:
=
−
H
k
y
k
u:=s_k,v:=-H_ky_k
u:=sk,v:=−Hkyk 即可,此时有迭代公式
H
k
+
1
=
H
k
+
s
k
s
k
T
s
l
T
u
k
−
(
H
k
y
k
)
(
H
k
y
k
)
T
u
l
T
H
k
u
k
\begin{align} H_{k+1}=H_k+\frac{s_ks_k^T}{s_l^Tu_k}-\frac{(H_ky_k)(H_ky_k)^T}{u_l^TH_ku_k}\end{align}
Hk+1=Hk+slTukskskT−ulTHkuk(Hkyk)(Hkyk)T上式称为秩 2 校正公式,它是 Davidon 于 1959 年提出, 经由 Fletcher 和 Powell 之手于 1963 年发展而成,因而也称为 DFP 公式,是第一个公认的拟牛顿法。
秉持严谨治学的态度,我还是把相关的证明贴出来吧(反正我是不想看的~)
命题 5.3.2
(1) 设 H k + 1 H_{k+1} Hk+1 对称正定,满足 H k + 1 y k = s k ≠ 0 H_{k+1}y_k=s_k\neq0 Hk+1yk=sk=0,则 s k T y k > 0 s_k^Ty_k>0 skTyk>0
(2) 设 H k H_k Hk 正定且 s k T y k > 0 s_k^Ty_k>0 skTyk>0,则 y k T H k y k > 0 y_k^TH_ky_k>0 ykTHkyk>0,且 (10)即迭代式 H k + 1 = H k + s k s k T s l T u k − ( H k y k ) ( H k y k ) T u l T H k u k H_{k+1}=H_k+\frac{s_ks_k^T}{s_l^Tu_k}-\frac{(H_ky_k)(H_ky_k)^T}{u_l^TH_ku_k} Hk+1=Hk+slTukskskT−ulTHkuk(Hkyk)(Hkyk)T 所定义的 H k + 1 H_{k+1} Hk+1 是对称正定矩阵,满足 H k + 1 y k = s k ≠ 0 H_{k+1}y_k=s_k\neq0 Hk+1yk=sk=0
证.(1) 设 H k + 1 H_{k+1} Hk+1对称正定,满足 H k + 1 y k = s k ≠ 0 H_{k+1}y_k=s_k\neq0 Hk+1yk=sk=0.显然 y k ≠ 0 y_k\neq0 yk=0,且 s k T y k = y k T H k + 1 y k > 0 s_k^Ty_k=y_k^TH_{k+1}y_k>0 skTyk=ykTHk+1yk>0.
(2) 设
H
k
H_k
Hk 正定且
s
k
T
y
k
>
0
s_k^Ty_k>0
skTyk>0,则
y
k
≠
0
y_k\neq0
yk=0,从而有
y
k
T
H
k
y
k
>
0
y_k^TH_ky_k>0
ykTHkyk>0,
∀
x
∈
R
n
∖
{
0
}
\forall x\in\mathbb{R}^n\setminus\{0\}
∀x∈Rn∖{0},有
x
T
H
k
+
1
x
=
x
T
H
k
x
+
(
x
T
s
k
)
2
s
k
T
y
k
−
(
x
T
H
y
k
)
2
y
k
T
H
k
y
k
=
(
x
T
s
k
)
2
s
k
T
y
k
+
γ
k
(
x
)
y
k
T
H
k
y
k
\begin{aligned}x^TH_{k+1}x=x^TH_kx+\frac{(x^Ts_k)^2}{s_k^Ty_k}-\frac{(x^THy_k)^2}{y_k^TH_ky_k}=\frac{(x^Ts_k)^2}{s_k^Ty_k}+\frac{\gamma_k(x)}{y_k^TH_ky_k}\end{aligned}
xTHk+1x=xTHkx+skTyk(xTsk)2−ykTHkyk(xTHyk)2=skTyk(xTsk)2+ykTHkykγk(x)其中有
γ
k
(
x
)
:
=
(
x
T
H
k
+
1
x
)
(
y
k
T
H
k
y
k
)
−
(
x
T
H
k
y
k
)
2
=
∥
x
∥
H
k
2
∥
y
k
∥
H
k
2
−
⟨
x
,
y
k
⟩
H
k
2
,
\begin{aligned}\gamma_k(x):=(x^TH_{k+1}x)(y_k^TH_ky_k)-(x^TH_ky_k)^2=\|x\|_{H_k}^2\|y_k\|_{H_k}^2-\langle x,y_k\rangle_{H_k}^2,\end{aligned}
γk(x):=(xTHk+1x)(ykTHkyk)−(xTHkyk)2=∥x∥Hk2∥yk∥Hk2−⟨x,yk⟩Hk2,
设
H
k
正定且
s
k
T
y
k
>
0
,
则
y
k
≠
0
,
从而
y
k
T
H
k
y
k
>
0.
∀
x
∈
R
n
∖
{
0
}
,
有
x
T
H
k
+
1
x
=
x
T
H
k
x
+
(
x
T
s
k
)
2
s
k
T
y
k
−
(
x
T
H
y
k
)
2
y
k
T
H
k
y
k
=
(
x
T
s
k
)
2
s
k
T
y
k
+
γ
k
(
x
)
y
k
T
H
k
y
k
,
\begin{aligned}&\text{ 设 }H_k\text{ 正定且 }s_k^Ty_k>0,\text{ 则 }y_k\neq0,\text{ 从而 }y_k^TH_ky_k>0.\\&\forall x\in\mathbb{R}^n\setminus\{0\},\text{ 有}\\&x^TH_{k+1}x=x^TH_kx+\frac{(x^Ts_k)^2}{s_k^Ty_k}-\frac{(x^THy_k)^2}{y_k^TH_ky_k}=\frac{(x^Ts_k)^2}{s_k^Ty_k}+\frac{\gamma_k(x)}{y_k^TH_ky_k},\end{aligned}
设 Hk 正定且 skTyk>0, 则 yk=0, 从而 ykTHkyk>0.∀x∈Rn∖{0}, 有xTHk+1x=xTHkx+skTyk(xTsk)2−ykTHkyk(xTHyk)2=skTyk(xTsk)2+ykTHkykγk(x),而
⟨
x
,
y
⟩
H
k
:
=
x
T
H
k
y
\langle x,y\rangle_{H_k}:=x^TH_ky
⟨x,y⟩Hk:=xTHky 为一个内积,
∥
x
∥
H
k
:
=
⟨
x
,
x
⟩
H
k
\|x\|_{H_k}:=\sqrt{\langle x,x\rangle_{H_k}}
∥x∥Hk:=⟨x,x⟩Hk 是相应的范数. 根据 Cauchy-Schwartz 不等式可知
γ
k
(
x
)
≥
0
\gamma_k(x)\geq0
γk(x)≥0,且等号成立当且仅当
x
=
λ
y
k
x=\lambda y_k
x=λyk, 其中
λ
≠
0
\lambda\neq0
λ=0. 在等号成立时,有
x
T
s
k
=
λ
s
k
T
s
k
≠
0
x^Ts_k=\lambda s_k^Ts_k\neq0
xTsk=λskTsk=0,所以
x
T
H
k
+
1
x
>
0.
x^TH_{k+1}x>0.
xTHk+1x>0.
那么,在什么条件下能保证 s k T y k > 0 s_k^Ty_k>0 skTyk>0 呢?如下的命题表明,只要在线搜索时使用精确搜素或 Wolfe 搜索,都可以保证这一条件得到满足.
**命题 5.3.3 **对于拟 Newton 法 d k : = − H k ∇ f ( x k ) d_k:=-H_k\nabla f(x_k) dk:=−Hk∇f(xk),设 H k H_k Hk 为正定矩阵, ∇ f ( x k ) ≠ 0 \nabla f(x_k)\neq0 ∇f(xk)=0,使用精确搜素或 W o l f e Wolfe Wolfe 非精确搜索时,有 s k T y k > 0. s_k^Ty_k>0. skTyk>0.
证. 在精确搜索和非精确 Wolfe 搜索情形,有
∇
f
(
x
k
+
1
)
T
d
k
≥
σ
∇
f
(
x
k
)
T
d
k
,
\begin{aligned}\nabla f(x_{k+1})^Td_k\geq\sigma\nabla f(x_k)^Td_k,\end{aligned}
∇f(xk+1)Tdk≥σ∇f(xk)Tdk,其中
0
≤
σ
<
1
(
0\leq\sigma<1(
0≤σ<1(精确搜索时
σ
=
0
)
.
\sigma=0).
σ=0). 因为
s
k
=
α
k
d
k
s_k=\alpha_kd_k
sk=αkdk, 我们有
s
k
T
y
k
=
α
k
(
∇
f
(
x
k
+
1
)
−
∇
f
(
x
k
)
)
T
d
k
≥
α
k
[
σ
∇
f
(
x
k
)
T
d
k
−
∇
f
(
x
k
)
T
d
k
]
=
−
(
1
−
σ
)
α
k
∇
f
(
x
k
)
T
d
k
.
\begin{aligned} s_{k}^{T}y_{k}& \begin{aligned}=\alpha_{k}(\nabla f(x_{k+1})-\nabla f(x_{k}))^{T}d_{k}\end{aligned} \\ &\geq\alpha_k\big[\sigma\nabla f(x_k)^Td_k-\nabla f(x_k)^Td_k\big]=-(1-\sigma)\alpha_k\nabla f(x_k)^Td_k. \end{aligned}
skTyk=αk(∇f(xk+1)−∇f(xk))Tdk≥αk[σ∇f(xk)Tdk−∇f(xk)Tdk]=−(1−σ)αk∇f(xk)Tdk.将
d
k
=
−
H
k
∇
f
(
x
k
)
d_k=-H_k\nabla f(x_k)
dk=−Hk∇f(xk) 代入上式,得
s
k
T
y
k
≥
(
1
−
σ
)
α
k
∇
f
(
x
k
)
T
H
k
∇
f
(
x
k
)
>
0.
s_k^Ty_k\geq(1-\sigma)\alpha_k\nabla f(x_k)^TH_k\nabla f(x_k)>0.
skTyk≥(1−σ)αk∇f(xk)THk∇f(xk)>0.
BFGS
类似于 DPF 校正公式,我们考虑
B
k
B_k
Bk 的秩 2 校正. 令
B
k
+
1
=
B
k
+
α
u
u
T
+
β
v
v
T
,
B_{k+1}=B_k+\alpha uu^T+\beta vv^T,
Bk+1=Bk+αuuT+βvvT,使之满足
B
k
+
1
s
k
=
y
k
B_{k+1}s_k=y_k
Bk+1sk=yk. 类似与 DPF 校正公式,通过适当地选取
α
,
β
,
u
,
v
\alpha,\beta,u,v
α,β,u,v, 我们可以得到如下的秩 2 校正公式:
B
k
+
1
=
B
k
+
y
k
y
k
T
y
k
T
s
k
−
(
B
k
s
k
)
(
B
k
s
k
)
T
s
k
T
B
k
s
k
\begin{align} B_{k+1}=B_k+\frac{y_ky_k^T}{y_k^Ts_k}-\frac{(B_ks_k)(B_ks_k)^T}{s_k^TB_ks_k}\end{align}
Bk+1=Bk+ykTskykykT−skTBksk(Bksk)(Bksk)T它是 Broyden 于 1967 年,Fletcher, Goldfarb, Shanno 于 1970 年分别独立提出的,因而也称为 BFGS 公式.
与 DPF 公式类似,我们可以证明当 B k + 1 B_{k+1} Bk+1 对称正定,且满足 B k + 1 s k = y k ≠ 0 B_{k+1}s_k=y_k\neq0 Bk+1sk=yk=0 时,必有 s k T y k > 0 ; s_k^Ty_k>0; skTyk>0;反之,若 B k B_k Bk 正定且 s k T y k > 0 s_k^Ty_k>0 skTyk>0,则由 (11)所定义的 B k + 1 B_{k+1} Bk+1 是对称正定的, 且满足 B k + 1 s k = y k ≠ 0 B_{k+1}s_k=y_k\neq0 Bk+1sk=yk=0.当 B k B_k Bk 正定, ∇ f ( x k ) ≠ 0 \nabla f(x_k)\neq0 ∇f(xk)=0,沿方向 d k : = − B k − 1 ∇ f ( x k ) d_k:=-B_k^{-1}\nabla f(x_k) dk:=−Bk−1∇f(xk) 使用精确搜素或 Wolfe 非精确搜索时,必有 s k T y k > 0. s_k^Ty_k>0. skTyk>0.
写到这先到此为止把,因为字数内容超了,后续内容留给下一篇把TAT
Reference
本笔记内容参考如下了(包括但不限于)
最优化方法复习笔记(一)梯度下降法、精确线搜索与非精确线搜索(推导+程序)