牛顿法

1、牛顿法

牛顿法至少有两个应用方向,1、求方程的根,2、最优化。牛顿法涉及到方程求导。可能你有些疑问,对于求函数的最优解,

直接对函数进行求导令其为0,求解即为函数的优解。但有些函数的导函数不是很容易求解,或者根本无法用一些办法公式求得函数

的解。这个时候只能用迭代的方法,不断的逼近最优解。在机器学习中主要应用在非线性函数优化问题,相比于梯度下降具有快速

收敛的效果。

2、原理

原理是利用泰勒公式,在x0处展开,且展开到一阶,即f(x) = f(x0)+(x-x0)f'(x0)

求解方程f(x)=0,即f(x0)+(x-x0)*f'(x0)=0,求解x = x1=x0-f(x0)/f'(x0),因为这是利用泰勒公式的一阶展开,f(x) = f(x0)+(x-x0)f'(x0)处并不是完全相等,而是近似相等,这里求得的x1并不能让f(x)=0,只能说f(x1)的值比f(x0)更接近f(x)=0,于是乎,迭代求解的想法就很自然了,可以进而推出x(n+1)=x(n)-f(x(n))/f'(x(n)),通过迭代,这个式子必然在f(x*)=0的时候收敛。整个过程如下图:


3、扩展应用(多维变量)

一般认为牛顿法可以利用到曲线本身的信息,比梯度下降法更容易收敛(迭代更少次数),如下图是一个最小化一个目标方程的例子,红色曲线是利用牛顿法迭代求解,绿色曲线是利用梯度下降法求解。

在上面讨论的是2维情况,高维情况的牛顿迭代公式是:

其中H是hessian矩阵,定义为:



3、优缺点

A、对目标函数有较严格的要求,函数必须具有连续的一、二阶编导数,海森矩阵必须要求正定,即函数是凸函数

B、计算相当复杂,除了需要计算梯度以外,还需要计算二阶导数矩阵和他的逆矩阵,计算复杂度和存储量都巨大是N的平方比增加


参考

1、http://baike.baidu.com/link?url=yCdUs0a6ufdJl5eh1M2_-eIgd7ysz4Edxb1twy6hsj3TdWe7sci9Hh5QSsRUeoq5_fBpRDpd7kRoNN5Ip5IOui4pDU1kET9qH446_pwMtFdrBtbk_wfbS1C34K38Bliu

2、http://blog.csdn.net/itplus/article/details/21896453

3、http://blog.csdn.net/luoleicn/article/details/6527049

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值