1.视频网站:mooc慕课https://mooc.study.163.com/university/deeplearning_ai#/c
2.详细笔记网站(中文):http://www.ai-start.com/dl2017/
3.github课件+作业+答案:https://github.com/stormstone/deeplearning.ai

1.7 理解 Dropout Why does drop out work?

  • 1.单个神经元实施Dropout
  • 2.NN实施Dropout
  • 3.两个使用Dropout的经验

Dropout可以随机删除网络中的神经单元,他为什么可以通过正则化发挥如此大的作用呢?

上一节课已经介绍过,Dropout可以随机删除网络中的神经单元,每次迭代后,NN都比以前更小。采用一个较小的NN和使用正则化的效果是一样的。

1.单个神经元实施Dropout

我们从单个神经元入手。

如上图,这个单元的工作就是输入并生成一些有意义的输出。
现在通过dropout,该单元的输入几乎被消除,有时这两个单元会被删除,有时会删除其它单元。

也就是说,上图中中间的单元,它不能依靠任何特征,因为特征都有可能被随机清除,或者说该单元的输入都可能被随机清除。

我不愿意把所有赌注都放在一个节点上,不愿意给任何一个输入加上太多权重,因为它可能会被删除。因此该单元将通过这种方式积极地传播开,并为单元的四个输入增加一点权重,通过传播所有权重,dropout将产生收缩权重的平方范数的效果,和我们之前讲过的正则化类似,实施dropout的结果是它会压缩权重,并完成一些预防过拟合的外层正则化。

事实证明,dropout是一种正则化的替代形式。
而L2对不同权重的衰减是不同的,它取决于倍增的激活函数的大小。

总结
dropout的功能类似于L2正则化,与L2正则化不同的是,被应用的方式不同,dropout也会有所不同,甚至更适用于不同的输入范围。

2.NN实施Dropout

上图是一个有3个输入特征的网络,每层分别由7,7,3,2,1个节点。有一个要选择的参数是keep-prob,它代表每一层上保留单元的概率。
实施dropout的另一个细节是,不同层的keep-prob也可以变化。

  • 第一层权重矩阵W[1]维度3x7
  • 第二层权重矩阵W[2]维度7x7
  • 第三层权重矩阵W[3]维度7x3
  • 第四层权重矩阵W[4]维度3x2
  • 第五层权重矩阵W[5]维度2x1

W[2]是最大的权重矩阵,因为它拥有最大参数集,即7×7。

  • 为了预防矩阵过拟合,第二层的keep-prob值应该相对较低,假设是0.5。
  • 对于其它层,过拟合的程度可能没那么严重,它们的keep-prob值可能高一些,可能是0.7。
  • 如果在某一层,我们不必担心其过拟合的问题,那么keep-prob可以为1。这意味着保留所有单元,并且不在这一层使用dropout。

keep-prob设置如下图

再次强调一下,对于有可能出现过拟合,且含有诸多参数的层,我们可以把keep-prob设置成比较小的值,以便应用更强大的dropout。有点像在处理L2正则化的正则化参数λ\lambdaλ,我们尝试对某些层施行更多正则化。

对于输入层,或者说第零层,从技术上讲,我们也可以应用dropout,这样有机会删除一个或多个输入特征,虽然现实中我们通常不这么做。

keep-prob=1,是非常常用的输入值,当然也可以是0.9,但是消除一半的输入特征是不太可能的。通常情况下,即使你对输入层应用dropout,那keep-prob也会接近于1。

总结

如果你担心某些层比其它层更容易发生过拟合

  • 一个方案是,把某些层的keep-prob值设置得比其它层更低,缺点是为了使用交叉验证,你要搜索更多的超级参数
  • 另一种方案是,在一些层上应用dropout,而有些层不用dropout,应用dropout的层只含有一个超级参数,就是keep-prob

3.两个使用Dropout的经验

dropout有两个实施过程中的经验。

  • 经验1

实施dropout,在计算机视觉领域有很多成功的第一次。
计算视觉中的输入量非常大,输入太多像素,以至于没有足够的数据,所以dropout在计算机视觉中应用得比较频繁。有些计算机视觉研究人员非常喜欢用它,几乎成了默认的选择。

但要牢记一点,dropout是一种正则化方法,它有助于预防过拟合,因此除非算法过拟合,不然不要使用dropout。所以dropout在其它领域应用得比较少。

  • 经验2

dropout一大缺点就是J代价函数不再被明确定义,每次迭代,都会随机移除一些节点,所以很难double check梯度下降的性能。定义明确的代价函数每次迭代后都会下降,因为要优化的代价函数J实际上并没有明确定义,或者说在某种程度上很难计算,所以我们失去了调试工具来绘制梯度下降曲线。

我通常会关闭dropout函数,将keep-prob的值设为1,运行代码,确保J函数单调递减,然后再打开dropout函数。虽然我们并没有关于其他方法性能的数据统计,我觉得你也可以尝试其它方法,把它们与dropout方法一起使用。

2020-5-22 吴恩达-改善深层NN-w1 深度学习的实用层面(1.7 理解 Dropout--压缩权重/分层设置keep-prob)相关推荐

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

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

  2. 吴恩达 NIPS 2016:利用深度学习开发人工智能应用的基本要点(含唯一的中文版PPT)...

    雷锋网按:为了方便读者学习和收藏,雷锋网(公众号:雷锋网)特地把吴恩达教授在NIPS 2016大会中的PPT做为中文版,由三川和亚峰联合编译并制作. 今日,在第 30 届神经信息处理系统大会(NIPS ...

  3. 吴恩达:初学者如何进入深度学习领域?

    # 吴恩达:初学者如何进入深度学习领域? # 一个人是如何进入深度学习领域的呢?虽然大多数都是自学但是仍得益于专业化的设计.什么是序列模型?什么是注意力模型?是不是非得微积分才能理解这些概念,其实如果 ...

  4. 用深层神经网络识别猫咪图片:吴恩达Course1-神经网络与深度学习-week3week4作业

    代码有参考吴恩达老师的源代码,神经网络的图片为转载,图片来源见水印 以下文件的[下载地址],提取码:dv8a 所有文件存放位置 C:. │ dnn_utils.py │ building deep n ...

  5. 干货 | 吴恩达亲自为这份深度学习专项课程精炼图笔记点了赞!(附下载)

    来源:机器之心.AI有道 本文约7500字,建议阅读10+分钟. 本文整理了深度学习基础.卷积网络和循环网络的学习笔记,附下载哦~ [ 导读 ]吴恩达在推特上展示了一份由 TessFerrandez ...

  6. 吴恩达老师的机器学习和深度学习课程笔记打印版

    注意:下载笔记.视频.代码:请点击"阅读原文" 我和同学将吴恩达老师机器学习和深度学习课程笔记做成了打印版,放在github上,下载后可以打印. 公布了深度学习笔记的word和ma ...

  7. 有人把吴恩达老师的机器学习和深度学习做成了中文版

    近年来 AI 越来越火,吴恩达是被公认的人工智能(AI)和机器学习领域国际最权威的学者,他一直致力于普及.宣传.推广 AI 教育,包括最前沿.最火爆的 AI 基础课程.深度学习课程等等.惠及全球超过 ...

  8. 吴恩达最新斯坦福课程《深度学习》全部视频已送达,请签收!

    参加 2019 Python开发者日,请扫码咨询 ↑↑↑ 责编 | Jane 出品 | AI科技大本营(公众号id:rgznai100) [导语]2018 年秋季,吴恩达教授在斯坦福新开了一门 CS2 ...

  9. 吴恩达DeepLearningCourse1-神经网络和深度学习

    计划在9月4日(截止日期)之前完成DeepLearning的所有课程学习.每个课程对应一篇博客,根据学习进度随时更新. 参考课程 文章目录 (一)深度学习概论 结构化数据和非结构化数据 提高效果的方法 ...

最新文章

  1. 论坛报名 | 人工智能与疫情精准防控
  2. MySQL innodb_flush_method 【转载】
  3. 飞在空中的仓库再配合无人机送货,沃尔玛新专利厉害了
  4. python怎么封装方法然后调用_我现在想把自己写的python模块源代码封装成dll,然后在别的python脚本里调用,可以吗?...
  5. 阿里云的linux服务器简单部署网站80端口
  6. 【数据结构练习习题】java实现版(一)
  7. Spring事件机制详解
  8. Mybatis学习--Mapper.xml映射文件
  9. 向所有的代码小神童学习!
  10. AGC004E - Salvage Robots(dp,思维)
  11. java ssl发送邮件_通过SSL发送的Java邮件
  12. libmesh 思维导图(类接口设计)
  13. 三款MikroTik家用和小型办公网路由器
  14. 计算机408考研经验分享
  15. spoon mysql_spoon(kettle)基本配置(连接Mysql和Oracle)
  16. IDEA执行hadoop相关报错xxx from xxx is not a valid DFS filename.
  17. 《高质量C/C++编程指南》第1期
  18. TokenInsight 对话首席——获取增量用户 公链崛起的关键之战
  19. ubuntu下安装电驴
  20. Day_2 HTML5 格式化文本、段落与列表

热门文章

  1. 手写实现简单版IOC
  2. sanity check
  3. 曲师大计算机技术专研毕业,今天,我们从曲师大毕业了!
  4. MySQL启动服务提示:某些服务在未由其他服务或程序使用时将自动停止
  5. 小程序|炎炎夏日、清爽一夏、头像大换装
  6. 程序设计与算法(三)期末考试(2020春季)
  7. H5引入Web调试工具、VConsole引入
  8. 刘强东在耶鲁北京中心演讲(2015-8):商城+金融+3农+生鲜
  9. 线性代数复习总结——基本概念
  10. 阿里云,DNS(云解析),封装类