点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

Dropout 是一类用于神经网络训练或推理的随机化技术,这类技术已经引起了研究者们的广泛兴趣,并且被广泛地应用于神经网络正则化、模型压缩等任务。虽然 Dropout 最初是为密集的神经网络层量身定制的,但是最近的一些进展使得 Dropout 也适用于卷积和循环神经网络层。本文总结了 Dropout 方法的发展历史、应用以及当下的研究热点,还详细介绍了研究者们提出的重要方法。

图 1:一些目前提出的 Dropout方法,以及 2012 到 2019 年间 Dropout 方法的理论进展。

标准的 Dropout

2012 年提出的原始  Dropout 方法为避免前馈神经网络中出现的过拟合现象提供了一种简单的技术[1]。在每轮迭代中,网络中的每个神经元以 p 的概率被丢弃。当训练完成后,尽管神经元的输出要乘以该神经元被丢弃的概率 p,整体的网络架构还是会被使用。这样做抵消了没有神经元被丢弃的神经网络尺寸过大的影响,并且可以被解释为在训练时可能出现的网络上取平均。每一层的 dropout 概率可能不尽相同,原始的 Dropout 论文建议输入层的 p=0.2,而隐藏层的 p=0.5。输出层中的神经元不会被丢弃。这种技术通常被简称为 Dropout,但是处于本文论述的需要,我们将其称之为标准 Dropout,从而将其与其它的 Dropout 方法区分开来。该方法如图 2 所示。

图 2:标准 Dropout 的示例。左侧为全连接网络,右侧的网络以 0.5 的概率丢弃神经元。输出层并没有应用 Dropout。

从数学上来说,神经网络层训练过程中使用的标准 Dropout 的行为可以被写作:

其中 f(·)为激活函数,x 是该层的输入,W 是该层的权值矩阵,y为该层的输出,而 m 则为该层的 Dropout 掩膜(mask),mask 中每个元素为 1 的概率为 p。在测试阶段,该层的输出可以被写作:

用于训练的 Drpout 方法

本节介绍了重要的 Dropout 方法。和标准的 Dropout 一样,他们通常被用来在训练时正则化密集的前馈神经网络层。这些方法中的大多数都直接受到了标准 Dropout 的启发,并寻求提高其速度或正则化的有效程度。

基于标准 Dropout 最早提出的变体之一便是由 Wan 等人[3]于 2013 年提出的 dropconnect。该方法是对 Dropout 的一种泛化,其中每个神经元的权重或偏置以一定的概率被设置为 0,而不是将神经元的输出设置为 0。因此,在训练时,某个网络层的输出可以被写作:

其中各变量的定义与公式(1)中相同,但是这里使用了一个 Dropout mask 矩阵,而不是 mask 向量。Dropoutconnect 如图 3 所示。

图 3:Dropconnect 的示例。右侧的网络以 0.5 的概率将权值设置为 0。

Standout[4]是一种试图通过自适应地选择待丢弃的神经元(而不是随机丢弃)来改进标准 Dropout的 Dropout 方法。这个过程是通过在神经网络上叠加一个控制神经网架构的二值信念网络实现的。针对原始神经网络中的每一个权值,Standout 都会在二值信念网络中为其添加一个相应的权值参数。在训练时,某一层的输出可以被写作:

其中各变量的定义与公式(1)相同,但是W 代表作用于该层的信念网络的权值,而 g(·)代表信念网络的激活函数。

Fast Dropout[5]通过从贝叶斯的角度解释 Dropout 方法,提供了一种更快速地进行类似于 Dropout 的正则化的方式。Fast Dropout 的作者表明,带有 Dropout 的网络层的输出可以被看做是从一个潜在的分布(可以近似为高斯分布)中进行采样。然后可以直接从这个分布中采样,或者使用它的参数来传播关于整个 Dropout 集合的信息。该技术可以比标准 Dropout 更快地进行训练(在标准 Dropout 中,一次只采样可能的网络集合中的一个元素)。

受贝叶斯式dropout理解方法启发的另一种方法是 Kingma 等人[6]提出的变分Dropout(不要与 Gal 和 Ghahramani 的工作[13]弄混)。作者指出,使用高斯乘性噪声的 Dropout 变体(由 Srivastava 等人提出的[8])可以被解释为给定一个网络权值上的特定先验和特定变分目标的变分方法。然后,它们会推导出一个自适应的 Dropout 方案,该方案可以自动确定一个完整的网络或单个层或神经元的有效的Dropout 概率。相对于现有的使用确定的 Dropout 率的方法(如使用固定的概率或网格搜索)来说,这可能是一种改进。Concrete Dropout[20]是另外一种自动调整 Dropout 概率的方法。

卷积层

用于卷积神经网络(CNN)的朴素Dropout 的定义为:在特征图或输入图像中随机地丢弃像素。这并没有显著地减少过拟合,主要是因为被丢弃的像素与其邻接像素是高度相关的[21]。然而,最近研究人员取得了许多有发展前景的、使用 Dropout 作为正则化方法训练 CNN 的研究进展。

最大池化 Dropout[12]是一种保留了最大池化层的行为的方法,它同时也以一定概率让其它的特征值可以影响池化层的输出。在执行最大池化操作前,算子对特征值的某个子集进行 mask 运算。

图 4:卷积神经网络中的最大池化Dropout[12]。

在论文「Analysis on the dropout effect inconvolutional neural networks」[23]中,作者提出了一种基于训练的迭代过程改变 Dropout 概率的 Dropout 方法。丢弃神经元的概率是从均匀分布或正态分布采样得到的。该方法等价于向每一层的输出特征图添加噪声。该方法提高了网络对带有噪声的图像变化的鲁棒性[23]。作者也提出了「max-drop」,在这种方法中高激活值被有选择性地丢弃。这些高激活值是在特征图或通道上选择出来的[23]。论文[23]中的实验结果表明,文中所提出的方法的性能与「spatial dropout」相当。

Cutout 是另一种基于Dropout 的用于训练 CNN 的正则化和数据增强方法[24],它在每一张输入图像的某个区域上应用一个随机的正方形掩膜。与其它常见的在特征图级别上应用 Dropout 的方法不同,该方法直接将 Dropout 应用在输入图像上。Cutout 背后主要的动机是删除 CNN 的后续层中带有高激活值的视觉特征[24]。然而,令人惊讶的是,这种在输入图像上应用掩膜的方法在执行成本更低的情况下可以取得相同的性能。

循环层

通常而言,上述前馈 Dropout 方法可以被应用到带有循环层的网络的前馈连接中。因此,一些研究着眼于将 Dropout 方法应用于循环连接。因为在每一个时间步上由 Dropout 引起的噪声让网络难以保留长期的记忆,将标准 Dropout 应用于循环连接的效果很差[28]。然而,专门为循环层设计的 Dropout 方法也取得了成功,并且在实践中被广泛应用。一般来说,它们通过一种仍然能够保存长期记忆的方式将 Dropout 应用于循环连接上。

2015 年提出的RNNDrop[30]提供了一种简单的解决方案,能够在应用 Dropout 时更好地保留记忆。

图 5:在一个展开的循环神经网络(RNN)上,对于每一个时间步(左图)和每一个序列(右图)进行 Dropout 掩膜采样的对比。水平连接是循环的,而垂直连接是前馈的。不同的颜色代表应用于相应连接的不同 Dropout 掩膜。

2016 年,Gal 和 Ghahramani 提出了一种RNN Dropout 变体,该变体基于一种对 Dropout 方法的贝叶斯化的解释。作者指出,如果 Dropout 被看做一个贝叶斯后验的变分蒙特卡罗逼近,那么将其应用于循环层的自然方法就是生成一个同时将每个训练序列的前馈连接和循环连接置零的 Dropout 掩膜,但是为序列中的每个时间步保持相同的掩膜。这与 RNNDrop 类似的地方在于,掩膜是基于每个序列生成的,但是求导过程导致在 LSTM 单元的不同位置应用 Dropout。

循环 Dropout[14]是另一种可以在一个 LSTM 中保存记忆,同时也能像在标准 Dropout 中一样为每个输入样本生成不一样的 Dropout 掩膜的方法。这只需将 Dropout 应用于 RNN 中更新隐藏状态的部分,而不是状态本身。因此,如果一个元素被删除,那么它就不会对网络的记忆产生影响,而不是消除隐藏状态。

用于模型压缩的 Dropout 方法

标准 Dropout 加大了神经网络权值[8]的稀疏性。这一特性意味着 Dropout 方法可以通过减少有效执行所需的参数数量来压缩神经网络模型。自 2017 年以来,研究人员提出了几种基于 Dropout 压缩实际模型的方法。

2017 年,Molchanov 等人[9]提出使用变分 Dropout[6](本文第三节介绍过)同时对全连接层和卷积层进行稀疏化。结果表明,该方法在对性能影响最小的同时,大大减少了标准卷积网络的参数。然后可以将这种稀疏表征传递到现有方法中,从而将稀疏网络转换为压缩模型(如[31]中的工作)。Neklyudov 等人[10]也提出了类似的方法,他们使用了改进的变分 Dropout 方案,提高了稀疏性,但最终得到的网络结构特别易于压缩。

最近,进一步开发用于模型压缩的 Dropout 方法是一个十分活跃的研究领域。最近提出的方法包括 Targeted Dropout[32],其中神经元被自适应地选择,并以使网络适应神经剪枝的方式被丢弃,在不过多损失准确率的情况下大幅度缩小网络规模。另一种最近提出的方法是 Ising-dropout[11],它在一个神经网络的顶部覆盖了一个图形化的「Ising」模型,以识别不太有用的神经元,并在训练和推理中把它们丢弃掉。

蒙特卡罗 Dropout

2016 年,Gal 和 Ghahramani[7]提出了一种从贝叶斯理论出发的Dropout理解方式,并且被广泛接受。他们将Dropout 解释为深度高斯过程的贝叶斯近似。

除了常见的点估计输出,该方法还提供了一种估计神经网络输出置信度的简单方法。蒙特卡罗Dropout 在模型的不确定性估计中得到了广泛的应用。

论文链接:https://arxiv.org/abs/1904.13310

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲

在「小白学视觉」公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲

在「小白学视觉」公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

Dropout 的前世与今生相关推荐

  1. Dropout的前世与今生

    选自arXiv 作者:Alex Labach等 机器之心编译 参与:Geek AI.张倩 Dropout 是一类用于神经网络训练或推理的随机化技术,这类技术已经引起了研究者们的广泛兴趣,并且被广泛地应 ...

  2. Linux下1号进程的前世(kernel_init)今生(init进程)----Linux进程的管理与调度

    Linux下有3个特殊的进程,idle进程(PID=0PID=0), init进程(PID=1PID=1)和kthreadd(PID=2PID=2) * idle进程由系统自动创建, 运行在内核态 i ...

  3. 【百家稷学】卷积神经网络的前世、今生与未来(武汉工程大学技术分享)

    最开始做我们这个技术公众号的时候,我定了3个层次的目标.第1层目标,输出100万字原创技术文章,去年年中的时候已经达成.第2层目标,走进100所高校和100个企业进行学习与分享,如今正式开启.第3层目 ...

  4. 显著性检验的“前世与今生”

    关于显著性检验,你想要的都在这儿了!!(基础篇) 无论你从事何种领域的科学研究还是统计调查,显著性检验作为判断两个乃至多个数据集之间是否存在差异的方法被广泛应用于各个科研领域.笔者作为科研界一名新人也 ...

  5. 深度学习理论篇之----前世、今生、未来

    世界地球日,奏响低碳生活进行曲,以蓝天为乐谱,以绿树为音符,以碧水为琴弦弹奏出环保最强音,为地球母亲祈祷平安吃五谷杂粮,穿天然布衣,住节能住宅,行无车之旅,用厉行节俭.让我们怀着敬畏感恩之心,向地球母 ...

  6. 互联网金融的前世、今生和未来-系列四(今生):百花齐放的互联网金融业态

    互联网金融的前世.今生和未来--系列一:山雨欲来 互联网金融的前世.今生和未来-系列二(前世):金融与技术的首次亲密接触之金融电子化 互联网金融的前世.今生和未来-系列三(今生):一场跨界的战争 今生 ...

  7. 本文带你了解透彻云计算(前世,今生,未来)

    作者简介:一名在校云计算网络运维学生.每天分享云计算运维的学习经验.和学习笔记.   座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 前言 对于云计算,我们将会通过云计算的前世,今生, ...

  8. 前世看今生,从JavaEE到微服务

    声明:本文来自作者原创投稿文章,未经许可,禁止任何形式的转载. 作者:焦烈焱,普元CTO. 责编:钱曙光,关注架构和算法领域,寻求报道或者投稿请发邮件qianshg@csdn.net,另有「CSDN ...

  9. 立标机器人_立镖CEO夏慧玲:物流机器人“小黄人”的前世、今生与未来

    原标题:立镖CEO夏慧玲:物流机器人"小黄人"的前世.今生与未来 第1639期 夏慧玲说,从货物角度来说,人很麻烦.所以,考虑人机交互是歧途. 2367字 6分钟 来源 | 运联传 ...

最新文章

  1. Android--通话录音
  2. X264编码流程详解(转)
  3. 聊聊flink Table的OrderBy及Limit
  4. php购物车内物品删除,求助 购物车 用session删除 列表的一条
  5. 开源 非开源_开源突破“舒适区”
  6. 2015-2020年各类国际会议与期刊基于图像的三维对象重建论文综述(6)——Training
  7. 在Vue+springBoot环境中如何实现单点登录(SSO)
  8. spring3.1.0 jar包详解说明
  9. 社团管理系统软件测试,软件测试大作业-社团管理系统.doc
  10. ApacheCN 活动汇总 2019.8.30
  11. python两个excel做匹配_python链接两张excel表格数据-如何用python从excel中同时提取两个列的数据,并生......
  12. python pyinstaller打包exe添加版本信息
  13. .bat 是什么? (批处理脚本)
  14. 安装mysql数据库
  15. 小程序长按识别公众号二维码-已实现
  16. 路由器修改wifi密码
  17. 在iPhone/iPad端运行DebianLinux系统【iSH-AOK】
  18. FPGAi2c总线调试M24LC04B
  19. 职场工作细节提升建议
  20. JAVA RSA算法加密实现 eclipse

热门文章

  1. AI 医疗公司“战疫”在前线
  2. 从原理到代码,轻松深入逻辑回归模型!
  3. 超酷炫!Facebook用深度学习和弱监督学习绘制全球精准道路图
  4. 李沐团队新作Gluon,复现CV经典模型到BERT,简单好用 | 强烈推荐
  5. 又一名逃犯在张学友演唱会被 AI 捕获,人送绰号“热心歌神张先生”
  6. 周杰伦林俊杰李宗盛快失业了!有了AI,未来人人都能秒变作曲家
  7. 公司用的 MySQL 团队开发规范
  8. binlog/redolog/undolog?再也不会傻傻分不清楚了
  9. MyBatis-Plus,搭配 Spring Boot 使用,一篇就够了
  10. 讲讲 Redis 缓存更新一致性