“牛顿下降法和梯度下降法在机器学习和自适应滤波中的都很重要,本质上是为了寻找极值点的位置。但是收敛的速度不同。 本文中就两种方法来探究一下,哪种收敛方法速度快“


牛顿下降法的递推公式:

xn+1=xn−f′(xn)/f″(xn)

{x}_{n+1}={x}_{n}-f'({x}_{n})/f''({x}_{n})

梯度下降算法的递推公式:

xn+1=xn−μ∗f′(xn)

{x}_{n+1}={x}_{n}-\mu*f'({x}_{n})
<script type="math/tex; mode=display" id="MathJax-Element-3"></script>

解释一

下图是两种方法的图示表示,红色为牛顿下降法,绿色为梯度下降法,从图中直观的感觉是,红色线短,下降速度快。因为牛顿下降法是用二次曲面去拟合当前的局部曲面,而梯度下降法是用平面去拟合当前的局部曲面,一般用二次曲面拟合的更好,所以一般牛顿算法收敛快。

关于以上的说法中,梯度下降法是用平面去拟合当前的局部曲面。梯度 f’(x)的方向是函数变大的方向。这里需要解释一下,对于一维情况而言,梯度方向只有正方向和负方向。至于为什么梯度下降算法就是用平面去拟合了,大多数情况下,没有讲的详细。接下来就聊一下为什么。

首先考虑一下这个公式,这是一阶泰勒展式,其实就是用平面去拟合函数的局部曲面。

f(x+Δx)=f(x)+f′(x)∗Δx

f(x+\Delta x)=f(x)+f'(x)*\Delta x
我们的目的是使得左边的值变小,那是不是应该使得下面的式子变为负值。

f′(x)∗Δx

f'(x)*\Delta x
这样不就会使得左边的式子变小吗。
但是如何使得上式一定为负值,简单的方法就是:

Δx=−f′(x)

\Delta x =-f'(x)
这样上式就变为

f(x+Δx)=f(x)−f′(x)∗f′(x)

f(x+\Delta x)=f(x)-f'(x)*f'(x)
现在满足使得下式变小了

f(x+Δx)

f(x+\Delta x)


但是不要忘了以上所有的一切只有在局部成立,也就是说在小范围才成立,那么下式就有很能太大

Δx=−f′(x)

\Delta x =-f'(x)
所以加个小的修正的因子,上式就变为:

Δx=−μ∗f′(x)

\Delta x =-\mu*f'(x)

最终得到公式:

xn+1=xn−μ∗f′(xn)

{x}_{n+1}={x}_{n}-\mu*f'({x}_{n})

这就是为什么说梯度下降算法是用平面拟合函数的局部曲面。



至于说牛顿下降法是用二次曲面去拟合当前的局部曲面,首先考虑一下下式:

f(x+Δx)=f(x)+f′(x)Δx+1/2∗f″(x)∗Δx2

f(x+\Delta x)=f(x)+f'(x)\Delta x +1/2*f''(x)*{\Delta x}^2

同样我们希望左式最小,那么将左式看成是△x的函数,当取合适的△x值时,左边的式子达到极小值,此时导数为0。因此对上式进行求导数,得到一下公式:

0=f′(x)+f″(x)∗Δx

0=f'(x) +f''(x)*\Delta x
此时可得到公式:

xn+1=xn−f′(xn)/f″(xn)

{x}_{n+1}={x}_{n}-f'({x}_{n})/f''({x}_{n})

所以说牛顿下降法是用二次曲面来拟合函数的局部曲面。


综上而言,牛顿下降法利用了函数的更多的信息,能够更好的拟合局部曲面,所以收敛的速度也会加快。

解释二

关于梯度下降算法,其中最重要的就是要确定步长μ,它的值严重的影响了梯度下降算法的表现。

接下来考虑如下公式:

f′(x+Δx)=f′(x)+f″(x)∗Δx

f'(x+\Delta x)=f'(x)+f''(x)*\Delta x

Δx=−μ∗f′(x)

\Delta x =-\mu*f'(x)

结合两个式子,得到:

f′(x+Δx)=f′(x)−μ∗f″(x)∗f′(x)

f'(x+\Delta x)=f'(x)-\mu*f''(x)*f'(x)
令左边的式子为0,得到:

μ=1/f″(x)

\mu=1/f''(x)

由此可见牛顿下降法是梯度下降法的最优情况,因此牛顿下降法的收敛的速度必然更快。

牛顿下降法和梯度下降法(最速下降法)的速度的比较相关推荐

  1. TensorFlow基础11-(小批量梯度下降法和梯度下降法的优化)

    记录TensorFlow听课笔记 文章目录 记录TensorFlow听课笔记 一,梯度下降法:求解函数极值问题 二,梯度下降法的优化 多层神经网络--非线性分类问题 损失函数不是凸函数,很难计算解析解 ...

  2. 最小二乘法、迭代优化、坐标轴下降法(Coordinate Descent, CD)、坐标下降和梯度下降对比、梯度下降法/最速下降法

    最小二乘法.迭代优化.坐标轴下降法(Coordinate Descent, CD).坐标下降和梯度下降对比.梯度下降法/最速下降法 目录

  3. 什么是牛顿法(Newton methods)?什么是拟牛顿法(Quasi Newton methods)?牛顿法和梯度下降法的区别是什么?

    什么是牛顿法(Newton methods)?什么是拟牛顿法(Quasi Newton methods)?牛顿法和梯度下降法的区别是什么? 牛顿法的最初提出是用来求解方程的根的.对于最优化问题,其极值 ...

  4. 最小二乘法和梯度下降法有哪些区别?

    为什么要比较这两种方法呢?很多人可能不知道,我先简单的介绍一下 机器学习有两种,一种是监督学习,另一种是非监督学习.监督学习就是我告诉计算机你把班上同学分个类,分类标准是按照性别,男生和女生:非监督分 ...

  5. 线性回归中的最小二乘法和梯度下降法比较

    为什么要比较这两种方法呢?很多人可能不知道,我先简单的介绍一下 机器学习有两种,一种是监督学习,另一种是非监督学习.监督学习就是我告诉计算机你把班上同学分个类,分类标准是按照性别,男生和女生:非监督分 ...

  6. 线性回归介绍及分别使用最小二乘法和梯度下降法对线性回归C++实现

    回归:在这类任务中,计算机程序需要对给定输入预测数值.为了解决这个任务,学习算法需要输出函数f:Rn→R.除了返回结果的形式不一样外,这类问题和分类问题是很像的.这类任务的一个示例是预测投保人的索赔金 ...

  7. 梯度下降法和随机梯度下降,批量梯度下降法,小批量梯度下降(SGD,MGD,BMGD)

    梯度下降法 其有着三种不同的形式: 批量梯度下降(Batch Gradient Descent). 随机梯度下降(Stochastic Gradient Descent) 以及小批量梯度下降(Mini ...

  8. 梯度下降 最小二乘法 matlab,最小二乘法和梯度下降法的理解

    最小二乘法 在线性回归中,听的最多的应该算是最小二乘法了.最小二乘法在具体实现过程中保留核心思想的同时,会在算法上进行不同程度的改进,因此,最小二乘法有很多演变体,例如:递推最小二乘法,加权最小二乘法 ...

  9. 线性回归最小二乘法和梯度下降法-详细

    原文: https://blog.csdn.net/y990041769/article/details/69567838 问题描述 首先我们定义问题,线性回归要解决的问题就是根据给出的数据学习出一个 ...

最新文章

  1. linux 执行程序 注销,Linux登录登出的过程 | Soo Smart!
  2. 激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解
  3. MiBioGen联盟倡议:综合分析人类基因组与菌群关系研究
  4. 缇 、 像素 、 厘米
  5. CentOS 6.5 源码安装 mysql 5.6
  6. 朋友,别告诉我你懂分布式事务!
  7. 【转】通过第三方工具体验Microsoft Graph
  8. 计算机网络实验报告校园网,校园网规划与设计实验报告.docx
  9. 自动驾驶:蛇形曲线跟踪(Stanley Model)
  10. BGP双线的真真假假
  11. python爬取热门新闻每日排行_用python查看百度搜索中今日热点事件排行榜
  12. ubuntu系统下hbase数据库的安装和使用,hbase配置文件详解
  13. led投屏软件_手机投屏竖屏显示器怎么全屏
  14. 拳皇重生服务器维护,《拳皇97 OL》7月7日更新维护公告
  15. 互联网周刊_11年第15期(115网盘下载)
  16. ff14服务器建信号,《FF14》服务器人口平均化公告 陆行鸟区关闭角色创建
  17. 百度AI实现图片转文字-python
  18. 猜数字游戏(C语言)
  19. CAD绘图设计中怎样删除CAD图层?怎样清理CAD图层文件?
  20. oracle 建分区索引_Oracle的分区表和Local索引创建与维护

热门文章

  1. php开发环境搭建和基础入门
  2. Precision,Recall,F1score,Accuracy的理解
  3. define函数的用法
  4. VMware虚拟机安装Linux教程
  5. 2023年电工杯数学建模AB题思路分析
  6. 幸福工厂超级计算机有什么用,幸福工厂全替换配方简评
  7. Paddle 点灯人 之 Tensor
  8. 电子印章结构以及规范讲解
  9. 在apache和php安装之后进行连接配置,
  10. 足球比赛中的数据科学