0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

机器学习优化算法中梯度下降,牛顿法和拟牛顿法的优缺点详细介绍

Dbwd_Imgtec 来源:未知 作者:易水寒 2018-08-04 11:40 次阅读

1、梯度下降法

梯度下降法实现简单,当目标函数是凸函数时,梯度下降法的解是全局解。一般情况下,其解不保证是全局最优解,梯度下降法的速度也未必是最快的。

梯度下降法的优化思想:用当前位置负梯度方向作为搜索方向,因为该方向为当前位置的最快下降方向,所以也被称为是”最速下降法“。最速下降法越接近目标值,步长越小,前进越慢。

缺点:

靠近极小值时收敛速度减慢,求解需要很多次的迭代;

直线搜索时可能会产生一些问题;

可能会“之字形”地下降。

2、牛顿法

牛顿法最大的特点就在于它的收敛速度很快。

优点:二阶收敛,收敛速度快;

缺点:

牛顿法是一种迭代算法,每一步都需要求解目标函数的Hessian矩阵的逆矩阵,计算比较复杂。

牛顿法收敛速度为二阶,对于正定二次函数一步迭代即达最优解。

牛顿法是局部收敛的,当初始点选择不当时,往往导致不收敛;

二阶海塞矩阵必须可逆,否则算法进行困难。

关于牛顿法和梯度下降法的效率对比:

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

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

3、拟牛顿法

拟牛顿法的本质思想是改善牛顿法每次需要求解复杂的Hessian矩阵的逆矩阵的缺陷,它使用正定矩阵来近似Hessian矩阵的逆,从而简化了运算的复杂度。

拟牛顿法和最速下降法一样只要求每一步迭代时知道目标函数的梯度。通过测量梯度的变化,构造一个目标函数的模型使之足以产生超线性收敛性。这类方法大大优于最速下降法,尤其对于困难的问题。另外,因为拟牛顿法不需要二阶导数的信息,所以有时比牛顿法更为有效。如今,优化软件中包含了大量的拟牛顿算法用来解决无约束,约束,和大规模的优化问题。

4、小结

机器学习中的无约束优化算法,除了梯度下降以外,还有前面提到的最小二乘法,此外还有牛顿法和拟牛顿法。

梯度下降法和最小二乘法相比,梯度下降法需要选择步长,而最小二乘法不需要。梯度下降法是迭代求解,最小二乘法是计算解析解。如果样本量不算很大,且存在解析解,最小二乘法比起梯度下降法要有优势,计算速度很快。但是如果样本量很大,用最小二乘法由于需要求一个超级大的逆矩阵,这时就很难或者很慢才能求解解析解了,使用迭代的梯度下降法比较有优势。

梯度下降法和牛顿法/拟牛顿法相比,两者都是迭代求解,不过梯度下降法是梯度求解,而牛顿法/拟牛顿法是用二阶的海森矩阵的逆矩阵或伪逆矩阵求解。相对而言,使用牛顿法/拟牛顿法收敛更快。但是每次迭代的时间比梯度下降法长。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 优化算法
    +关注

    关注

    0

    文章

    35

    浏览量

    9672
  • 函数
    +关注

    关注

    3

    文章

    4317

    浏览量

    62487
  • 机器学习
    +关注

    关注

    66

    文章

    8386

    浏览量

    132469

原文标题:机器学习优化算法:梯度下降、牛顿法、拟牛顿法

文章出处:【微信号:Imgtec,微信公众号:Imagination Tech】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    matlab牛顿迭代全解

    非线性方程(或方程组)问题可以描述为求 x 使得f(x) = 0。在求解非线性方程的方法牛顿迭代是求非线性方程(非线性方程组)数值解的一种重要的方法。牛顿是微积分创立者之一,微积
    发表于 03-08 16:22

    机器学习新手必学的三种优化算法牛顿梯度下降法、最速下降法)

    转换的算法复杂度是非常高的(O(n³)),因此牛顿在这种情形下并不常用。梯度下降梯度
    发表于 05-07 08:30

    基于牛顿迭代的FPGA定点小数计算

    倒数运算分为这两个步骤则需要更多的时间开销和空间开销。而采用常规的浮点运算单元(FPU)来求解的话,同样需要很长的计算时间。本文介绍一种基于牛顿迭代(又称Newton-Raphson算法
    发表于 07-18 07:33

    梯度下降法、牛顿牛顿它们的联系与区别是什么

    梯度下降法、牛顿牛顿,浅谈它们的联系与区别
    发表于 05-21 11:06

    约束优化问题大致分为哪几类

    一、算法原理之前我们了解过的算法大部分都是无约束优化问题,其算法有:黄金分割法,牛顿
    发表于 08-17 08:09

    MATLAB多维极值之单纯形算法原理

    一、算法原理1、问题引入在之前讲解过的多维极值的算法(最速下降法、牛顿、共轭
    发表于 08-17 09:24

    高斯-牛顿迭代简介

    高斯牛顿迭代简介,包括高斯牛顿迭代推演及及结论
    发表于 01-08 16:21 0次下载

    采用改进牛顿计算配电网理论线损

    采用改进牛顿计算配电网理论线损
    发表于 01-17 19:47 9次下载

    Ptl00铂热电阻温度计算问题及牛顿与解析的应用特性

    针对Ptl00铂热电阻温度计算问题,详细分析了牛顿与解析的应用特性,在vC 6.O编程环境下对比了两种方法的绝对计算精度以及相对运行速度。结果表明,
    发表于 11-20 15:37 5次下载
    Ptl00铂热电阻温度计算问题及<b class='flag-5'>牛顿</b><b class='flag-5'>法</b>与解析<b class='flag-5'>法</b>的应用特性

    牛顿环形成的原理是什么_牛顿环原理和分析

    本文首先阐述了牛顿环的概念与牛顿环的产生机理,其次介绍了实际生产中牛顿环产生的地方与原因分析及分析了如何测算预防牛顿环产生的设计参数,最后
    的头像 发表于 03-13 11:07 13.4w次阅读
    <b class='flag-5'>牛顿</b>环形成的原理是什么_<b class='flag-5'>牛顿</b>环原理和分析

    基于牛顿的自适应高阶跑分距离推荐模型

    基于牛顿的自适应高阶跑分距离推荐模型
    发表于 06-17 15:34 10次下载

    Python实现所有算法-基本牛顿

    Python实现所有算法-二分 Python实现所有算法-力系统是否静态平衡 Python实现所有算法-力系统是否静态平衡(补篇) Python实现所有
    的头像 发表于 07-13 10:40 1620次阅读

    牛顿-拉夫逊迭代原理及其实现

    直接看数学公式描述如何迭代不直观,先来看动图就很容易理解牛顿迭代为什么叫迭代以及怎样迭代的
    的头像 发表于 04-17 09:04 3137次阅读

    机器学习算法总结 机器学习算法是什么 机器学习算法优缺点

    机器学习算法总结 机器学习算法是什么?机器
    的头像 发表于 08-17 16:11 1850次阅读

    python牛顿迭代

    轴的交点处得到近似解。通过不断迭代切线与x轴的交点,可以逐渐接近方程的解。牛顿迭代在数学和工程领域有广泛的应用,如求根、优化等问题。 牛顿迭代
    的头像 发表于 11-21 15:06 981次阅读