查了很多地方说牛顿法是二阶算法,一直没找到二阶项在哪。花了大半天的时间才弄明白。记录一下。
牛顿法一般应用场景:

  1. 求方程的根;
  2. 求解最优化方法;

比如要求f(x)=0f(x)=0f(x)=0的根。
首先,选择一个接近函数 f(x)f(x)f(x)零点的 x0x_0x0​,计算相应的 f(x0)f(x_0)f(x0​)和切线斜率f′(x0)f ' (x_0)f′(x0​)(这里f′f 'f′表示函数fff的导数)。然后我们计算穿过点(x0,f(x0))(x_0, f (x_0))(x0​,f(x0​))并且斜率为f′(x0)f '(x0)f′(x0)的直线和 xxx 轴的交点的xxx坐标,也就是求如下方程的解:
f(x1)−f(x0)=f′(x0)⋅(x1−x0)f(x_1)-f(x_0) = f^{\prime}\left(x_{0}\right) \cdot (x_1-x_0) f(x1​)−f(x0​)=f′(x0​)⋅(x1​−x0​)
通常x1会比x0更接近方程f (x) = 0的解。因此我们现在可以利用x1开始下一轮迭代。迭代公式可化简为如下所示:
xn+1=xn−f(xn)f′(xn)x_{n+1}=x_{n}-\frac{f\left(x_{n}\right)}{f^{\prime}\left(x_{n}\right)} xn+1​=xn​−f′(xn​)f(xn​)​
已经证明,如果f ’ 是连续的,并且待求的零点x是孤立的,那么在零点x周围存在一个区域,只要初始值x0位于这个邻近区域内,那么牛顿法必定收敛。 并且,如果f ’ (x)不为0, 那么牛顿法将具有平方收敛的性能. 粗略的说,这意味着每迭代一次,牛顿法结果的有效数字将增加一倍。下图为一个牛顿法执行过程的例子。

由于牛顿法是基于当前位置的切线来确定下一次的位置,所以牛顿法又被很形象地称为是"切线法"。牛顿法的搜索路径(二维情况)如下图所示:

牛顿法搜索动态示例图:
 关于牛顿法和梯度下降法的效率对比:

从本质上去看,牛顿法是二阶收敛,梯度下降是一阶收敛,所以牛顿法就更快。如果更通俗地说的话,比如你想找一条最短的路径走到一个盆地的最底部,梯度下降法每次只从你当前所处位置选一个坡度最大的方向走一步,牛顿法在选择方向时,不仅会考虑坡度是否够大,还会考虑你走了一步之后,坡度是否会变得更大。所以,可以说牛顿法比梯度下降法看得更远一点,能更快地走到最底部。(牛顿法目光更加长远,所以少走弯路;相对而言,梯度下降法只考虑了局部的最优,没有全局思想。)

根据wiki上的解释,从几何上说,牛顿法就是用一个二次曲面去拟合你当前所处位置的局部曲面,而梯度下降法是用一个平面去拟合当前的局部曲面,通常情况下,二次曲面的拟合会比平面更好,所以牛顿法选择的下降路径会更符合真实的最优下降路径。
  
  注:红色的牛顿法的迭代路径,绿色的是梯度下降法的迭代路径。

牛顿法的优缺点总结:
  优点:二阶收敛,收敛速度快;
  缺点:牛顿法是一种迭代算法,每一步都需要求解目标函数的Hessian矩阵的逆矩阵,计算比较复杂。


当我们将牛顿法用作优化算法的时候,它就是二阶的。
假设我们有一个凸优化问题
min⁡xf(x)\min _{x} f(x) xmin​f(x)
也就是说我们要找一个x来最小化f(x)。对于凸优化问题,f(x)的最小值点就是f(x)的极值点,也就是导数为0的点。那么我们上面的优化问题就转换为了如下的求根问题:
f′(x)=0f^{\prime}(x)=0 f′(x)=0
利用牛顿法求解上面的式子,我们先选取初始点x0,然后进行如下迭代
xn+1=xn−f′(xn)f′′(xn)x_{n+1}=x_{n}-\frac{f^{\prime}\left(x_{n}\right)}{f^{\prime \prime}\left(x_{n}\right)} xn+1​=xn​−f′′(xn​)f′(xn​)​
直到∣xn+1−xn∣&lt;ϵ| x_{n+1}-x_{n} |&lt;\epsilon∣xn+1​−xn​∣<ϵ
综上,牛顿法求根是一阶算法,我们将优化问题转为求根问题需要一阶导数,所以用牛顿法进行最优化是二阶算法。

参考资料
http://sofasofa.io/forum_main_post.php?postid=1000966
https://www.cnblogs.com/shixiangwan/p/7532830.html

牛顿法为什么是二阶的相关推荐

  1. 花书+吴恩达深度学习(九)优化方法之二阶近似方法(牛顿法, CG, BFGS, L-BFGS)

    目录 0. 前言 1. 牛顿法 2. 共轭梯度法(CG) 3. BFGS 4. L-BFGS 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~ 花书+吴恩达深度学习(五)正则化 ...

  2. 逻辑回归的参数计算:牛顿法,梯度下降法,随机梯度下降法

    逻辑回归的参数计算:牛顿法,梯度下降(上升)法,随机梯度下降法,批量梯度下降法 前面文章中对逻辑回归进行了讲解,下面来说一说逻辑回归的参数是怎么计算的. 逻辑回归的计算使用的是最大似然方法.记 z i ...

  3. 梯度下降、牛顿法、拟牛顿法

    介绍 在向量微积分中,标量场的梯度是一个向量场.标量场中某一点上的梯度指向标量场增长最快的方向,梯度的长度是这个最大的变化率.更严格的说,从欧几里得空间Rn到R的函数的梯度是在Rn某一点最佳的线性近似 ...

  4. 牛顿法、拟牛顿法原理

    文章目录 非线性方程与其最优化方法 牛顿法原理 拟牛顿法原理 拟牛顿条件 DFP算法 BFGS算法 非线性方程与其最优化方法 非线性方程指方程的因变量与自变量之间的关系不是线性关系的方程,比如平方关系 ...

  5. 牛顿法与拟牛顿法(含代码实现)

    1. 牛顿法 牛顿法(英语:Newton's method)又称为牛顿-拉弗森方法(英语:Newton-Raphson method),它是一种在实数域和复数域上近似求解方程的方法. 牛顿法的基本思想 ...

  6. 相机校正、张氏标定法、极大似然估计/极大似然参数估计、牛顿法、高斯牛顿法、LM算法、sin/cos/tan/cot

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) CNN:RCNN.SPPNet.Fast RCNN.Faste ...

  7. 基于二阶近似方法的优化算法

    暂时只更新到牛顿法 参考文章 深度学习(花书) 梯度下降法.牛顿法和拟牛顿法 - Eureka的文章 - 知乎 梯度下降法与牛顿法比较 - 王多鱼的文章 - 知乎 [最优化]无约束优化方法-牛顿法 - ...

  8. 通过梯度下降和牛顿法求解一个数的平方根

    梯度下降 梯度下降法(Gradient descent)是一个一阶最优化算法,就是让参数沿着损失函数负梯度的方向更新.迭代的步长,也就是学习率是事先给定的,如果负梯度的绝对值越大,这次更新的幅度也会越 ...

  9. 比Momentum更快:揭开Nesterov Accelerated Gradient的真面目NAG 梯度下降

    d为累计梯度 作为一个调参狗,每天用着深度学习框架提供的各种优化算法如Momentum.AdaDelta.Adam等,却对其中的原理不甚清楚,这样和一条咸鱼有什么分别!(误)但是我又懒得花太多时间去看 ...

最新文章

  1. PCIPCIE MSI中断
  2. tensorflow 就该这么学--2
  3. hdu - 1827 Summer Holiday (强连通)
  4. php一点按钮就下载功能源码,php实现强制文件下载方法的源码参考
  5. ACM-ICPC 2018 南京赛区网络预赛 Lpl and Energy-saving Lamps 线段树
  6. .sln文件和.suo文件的解释
  7. phalcon index.php,除了Phalcon php中的indexAction之外,无法调用indexController的动作
  8. RESTful Web Service - JAX-RS Annotations
  9. unity byte[]的压缩和解压
  10. 国内 OA 办公自动化系统 现状
  11. <EDEM CFD案例01>EDEM2018 + FLUENT19.2 Coupling Interface Compiling
  12. 小米 mini 路由器刷 PandoraBox 系统实现 E 信破解
  13. Nr,GenBank, RefSeq, UniProt 数据库的异同
  14. 学习笔记图片从本地复制到csdn博客出现:外链图片转存失败:解决方法
  15. Android 打开淘宝商品详情
  16. 从电商到软件市场,阿里双十一战火蔓延
  17. 命令行编译工具NMAKE
  18. 坚定信念,追求自己的理想!让那些坏人去死把!!!
  19. 【笑小枫的按步照搬系列】Git从安装到入门操作,一文搞定
  20. 云服务器和域名的购买—华为云

热门文章

  1. 预解释是一种毫无节操的机制
  2. delphi Android 创建缩略图,用Delphi实现缩略图查看
  3. [js] 得到本月、上月、下月的起始、结束日期; 得到今年、去年、明年的开始、结束日期 day.js
  4. 高级育婴师须知的育儿细节
  5. iOS 中的渲染框架:CALayer 是显示的基础,存储 bitmap
  6. 开源世界 捷报频传
  7. 金山快盘使用的一些注意
  8. CSDN/博客园等博客的文章搬家到wordpress网站
  9. twice论文-深度估计-BA_NET
  10. 逆向工程,怎么样和哪里开始?