正则化

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

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. shell学习(20)- xargs

    xargs 是给命令传递参数的一个过滤器,也是组合多个命令的一个工具. xargs 可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据. xargs 也可以将单行或多 ...

  2. JavaScript void

    我们经常会使用到 javascript:void(0) 这样的代码,那么在 JavaScript 中 javascript:void(0) 代表的是什么意思呢? javascript:void(0) ...

  3. php 练习 1

    php5 echo 和 print 语句 在PHP 中, 有两种基本的输出方法:echo 和print . 在本教程中,我们几乎在每个例子中都会用到echo和print.因此,本节为您讲解更多关于这两 ...

  4. WPF 线段Line过长渲染出现的问题

    原文:WPF 线段Line过长渲染出现的问题 在使用WPF的时候,可以做一个实验,在canvas里添加一条线段Line,StrokeThickness属性设置为1,然后通过放大canvas或者调整li ...

  5. 2019-7-25-VisualStudio-2019-新创建项目添加-git-仓库

    title author date CreateTime categories VisualStudio 2019 新创建项目添加 git 仓库 lindexi 2019-7-25 15:8:15 + ...

  6. Streamy 使用RDBMS

  7. CSS常用函数calc等

    >>CSS常用函数<<

  8. @noi.ac - 491@ explore

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 最近有一个巨大的古代地下遗迹在比特镇被发现.这个地下遗迹的俯视图 ...

  9. better-scroll在移动端绑定click事件失效

    在做一个列表的时候需要点击列表将列表信息输出,给<li>加个一个很简单的@click,可是没有反应. 原因是使用了better-scroll,默认它会阻止touch事件.所以在配置中需要加 ...

  10. python基础之包的导入

    包的导入 python是一门灵活性的语言 ,也可以说python是一门胶水语言,顾名思义,就是可一导入各类的包, python的包可是说是所有语言中最多的.当然导入包大部分是为了更方便,更简便,效率更 ...