正则化

在模型中加入正则项,防止训练过拟合,使测试集效果提升

Dropout

每次在网络中正向传播时,在每一层随机将一些神经元置零(相当于激活函数置零),一般在全连接层使用,在卷积层一般随机将整个通道置零而不是单个神经元

Dropout 的两种解释:

1.dropout避免了特征之间的相互适应,假如让网络识别一只猫,一个神经元学到了耳朵,一个学到了尾巴,另一个学到了毛,将这些特征组合在一起来判断是否是猫;Dropout以后模型不能通过这些特征组合来判断,需要通过不同的零散的特征来判断,某种程度上这抑制了过拟合

2.另一种解释是dropout的使用相当于在单一模型中进行了集成学习,dropout后可以看作在一个子网络中用所有神经元的子集进行运算,每次dropout不同的神经元就产生一个不同的子网络,最后相当于对一群共享参数的网络进行集成学习

在预测时,对于预测函数用dropout 的概率乘以输出层的输出平均测试时的随机性

Inverted dropout在训练时除以p,在预测时不改变,提升预测时的效率。

使用Dropout时,训练通常需要更长的时间,因为每次更新只是更新网络的子部分,但模型收敛后的鲁棒性更好

dropout和BN都会在训练时加入随机性和噪声以扰乱训练集防止过拟合于训练集,在测试时抵消这些随机性和噪声提高泛化能力。BN在训练时,一个数据点可能和其他不同的数据点出现在不同的mini-batches,对于单个数据点来说在训练过程中该点会如何被正则化具有一定的随机性,在测试时,通过基于全局估计的正则化来抵消这个随机性。有时BN已经足够正则化,不使用dropout;dropout的优点是可以调整p的值来控制正则化力度。

常用的正则化方法:

Q1:dropout操作后为何要乘一个系数?

Q2:从引入随机性的角度解释Dropout的正则化作用?

Q3:同上,试解释图像增强对网络训练的作用?

1.乘以系数是为了平均测试时的随机性
2.dropout避免了特征之间的相互适应,假如让网络识别一只猫,一个神经元学到了耳朵,一个学到了尾巴,另一个学到了毛,将这些特征组合在一起来判断是否是猫;Dropout以后模型不能通过这些特征组合来判断,需要通过不同的零散的特征来判断,某种程度上这抑制了过拟合
3.数据增强增加了数据多样性,

1

模型正则化,dropout的更多相关文章

  1. 第十一节,全连接网络中的优化技巧-过拟合、正则化,dropout、退化学习率等

    随着科研人员在使用神经网络训练时不断的尝试,为我们留下了很多有用的技巧,合理的运用这些技巧可以使自己的模型得到更好的拟合效果. 一 利用异或数据集演示过拟合 全连接网络虽然在拟合问题上比较强大,但太强 ...

  2. 使用L2正则化和平均滑动模型的LeNet-5MNIST手写数字识别模型

    使用L2正则化和平均滑动模型的LeNet-5MNIST手写数字识别模型 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献Tensorflow实战Google深度学习框架 实验平台: T ...

  3. 深度学习(dropout)

    other_techniques_for_regularization 随手翻译,略作参考,禁止转载 www.cnblogs.com/santian/p/5457412.html Dropout: D ...

  4. 深度学习Bible学习笔记:第七章 深度学习中的正则化

    一.正则化介绍 问题:为什么要正则化? NFL(没有免费的午餐)定理: 没有一种ML算法总是比别的好 好算法和坏算法的期望值相同,甚至最优算法跟随机猜测一样 前提:所有问题等概率出现且同等重要 实际并 ...

  5. keras搭建深度学习模型的一些小tips

    定义模型两种方法:  1.sequential 类仅用于层的线性堆叠,这是目前最常用的网络架构 2.函数式API,用于层组成的有向无环图,让你可以构建任意形式的架构 from keras import ...

  6. 深入解析Dropout

    过拟合是深度神经网(DNN)中的一个常见问题:模型只学会在训练集上分类,这些年提出的许多过拟合问题的解决方案:其中dropout具有简单性并取得良好的结果: Dropout 上图为Dropout的可视 ...

  7. 机器学习中的L1、L2正则化

    目录 1. 什么是正则化?正则化有什么作用? 1.1 什么是正则化? 1.2 正则化有什么作用? 2. L1,L2正则化? 2.1 L1.L2范数 2.2 监督学习中的L1.L2正则化 3. L1.L ...

  8. 深入解析Dropout——基本思想:以概率P舍弃部分神经元,其它神经元以概率q=1-p被保留,舍去的神经元的输出都被设置为零

    深度学习网络大杀器之Dropout——深入解析Dropout  转自:https://yq.aliyun.com/articles/68901 摘要: 本文详细介绍了深度学习中dropout技巧的思想 ...

  9. Dropout 上

    From <白话深度学习与TensorFlow> Dropout 顾名思义是“丢弃”,在一轮训练阶段丢弃一部分网络节点,比如可以在其中的某些层上临时关闭一些节点,让他们既不输入也不输出,这 ...

随机推荐

  1. 【转载】 C++ stl string 操作

        总结一下C++中string的操作,来自〈C++ Primer〉第四版. 1. string对象的定义和初始化: 12345678910111213 string s1; //空串string ...

  2. UVa 825【简单dp,递推】

    UVa 825 题意:给定一个网格图(街道图),其中有一些交叉路口点不能走.问从西北角走到东南角最短走法有多少种.(好像没看到给数据范围...) 简单的递推吧,当然也就是最简单的动归了.显然最短路长度 ...

  3. MySql计算两日期时间之间相差的天数,秒数,分钟数,周数,小时数

    MySql计算两日期时间之间相差的天数,秒数,分钟数,周数,小时数 计算两日期时间之间相差的天数,秒数,分钟数,周数,小时数,这里主要分享的是通过MySql内置的函数 TimeStampDiff() ...

  4. Android 高仿新浪微博底部导航栏,实现双击首页Tab,页面的ListView滚动、刷新

    现在很多APP,如微信.QQ.微博等等,它们的主页面都无一例外的选择使用底部Tab导航, 通过这种方式,可以很好的把页面层级分化,很好的提高用户体验.相信,很多Android开发者,都使用到过这种经典 ...

  5. Pytorch学习记录-torchtext和Pytorch的实例( 使用神经网络训练Seq2Seq代码)

    Pytorch学习记录-torchtext和Pytorch的实例1 0. PyTorch Seq2Seq项目介绍 1. 使用神经网络训练Seq2Seq 1.1 简介,对论文中公式的解读 1.2 数据预 ...

  6. centos6 名字服务dnsmasq配置

    1 主机名配置 主机hd1配置(后面配置为名字服务器) [grid_hd@hd1 Desktop]$ cat /etc/sysconfig/network NETWORKING=yes HOSTNAM ...

  7. WPF Converter(转)

    WPF Binding 用于数据有效性校验的关卡是它的 ValidationRules 属性,用于数据类型转换的关卡是它的 Converter 属性.下面是实例: 1. Binding 的数据校验 & ...

  8. JavaScript中判断整数的方法

    一.使用取余运算符判断 任何整数都会被1整除,即余数是0.利用这个规则来判断是否是整数. 1 2 3 4 5 function isInteger(obj) {     return obj%1 == ...

  9. 2003年NOIP普及组复赛题解

    题目涉及算法: 乒乓球:简单字符串模拟: 数字游戏:区间DP: 栈:卡特兰数 麦森数:高精度.快速幂.数学. 乒乓球 题目链接:https://www.luogu.org/problem/P1042 ...

  10. Python--day28--面试题