# Levenberg-Marquardt算法浅谈

22 篇文章 1 订阅

### 牛顿法

f ( x 0 + Δ ) = f ( x 0 ) + f ′ ( x 0 ) Δ = 0 　 　 　 　 ( 1 ) f(x_0+\Delta)=f(x_0)+f'(x_0)\Delta=0　　　　(1)

Δ = x − x 0 = − f ( x 0 ) f ′ ( x 0 ) , 即 x = x 0 − f ( x 0 ) f ′ ( x 0 ) 　 　 　 　 ( 2 ) \Delta=x-x_0=-\frac{f(x_0)}{f'(x_0)},即x=x_0-\frac{f(x_0)}{f'(x_0)}　　　　(2)

x n = x n − 1 − f ( x n − 1 ) f ′ ( x n − 1 ) ,   u n t i l    ∣ x n − x n − 1 ∣ < ϵ 　 　 　 　 ( 3 ) x_n=x_{n-1}-\frac{f(x_{n-1})}{f'(x_{n-1})} ,\ until\ \ |x_n-x_{n-1}|< \epsilon　　　　(3)

f ′ ( x 0 ) + ( x － x 0 ) f ′ ′ ( x 0 ) = 0 　 　 　 　 ( 7 ) f'(x_0)+(x－x_0)f ''(x_0) = 0 　　　　(7)

### 高斯牛顿法

J f = [ ∂ f ∂ x 0 ⋯ ∂ f ∂ x n ] 　 　 　 　 ( 10 ) J_f=\begin{bmatrix} \frac{\partial f}{\partial x_0}&\cdots&\frac{\partial f}{\partial x_n} \end{bmatrix}　　　　(10)

H f = [ ∂ 2 f ∂ x 0 2 ∂ 2 f ∂ x 0 ∂ x 1 . . . ∂ 2 f ∂ x 0 ∂ x n ∂ 2 f ∂ x 1 ∂ x 0 ∂ 2 f ∂ x 1 2 . . . ∂ 2 f ∂ x 1 ∂ x n ⋮ ⋮ ⋱ ⋮ ∂ 2 f ∂ x n ∂ x 0 ∂ 2 f ∂ x n ∂ x 1 . . . ∂ 2 f ∂ x n 2 ] 　 　 　 　 ( 11 ) H_f=\begin{bmatrix}\frac{\partial^2f}{\partial x_0^2}&\frac{\partial^2f}{\partial x_0 \partial x_1}&...&\frac{\partial^2f}{\partial x_0 \partial x_n}\\ \frac{\partial^2f}{\partial x_1 \partial x_0}&\frac{\partial^2f}{\partial x_1^2}&...&\frac{\partial^2f}{\partial x_1 \partial x_n}\\\vdots&\vdots&\ddots&\vdots\\ \frac{\partial^2f}{\partial x_n \partial x_0}&\frac{\partial^2f}{\partial x_n \partial x_1}&...&\frac{\partial^2f}{\partial x_n^2} \end{bmatrix}　　　　(11)

X n + 1 = X n − H f ( x n ) − 1 ∇ f ( x n ) 　 　 　 　 ( 12 ) X_{n+1}=X_n-H_f(x_n)^{-1}\nabla f(x_n)　　　　(12)

• 雅可比矩阵代替了低维情况中的一阶导
• Hessian矩阵代替了二阶导
• 求逆代替了除法

s ( x ) = ∑ i = 0 n f 2 ( x i ) 　 　 　 　 ( 13 ) s(x)=\sum_{i=0}^nf^2(x_i)　　　　(13)

g j = 2 ∑ i = 0 n f i ∂ f i ∂ x j 　 　 　 　 ( 14 ) g_j=2\sum_{i=0}^nf_i\frac{\partial f_i}{\partial x_j}　　　　(14)
Hessian 矩阵的元素则直接在梯度向量的基础上求导：
H j k = 2 ∑ i = 0 n ( ∂ f i ∂ x j ∂ f i ∂ x k + f i ∂ 2 f i ∂ x j ∂ x k ) 　 　 　 　 ( 15 ) H_{jk}=2\sum_{i=0}^n (\frac{\partial f_i}{\partial x_j}\frac{\partial f_i}{\partial x_k}+ f_i\frac{\partial^2 f_i}{\partial x_j\partial x_k})　　　　(15)

H j k ≈ 2 ∑ i = 0 n J i j J i k 　 　 　 　 ( 16 ) H_jk\approx2\sum_{i=0}^nJ_{ij}J_{ik}　　　　(16)

J f = [ ∂ f 0 ∂ x 0 ⋯ ∂ f 0 ∂ x n ⋮ ⋱ ⋮ ∂ f n ∂ x 0 ⋯ ∂ f n ∂ x n ] 　 　 　 　 ( 17 ) J_f=\begin{bmatrix} \frac{\partial f_0}{\partial x_0}&\cdots&\frac{\partial f_0}{\partial x_n}\\ \vdots&\ddots&\vdots\\ \frac{\partial f_n}{\partial x_0}&\cdots&\frac{\partial f_n}{\partial x_n} \end{bmatrix}　　　　(17)

g = 2 J f T f 　 　 　 　 ( 18 ) g=2J_f^Tf　　　　(18)
H ≈ 2 J f T J f 　 　 　 　 ( 19 ) H\approx2J_f^TJ_f　　　　(19)

x s + 1 = x s + Δ , 其 中 Δ = − ( J f T J f ) − 1 J f T f 　 　 　 　 ( 20 ) x^{s+1}=x^s+\Delta,其中\Delta=-(J_f^TJ_f)^{-1}J_f^Tf　　　　(20)

### Levenberg-Marquardt算法

Δ = − ( J f T J f ) − 1 J f T f 　 　 　 　 ( 21 ) \Delta=-(J_f^TJ_f)^{-1}J_f^Tf　　　　(21)

Δ = − ( J f T J f + λ I ) − 1 J f T f 　 　 　 　 ( 22 ) \Delta=-(J_f^TJ_f+\lambda I)^{-1}J_f^Tf　　　　(22)

[1]:https://zh.wikipedia.org/wiki/%E8%8E%B1%E6%96%87%E8%B4%9D%E6%A0%BC%EF%BC%8D%E9%A9%AC%E5%A4%B8%E7%89%B9%E6%96%B9%E6%B3%95

• 91
点赞
• 353
收藏
觉得还不错? 一键收藏
• 24
评论
04-15 9438
11-17 4万+
03-30 7万+
10-27
07-07 2万+
12-23 6953

### “相关推荐”对你有帮助么？

• 非常没帮助
• 没帮助
• 一般
• 有帮助
• 非常有帮助

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