Newton's Method 牛顿法求极值.

UTF8gbsn

一元求根

首先从最简单的牛顿法应用开始.牛顿法最简单的一个应用是去求一个函数的根.其实原理很简单.就是一个迭代.当然这些结论也是凸函数才会成立.

x n + 1 = x n − f ( x n ) f ′ ( x n ) x_{n+1}=x_n-\frac{f(x_n)}{f^{'}(x_n)} xn+1=xnf(xn)f(xn)

比如我们来求 y = x 2 y=x^2 y=x2的根.如果出发点为 x = 2.0 x=2.0 x=2.0.那么其表现在函数图象上为.

在这里插入图片描述

一元求极值

那么我们怎么来求极值?怎么用牛顿的方法来求极值?其实很简单.极值存在的点,就是函数二次导为0的点.也就是说,我们可以把求极值的问题回归到求根的问题.比如对于函数
y = 1 + ( x − 1 ) 2 + ( x + 1 ) 4 y=1+(x-1)^2+(x+1)^4 y=1+(x1)2+(x+1)4

画出它的函数图象

在这里插入图片描述

请看它的导数的函数图象 y = 2 ( x − 1 ) + 4 ( x + 1 ) 3 y=2(x-1)+4(x+1)^3 y=2(x1)+4(x+1)3

在这里插入图片描述
由此可见原函数的极值出现在,导数的根,也就是导数为0的地方.所以我们回到求根的牛顿法得出下面的迭代函数.

x n + 1 = x n − f ′ ( x n ) f ′ ′ ( x n ) x_{n+1}=x_{n}-\frac{f^{'}(x_n)}{f^{''}(x_n)} xn+1=xnf(xn)f(xn) 画出迭代的图象可得

在这里插入图片描述

这是一个一元函数的解法.下面我们来看看针对多元函数又怎么利用牛顿法来求极值呢?

多元函数求极值

我们先描述一下多元函数的牛顿法极值的算法步骤.

  • Compute the Newton step and decrement.
    Δ x n t : = − ∇ 2 f ( x ) − 1 ∇ f ( x ) ; λ 2 : = ∇ f ( x ) T ∇ 2 f ( x ) − 1 ∇ f ( x ) \Delta x_{\mathrm{nt}}:=-\nabla^{2} f(x)^{-1} \nabla f(x) ; \quad \lambda^{2}:=\nabla f(x)^{T} \nabla^{2} f(x)^{-1} \nabla f(x) Δxnt:=2f(x)1f(x);λ2:=f(x)T2f(x)1f(x)

  • Stopping criterion. quit if λ 2 / 2 ⩽ ϵ \lambda^2/2\leqslant \epsilon λ2/2ϵ

  • Line search. Choose step size t by backtracking line search.

  • Update x : = x + t Δ x n t x:=x+t \Delta x_{\mathrm{nt}} x:=x+tΔxnt

首先,我们需要分析的前提是函数 f ( x ) f(x) f(x)是一个凸函数.因为如果不是凸函数.那么分析的结论将不会成立.所以我们下面的讨论都限制在 f ( x ) f(x) f(x)是凸函数的基础上.

牛顿法

如何来理解多元函数的牛顿法?
其实有几种理解的思路.而我们这里主要采用其中一种.也就是二阶泰勒展开.

f ^ ( x + v ) = f ( x ) + ∇ f ( x ) T v + 1 2 v T ∇ 2 f ( x ) v \widehat{f}(x+v)=f(x)+\nabla f(x)^{T} v+\frac{1}{2} v^{T} \nabla^{2} f(x) v f (x+v)=f(x)+f(x)Tv+21vT2f(x)v

值得注意的是符号 ∇ 2 f ( x ) \nabla^2f(x) 2f(x)是hessian矩阵. ( ∂ 2 f ∂ x 1 2 ∂ 2 f ∂ x 1 ∂ x 2 ⋯ ∂ 2 f ∂ x 1 ∂ x n ∂ 2 f ∂ x 2 ∂ x 1 ∂ 2 f ∂ x 2 2 ⋯ ∂ 2 f ∂ x 2 ∂ x n ⋮ ⋮ ⋱ ⋮ ∂ 2 f ∂ x n ∂ x 1 ∂ 2 f ∂ x n ∂ x 2 ⋯ ∂ 2 f ∂ x n 2 ) \left( \begin{array}{cccc} \frac{\partial^2 f}{\partial x_1^2} & \frac{\partial^2 f}{\partial x_1\partial x_2} & \cdots & \frac{\partial^2 f}{\partial x_1\partial x_n} \\ \frac{\partial^2 f}{\partial x_2\partial x_1} & \frac{\partial^2 f}{\partial x_2^2} & \cdots & \frac{\partial^2 f}{\partial x_2\partial x_n} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial^2 f}{\partial x_n\partial x_1} & \frac{\partial^2 f}{\partial x_n\partial x_2} & \cdots & \frac{\partial^2 f}{\partial x_n^2} \end{array} \right) x122fx2x12fxnx12fx1x22fx222fxnx22fx1xn2fx2xn2fxn22f

如果函数 f ( x ) f(x) f(x)是一个凸函数,那么 ∇ 2 f ( x ) \nabla^2 f(x) 2f(x)就是半正定的.既然这个函数是半正定的.那么

f ^ ( x + v ) = f ( x ) + ∇ f ( x ) T v + 1 2 v T ∇ 2 f ( x ) v , v = − ∇ 2 f ( x ) − 1 ∇ f ( x ) \widehat{f}(x+v)=f(x)+\nabla f(x)^{T} v+\frac{1}{2} v^{T} \nabla^{2} f(x) v, v = -\nabla^{2} f(x)^{-1} \nabla f(x) f (x+v)=f(x)+f(x)Tv+21vT2f(x)v,v=2f(x)1f(x)
就会减小.因为

∇ f ( x ) T ( − ∇ 2 f ( x ) − 1 ∇ f ( x ) ) = − ∇ f ( x ) T ∇ 2 f ( x ) − 1 ∇ f ( x ) \nabla f(x)^T (- \nabla^2f(x)^{-1}\nabla f(x))=-\nabla f(x)^T \nabla^2f(x)^{-1}\nabla f(x) f(x)T(2f(x)1f(x))=f(x)T2f(x)1f(x)
1 2 ( − ∇ 2 f ( x ) − 1 ∇ f ( x ) ) T ∇ 2 f ( x ) ( − ∇ 2 f ( x ) − 1 ∇ f ( x ) ) = 1 2 ( − ∇ T f ( x ) ( ∇ 2 f ( x ) − 1 ) T ) ∇ 2 f ( x ) ( − ∇ 2 f ( x ) − 1 ∇ f ( x ) ) \frac{1}{2} (- \nabla^2f(x)^{-1}\nabla f(x))^{T} \nabla^{2} f(x) (- \nabla^2f(x)^{-1}\nabla f(x))=\frac{1}{2} (- \nabla^T f(x)(\nabla^2f(x)^{-1})^{T}) \nabla^{2} f(x) (- \nabla^2f(x)^{-1}\nabla f(x)) 21(2f(x)1f(x))T2f(x)(2f(x)1f(x))=21(Tf(x)(2f(x)1)T)2f(x)(2f(x)1f(x))
= 1 2 ∇ T f ( x ) ( ∇ 2 f ( x ) − 1 ) T ∇ f ( x ) = 1 2 ∇ T f ( x ) ∇ 2 f ( x ) − 1 ∇ f ( x ) =\frac{1}{2}\nabla^Tf(x)(\nabla^2f(x)^{-1})^T\nabla f(x)=\frac{1}{2}\nabla^Tf(x)\nabla^2f(x)^{-1}\nabla f(x) =21Tf(x)(2f(x)1)Tf(x)=21Tf(x)2f(x)1f(x)
因为 ∇ 2 f ( x ) \nabla^2f(x) 2f(x)是一个实对称矩阵,所以 ∇ 2 f ( x ) − 1 \nabla^2f(x)^{-1} 2f(x)1也是一个实对称矩阵.于是
f ^ ( v ) = f ( x ) − 1 2 ∇ T f ( x ) ∇ 2 f ( x ) − 1 ∇ f ( x ) \widehat{f}(v) = f(x)-\frac{1}{2}\nabla^Tf(x)\nabla^2f(x)^{-1}\nabla f(x) f (v)=f(x)21Tf(x)2f(x)1f(x)
因为 ∇ 2 f ( x ) \nabla^2f(x) 2f(x)是半正定的,所以 ∇ T f ( x ) ∇ 2 f ( x ) − 1 ∇ f ( x ) ⩾ 0 \nabla^Tf(x)\nabla^2f(x)^{-1}\nabla f(x)\geqslant 0 Tf(x)2f(x)1f(x)0,顾而 f ( x ) f(x) f(x)减小.如此以来可以证明牛顿法是可以求得极值的.当然我们略去了很多细节.只是粗略的阐述了牛顿法成立的逻辑.还有更多的一些逻辑.我希望留在综合比较,梯度下降,共轭梯度下降和牛顿法这三个算法上面来阐述.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值