4. 1
4.1 高斯牛顿法
4.1.1 算法原理
高斯牛顿法是一种最优化算法,是用于解决非线性最小二乘问题最简单的算法之一。
m
i
n
x
F
(
x
)
=
1
2
∥
f
(
x
)
∥
2
2
(1)
\underset{x} {\rm min} F(x)=\frac{1}{2} \parallel f(x)\parallel _{2}^{2}\tag{1}
xminF(x)=21∥f(x)∥22(1)
高斯牛顿法的核心思想就是对式(1)
f
(
x
)
f(x)
f(x)进行一阶泰勒展开:
f
(
x
+
Δ
x
)
≈
f
(
x
)
+
J
(
x
)
T
Δ
x
(2)
f(x+\Delta x)\approx f(x)+J(x)^{T}\Delta x \tag{2}
f(x+Δx)≈f(x)+J(x)TΔx(2)
接下来就是要寻找增量
Δ
x
\Delta x
Δx使得
∥
f
(
x
+
Δ
x
)
∥
2
2
\parallel f(x+\Delta x)\parallel _{2}^{2}
∥f(x+Δx)∥22 最小,即式(3):
Δ
x
∗
=
a
r
g
m
i
n
Δ
x
1
2
∥
f
(
x
)
+
J
(
x
)
T
Δ
x
∥
2
2
(3)
\Delta x^{*} = \underset{\Delta x}{\rm argmin}\frac{1}{2} \parallel f(x)+J(x)^{T} \Delta x \parallel_{2}^{2} \tag{3}
Δx∗=Δxargmin21∥f(x)+J(x)TΔx∥22(3)
将上式展开得:
1
2
∥
f
(
x
)
+
J
(
x
)
T
Δ
x
∥
2
=
1
2
(
f
(
x
)
+
J
(
x
)
T
Δ
x
)
T
(
f
(
x
)
+
J
(
x
)
T
Δ
x
)
=
1
2
(
∥
f
(
x
)
2
2
∥
+
2
f
(
x
)
J
(
x
)
T
Δ
x
+
Δ
x
T
J
(
x
)
J
(
x
)
T
Δ
x
)
\begin{align} \frac{1}{2} \parallel f(x)+J(x)^{T} \Delta x \parallel^{2} &=\frac{1}{2} \left ( f(x)+J(x)^{T}\Delta x \right )^{T} \left ( f(x)+J(x)^{T}\Delta x \right )\\ &=\frac{1}{2}\left ( \parallel f(x)^{2}_{2}\parallel+2f(x)J(x)^{T}\Delta x+ \Delta x^{T}J(x)J(x)^{T}\Delta x \right ) \end{align}
21∥f(x)+J(x)TΔx∥2=21(f(x)+J(x)TΔx)T(f(x)+J(x)TΔx)=21(∥f(x)22∥+2f(x)J(x)TΔx+ΔxTJ(x)J(x)TΔx)
上式对
Δ
x
\Delta x
Δx 求导并使之为零得:
J
(
x
)
f
(
x
)
+
J
(
x
)
J
(
x
)
T
Δ
x
=
0
J(x)f(x)+J(x)J(x)^{T} \Delta x = 0
J(x)f(x)+J(x)J(x)TΔx=0
可得到如下方程组
J
(
x
)
J
(
x
)
T
⏟
H
(
x
)
Δ
x
=
−
J
(
x
)
f
(
x
)
⏟
g
(
x
)
(4)
{\underbrace{J (x)J(x)^{T}}_ {H(x)} } \Delta x = \underbrace{-J(x)f(x) }_{g(x)} \tag{4}
H(x)
J(x)J(x)TΔx=g(x)
−J(x)f(x)(4)
式(4)是关于
Δ
x
\Delta x
Δx的线性方程组,称之为增量方程。将左边定义为
H
H
H,右边定义为
g
g
g,则:
H
Δ
x
=
g
(5)
H \Delta x = g \tag{5}
HΔx=g(5)
则高斯牛顿算法描述如下:
- 给定初始值 Δ x \Delta x Δx;
- 对于第 k k k次迭代。求解 J ( x k ) J(x_k) J(xk)和误差项 f ( x k ) f(x_k) f(xk);
- 接着解方程 H Δ x k = g H \Delta x_k=g HΔxk=g;
- 若 Δ x k \Delta x_k Δxk足够小,既然停止迭代,否则使 x k + 1 = x k + Δ x x_{k+1}=x_k+\Delta x xk+1=xk+Δx,反悔第二步。
4.1.2 算法缺点
- H ( x ) = J ( x ) J ( x ) T H(x)=J(x)J(x)^{T} H(x)=J(x)J(x)T有可能不可逆,导致算法不收敛。
- Δ x \Delta x Δx步长不好控制,也容易造成算法不收敛。
4.2列文伯格-马夸尔特算法1
4.2.1算法原理
高斯牛顿法只有在泰勒展开点附近近似效果比较好,所以我们给
Δ
x
\Delta x
Δx添加一个范围,称为信赖区域。这个范围定义了在什么情况下近似是有效的。在这个范围内认为近似有效,出了这个范围近似可能有问题。我们定义一个指标
ρ
\rho
ρ来刻画近似的好还程度:
ρ
=
f
(
x
+
Δ
x
)
−
f
(
x
)
J
(
x
)
T
Δ
x
(1)
\rho =\frac{f(x+\Delta x)-f(x)}{J(x)^{T}\Delta x}\tag{1}
ρ=J(x)TΔxf(x+Δx)−f(x)(1)
对于上面的式子,若 ρ \rho ρ近似为1,则近似是好的。如果 ρ \rho ρ太小,说明减小的值远小于近似减小的值,则认为近似比较差,需要缩小近似范围。相反,若 ρ \rho ρ太大,说明减小的值远大于近似减小的值,则应该放大近似范围。
改良版的非线性优化框架如下:
-
给定初始值 Δ x \Delta x Δx,以及初始优化半径 μ \mu μ;
-
对于第 k k k次迭代,在高丝牛墩基础上添加信赖区域,求解:
m i n Δ x k 1 2 ∥ f ( x k ) + J ( x k ) T Δ x k ∥ 2 , s . t . ∥ D Δ x k ∥ 2 ≤ μ , (2) \underset{\Delta x_{k}}{\rm min}\frac{1}{2} \parallel f(x_k)+J(x_k)^{T}\Delta x_k \parallel^{2}, \quad s.t. \quad \parallel D\Delta x_k \parallel^{2}\le \mu,\tag{2} Δxkmin21∥f(xk)+J(xk)TΔxk∥2,s.t.∥DΔxk∥2≤μ,(2)
其中, μ \mu μ为信赖区域半径, D D D为系数矩阵,将在后文说明。
- 按式(1)计算 ρ \rho ρ;
- 若 ρ > 3 4 \rho> \frac{3}{4} ρ>43,则设置 μ = 2 μ \mu = 2\mu μ=2μ;
- 若 ρ < 1 4 \rho< \frac{1}{4} ρ<41,则设置 μ = 0.5 μ \mu = 0.5\mu μ=0.5μ;
- 如果 ρ \rho ρ大于某个阈值,则认为近似可行。令 x k = 1 = x k + Δ x k x_{k=1}=x_{k}+\Delta x_{k} xk=1=xk+Δxk;
- 判断算法是否收敛,若不收敛则返回第2步,否则结束。
在列文伯格优化方法中,把 D D D取成单位阵 I I I,相当于直接把 Δ x \Delta x Δx约束在一个球中。随后,马夸尔特提出将 D D D取成非负数对角阵,使得在梯度小的维度上约束范围更大一些。
式(2)是带不等式约束的优化问题,我们用拉格朗日乘子把约束项放到目标函数中,构成拉格朗日函数:
L
(
Δ
x
k
,
λ
)
=
1
2
∥
f
(
x
k
)
+
J
(
x
k
)
T
Δ
x
k
∥
2
+
λ
2
(
∥
D
Δ
x
k
∥
2
−
μ
)
(3)
\mathcal{L}(\Delta x_k,\lambda )=\frac{1}{2}\parallel f(x_k)+J(x_k)^{T}\Delta x_k \parallel^{2}+\frac{\lambda}{2}\left ( \parallel D\Delta x_k \parallel^{2} -\mu \right ) \tag{3}
L(Δxk,λ)=21∥f(xk)+J(xk)TΔxk∥2+2λ(∥DΔxk∥2−μ)(3)
这里
λ
\lambda
λ为拉格朗乘子,令式(3)对
Δ
x
\Delta x
Δx求导并使之为零:
(
H
+
λ
D
T
D
)
Δ
x
k
=
g
(4)
(H+\lambda D^{T}D)\Delta x_k=g \tag{4}
(H+λDTD)Δxk=g(4)
可以看到相比高斯牛顿法,增量方程多了
λ
D
T
D
\lambda D^{T}D
λDTD。因为
D
=
I
D=I
D=I,所以式(4)可以化简为:
(
H
+
λ
I
)
Δ
x
k
=
g
(H+\lambda I)\Delta x_{k}=g
(H+λI)Δxk=g
从上式可以看到,当
λ
\lambda
λ较小时,
H
H
H占主要地位,则说明二次近似在此范围内比较好,此时更接近高斯牛顿法。另一方面,当
λ
\lambda
λ较大时,
λ
I
\lambda I
λI占主要地位,则更接近梯度下降法。说明近似不好。列文伯格-马夸尔特算法,可在一定程度上避免线性方程组系数矩阵的不可逆问题,提供更稳定、更准确的增量
Δ
x
\Delta x
Δx。