【优化方法】牛顿法——Newton Method
分类:
文章
•
2024-09-27 09:09:58
一、牛顿法主要有两个应用方向:
二、求方程的根:
- 假设我们现在要求方程f(x)=0的根x∗:
-
第一步:对f(x)进行一阶泰勒展开:f(x)≈f(x0)+f′(x0)(x−x0)g(x)=f(x0)+f′(x0)(x−x0)g(x)为f(x)的一阶泰勒展开,其实质就是f(x)在x0点的切线方程,根据泰勒公式的性质我们知道f(x)和g(x)在x0点附近的值可以非常接近。
-
第二步:求出g(x)的根x1:f(x0)+f′(x0)(x−x0)=0x1=x0−f′(x0)f(x0)
-
第三步:重复第一步和第二步直到收敛:xk+1=xk−f′(xk)f(xk)x∗=k→+∞limxk
- 迭代过程图:
三、求函数最优化求解:
- 假设f(x)是某一任务的目标函数,我们需要求出该函数的最小值(极小值),可以转化为f′(x)的根,剩下的问题就和第一部分提到的牛顿法求解很相似了。
-
第一步:对f(x)进行二阶泰勒公式展开:f(x)≈f(x0)+f′(x0)(x−x0)+21f′′(x0)(x−x0)2 g(x)=f(x0)+f′(x0)(x−x0)+21f′′(x0)(x−x0)2 原问题minf(x) 近似转变为ming(x)
-
第二步:求g(x) 的最小值
- 对g(x)求导,并令倒数为0:f′(x0)+f′′(x0)(x−x0)=0
- 求解:x=x0−f′′(x0)f′(x0)
-
第三步:重复第一步和第二步直到收敛: xk+1=xk−f′′(x0)f′(x0)x∗=k→+∞limxk
三、高维牛顿法:
- 在上面讨论的是2维情况,现在讨论高维情况的牛顿法:
1、高维函数的泰勒展开式:
- 一元函数泰勒公式:f(x)≈f(x0)+f′(x0)(x−x0)+2!1f′′(x0)(x−x0)2+⋯+n!1f((n))(x0)(x−x0)n
- 二元函数泰勒公式:
-
hessian 矩阵:
- 设n多元实函数f(x1,x2,…,xn),则其hessian 矩阵为:
-
n元函数泰勒公式:
-
f(x1,x2,…,xn),在点X0=(x10,x20,…,xn0)的泰勒公式:f(X)=f(X0)+∇f(X0)∇XT+21∇XA(X0)∇XT+⋯+o((x−x0)n) 其中∇f(X)为f(X)梯度,公式如下:∇f(X)=[∂x1∂f,∂x2∂f,…,∂xn∂f]∇X公式如下:∇X=[x1−x10,x2−x20,…,xn−xn0]
2、求多元函数最优化求解的牛顿迭代公式:
-
x(k+1)=xk−A(X0)∇f(X0)由上面公式我们可以看出牛顿迭代法与梯度下降算法的关系:
- 梯度下降算法的递推公式:xk+1=xk−λ∇f(X0)
- 则牛顿法就是步长为A(X0)1 的梯度下降算法
-
优缺点:牛顿法的优点是收敛速度快,缺点是在用牛顿法进行最优化求解的时候需要求解Hessian矩阵,使得牛顿迭代求解的难度大大增加。