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

技术优化算法之间的关系及各自特点的简单分析 优化算法之间的关系及各自特点的简单分析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)

相关推荐

  • 会计科目分类,关于会计科目的分类有哪些

    技术会计科目分类,关于会计科目的分类有哪些会计对象会计科目分类、会计要素和会计科目 徐经长 张广龙/文
    会计对象、会计要素和会计科目的关系,是中级会计实务中的一个重要的理论问题。众所周知,从事会计实务的同志几乎每天都要

    生活 2021年10月20日
  • java ReentrantLock如何通过AQS来实现锁的

    技术java ReentrantLock如何通过AQS来实现锁的这篇文章主要讲解了“java ReentrantLock如何通过AQS来实现锁的”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入

    攻略 2021年11月16日
  • linux 中grep命令依据匹配次数进行查找

    技术linux 中grep命令依据匹配次数进行查找 linux 中grep命令依据匹配次数进行查找1、x\{m\}# 重复字符x,m次,如:'0{5}'匹配包含5个o的行。
    x\{m,\} # 重复字符

    礼包 2021年12月14日
  • 盗窃未遂治安拘留有多少天

    技术盗窃未遂治安拘留有多少天 盗窃未遂治安拘留有多少天盗窃是常见的一种违法犯罪行为,实施盗窃活动时,如果因盗窃者以外的原因造成盗窃者未实际占有财物的,就会构成盗窃未遂,情节较轻的,可以不追究刑事责任,但

    礼包 2021年11月1日
  • jquery trim方法能去除哪些符号

    技术jquery trim方法能去除哪些符号这篇文章主要介绍“jquery trim方法能去除哪些符号”,在日常操作中,相信很多人在jquery trim方法能去除哪些符号问题上存在疑惑,小编查阅了各式资料,整理出简单好

    攻略 2021年11月15日
  • 体育模拟

    技术体育模拟 体育模拟import randomdef printInfo(): print("模拟体育竞技") print("学号后两位:26,曾俊谌")
    def getInputs():

    礼包 2021年11月14日