牛顿下降法和梯度下降法(最速下降法)的速度的比较
“牛顿下降法和梯度下降法在机器学习和自适应滤波中的都很重要,本质上是为了寻找极值点的位置。但是收敛的速度不同。 本文中就两种方法来探究一下,哪种收敛方法速度快“
牛顿下降法的递推公式:
{x}_{n+1}={x}_{n}-f'({x}_{n})/f''({x}_{n})
梯度下降算法的递推公式:
{x}_{n+1}={x}_{n}-\mu*f'({x}_{n})
<script type="math/tex; mode=display" id="MathJax-Element-3"></script>
解释一
下图是两种方法的图示表示,红色为牛顿下降法,绿色为梯度下降法,从图中直观的感觉是,红色线短,下降速度快。因为牛顿下降法是用二次曲面去拟合当前的局部曲面,而梯度下降法是用平面去拟合当前的局部曲面,一般用二次曲面拟合的更好,所以一般牛顿算法收敛快。
关于以上的说法中,梯度下降法是用平面去拟合当前的局部曲面。梯度 f’(x)的方向是函数变大的方向。这里需要解释一下,对于一维情况而言,梯度方向只有正方向和负方向。至于为什么梯度下降算法就是用平面去拟合了,大多数情况下,没有讲的详细。接下来就聊一下为什么。
首先考虑一下这个公式,这是一阶泰勒展式,其实就是用平面去拟合函数的局部曲面。
f(x+\Delta x)=f(x)+f'(x)*\Delta x
我们的目的是使得左边的值变小,那是不是应该使得下面的式子变为负值。
f'(x)*\Delta x
这样不就会使得左边的式子变小吗。
但是如何使得上式一定为负值,简单的方法就是:
\Delta x =-f'(x)
这样上式就变为
f(x+\Delta x)=f(x)-f'(x)*f'(x)
现在满足使得下式变小了
f(x+\Delta x)
但是不要忘了以上所有的一切只有在局部成立,也就是说在小范围才成立,那么下式就有很能太大
\Delta x =-f'(x)
所以加个小的修正的因子,上式就变为:
\Delta x =-\mu*f'(x)
最终得到公式:
{x}_{n+1}={x}_{n}-\mu*f'({x}_{n})
这就是为什么说梯度下降算法是用平面拟合函数的局部曲面。
至于说牛顿下降法是用二次曲面去拟合当前的局部曲面,首先考虑一下下式:
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)*\Delta x
此时可得到公式:
{x}_{n+1}={x}_{n}-f'({x}_{n})/f''({x}_{n})
所以说牛顿下降法是用二次曲面来拟合函数的局部曲面。
综上而言,牛顿下降法利用了函数的更多的信息,能够更好的拟合局部曲面,所以收敛的速度也会加快。
解释二
关于梯度下降算法,其中最重要的就是要确定步长μ,它的值严重的影响了梯度下降算法的表现。
接下来考虑如下公式:
f'(x+\Delta x)=f'(x)+f''(x)*\Delta x
和
\Delta x =-\mu*f'(x)
结合两个式子,得到:
f'(x+\Delta x)=f'(x)-\mu*f''(x)*f'(x)
令左边的式子为0,得到:
\mu=1/f''(x)
由此可见牛顿下降法是梯度下降法的最优情况,因此牛顿下降法的收敛的速度必然更快。
牛顿下降法和梯度下降法(最速下降法)的速度的比较相关推荐
- TensorFlow基础11-(小批量梯度下降法和梯度下降法的优化)
记录TensorFlow听课笔记 文章目录 记录TensorFlow听课笔记 一,梯度下降法:求解函数极值问题 二,梯度下降法的优化 多层神经网络--非线性分类问题 损失函数不是凸函数,很难计算解析解 ...
- 最小二乘法、迭代优化、坐标轴下降法(Coordinate Descent, CD)、坐标下降和梯度下降对比、梯度下降法/最速下降法
最小二乘法.迭代优化.坐标轴下降法(Coordinate Descent, CD).坐标下降和梯度下降对比.梯度下降法/最速下降法 目录
- 什么是牛顿法(Newton methods)?什么是拟牛顿法(Quasi Newton methods)?牛顿法和梯度下降法的区别是什么?
什么是牛顿法(Newton methods)?什么是拟牛顿法(Quasi Newton methods)?牛顿法和梯度下降法的区别是什么? 牛顿法的最初提出是用来求解方程的根的.对于最优化问题,其极值 ...
- 最小二乘法和梯度下降法有哪些区别?
为什么要比较这两种方法呢?很多人可能不知道,我先简单的介绍一下 机器学习有两种,一种是监督学习,另一种是非监督学习.监督学习就是我告诉计算机你把班上同学分个类,分类标准是按照性别,男生和女生:非监督分 ...
- 线性回归中的最小二乘法和梯度下降法比较
为什么要比较这两种方法呢?很多人可能不知道,我先简单的介绍一下 机器学习有两种,一种是监督学习,另一种是非监督学习.监督学习就是我告诉计算机你把班上同学分个类,分类标准是按照性别,男生和女生:非监督分 ...
- 线性回归介绍及分别使用最小二乘法和梯度下降法对线性回归C++实现
回归:在这类任务中,计算机程序需要对给定输入预测数值.为了解决这个任务,学习算法需要输出函数f:Rn→R.除了返回结果的形式不一样外,这类问题和分类问题是很像的.这类任务的一个示例是预测投保人的索赔金 ...
- 梯度下降法和随机梯度下降,批量梯度下降法,小批量梯度下降(SGD,MGD,BMGD)
梯度下降法 其有着三种不同的形式: 批量梯度下降(Batch Gradient Descent). 随机梯度下降(Stochastic Gradient Descent) 以及小批量梯度下降(Mini ...
- 梯度下降 最小二乘法 matlab,最小二乘法和梯度下降法的理解
最小二乘法 在线性回归中,听的最多的应该算是最小二乘法了.最小二乘法在具体实现过程中保留核心思想的同时,会在算法上进行不同程度的改进,因此,最小二乘法有很多演变体,例如:递推最小二乘法,加权最小二乘法 ...
- 线性回归最小二乘法和梯度下降法-详细
原文: https://blog.csdn.net/y990041769/article/details/69567838 问题描述 首先我们定义问题,线性回归要解决的问题就是根据给出的数据学习出一个 ...
最新文章
- linux 执行程序 注销,Linux登录登出的过程 | Soo Smart!
- 激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解
- MiBioGen联盟倡议:综合分析人类基因组与菌群关系研究
- 缇 、 像素 、 厘米
- CentOS 6.5 源码安装 mysql 5.6
- 朋友,别告诉我你懂分布式事务!
- 【转】通过第三方工具体验Microsoft Graph
- 计算机网络实验报告校园网,校园网规划与设计实验报告.docx
- 自动驾驶:蛇形曲线跟踪(Stanley Model)
- BGP双线的真真假假
- python爬取热门新闻每日排行_用python查看百度搜索中今日热点事件排行榜
- ubuntu系统下hbase数据库的安装和使用,hbase配置文件详解
- led投屏软件_手机投屏竖屏显示器怎么全屏
- 拳皇重生服务器维护,《拳皇97 OL》7月7日更新维护公告
- 互联网周刊_11年第15期(115网盘下载)
- ff14服务器建信号,《FF14》服务器人口平均化公告 陆行鸟区关闭角色创建
- 百度AI实现图片转文字-python
- 猜数字游戏(C语言)
- CAD绘图设计中怎样删除CAD图层?怎样清理CAD图层文件?
- oracle 建分区索引_Oracle的分区表和Local索引创建与维护