优化算法之间的关系及各自特点的简单分析

技术优化算法之间的关系及各自特点的简单分析 优化算法之间的关系及各自特点的简单分析1 优化算法
https://tangshusen.me/Dive-into-DL-PyTorch/#/chapter0

浅析优化算法及其各自特点之间的关系

1 优化算法

https://tangshusen . me/Dive-in-DL-py torch/#/chapter 07 _优化/7.4 _动量

1.1 动量法

动量法是梯度下降法的改进。梯度法自变量的迭代方向只取决于自变量的当前位置,会出现问题。

1/(1?Gamma)时间步长采用指数加权移动平均,使自变量的更新方向更加一致,从而降低发散的可能性。

1.2AdaGrad算法

AdaGrad也是梯度下降法的改进。在梯度法中,目标函数自变量的每个元素在同一时间步长使用相同的学习速率进行自迭代,当存在梯度值不同的元素时会出现问题。

AdaGrad通过维护St变量来调整学习速率,从而根据不同的元素应用不同的学习速率。具体函数如下:如果目标函数自变量中某个元素的偏导数总是较大,那么该元素的学习率会迅速下降;相反,如果目标函数自变量中某个元素的偏导数总是很小,那么该元素的学习率就会慢慢下降。

AdaGrad有一个缺点。因为St一直在累加元素的梯度平方,所以自变量中每个元素的学习率在迭代过程中一直在下降(或不变)。因此,当迭代前期学习率快速下降,当前解仍然不好时,AdaGrad算法可能会因为迭代后期学习率太小而难以找到有用的解。

1.3RMSProp算法

RMSProp是对AdaGrad的改进。如上所述,当学习率在迭代前期快速下降,当前解仍然不好时,AdaGrad算法可能会因为迭代后期学习率太小而难以找到有用的解。

RMSProp利用动量法中指数加权移动平均的思想,对AdaGrad中维护的St变量做指数加权移动平均,可以看作是最近的1/(1?)小批量随机梯度时间步长平方项的加权平均值。这样,自变量各元素的学习率在迭代过程中就不会一直降低(或保持不变)。

1.4AdaDelta算法

AdaDelta是RMSProp的改进。RMSProp需要设置超参数学习速率,但AdaDelta不需要。

AdaDelta维护了一个XT变量,它代表了关于自变量更新平方的指数加权移动平均的项,从而替代学习率。

1.5Adam算法

它是Adam RMSProp算法和动量法的结合。

Adam可以看作是1/(1?给出了)时间步长内小批量随机梯度的指数加权移动平均。

2 优化算法之间的关系

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/116872.html

(0)

相关推荐

  • java用swing做计算器(javaswing科学计算器)

    技术Java Swing如何编写一个简单的计算器软件这篇文章主要介绍了Java Swing如何编写一个简单的计算器软件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起

    攻略 2021年12月20日
  • SpringSecurity原理是什么

    技术SpringSecurity原理是什么本篇内容主要讲解“SpringSecurity原理是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringSecurity原

    攻略 2021年10月26日
  • mysql数据库误删除后怎么办

    技术mysql数据库误删除后怎么办小编给大家分享一下mysql数据库误删除后怎么办,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!首先,要确保mysql开启了binlog日志功能在/etc/my.cnf文

    攻略 2021年11月2日
  • 几种常见的Python算法实现分别有哪些

    技术几种常见的Python算法实现分别有哪些这篇文章将为大家详细讲解有关几种常见的Python算法实现分别有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、选择排序

    攻略 2021年10月25日
  • 个人面试小总结之一

    技术个人面试小总结之一 个人面试小总结之一基础
    值传递和引用传递的区别
    值传递:指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,那么我们的实际参数不会改变
    引用传递:指在调

    礼包 2021年12月5日
  • spark中的split方法(sparkclasspath作用)

    技术sparklines的Spread有什么用这篇文章主要讲解了“sparklines的Spread有什么用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“sparklin

    攻略 2021年12月16日