关注微信公众号【Microstrong】,我现在研究方向是机器学习、深度学习,分享我在学习过程中的读书笔记!一起来学习,一起来交流,一起来进步吧!

本文同步更新在我的微信公众号里,地址:https://mp.weixin.qq.com/s?__biz=MzI5NDMzMjY1MA==&mid=2247484083&idx=1&sn=29d8e300fbfbd4daf2df4596fd05462d&chksm=ec653336db12ba209c1de6eab9d4101c90fec0ed9cd1bc80161852631ad1f9d820863c804cee#rd

目录:

  1. 简介牛顿迭代法

  2. 牛顿迭代法公式

  3. 牛顿迭代法的收敛性

  4. 牛顿法的改进

  5. 牛顿法和梯度下降法的区别

一、简介牛顿法

迭代法也称为辗转法,是一种不断用变量的旧值递推新值的过程,跟迭代法相对应的是直接法,即一次性解决问题。但多数方程不存在求根公式,因此求解根非常困难,甚至不可能,从而寻找方程的近似根就显得特别重要。

迭代算法是用计算机解决问题的一种基本方法。它利用计算机运算速度快、适合做重复性操作的特点,让计算机对一组指令或一定步骤进行重复执行,在每次执行这组指令或这些步骤时,都从变量的原值推出它的一个新值。

利用迭代算法解决问题,需要做好以下3方面的工作:

  1. 确定迭代变量。在可以用迭代算法解决的问题中,至少存在一个直接或间接地不断由旧值递推出新值的变量,这个变量就是迭代变量。

  2. 建立迭代关系式。所谓迭代关系式,是指如何从变量的前一个值推出下一个值的公式或关系。迭代关系式的建立是解决迭代问题的关键,通常可以使用递推或倒推的方法来完成。

  3. 对迭代过程进行控制。在什么时候结束迭代过程?这是编写迭代程序必须考虑的问题。不能让迭代过程无休止地重复下去。迭代过程的控制通常可以分为两种情况:(一)所需的迭代次数是个确定的值,可以计算出来。(二)所需的迭代次数无法确定,需要程序员进步一分析出用来结束迭代过程结束的条件。

牛顿迭代法(Newton’smethod)又称为牛顿-拉夫逊(拉夫森)方法。它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法。多数方程不存在求根公式,因此求精确根非常困难,甚至不可能,从而寻找方程的近似根就显得特别重要。该方法使用函数f(x)的泰勒级数的前面几项来寻找方程f(x)=0的根。牛顿迭代法是求方程根的重要方法之一,其最大优点是在方程f(x)=0的单根附近具有平方收敛,而且该法还可以用来求方程的重根、复根。此时一定线性收敛,但是可通过一些方法变成超线性收敛。另外该方法广泛用于计算机编程中。

二、牛顿迭代法公式

用迭代法解非线性方程时,如何构造迭代函数是非常重要的,那么怎样构造的迭代函数才能保证迭代法收敛呢?牛顿迭代法就是常用的方法之一,其迭代格式的来源或者理解方式大概有两种方式:

1.设,对在点作泰勒展开:

略去二次项,得到的线性近似式:。由此得到方程0的近似根(假定0),,即可构造出迭代格式(假定0):。这就是牛顿迭代公式,若得到的序列{}收敛于α,则α就是非线性方程的根。

2.牛顿迭代法也称为牛顿切线法,设ζ是=0的根,选取作为ζ的初始近似值,过点做曲线的切线L,L的方程为,求出L与x轴交点的横坐标,称x1为ζ的一次近似值。过点做曲线的切线,并求该切线与x轴交点的横坐标,称为ζ的二次近似值。重复以上过程,得ζ的近似值序列,其中称为ζ的次近似值,上式称为牛顿迭代公式,如图1左图所示,这就是牛顿切线法的几何解释。实际上,牛顿迭代法也可以从几何意义上推出。利用牛顿迭代公式,由得到,从图1右图上看,就是过点作函数的切线,切线轴的交点就是,所以有,整理后也能得出牛顿迭代公式:

三、牛顿迭代法的收敛性

这里我就不在证明了,直接给出结论:

牛顿迭代法具有较高的收敛速度,它的收敛阶数p=2;而牛顿迭代法的局部收敛性较强,只有初值充分地接近ζ,才能确保迭代序列的收敛性。如果是连续的,并且待求的零点是孤立的,那么在零点周围存在一个区域,只要初始值位于这个邻近区域内,那么牛顿法必定收敛。并且,如果0, 那么牛顿法将具有平方收敛的性能. 粗略的说,这意味着每迭代一次,牛顿法结果的有效数字将增加一倍。

四、牛顿法的改进

用牛顿法解方程,虽然在单根附近具有较快的收敛速度,但它有个明显的缺点,就是每次都要计算导数,当比较复杂时,计算可能很困难。

从计算导数困难方面,改进的算法有:简化牛顿法。

为了避免频繁地计算导数值,可将它取为固定值,比如在牛顿迭代公式中用,即在迭代过程中始终保持分母不变,则有简化牛顿迭代公式(或固定斜率切线法):

从初值选择方面,改进的算法有:牛顿下山法。

由牛顿法的收敛性定理知,牛顿法对初始值的选取要求是很高的。一般地说,牛顿法只有局部收敛性。当初始值取得离根太远时,迭代将不收敛,而一旦初始值进入收敛域内,牛顿法就有平方收敛的速度,为了扬长避短,扩大初始值选取的范围。这就是牛顿下山法的思想。

这里,我就不在展开来讲解了。需要了解详细过程的同学,请自行学习。

五、牛顿法与梯度下降法的区别

1. 牛顿法优点:最优化问题中,牛顿法比梯度下降法求解需要的迭代次数更少。

原因:牛顿法是二阶收敛,梯度下降是一阶收敛,所以牛顿法就更快。如果更通俗地说的话,比如你想找一条最短的路径走到一个盆地的最底部,梯度下降法每次只从你当前所处位置选一个坡度最大的方向走一步,牛顿法在选择方向时,不仅会考虑坡度是否够大,还会考虑你走了一步之后,坡度是否会变得更大。所以牛顿法比梯度下降法看得更远一点,能更快地走到最底部。根据wiki上的解释如图2所示,从几何上说,牛顿法就是用一个二次曲面去拟合你当前所处位置的局部曲面,而梯度下降法是用一个平面去拟合当前的局部曲面,通常情况下,二次曲面的拟合会比平面更好,所以牛顿法选择的下降路径会更符合真实的最优下降路径。红色的牛顿法的迭代路径,绿色的是梯度下降法的迭代路径。

图2:牛顿法与梯度下降法的区别

2.牛顿法缺点:

(1) 对目标函数有严格的要求,必须有连续的一、二阶偏导数,海森矩阵必须是正定的。

(2) 计算量大,除计算梯度外,还需要计算二阶偏导矩阵及其逆矩阵。

Reference:

最优化问题中,牛顿法为什么比梯度下降法求解需要的迭代次数更少? - 大饼土博的回答 - 知乎 https://www.zhihu.com/question/19723347/answer/14636244

最优化理论与方法-牛顿迭代法相关推荐

  1. 线性和非线性最优化理论、方法及应用研究的发展状况.

    关注. 最优化的研究包含理论.方法和应用.最优化理论主要研究问题解的最优性条件.灵敏度分析.解的存在性和一般复杂性等.而最优化方法研究包括构造新算法.证明解的收敛性.算法的比较和复杂性等.最优化的应用 ...

  2. 最优化理论与方法(part11)--约束优化问题

    学习笔记,仅供参考,有错必纠 文章目录 最优化理论与方法 约束优化问题 定义 8.1.1(可行点与可行域) 全局和局部极小值点 积极与非积极 最优化理论与方法 约束优化问题 定义 8.1.1(可行点与 ...

  3. 最优化理论与方法(part8)--凸集的分离和支撑

    学习笔记,仅供参考,有错必纠 文章目录 最优化理论与方法 凸集的分离和支撑 定理 1.3.17(凸集外一点与闭凸集的极小距离) 定理 1.3.18 定理 1.3.19 定义 1.3.20(支撑超平面) ...

  4. 最优化理论与方法(part5)--函数和微分

    学习笔记,仅供参考,有错必纠 文章目录 最优化理论与方法 函数和微分 连续可微和Hesse矩阵 d d d的方向导数 d d

  5. 最优化理论与方法(part4)--秩一校正

    学习笔记,仅供参考,有错必纠 文章目录 最优化理论与方法 秩一校正 定理 1.2.6(Sherman-Morrison 定理) 定理 1.2.7(Sherman-Morrison-Woodburg 定 ...

  6. 最优化理论与方法(part3)--矩阵的Rayleigh商

    学习笔记,仅供参考,有错必纠 文章目录 最优化理论与方法 矩阵的Rayleigh商 定义 1.2.4 定理 1.2.5 最优化理论与方法 矩阵的Rayleigh商 定义 1.2.4 备注: C C C ...

  7. 最优化理论与方法(part2)--矩阵求逆和广义逆

    学习笔记,仅供参考,有错必纠 文章目录 最优化理论与方法 矩阵求逆和广义逆 定理 1.2.3 (von Neumann引理) 定理 1.2.3' 子空间 最优化理论与方法 矩阵求逆和广义逆 定理 1. ...

  8. 最优化理论与方法学习笔记

    最优化理论与方法 参考学习资源:上海财经大学崔老师B站讲解视频 以下是个人学习笔记,并不具有很强的参考性,具体学习书籍可参考<最优化理论与方法-袁亚湘> 大致分类: 1.无约束优化/约束优 ...

  9. 最优化理论与方法2--算法篇

    本部分记录一些最优化理论中的常见算法. 1. 无约束规划 研究无约束优化问题,对研究各类优化问题都有重要意义.因为可以有多种方法将各类等式或者不等式约束的优化问题转换为无约束优化问题,比如利用KKT条 ...

最新文章

  1. 语义分割 DeepLabv3--Rethinking Atrous Convolution for Semantic Image Segmentation
  2. Zookeeper分布式一致性原理(十):Zookeeper在大型分布式系统的应用
  3. Android Studio(IDEA)太占系统盘?帮你移动下
  4. Ubuntu12.04 Jdk1.7 Tomct7.0部署配置
  5. 字符内存转成字符串_字符串内存内部
  6. Big Sur更新下载过慢?亲测!满速下载macOS原版系统
  7. 聚类算法评价指标学习笔记
  8. javafx将数据库内容输出到tableview表格
  9. 浪潮服务器自带备份软件,备份软件DPS
  10. 如何在Elastic cloud上选择合适的Elasticsearch service
  11. 农作物病虫害识别技术的发展综述
  12. 全市场等权中位数_市场指数估值周报20200406
  13. wireshark抓包并复原图像
  14. 什么是 Google Play服务
  15. java小学生加减法_用java代码写随机加法算术题。 这些知识你不一定知道
  16. 物联网产品的发展简介(二)【产品篇02】
  17. 解读机械图样——剖视图
  18. 【Axure教程】中继器版穿梭表格
  19. 本地html播放器代码,HTML播放器代码集
  20. java判断文件夹中的图片是否重复

热门文章

  1. A2B车载音频总线-车机音频麦克风阵列测试
  2. IMPERVA-WAF 更换网卡
  3. css选择器制作一个网页,CSS选择器和做网页思路
  4. 从一个故事开始讲递归
  5. knex 找不到mysql_node knex mysql ER_NOT_SUPPORTED_AUTH_MODE
  6. 关于22年应届生就业难发表一些自己的想法
  7. 2019年Q3股票行情:依旧大喜大悲
  8. 推特(twitter)翻译
  9. 工业机器人常用传感器解析
  10. c语言数字1 9转换英文,C语言提问:将一个月份数字转换成月份的英文名称