视学算法报道

转载:机器之心

作者:魔王、杜伟

人工智能「我训练我自己」系列又有了新进展。

在机器学习领域里,Dropout 是一个较为重要的方法,其可以暂时丢弃一部分神经元及其连接,进而防止过拟合,同时指数级、高效地连接不同网络架构。

2012 年,Hinton 等人在论文《Improving neural networks by preventing co-adaptation of feature detectors》中首次提出 Dropout 技术。在这之后,Dropout 的变体大量涌现,该方法也成为机器学习研究者常用的训练技巧。

我们知道,机器学习可以让很多人们的工作自动化,而机器学习本身的自动化程度也在不断提高。近日,卡内基梅隆大学在读博士 Hieu Pham、谷歌大脑研究科学家 Quoc V. Le 提出了一种自动学习 Dropout 的方法。研究者称,通过强化学习来学习 Dropout 的规律,AutoDropout 可以提高图像识别、语言理解和机器翻译的性能。

该研究已被人工智能顶会 AAAI-2021 接收。

dropout 方法的利与弊

现代神经网络常常过参数化,因而需要适当的正则化来避免过拟合现象。Dropout 是一种常见的正则化方法,该方法从网络的一些中间层中随机选择神经元,并将这些神经元的值替换为零。换言之,这些神经元被从当前训练步中丢弃。近来更多的研究表明,为丢弃的神经元施加某些结构要比随机均匀丢弃神经元带来更显著的性能提升。但在实践中,dropout 模式为适应不同的应用需要进行调整变化。

例如在文本领域,Zaremba 等人(2014)认为,对于多层 LSTM 而言,仅丢弃垂直连接中的神经元要好于丢弃任何位置的神经元。之后,Gal 和 Ghahramani(2016b)提出了 Variational Dropout,他们丢弃了网络中任何位置的神经元,但在时间维度上共享了同一个 dropout 模式。然而,当前 Transformer 架构未使用这两种方法,仅使用了原版 Dropout。LSTM 和 Transformer 在如何实现 Dropout 方面的差异表明,dropout 模式需要根据 NLP 中不同的模型架构进行调整。

在图像领域,原版 Dropout 通常仅应用于卷积神经网络(ConvNet)中的全连接层,其他卷积层往往需要特定结构的 dropout 神经元。例如,Stochastic Depth 丢弃残差网络中的整个残差分支,DropPath 丢弃多分支卷积单元中的整个分支。Ghiasi 等人(2018)提出的 DropBlock 丢弃卷积层中的相邻神经元方块(按块丢弃)。虽然 DropBlock 在 ResNet-50 和 AmoebaNet 架构中表现良好,但它并未被证实在 EfficientNet 和 EfficientDet 等更近期架构中实现成功应用。所以,ConvNet 架构使用 dropout 模式的差异也表明需要针对不同架构进行专门调整。

谷歌:用自动化方式寻找 dropout 模式

最近,来自谷歌大脑的两位研究者通过研究以往工作中的 dropout 模式,发现这些模式不仅难以设计,而且还需要针对每个模型架构、任务和域进行专门调整。

为了解决这些难题,研究者提出了 AutoDropout,它可以实现专用 dropout 模式设计过程的自动化。AutoDropout 的主要贡献是一个新颖的结构化 dropout 模式搜索空间。在这个搜索空间中,人们可以为每个模型架构和任务找到适合的 dropout 模式。此外,该搜索空间还泛化了很多现有的 dropout 模式。

论文链接:https://arxiv.org/pdf/2101.01761.pdf

下图 1 展示了 AutoDropout 搜索空间中的一种 dropout 模式,该模式通过对邻近区域铺展并进行几何转换而生成。得到的 dropout 模式可应用于卷积输出通道(图像识别模型中的常见构建块)。

AutoDropout 的实现包括一个通过强化学习(RL)进行训练的控制器。RL 的奖励是将 dropout 模式应用于目标网络后在感兴趣数据集上的验证性能。研究者设计了一种基于分布式 RL 的搜索算法,从而最大程度地利用任意计算节点集群上的所有可用机器。

实验结果表明,AutoDropout 找到的 dropout 模式能够显著提升常见 ConvNet 和 Transformer 架构的性能。在 ImageNet 数据集上,AutoDropout 将 ResNet-50 的 top-1 准确率从 76.5% 提升至 78.7%,EfficientNet-B7 的性能则从 84.1% 提升至 84.7%。在 CIFAR-10-4000 的半监督设置下,AutoDropout 也将 Wide-ResNet-28-2 的准确率从 94.9% 提升至 95.8%。对于语言建模任务而言,AutoDropout 将 Transformer-XL 在 Penn Treebank 数据集上的困惑度从 56.0 降至 54.9。

此外,在 IWSLT 14 数据集上执行德英翻译任务时,AutoDropout 发现的 dropout 模式将 Transformer 的 BLEU 值从 34.4 提升至 35.8,实现了该数据集上的新 SOTA。在 WMT 2014 英法翻译任务上,使用迁移 dropout 模式后的 BLEU 值也比使用原版 Dropout 的 Transformer 模型提升了 1.9。

虽然 AutoDropout 的搜索成本很高,但它具有一个简单用例,即像使用 AutoAugment 策略来提升 SOTA 模型一样,AutoDropout 发现的 dropout 模式可以被应用到现有 pipeline 中。

方法详解

和之前的很多研究一样,该研究也使用逐元素乘法掩码在搜索空间中表示 dropout 模式。为了弥补训练和推断之间的差距(训练时使用掩码,推断时则不使用),研究者在训练期间将未被丢弃神经元的值进行了恰当地缩放。具体而言,为了在神经网络层 h 应用 dropout 模式,研究者随机生成二进制掩码 m(其形状与 h 相同),然后缩放掩码 m 中的值,并替换 h:

研究者表示,该研究提出的方法是通用的,能够很好地用于 ConvNet 和 Transformer。接下来就来看该方法用于 ConvNet 时的搜索空间,以及如何泛化至 Transformer。

ConvNet 中的 dropout 模式搜索空间

搜索空间中的基本模式是连续矩形(contiguous rectangle)。然后将矩形铺展开得到 dropout 模式。对于 ConvNet,定义基础矩形的超参数是高和宽的大小(size),定义铺展的超参数是步幅(stride)和重复次数(repeat),示例参见下图 2。如果有 C 个通道,则可以采样 C 个单独的 dropout 模式,或者仅采样一个 dropout 模式,然后将其沿着特征维度共享。

那么要在哪里应用 dropout 模式呢?

该研究选择对批归一化层的输出应用 dropout 模式,因为他们在实验中发现,在网络的其他位置应用 dropout 模式通常会导致搜索过程出现不稳定训练。如果 ConvNet 中存在需要正则化的残差连接,则可以选择是否对残差分支应用 dropout 模式。研究者决定将这一决策交给控制器。下图 7 展示了在 ConvNet 中,研究者在批归一化层之后应用 dropout 模式:

控制器模型和搜索算法

研究者使用 Transformer 网络对控制器进行参数化,参见下图 3:

Transformer 中的 dropout 模式搜索空间

Transformer 模型中的中间层通常有三个维度 (N, T, C),其中 N 和 C 是批归一化和通道维度(与 ConvNet 类似),T 表示 token 数,如单词或子词单元。维度 T 的 dropout 模式通过生成四个超参数来实现:size、stride、share_t 和 share_c。size 表示 dropout 模式影响的 token 数;stride 表示 dropout 模式跳过的 token 数;share_t 表示使用相同的噪声掩码或单独的噪声掩码,size 覆盖的所有 token 是否设置为 0;share_c 表示 dropout 模式是否沿着通道维度 C 共享。一旦这四个参数确定了,我们就可以在每一个训练步上采样起始位置,进而应用得到的 dropout 模式。研究者一直重复该模式直到序列结束。下图 4 展示了控制器从搜索空间中采样的 dropout 模式,以及如何将其应用于词序列:

至于在哪里应用 dropout 模式,研究者发现搜索空间中的 dropout 模式可以灵活应用于一个 Transformer 层内的多个子层,于是他们对每个子层分别应用一个 dropout 模式。下图 8 展示了在 Transformer 模型中可以应用 dropout 模式的所有位置:

实验

在实验部分,研究者将 AutoDropout 应用到了 ConvNet 和 Transformer 架构中。对于 ConvNet,研究者分别进行了监督和半监督图像分类实验。对于 Transformer,他们进行了语言模型和机器翻译应用实验。最后,研究者还将本研究的搜索方法与随机搜索进行了对比。

使用 ConvNet 的监督图像分类

下表 1 展示了在 CIFAR-10 和 ImageNet 数据集上,在 ResNet 和 EfficientNet 模型中使用 DropBlock、Stochastic Depth 与 AutoDropout 的对照实验结果。

在 CIFAR-10 数据集上,WRN-28-10 模型使用 AutoDropout 得到的准确率比使用 DropBlock 高出 0.6%,相当于误差减少了 16%。需要注意的是,在该数据集上,与未使用任何正则化的模型相比,DropBlock 并没有出现显著提升,这表明丢弃邻近区域块的想法存在不足。

在 ImageNet 数据集上,与 DropBlock 相比,AutoDropout 将 ResNet-50 的 top-1 准确率提升了 0.4%,将所有 EfficientNet 模型的准确率平均提升了 0.7%。提升程度要高于 DropBlock 在 AmoebaNet 中提升的 0.5%,而且 EfficientNet 基线的准确率要高于 AmoebaNet。

接着,研究者通过结合 AutoDropout 与其他数据增强方法,突破了 WRN28-10 和 ResNet-5 的极限。如下表 2 所示,AutoDropout+RandAugment 在 CIFAR-10 和 ImageNet 数据集上优于现有 SOTA 结果。

使用 ConvNet 的半监督图像分类

研究者将 AutoDropout 应用于无监督数据增强 (UDA)。如表 3 所示,AutoDropout 找到的 dropout 模式使 UDA 在 CIFAR-10 数据集上的性能提升了 0.9%,在 ImageNet 上的 Top-1 准确率提升了 4.1%。

语言模型与机器翻译

研究者将 AutoDropout 应用于 Transformer 模型,结果参见下表 4。从中可以看出,使用 AutoDropout 后模型在 PTB 上获得了最低困惑度。他们还与 Transformer-XL 使用的 Variational Dropout 进行了对比,发现使用 AutoDropout 后困惑度比使用 Variational Dropout 低了 1.1,性能提升显著。

与随机搜索的对比

在下图 5 中,研究者绘制了这两种方法的当前最优性能,并观察了 AutoDropout 和随机搜索之间的实质差异。具体来说,在 CIFAR-10 数据集上,AutoDropout 找到的最佳 dropout 模式要比随机搜索准确率高 0.2%。

© THE END

转载请联系 机器之心 公众号获得授权

投稿或寻求报道:content@jiqizhixin.com

点个在看 paper不断!

Dropout也能自动化?相关推荐

  1. Dropout也能自动化了,谷歌大神Quoc Le等人利用强化学习自动找寻模型专用Dropout...

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要5分钟 Follow小博主,每天更新前沿干货 在机器学习领域里,Dropout 是一个较为重要的方法,其可以暂时丢弃一部分神经元及其连接,进而 ...

  2. Dropout也能自动化了,谷歌Quoc Le等人利用强化学习自动找寻模型专用Dropout

    本文转载自机器之心. 人工智能「我训练我自己」系列又有了新进展. 在机器学习领域里,Dropout 是一个较为重要的方法,其可以暂时丢弃一部分神经元及其连接,进而防止过拟合,同时指数级.高效地连接不同 ...

  3. 谷歌大脑最新研究:用AutoML的方式自动学习Dropout模式,再也不用手动设计

    鱼羊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 深度神经网络往往存在过拟合的问题,需要Dropout.权重衰减这样的正则化方法的加持. 而最近的研究表明,如果对Dropout"剪 ...

  4. 【调参实战】BN和Dropout对小模型有什么影响?全局池化相比全连接有什么劣势?...

    大家好,欢迎来到专栏<调参实战>,虽然当前自动化调参研究越来越火,但那其实只是换了一些参数来调,对参数的理解和调试在机器学习相关任务中是最基本的素质,在这个专栏中我们会带领大家一步一步理解 ...

  5. PaddleNLP新增AutoPrompt自动化提示功能,登顶FewCLUE小样本学习榜单

    近年来,预训练语言模型已逐渐成为NLP任务的主流解决方案.但是在业务场景中,往往会遇到标注数据不足的问题,如何利用少量样本将模型快速迭代至可用状态成为了必要的研究方向. 近期,PaddleNLP团队开 ...

  6. 自动化运维学习--python

    2019独角兽企业重金招聘Python工程师标准>>> 环境搭建 单机环境搭建 安装python apt-get install python python-dev python-s ...

  7. 自动化知识图谱表示:从三元组到子图

    导读: 知识图谱是一种特殊的图结构,它包含了语义信息与图结构信息.它可以被应用在多个领域,如QA问答系统.推荐系统.新药发现.股市预测等.现在无论是学术界还是工业界都陆续提出了自己的知识图谱构建平台. ...

  8. 【论文解读】医学AI论文解读 | 超声心动图在临床中的自动化检测 | Circulation | 2018 | 中英双语...

    参考目录: 0 论文 1 概述 2 pipeline 3 技术细节 3.1 预处理 3.2 卷积网络 3.3 VGG分类网络结构 3.4 图像分割 4 遇到的问题 0 论文 论文是2018年的,发表在 ...

  9. 使用神经网络的自动化特征工程

    如何自动化并极大地改进数据建模中最繁琐的步骤之一 特征工程是生成精确模型的最重要步骤之一.但是没有人喜欢它,因为这个步骤非常繁琐,我坚信任何繁琐的事情都可以自动化.虽然我的解决方案并没有完全消除对手工 ...

最新文章

  1. poj-1159 Palindrome **
  2. python与excel结合能做什么-openpyxl怎样按行和按列读取excel
  3. C++ Primer 5th笔记(chap 18 大型程序工具)内联命名空间 (inline namespace)
  4. atlas安装需要kafka吗_客厅吸顶灯安装方法你知道吗?安装需要注意什么
  5. VisualStudioIDE各个版本大合集分享
  6. 领域驱动设计 pdf_什么是领域驱动设计?
  7. mysql_表_操作
  8. mysql部署jar_mysql+jar踩坑记录
  9. LeetCode 1771. 由子序列构造的最长回文串的长度(最长回文子序)
  10. 763 划分字母区间
  11. c语言将一个实型变量f=55.5678,《C语言程序设计》第2章2 常量和变量
  12. php提示Undefined index的解决方法
  13. python 中文编码乱码问题原理分析及解决思路
  14. centos 7下搭建wiki系统
  15. PHP实现DES加密、解密
  16. 用Python制作游戏外挂(上)
  17. 服务器常见问题:服务器使用过程中感觉不流畅、卡顿
  18. Matlab之生成间距向量函数linspace和logspace
  19. 如何编辑运行HTML网页文件(HTML编辑工具使用介绍)
  20. [论文阅读笔记26]MRC4NER:使用阅读理解方法来解决NER任务

热门文章

  1. C#操作excel(多种方法比较)
  2. 【怎样写代码】工厂三兄弟之抽象工厂模式(四):抽象工厂模式
  3. 前后端分离的探索(三)
  4. 抵御「黄貂鱼」攻击,谷歌使出禁用2G「大招」
  5. 腾讯联合国家天文台启动探星计划,优图AI可提升120倍数据处理效率
  6. 后疫情时代,RTC期待新的场景大爆发
  7. 用 Python 可以实现侧脸转正脸?我也要试一下!
  8. DeeCamp 2020 赛题大公开!快来看你想选哪个
  9. 腾讯优图开源业界首个3D医疗影像大数据预训练模型
  10. 百度研究院再升级,迎来9位世界级科学家