牛顿法及其几何意义理解

牛顿法

牛顿法是一种用来求解可微函数的近似解的方法。

首先从几何意义上直观的理解一下牛顿法。在这里插入图片描述
图中 y = f ( x ) y=f(x) y=f(x) 是一个可微函数。在点 ( x n , f ( x n ) ) (x_n, f(x_n)) (xn,f(xn))作切线,和 y y y轴的交点记为 x n + 1 x_{n+1} xn+1 Δ x = x n + 1 − x n \Delta x = x_{n+1}-x_n Δx=xn+1xn。要求方程 f ( x ) = 0 f(x)=0 f(x)=0的一个解 x ∗ x^* x

根据几何性质, x n x_n xn处的切线斜率 f ′ ( x n ) = f ( x n ) x n − x n + 1 f ^\prime(x_n) = \frac{f(x_n)}{x_n-x_{n+1}} f(xn)=xnxn+1f(xn),即 x n + 1 = x n − f ( x n ) f ′ ( x n ) x_{n+1} = x_n - \frac{f(x_n)}{f ^\prime(x_n) } xn+1=xnf(xn)f(xn)
x n + 1 x_{n+1} xn+1 x n x_n xn更接近 x ∗ x^* x,可以想象不断重复这个过程,对这个过程进行多次的迭代后,最终将会得到方程 f ( x ) = 0 f(x)=0 f(x)=0的解 x ∗ x^* x。这就是牛顿法的几何解释。

牛顿法的代数原理是利用泰勒展开求近似解。
对于函数 f ( x ) f(x) f(x),在 x n x_n xn处进行泰勒展开到一阶
f ( x ) = f ( x n + Δ x ) ≈ f ( x n ) + f ′ ( x n ) Δ x f(x)=f(x_n+\Delta x) \approx f(x_n)+f^\prime(x_n)\Delta x f(x)=f(xn+Δx)f(xn)+f(xn)Δx

f ( x ) = 0 ≈ f ( x n ) + f ′ ( x n ) Δ x f(x) = 0 \approx f(x_n)+f^\prime(x_n)\Delta x f(x)=0f(xn)+f(xn)Δx,得到近似的 Δ x = − f ( x n ) f ′ ( x n ) \Delta x = -\frac{f(x_n)}{f ^\prime(x_n) } Δx=f(xn)f(xn),即得到了比 x n x_n xn更接近 x ∗ x^* x的一个近似解
x n + 1 = x n − f ( x n ) f ′ ( x n ) x_{n+1} = x_n - \frac{f(x_n)}{f ^\prime(x_n) } xn+1=xnf(xn)f(xn)
不断进行迭代,最终结果将收敛到问题 f ( x ) = 0 f(x)=0 f(x)=0的解 x ∗ x^* x

牛顿法求最优化问题

最优化问题即找到一个 x ∗ x^* x使 f ( x n ) f(x_n) f(xn)具有最大/最小值。根据最优化问题的必要条件, f ( x n ) f(x_n) f(xn)为有极大值/极小值时, f ′ ( x n ) = 0 f^\prime(x_n)=0 f(xn)=0。根据这一性质,可以令 l ( x ) = f ′ ( x ) l(x) = f^\prime(x) l(x)=f(x),带入之前的牛顿法公式,可迭代的计算 x n + 1 = x n − l ( x n ) l ′ ( x n ) x_{n+1} = x_n - \frac{l(x_n)}{l ^\prime(x_n) } xn+1=xnl(xn)l(xn)。可以得到牛顿法解优化问题的迭代公式:
x n + 1 = x n − f ′ ( x n ) f ′ ′ ( x n ) x_{n+1} = x_n - \frac{f^\prime(x_n)}{f ^{\prime\prime}(x_n) } xn+1=xnf(xn)f(xn)

现在,我们同样用泰勒展开的方法来推导这个公式。
对于函数 f ( x ) f(x) f(x),在 x n x_n xn处进行二阶泰勒展开
f ( x ) = f ( x n + Δ x ) ≈ f ( x n ) + f ′ ( x n ) Δ x + f ′ ′ ( x n ) 2 Δ x 2 f(x)=f(x_n+\Delta x) \approx f(x_n)+f^\prime(x_n)\Delta x+\frac{f^{\prime\prime}(x_n)}{2}\Delta x^2 f(x)=f(xn+Δx)f(xn)+f(xn)Δx+2f(xn)Δx2

根据极值的必要条件,对 Δ x \Delta x Δx求导,令 f ′ ( x n ) = 0 f^\prime(x_n) = 0 f(xn)=0
0 = f ′ ( x ) ≈ d d Δ x ( f ( x n ) + f ′ ( x n ) Δ x + f ′ ′ ( x n ) 2 Δ x 2 ) = f ′ ( x n ) + f ′ ′ ( x n ) Δ x 0=f^\prime(x)\approx \frac {d}{d\Delta x} (f(x_n)+f^\prime(x_n)\Delta x+\frac{f^{\prime\prime}(x_n)}{2}\Delta x^2)=f^\prime(x_n)+f^{\prime\prime}(x_n)\Delta x 0=f(x)dΔxd(f(xn)+f(xn)Δx+2f(xn)Δx2)=f(xn)+f(xn)Δx
得到
Δ x = − f ′ ( x n ) f ′ ′ ( x n ) \Delta x = -\frac{f^\prime(x_n)}{f ^{\prime\prime}(x_n) } Δx=f(xn)f(xn)
即得到了迭代式
x n + 1 = x n − f ′ ( x n ) f ′ ′ ( x n ) x_{n+1} = x_n - \frac{f^\prime(x_n)}{f ^{\prime\prime}(x_n) } xn+1=xnf(xn)f(xn)
在高维情况下,即当 f ( x ⃗ ) f(\vec{x}) f(x ) R n → R R^n\to R RnR的函数时,记其在 x = x n x=x_n x=xn处一阶梯度 ∇ f ( x n ⃗ ) = g n \nabla f(\vec{x_n}) = g_n f(xn )=gn,二阶梯度 ∇ 2 f ( x n ) = H n \nabla^2f(x_n)=H_n 2f(xn)=Hn g n g_n gn为梯度向量, H n H_n Hn为黑塞矩阵(之后我将介绍黑塞矩阵)。则此时取得最值得条件变为 ∇ f ( x n ) + ∇ 2 f ( x n ) Δ x \nabla f(x_n)+\nabla^2 f(x_n)\Delta x f(xn)+2f(xn)Δx=0,即 g n + H n Δ x = 0 g_n+H_n\Delta x=0 gn+HnΔx=0。当黑塞矩阵 H n H_n Hn非奇异时,可以得到
Δ x = − H n − 1 ⋅ g n \Delta x = -H_n^{-1} \cdot g_n Δx=Hn1gn
即递推式为
x n + 1 = x n − H n − 1 ⋅ g n x_{n+1} = x_n- H_n^{-1} \cdot g_n xn+1=xnHn1gn

牛顿法的优缺点

下图中绿色的线路为梯度下降法的路线,红色为牛顿法的下降路线。
牛顿法具有二次收敛性,因此比普通的梯度下降收敛的更快。
在这里插入图片描述

但是虽然牛顿法的收敛速度很快,但是有比较多的限制,比如函数必须具有二阶偏导,黑塞矩阵必须正定。牛顿法需要计算黑塞矩阵及其逆,需要进行大量的运算,计算相当复杂。克服这些问题的方法就是拟牛顿法。关于拟牛顿法我们以后再叙。

参考资料:

https://en.wikipedia.org/wiki/Newton's_method_in_optimization
https://www.cnblogs.com/ljy2013/p/5129294.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值