转自http://blog.csdn.net/luoleicn/article/details/6527049

平时经常看到牛顿法怎样怎样,一直不得要领,今天下午查了一下维基百科,写写我的认识,很多地方是直观理解,并没有严谨的证明。在我看来,牛顿法至少有两个应用方向,1、求方程的根,2、最优化。牛顿法涉及到方程求导,下面的讨论均是在连续可微的前提下讨论。

1、求解方程。

并不是所有的方程都有求根公式,或者求根公式很复杂,导致求解困难。利用牛顿法,可以迭代求解。

原理是利用泰勒公式,在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的时候收敛。整个过程如下图:

2、牛顿法用于最优化

在最优化的问题中,线性最优化至少可以使用单纯行法求解,但对于非线性优化问题,牛顿法提供了一种求解的办法。假设任务是优化一个目标函数f,求函数f的极大极小问题,可以转化为求解函数f的导数f'=0的问题,这样求可以把优化问题看成方程求解问题(f'=0)。剩下的问题就和第一部分提到的牛顿法求解很相似了。

这次为了求解f'=0的根,把f(x)的泰勒展开,展开到2阶形式:

这个式子是成立的,当且仅当 Δ无线趋近于0。此时上式等价与:

求解:

得出迭代公式:

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

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

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

高维情况依然可以用牛顿迭代求解,但是问题是Hessian矩阵引入的复杂性,使得牛顿迭代求解的难度大大增加,但是已经有了解决这个问题的办法就是Quasi-Newton methond,不再直接计算hessian矩阵,而是每一步的时候使用梯度向量更新hessian矩阵的近似。

下面是我自己对牛顿方法的理解:

梯度下降法或者梯度上升法是为了找到合适的自变量,使目标函数达到局部最优(局部最小或局部最大,e.g. 极大值)

牛顿法则是为了找到合适的自变量,使目标函数为0

两者之间的关系: 可使梯度下降法的目标函数的一阶导数为牛顿法的目标函数

两者之间的关系:

牛顿法的收敛速度为O(n^2),它的一般形式如下

其中H为hessian矩阵,它的逆就相当于前面公式里面除以的二阶导数

它为n * n的矩阵,n为feature数量

关于牛顿方法的应用,可以查看

Lesson 3 Part 2 logistic regression

中的matlab程序

Lesson 4 Part 1 Newton's method相关推荐

  1. 如何通过牛顿方法解决Logistic回归问题 By 机器之心2017年8月09日 16:30 本文介绍了牛顿方法(Newton's Method),以及如何用它来解决 logistic 回归。log

    如何通过牛顿方法解决Logistic回归问题 By 机器之心2017年8月09日 16:30 本文介绍了牛顿方法(Newton's Method),以及如何用它来解决 logistic 回归.logi ...

  2. Exercise: Logistic Regression and Newton's Method

     Exercise: Logistic Regression and Newton's Method 题目地址: Exercise: Logistic Regression 题目概要:某个高中有8 ...

  3. C++newton raphson method牛顿拉夫森法的实现算法(附完整源码)

    C++newton raphson method牛顿拉夫森法的实现算法 C++newton raphson method牛顿拉夫森法的实现算法完整源码(定义,实现,main函数测试) C++newto ...

  4. Logistic regression Newton’s method

    perceptron learning algorithm: Newton's method: Hessian: When Newton's method is applied to maximize ...

  5. 牛顿法(Newton‘s method)和拟牛顿法(quasi Newton method)

    简述 在看伊恩·古德费洛的深度学习,4.3节基于梯度的优化方法时提到 仅使用梯度信息的优化算法称为 一阶优化算法 ,如梯度下降. 使用Hessian矩阵的优化算法称为 二阶最优化算法 ,如牛顿法. 牛 ...

  6. 牛顿迭代法(Newton’s Method)迭代求根的Python程序

    迭代法的作用 许多复杂的求解问题,都可以转换成方程f(x)=0的求解问题.这一系列的解叫做方程的根.对于非线性方程的求解,在自变量范围内往往有多个解,我们将此变化区域分为多个小的子区间,对每个区间进行 ...

  7. 数值分析——二分法和牛顿迭代(Bisection Method Newton‘s Method)

    本系列整理自博主21年秋季学期本科课程 数值分析I 的编程作业,内容相对基础,参考书: David Kincaid, Ward Cheney - Numerical Analysis Mathemat ...

  8. 机器学习中的数学——牛顿迭代法(Newton‘s Method)

    分类目录:<机器学习中的数学>总目录 相关文章: · 梯度下降法(Gradient Descent) · 随机梯度下降(Stochastic Gradient Descent, SGD) ...

  9. 最优化学习 牛顿法(Newton’s method)

    牛顿法(Newton's method) 牛顿法(Newton's method) 收敛性分析 ∃ η > 0 \exists \eta>0 ∃η>0 图示和例子 优点和缺陷 全部笔 ...

最新文章

  1. 做工程师不懂这七点,难怪你总是混不好
  2. 谷歌DeepMind联合创始人被架空
  3. WPF中的Bitmap与byte
  4. OA项目15:权限管理实体设计及映射
  5. Spring+Hibernate+Struts2整合所需要的Jar包
  6. verilog正弦电压PWM波产生
  7. Windows Embedded Standard 7 剪裁随笔
  8. linux创建管道的函数,Linux下的有名管道(03)---使用函数创建和删除有名管道
  9. LeetCode:安排工作以达到最大收益【455】
  10. openwrt 网关烧写程序
  11. 深化创客教育,用人工智能创造艺术
  12. 20220915使用python3下载ts格式的视频切片文件
  13. 计算机核心论文如何审稿,计算机核心期刊排名及投稿经验(范文).doc
  14. Google账户二次验证取消
  15. pHP 眼病,以下四种眼病会导致眼盲
  16. 荷池堪作镜,盈盈可鉴心。(递推
  17. 罗马数字转阿拉伯数字两种实现
  18. 当excel不够用时,如何利用Access进行数据分析?
  19. 计算机原理-ACC 等14个指令缩写
  20. 对“超图学习”相关优势及适用范围的学习及整理

热门文章

  1. Python+OpenCV:图像快速角点检测算法(FAST Algorithm for Corner Detection)
  2. C++ static、const和static const类型成员变量声明及其初始化
  3. 图像处理系统概述(白皮书)
  4. 这是一台家庭计算机重启无效,我买了一台二手计算机,配置还可以,但有时会自动重启机器,这是为什? 爱问知识人...
  5. iOS开发中常见的性能优化技巧
  6. mysql流程函数if之类
  7. Git学习系列之Debian或Ubuntu上安装Git详细步骤(图文详解)
  8. 物联网(IoT)会是广告欺诈的一道后门
  9. 网站前端_EasyUI.基础入门.0002.带你玩转jQuery EasyUI Panel组件 ?
  10. Java的内存机制(转)