【TensorFlow】优化方法optimizer总结(SGD,Adagrad,Adadelta,Adam,Adamax,Nadam)解析(十三)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/brucewong0516/article/details/78838124

本文仅对一些常见的优化方法进行直观介绍和简单的比较,主要是一阶的梯度法,包括SGD, Momentum, Nesterov Momentum, AdaGrad, RMSProp, Adam。 其中SGD,Momentum,Nesterov Momentum是手动指定学习速率的,而后面的AdaGrad, RMSProp, Adam,就能够自动调节学习速率。

1、SGD

SGD全名 stochastic gradient descent, 即随机梯度下降。不过这里的SGD其实跟MBGD(minibatch gradient descent)是一个意思,现在的SGD一般都指mini-batch gradient descent,即随机抽取一批样本,以此为根据来更新参数。

具体实践:

需要:学习速率 ϵ, 初始参数 θ
每步迭代过程:

  1. 从训练集中的随机抽取一批容量为m的样本{x1,…,xm},以及相关的输出yi
  2. 计算梯度和误差并更新参数: 这里写图片描述

优点:

  1. 训练速度快,对于很大的数据集,也能够以较快的速度收敛.SGD应用于凸问题时,k次迭代后泛化误差的数量级是O(1/sqrt(k)),强凸下是O(1/k)。
  2. 可能由于SGD在学习中增加了噪声,有正则化的效果

缺点: 由于是抽取,因此不可避免的,得到的梯度肯定有误差.因此学习速率需要逐渐减小.否则模型无法收敛 ,因为误差,所以每一次迭代的梯度受抽样的影响比较大,也就是说梯度含有比较大的噪声,不能很好的反映真实梯度.

ϵ学习率如何衰减以保证SGD收敛,在实践中,一般是进行线性衰减: 这里写图片描述

其中ϵ0是初始学习率, ϵτ是最后一次迭代的学习率. τ自然代表迭代次数.一般来说,ϵτ 设为ϵ0的1%比较合适.而τ一般设为让训练集中的每个数据都输入模型上百次比较合适.那么初始学习率ϵ0怎么设置呢?书上说,你先用固定的学习速率迭代100次,找出效果最好的学习速率,然后ϵ0设为比它大一点就可以了.

2、Momentum

SGD方法的一个缺点是,其更新方向完全依赖于当前的batch,因而其更新十分不稳定,每次迭代计算的梯度含有比较大的噪音。解决这一问题的一个简单的做法便是引入momentum。

momentum即动量,它模拟的是物体运动时的惯性,即更新的时候在一定程度上保留之前更新的方向,同时利用当前batch的梯度微调最终的更新方向。这样一来,可以在一定程度上增加稳定性,从而学习地更快,并且还有一定摆脱局部最优的能力。

具体实现:

需要:学习速率 ϵ, 初始参数 θ, 初始速率v, 动量衰减参数α

每步迭代过程:

  1. 从训练集中的随机抽取一批容量为m的样本{x1,…,xm},以及相关的输出yi
  2. 计算梯度和误差,并更新速度v和参数θ: 这里写图片描述

其中参数α表示每回合速率v的衰减程度.如果每次迭代得到的梯度都是g,那么最后得到的v的稳定值为:这里写图片描述

也就是说,Momentum最好情况下能够将学习速率加速1/(1−α)倍.一般α的取值有0.5,0.9,0.99这几种,分别表示最大速度2倍,10倍,100倍于SGD的算法。.当然,也可以让α的值随着时间而变化,一开始小点,后来再加大.不过这样一来,又会引进新的参数.

特点:
- 前后梯度方向一致时,能够加速学习
- 前后梯度方向不一致时,能够抑制震荡

3、Nesterov Momentum

这是对传统momentum方法的一项改进,由Ilya Sutskever(2012 unpublished)在Nesterov工作的启发下提出的。

具体实现:

需要:学习速率 ϵ, 初始参数 θ, 初始速率v, 动量衰减参数α
每步迭代过程:

  1. 从训练集中的随机抽取一批容量为m的样本{x1,…,xm},以及相关的输出yi
  2. 计算梯度和误差,并更新速度v和参数θ: 这里写图片描述
    注意在估算梯度g的时候,参数变成了θ+αv而不是之前的θ,与Momentum唯一区别就是,计算梯度的不同,Nesterov先用当前的速度v更新一遍参数,在用更新的临时参数计算梯度。

其基本思路如下图(转自Hinton的coursera公开课lecture 6a):
这里写图片描述

4、AdaGrad

AdaGrad可以自动变更学习速率,只是需要设定一个全局的学习速率ϵ,但是这并非是实际学习速率,实际的速率是与以往参数的模之和的开方成反比的.也许说起来有点绕口,不过用公式来表示就直白的多:
这里写图片描述
其中δ是一个很小的常亮,大概在10^−7,防止出现除以0的情况.

具体实现:
需要:全局学习速率 ϵ, 初始参数 θ, 数值稳定量δ
中间变量: 梯度累计量r(初始化为0)

每步迭代过程:

  1. 从训练集中的随机抽取一批容量为m的样本{x1,…,xm},以及相关的输出yi
  2. 计算梯度和误差,更新r,再根据r和梯度计算参数更新量:
    这里写图片描述

优点: 能够实现学习率的自动更改。如果这次梯度大,那么学习速率衰减的就快一些;如果这次梯度小,那么学习速率衰减的慢一些。对于每个参数,随着其更新的总距离增多,其学习速率也随之变慢。

缺点: 任然要设置一个变量ϵ ,经验表明,在普通算法中也许效果不错,但在深度学习中,深度过深时会造成训练提前结束。

5、RMSProp

RMSProp通过引入一个衰减系数,让r每回合都衰减一定比例,类似于Momentum中的做法,是对AdaGrad算法的改进。

具体实现:
需要:全局学习速率 ϵ, 初始参数 θ, 数值稳定量δ,衰减速率ρ
中间变量: 梯度累计量r(初始化为0)

每步迭代过程:

  1. 从训练集中的随机抽取一批容量为m的样本{x1,…,xm},以及相关的输出yi
  2. 计算梯度和误差,更新r,再根据r和梯度计算参数更新量:
    这里写图片描述

优点:
- 相比于AdaGrad,这种方法很好的解决了深度学习中过早结束的问题
- 适合处理非平稳目标,对于RNN效果很好

缺点:
- 又引入了新的超参,衰减系数ρ
- 依然依赖于全局学习速率

6、RMSProp with Nesterov Momentum

此方法是将RMSProp和Nesterov Momentum结合起来

具体实现:
需要:全局学习速率 ϵ, 初始参数 θ, 初始速率v,动量衰减系数α, 梯度累计量衰减速率ρ
中间变量: 梯度累计量r(初始化为0)

每步迭代过程:

  1. 从训练集中的随机抽取一批容量为m的样本{x1,…,xm},以及相关的输出yi
  2. 计算梯度和误差,更新r,再根据r和梯度计算参数更新量 :
    这里写图片描述

7、Adam

Adam(Adaptive Moment Estimation)本质上是带有动量项的RMSprop,它利用梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率。Adam的优点主要在于经过偏置校正后,每一次迭代学习率都有个确定范围,使得参数比较平稳。

具体实现:
需要:步进值 ϵ, 初始参数 θ, 数值稳定量δ,一阶动量衰减系数ρ1, 二阶动量衰减系数ρ2
其中几个取值一般为:δ=10^−8,ρ1=0.9,ρ2=0.999
中间变量:一阶动量s,二阶动量r,都初始化为0

每步迭代过程:

  1. 从训练集中的随机抽取一批容量为m的样本{x1,…,xm},以及相关的输出yi
  2. 计算梯度和误差,更新r和s,再根据r和s以及梯度计算参数更新量 :
    这里写图片描述

8、各个方法的比较

Karpathy做了一个这几个方法在MNIST上性能的比较,其结论是:

adagrad相比于sgd和momentum更加稳定,即不需要怎么调参。而精调的sgd和momentum系列方法无论是收敛速度还是precision都比adagrad要好一些。在精调参数下,一般Nesterov优于momentum优于sgd。而adagrad一方面不用怎么调参,另一方面其性能稳定优于其他方法。

Loss vs. Number of examples seen
这里写图片描述

Testing Accuracy vs. Number of examples seen
这里写图片描述

Training Accuracy vs. Number of examples seen
这里写图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/481048.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【LeetCode】3月29日打卡-Day14-BFS

题1 地图分析 描述 你现在手里有一份大小为 N x N 的『地图』(网格) grid,上面的每个『区域』(单元格)都用 0 和 1 标记好了。其中 0 代表海洋,1 代表陆地,你知道距离陆地区域最远的海洋区域是…

技术论坛 | CCF YOCSEF上海即将在 CNCC 举办“知识图谱遇见社交媒体”专题论坛

中国计算机学会青年计算机科技论坛 CCF YoungComputer Scientists & Engineers Forum CCF YOCSEF上海 CNCC2017大会技术论坛 主题: 知识图谱遇见社交媒体 时间:2017年10月26日(星期四)13:30~17:30 地点:福州海峡国际会展中心会…

你确定自己不是那只猫吗

成为猫与养猫小的时候,小夕曾被告知兔子可爱是因为喜欢吃萝卜,导致小夕吃了好多萝北。上学后,会哄着小夕学习的就是好老师,强行让小夕背书的肯定是坏老师。找工作时,HR会给小夕画大饼,让小夕觉得自己即将去…

一文搞懂HMM(隐马尔可夫模型)-Viterbi algorithm

***一文搞懂HMM(隐马尔可夫模型)***简单来说,熵是表示物质系统状态的一种度量,用它老表征系统的无序程度。熵越大,系统越无序,意味着系统结构和运动的不确定和无规则;反之,&#xff…

课程 |《知识图谱》第一期

课程详情 课程名称: 《知识图谱》第一期 报名方式: 点击文末“阅读原文”,即可享受参团优惠报名哦! 主讲老师: 王昊奋 著名知识图谱专家 博士毕业于上海交通大学,CCF术语专委会执委,中文信息学会语言与…

新闻 | 聚焦技术领域现状与发展阿里巴巴知识图谱专场亮相云栖大会 阿里知识图谱亮相云栖大会产学深度交流推进业务创新

14日,阿里巴巴知识图谱正式亮相云栖大会,本次活动邀请到诸多阿里技术专家与学界领军人物参会,一同探讨知识图谱领域的现状与远景,推动产业界与学术界深度交流。 知识图谱将信息表达成更接近人类认知世界的形式,提供了帮…

100篇论文串讲对话系统前世今生

不可以不可以,都在忙着过年呢,小夕怎么能推这种文章呢╮(╯▽╰)╭话说,大年初一你萌怎么能戳进来这种文章!快,赶紧承认你是卖萌屋的真爱粉( ̄∇ ̄)~小屋今天不卖干货,只送…

郑杰 | 如何拿回我们自己的医疗数据?

本文转载自公众号造就,作者郑杰,树兰医疗总裁,OMAHA 开放医疗与健康联盟发起人。 造就 大家好,我是郑杰,来自于杭州。我出生于一个医生世家,也在医院边上长大,但大学里我读的是计算机专业&#…

后BERT时代:15个预训练模型对比分析与关键点探究

前言在小夕之前写过的《NLP的游戏规则从此改写?从word2vec, ELMo到BERT》一文中,介绍了从word2vec到ELMo再到BERT的发展路径。而在BERT出现之后的这大半年的时间里,模型预训练的方法又被Google、Facebook、微软、百度、OpenAI等极少数几个玩得…

技术论坛 | 10月22日在微软:“行业知识图谱+ ”论坛通知

大数据创新学习中心 《国务院新一代人工智能发展规划》的“跨媒体分析推理技术”强调“重点突破跨媒体统一表征、关联理解与知识挖掘、知识图谱构建与学习、知识演化与推理、智能描述与生成等技术”,为进一步了解知识图谱技术的应用场景,2017年10月22日在…

从贪心选择到探索决策:基于强化学习的多样性排序

本文主要介绍发表在SIGIR2018上的论文From Greedy Selection to Exploratory Decision-Making: Diverse Ranking with Policy-Value Networks​www.bigdatalab.ac.cn这篇论文利用强化学习来解决多样性排序问题,整体思路和AlphaGo类似。Motivation在信息检索领域一个…

对话系统聊天机器人的设计艺术(上)

前言关于本文的阅读方式:这不是一篇学术综述,也不是单纯的科普文,而是试图从目标出发来渐进式的思考对话系统的设计,顺便科普。因此本文不适合跳读,也不适合5分钟式浏览,而是适合在夜深人静的时候一个人...…

鲍捷 | 知识表示——面向实战的介绍

本文转载自文因互联 2016 年 6 月份组织的第一期北京知识图谱学习小组 Wiki。 知识表示(Knowledge Representation,KR,也译为知识表现)是如何将结构化数据组织,以便于机器处理和人的理解的方法。从结构推导出新的结构&…

]搜索引擎的文档相关性计算和检索模型(BM25/TF-IDF)

搜索引擎的检索模型-查询与文档的相关度计算1. 检索模型概述搜索结果排序时搜索引擎最核心的部分,很大程度度上决定了搜索引擎的质量好坏及用户满意度。实际搜索结果排序的因子有很多,但最主要的两个因素是用户查询和网页内容的相关度,以及网…

对话系统(任务型、检索式、生成式对话论文与工具串讲)

Motivation 对话是一个很大的概念,有非常非常多的子问题,刚入坑的小伙伴很可能迷失在对话的一小块区域里无法自拔,本文就是为解决这一类问题的。希望读者在看完本文后,可以理清楚对话的每个概念为什么而存在,以及它在整…

综述 | 知识图谱向量化表示

本文作者:窦洪健,2016级研究生,目前研究方向为推荐系统、文本生成,来自中国人民大学大数据管理与分析方法研究北京市重点实验室。 本文收录于RUC AI Box专栏,为该专栏特供稿件(https://zhuanlan.zhihu.com/…

强化学习扫盲贴:从Q-learning到DQN

本文转载自知乎专栏「机器学习笔记」,原文作者「余帅」,链接https://zhuanlan.zhihu.com/p/358829371 本文学习目标1. 复习Q-Learning;2. 理解什么是值函数近似(Function Approximation);3. 理解什么是DQN&…

肖仰华 | 基于知识图谱的可解释人工智能:机遇与挑战

本文转载自公众号知识工场,整理自 2017 年 10 月 13 日肖仰华教授在 CIIS2017 中国智能产业高峰论坛上所做的报告。 肖仰华:很高兴有机会跟大家一起分享《基于知识图谱的可解释人工智能:机遇与挑战》。 刚才刘总的报告中提到了机器和人类将来…

对话系统的设计艺术(完结)

Motivation对话是一个很大的概念,有非常非常多的子问题,刚入坑的小伙伴很可能迷失在对话的一小块区域里无法自拔,本文就是为解决这一类问题的。希望读者在看完本文后,可以理清楚对话的每个概念为什么而存在,以及它在整…

2018届校招面经精选

https://www.zhihu.com/question/23259302 牛客网​已认证的官方帐号819 人赞同了该回答最好的办法就是看看别人是怎么准备的,通过别人的面经来反思自己如何准备。针对应届生校招面试 “机器学习” 相关岗位的情况,牛妹为大家整理了一批面经&#xff0c…