深度学习的最优化方法比较.docx

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
深度学习的最优化方法比较 -----最优化理论报告 姓名:陆家双 学号:182201181 梯度下降算法针对凸优化问题原则上是可以收敛到全局最优的,因为此时只有唯一的局 部最优点。而实际上深度学习模型是一个复杂的非线性结构,一般属于非凸问题,这意味着 存在很多局部最优点(鞍点),采用梯度下降算法可能会陷入局部最优,这应该是最头疼的 问题。这点和进化算法如遗传算法很类似,都无法保证收敛到全局最优。可以看到,梯度下 降算法中一个重要的参数是学习速率,适当的学习速率很重要:学习速率过小时收敛速度慢, 而过大时导致训练震荡,而且可能会发散。理想的梯度下降算法要满足两点:收敛速度要快; 能全局收敛。为了这个理想,出现了很多经典梯度下降算法的改进。 SGD 梯度下降算法(Gradient Descent Optimization)是神经网络模型训练最常用的优化 算法。梯度下降算法背后的原理:目标函数J(° )关于参数。的梯度将是目标函数上升 最快的方向,对于最小化优化问题,只需要将参数沿着梯度相反的方向前进一个步长(学 习速率),就可以实现目标函数的下降。参数更新公式如下: "。FV J (°) 0 其中V J (°)是参数的梯度。 ° 根据计算目标函数J (0)采用数据量的大小,梯度下降算法又可以分为批量梯度下降算 法(Batch Gradient Descent),随机梯度下降算法(Stochastic GradientDescent)和小批 量梯度下降算法(Mini-batch Gradient Descent)。 批量梯度下降算法,J(°)是在整个训练集上计算的,如果数据集比较大,可能会面 临内存不足问题,而且其收敛速度一般比较慢。 随机梯度下降算法,J(°)是针对训练集中的一个训练样本计算的,又称为在线学习, 即得到了一个样本,就可以执行一次参数更新。所以其收敛速度会快一些,但是有 可能出现目标函数值震荡现象,因为高频率的参数更新导致了高方差。 小批量梯度下降算法,是折中方案,选取训练集中一个小批量样本计算,这样可以 保证训练过程更稳定,而且采用批量训练方法也可以利用矩阵计算的优势。这是目 前最常用的梯度下降算法。 momentum SGD方法的一个缺点是,其更新方向完全依赖于当前的batch,因而其更新十分不 稳定,每次迭代计算的梯度含有比较大的噪音。解决这一问题的一个简单的做法便是引 入momentum,momentum即动量,是BorisPolyak在1964年提出的,其基于物体运动 时的惯性:将一个小球从山顶滚下,其初始速率很慢,但在加速度作用下速率很快增加, 并最终由于阻力的存在达到一个稳定速率,即更新的时候在一定程度上保留之前更新的 方向,同时利用当前batch的梯度微调最终的更新方向。这样一来,可以在一定程度上 增加稳定性,从而学习地更快,并且还有一定摆脱局部最优的能力。掌握单纯形法的理 论依据、基本思想和最优性检验定理,熟练用大M法和两阶段求解线性规划问题,理 解构造的新问题和原问题的解的关系。 其更新方法如下: 可以看到,参数更新时不仅考虑当前梯度值,而且加上了一个动量项『? m,但多了一 个超参Y,通常Y设置为0.5,直到初始学习稳定,然后增加到0.9或更高。相比原始梯度 下降算法,动量梯度下降算法有助于加速收敛。当梯度与动量方向一致时,动量项会增加, 而相反时,动量项减少,因此动量梯度下降算法可以减少训练的震荡过程。可以看到,参数 更新时不仅考虑当前梯度值,而且加上了一个动量项『? m,但多了一个超参Y,通常Y设 置为0.5,直到初始学习稳定,然后增加到0.9或更高。相比原始梯度下降算法,动量梯度 下降算法有助于加速收敛。当梯度与动量方向一致时,动量项会增加,而相反时,动量项减 少,因此动量梯度下降算法可以减少训练的震荡过程。 NAG NAG(Nesterov Accelerated Gradient),,由 Ilya Sutskever(2012 unpublished)在 Nesterov 工作的启发下提出的。对动量梯度下降算法的改进版本,其速度更快。其变化之处在于计算 “超前梯度”更新动量项Y ? m,具体公式如下: 既然参数要沿着动量项y ? m更新,不妨计算未来位置<0 -丫 ? m)的梯度,然后合并两项作为 最终的更新项。效果示意图如下: Starting pointoptimumRegular momentum update Starting point optimum Regular momentum update AdaGrad AdaGrad是Duchi在2011年提出的一种学习速率自适应的梯度下降算法。在训练 迭代过程,其学习速率是逐渐衰减的,经常更新的参数其学习速率衰减更快,这是一种

文档评论(0)

z190712l + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档