如果要优化成本函数,函数如下图所示,红点代表最小值的位置。假设从边缘开始梯度下降,如果进行梯度下降法的一次迭代,无论是batch还是mini-batch下降法,都会产生较大的迭代波动,这会导致花费更多的时间。同时为了避免摆动过大,需要用一个较小的学习率。

另一个看待问题的角度是,如果,在竖轴上我们希望摆动小一点,同时,在横轴上希望摆动能大一点,所以我们使用Momentum梯度下降法。我们需要做的是,在每次迭代中,确切来说在第t次迭代的过程中,需要计算微分dwdwdw,dbdbdb,用现有的mini-batch计算dwdwdw和dbdbdb。如果用batch梯度下降法,现在的mini-batch就是全部的batch,对于batch梯度下降法的效果是一样的。如果现有的mini-batch就是整个训练集,效果也不错。

我们要做的是Vdw=β∗Vdw+(1−β)∗dWV_{dw}=\beta*V_{dw}+(1-\beta)*dWVdw​=β∗Vdw​+(1−β)∗dW同样的计算Vdb=β∗Vdb+(1−β)∗dbV_{db}=\beta*V_{db}+(1-\beta)*dbVdb​=β∗Vdb​+(1−β)∗db然后更新权重w=w−α∗Vdww=w-\alpha*V_{dw}w=w−α∗Vdw​b=b−α∗Vdbb=b-\alpha*V_{db}b=b−α∗Vdb​这样就可以减缓梯度下降的幅度。

Momentum的一个本质,如果想要最小化碗状函数,Momentum能够最小化碗状函数,dWdWdW和dbdbdb可以想象它们为从山上往下滚的一个球,提供了加速度,Momentum项就相当于速度。想象有一个碗,拿一个球,微分给了这个球一个加速度,此时球正向山下滚,球因为加速度越滚越快,而因为β\betaβ稍小于1,表现出一些摩擦力,所以球不会无限加速下去。所以不像梯度下降法每一步都独立于之前的步骤,球可以向下滚,获得动量。

看一下具体如何计算,算法有两个超参数,学习率α\alphaα和参数β\betaβ,β\betaβ控制着指数加权平均数,β\betaβ最常用的值是0.9,平均了前十次迭代的梯度。实际上β\betaβ为0.9时效果不错。
Vdw=β∗Vdw+1−β∗dWV_{dw}=\beta*V_{dw}+{1-\beta}*dWVdw​=β∗Vdw​+1−β∗dWVdb=β∗Vdb+(1−β)∗dbV_{db}=\beta*V_{db}+(1-\beta)*dbVdb​=β∗Vdb​+(1−β)∗dbW=W−α∗VdwW=W-\alpha*V_{dw}W=W−α∗Vdw​b=b−α∗Vdbb=b-\alpha*V_{db}b=b−α∗Vdb​关于偏差修正,需要计算Vdw1−βt\frac{V_{dw}}{1-\beta^t}1−βtVdw​​,实际上我们并不使用偏差修正。因为10次迭代之后,移动平均已经过了初始阶段,不再是一个具有偏差的预测。实际上,在使用梯度下降法或者Momentum时,不会受到偏差修正的困扰。当然VdwV_{dw}Vdw​的初始值为0。

改善深层神经网络:超参数调整、正则化以及优化——2.6 动量梯度下降法相关推荐

  1. 交叉验证和超参数调整:如何优化您的机器学习模型

    In the first two parts of this article I obtained and preprocessed Fitbit sleep data, split the data ...

  2. 2020-6-9 吴恩达-改善深层NN-w3 超参数调试(3.3 超参数训练的实践:Pandas(资源少,一次一个模型) VS Caviar(资源多,一次多个模型))

    1.视频网站:mooc慕课https://mooc.study.163.com/university/deeplearning_ai#/c 2.详细笔记网站(中文):http://www.ai-sta ...

  3. [DeeplearningAI笔记]改善深层神经网络_深度学习的实用层面1.10_1.12/梯度消失/梯度爆炸/权重初始化...

    觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.10 梯度消失和梯度爆炸 当训练神经网络,尤其是深度神经网络时,经常会出现的问题是梯度消失或者梯度爆炸,也就是说当你训练深度网络时,导数或坡 ...

  4. 02.改善深层神经网络:超参数调试、正则化以及优化 W3. 超参数调试、Batch Norm和程序框架

    文章目录 1. 调试处理 2. 为超参数选择合适的范围 3. 超参数调试的实践 4. 归一化网络的激活函数 5. 将 Batch Norm 拟合进神经网络 6. Batch Norm 为什么奏效 7. ...

  5. 深度学习笔记第二门课 改善深层神经网络 第二周:优化算法

    本文是吴恩达老师的深度学习课程[1]笔记部分. 作者:黄海广[2] 主要编写人员:黄海广.林兴木(第四所有底稿,第五课第一二周,第三周前三节).祝彦森:(第三课所有底稿).贺志尧(第五课第三周底稿). ...

  6. python/keras中用Grid Search对神经网络超参数进行调参

    原文:How to Grid Search Hyperparameters for Deep Learning Models in Python With Keras 作者:Jason Brownle ...

  7. 2.6 动量梯度下降法-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 2.5 指数加权平均的偏差修正 回到目录 2.7 RMSprop 动量梯度下降法 (Gradient Descent with Momentum) 还有一种算法叫做Momen ...

  8. 02.改善深层神经网络:超参数调试、正则化以及优化 W2.优化算法(作业:优化方法)

    文章目录 1. 梯度下降 2. mini-Batch 梯度下降 3. 动量 4. Adam 5. 不同优化算法下的模型 5.1 Mini-batch梯度下降 5.2 带动量的Mini-batch梯度下 ...

  9. 02.改善深层神经网络:超参数调试、正则化以及优化 W1.深度学习的实践层面(作业:初始化+正则化+梯度检验)

    文章目录 作业1:初始化 1. 神经网络模型 2. 使用 0 初始化 3. 随机初始化 4. He 初始化 作业2:正则化 1. 无正则化模型 2. L2 正则化 3. DropOut 正则化 3.1 ...

最新文章

  1. MySQL的information_schema
  2. centos 网卡配置(入门级)
  3. 韩寒:出了国才知道,外国是多么的落后(写的真委婉~不愧是韩寒)
  4. lis3dh 三轴加速度计 运动检测 中断配置实现
  5. 使用LOAD DATA和INSERT语句导入Mysql数据
  6. 信用卡套现只要正常还款,银行是不是睁只眼闭只眼?
  7. [Android]使用ViewPager实现图片滑动展示
  8. LeetCode 475. 供暖器(双指针二分查找)
  9. xml 中插入html代码
  10. java建立检索项语料库_sentilib_语料库项目_search模块的实现
  11. Navicat加载缓慢
  12. 【名额有限】腾讯技术工程-运维技术沙龙
  13. duet连win10_duetdisplay这个软件在win10上用不了?安装vs2015的时候想取消安装没有点取消...
  14. 软件测试人员培养计划
  15. 华尔街最“伟大”骗子排行榜!
  16. QT INSTALLS使用
  17. 贴几行汉语编程的代码
  18. 视频教程-内功修炼之数据结构与算法-Java
  19. 迷宫问题寻宝(c++实现,求最短路径,显示路径)
  20. JAVA计算机毕业设计大学餐厅菜品推荐和点评系统Mybatis+系统+数据库+调试部署

热门文章

  1. 常用而又不为大多数人所知的三种网页特效
  2. JavaScript玩转机器学习:保存并加载 tf.Model
  3. ElasticSearch面试 - es 生产集群的部署架构是什么?
  4. 分布式系统关注点(21)——构建「易测试」系统的“六脉神剑”
  5. CCF 201509-1 数列分段
  6. 【React 基础】之 React 基本介绍、jsx 规则、模块与组件
  7. C#LeetCode刷题之#112-路径总和​​​​​​​(Path Sum)
  8. 如何在React中使用gRPC-web
  9. .htaccess 重定向_如何使用.htaccess将HTTP重定向到HTTPS
  10. javascript指南_JavaScript还原方法指南