牛顿法

牛顿法是一种经典的优化算法,本文主要介绍牛顿法的基本原理。

定义一元函数:\phi(.):R \rightarrow R,考虑等式:\phi(t^*)=0, 通过线性近似可获得牛顿法的更新规则。

假设已知t靠近最优解t^*,在t处对函数\phi(.)做一阶泰勒展开有:

                                  \phi(t+\Delta t)=\phi(t)+\phi'(t)\Delta t+o(|\Delta t|),

 则\phi(t+\Delta t)=0可近似为:

                                  \phi(t)+\phi'(t)\Delta t=0

若将该方程看作一个系统,则可将其称为牛顿系统。在某些条件下,若将\Delta t视作最优\Delta t^*=t^*-t的近似,则有:

                                  t_{k+1}=t_k-\frac{\phi(t_k)}{\phi'(t_k)},                             (1)

式(1)即为牛顿法的更新规则,该方案可进一步扩展至寻找非线性方程组(非线性系统)的解。

定义非线性方程组:F(x)=0, 其中,x \in R^n,F(.):R^n \rightarrow R^n

与一元函数类似,构建牛顿系统:

                               F(x)+F'(x)\Delta x=0

式中,F'(x)可视为Jacobian矩阵,若该矩阵满秩(不退化),则\Delta x可表示为:

                               \Delta x=-[F'(x)]^{-1}F(x),                      (2)

因此,相应的迭代规则可表示为:

                              x_{k+1}=x_k-[F'(x)]^{-1} F(x)。           (3)

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

上述牛顿法的基本原理可进一步推广至求无约束最小化问题。即想通过\nabla f(x)=0来求解极值的问题。

与一元函数时\phi(t)+\phi'(t)\Delta t=0类似,在非退化情况下,如果想通过\nabla f(x)=0来求解非线性系统,利用牛顿法可构建如下牛顿系统:

                              \nabla f(x)+ \nabla^2 f(x) \Delta x=0,

该式可进一步写为:

                              x_{k+1}=x_k-[\nabla^2 f(x_k)]^{-1} \nabla f(x_k)  (4)

如果想通过二阶泰勒近似来获得式(4)中的结果应该如何操作呢?

假设给定非线性函数\phi(x),在x_k处的二阶泰勒可近似为:

                             \phi(x)=f(x_k)+\langle \nabla f(x_k),x-x_k \rangle+\frac{1}{2} \langle \nabla^2f(x_k)(x-x_k),x-x_k\rangle,

\nabla^2f(x_k)>0(Hessian矩阵正定),x_{k+1}为函数\phi(x)的一个极小值,\phi(x)x_{k+1}求导有:

                           \nabla \phi(x_{k+1})=\nabla f(x_k)+\langle \nabla^2 f(x_k), x_{k+1}-x_k \rangle =0,

对该式进行整理即可得出式(4)中的结果。

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

接下来介绍一个简单的例子来说明牛顿法的特点:

例:考虑一元函数:

                            \phi(t)=\frac{t}{\sqrt{1+t^2},

显然,该函数的根t^*=0

其一阶导为:

                          \phi'(t)=\frac{1}{(1+t^2)^{3/2}},

式(1)可表达为:

                         t_{k+1}=t_k-\frac{\phi(t_k)}{\phi'(t_k)}=-t^3_k

因此,若初始位置|t_0|<1,则牛顿法可快速收敛至t^*=0

|t_0|=1,此时牛顿法将一直振荡,无法收敛;

|t_0|>1,此时牛顿法将发散。

----------------------------------------------------------------------------------------------------------------------------------------------------------------------

总结:

牛顿法在最优点附近收敛很快,但其存在两个缺点:

1)牛顿法要求\nabla^2 f(x_k)是非退化的,在实际应用中,这一条件往往不容易满足;

2)牛顿法很容易受到初始位置的影响,不理想的初始条件可能会导致牛顿法发散;

参考文献:Yurii Nesterov, Lectures on Convex Optimization,2010.

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值