当前位置: 首页 > article >正文

深度学习之Dropout

1 Dropout 系列问题

1.1 为什么要正则化?

  1. 深度学习可能存在过拟合问题——高方差,有两个解决方法,一个是正则化,另一个是准备更多的数据,这是非常可靠的方法,但你可能无法时时刻刻准备足够多的训练数据或者获取更多数据的成本很高,但正则化通常有助于避免过拟合或减少你的网络误差。
  2. 如果你怀疑神经网络过度拟合了数据,即存在高方差问题,那么最先想到的方法可能是正则化,另一个解决高方差的方法就是准备更多数据,这也是非常可靠的办法,但你可能无法时时准备足够多的训练数据,或者,获取更多数据的成本很高,但正则化有助于避免过度拟合,或者减少网络误差。

1.2 为什么正则化有利于预防过拟合?

在这里插入图片描述

在这里插入图片描述

左图是高偏差,右图是高方差,中间是Just Right,这几张图我们在前面课程中看到过。

1.3 理解dropout正则化

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

​ 直观上理解:不要依赖于任何一个特征,因为该单元的输入可能随时被清除,因此该单元通过这种方式传播下去,并为单元的四个输入增加一点权重,通过传播所有权重,dropout将产生收缩权重的平方范数的效果,和之前讲的L2正则化类似;实施dropout的结果实它会压缩权重,并完成一些预防过拟合的外层正则化;L2对不同权重的衰减是不同的,它取决于激活函数倍增的大小。

1.4 dropout率的选择

  1. 经过交叉验证,隐含节点 dropout 率等于 0.5 的时候效果最好,原因是 0.5 的时候 dropout 随机生成的网络结构最多。
  2. dropout 也可以被用作一种添加噪声的方法,直接对 input 进行操作。输入层设为更接近 1 的数。使得输入变化不会太大(0.8)
  3. 对参数 $ w $ 的训练进行球形限制 (max-normalization),对 dropout 的训练非常有用。
  4. 球形半径 $ c $ 是一个需要调整的参数,可以使用验证集进行参数调优。
  5. dropout 自己虽然也很牛,但是 dropout、max-normalization、large decaying learning rates and high momentum 组合起来效果更好,比如 max-norm regularization 就可以防止大的learning rate 导致的参数 blow up。
  6. 使用 pretraining 方法也可以帮助 dropout 训练参数,在使用 dropout 时,要将所有参数都乘以 $ 1/p $。

1.5 dropout有什么缺点?

​ dropout一大缺点就是代价函数J不再被明确定义,每次迭代,都会随机移除一些节点,如果再三检查梯度下降的性能,实际上是很难进行复查的。定义明确的代价函数J每次迭代后都会下降,因为我们所优化的代价函数J实际上并没有明确定义,或者说在某种程度上很难计算,所以我们失去了调试工具来绘制这样的图片。我通常会关闭dropout函数,将keep-prob的值设为1,运行代码,确保J函数单调递减。然后打开dropout函数,希望在dropout过程中,代码并未引入bug。我觉得你也可以尝试其它方法,虽然我们并没有关于这些方法性能的数据统计,但你可以把它们与dropout方法一起使用。


http://www.kler.cn/a/380434.html

相关文章:

  • 技术文档的语言表达:简洁、准确与易懂的艺术
  • MyBatis的插件运行原理,与如何编写一个插件
  • EasyPoi 使用$fe:模板语法生成Word动态行
  • More Effective C++之技术Techniques,Idioms,Patterns_条款26-27
  • Springboot + vue3 实现大文件上传方案:秒传、断点续传、分片上传、前端异步上传
  • 【Linux】ChatGLM-4-9B模型之All Tools
  • K8S flannel网络模式对比
  • 恒创科技:如何知道一台服务器能承载多少用户?
  • 【Elasticsearch系列】更改 Elasticsearch 用户密码的详细指南
  • 【RAG多模态】多模态RAG-ColPali:使用视觉语言模型实现高效的文档检索
  • Python pyautogui库:自动化操作的强大工具
  • Redis-06 Redis面试高频问题、Redis日常开发规避问题
  • 【LLM-多模态】MM1:多模态大模型预训练的方法、分析与见解
  • mybatis 参数判断报错的问题
  • ML2001-2 机器学习/深度学习 过拟合(overfit)
  • Qt中的Model与View5: QStyledItemDelegate
  • 【含文档+源码】基于SpringBoot+Vue的新型吃住玩一体化旅游管理系统的设计与实现
  • 【格式化查看JSON文件】coco的json文件内容都在一行如何按照json格式查看
  • Hadoop生态系统主要包括哪些组件以及它们的作用
  • 探索 MarsCode:代码练习-AI助你提升编码/算法能力
  • OpenCV图像基础
  • 红队知识学习入门(3)Shodan使用6
  • 算法:图的相关算法
  • CMFCMaskedEdit 类和CIPAddressCtrl 类
  • 论负载均衡技术在Web系统中的应用论文
  • JMeter与大模型融合应用之jmeter.properties配置文件新增配置