CNN中应用dropout需要了解的所有最新知识
2018-03-07 22:10
811 查看
Dropout
在神经网络(深度学习)训练过程中,为了降低模型的过拟合程度,我们会按照一定的概率,随机将某些神经元暂时从网络中丢弃。这是工程上常用的一种做法,理解起来也很简单。根据AndrewNG的最新课程《深度学习》,笔者又对其有了更多认识。
关于Dropout需要知道的
Dropout只发生在模型的训练阶段,预测、测试阶段则不用Dropout直观认识:Dropout随机删除神经元后,网络变得更小,训练阶段也会提速
事实证明,dropout已经被正式地作为一种正则化的替代形式
有了dropout,网络不会为任何一个特征加上很高的权重(因为那个特征的输入神经元有可能被随机删除),最终dropout产生了收缩权重平方范数的效果
Dropout的功能类似于L2正则化,但Dropout更适用于不同的输入范围
如果你担心某些层比其它层更容易过拟合,可以把这些层的keep-prob值设置的比其它层更低
Dropout主要用在计算机视觉领域,因为这个领域我们通常没有足够的数据,容易过拟合。但在其它领域用的比较少
Dropout的一大缺点就是代价函数不再被明确定义,所以在训练过程中,代价函数的值并不是单调递减的
总结
Dropout是正则化的一种,它有助于防止过拟合使用时,先关闭Dropout,设置keep-prob为1,使代价函数的值单调递减,然后再打开Dropout
相关文章推荐
- 每个程序员都需要了解的虚拟内存的知识
- Android 多CPU架构支持所需要了解的知识
- C++程序员需要了解的知识
- Java入门前大概需要了解的知识
- 对 CNN 中 dropout layer 的理解
- 作为嵌入式程序员需要了解的基本知识
- 设计师应该了解的iOS应用开发基础知识
- 移动端页面需要了解的知识
- 学ios需要了解的C语言基础知识-2-运算符
- 转 开始进行 64 位 Windows 系统编程之前需要了解的所有信息
- 暂时不太了解, 需要深入了解的一些java知识(仅做备注使用了。)
- Stanford机器学习---第十三讲. 异常检测---此讲综合应用了所有以往知识
- 应用程序架构本质,第 1 部分: 关于需求建模您所需要了解的所有内容
- 面试求职中需要了解的Java多线程知识
- web测试需要了解的知识
- 学习流媒体之前需要了解的基本知识
- 开发HTML5应用你需要了解的
- Service需要了解的理论知识
- 开始进行 64 位 Windows 系统编程之前需要了解的所有信息
- java开发WEB应用需要的基础知识