华为诺亚方舟实验室开源Disout算法,论文发表AAAI 2020,作者来自北京大学、华为诺亚和悉尼大学。该算法在ImageNet上训练的ResNet-50可以达到78.76%的准确率,超越谷歌Dropout系列方法。
开源链接:
https://github.com/huawei-noah/Disoutgithub.com
论文链接:
https://www.aaai.org/Papers/AAAI/2020GB/AAAI-TangY.402.pdfwww.aaai.org
研究背景
此前,谷歌申请Dropout专利,引起了业界震动与恐慌。Dropout作为近年来深度学习重要突破之一,被广泛应用到现有的各种深度学习模型与框架当中,使用Dropout方法能够在计算机视觉、自然语言处理、语音处理等多种任务产生正面效果,提升任务性能。因此,谷歌针对这样一项广泛使用并且十分有效的技术申请专利,无疑对众多科技公司带来了巨大的影响。
此篇论文针对Dropout(Drop output: 对输出特征进行丢弃),提出一种新型可替换方案Disout(Distort output: 对输出特征进行扰动)。该方法通过研究特征图扰动来增强深度神经网络的泛化能力的方法。根据网络中间层的Rademacher 复杂度(ERC),确定给定深度神经网络的泛化误差上界。将扰动引入特征图来降低网络的Rademacher复杂度,从而提高其泛化能力。该技术不但在传统视觉任务上表现优异,超越谷歌Dropout性能,在自然语言处理任务以及语音处理任务上同样具备有效性。
泛化理论
泛化理研究的是期望风险与经验风险之间的关系。以图像分类任务为例,总体期望风险 和训练集上的经验风险 是:
Rademacher经验复杂度(ERC)被广泛用于量化期望风险和经验风险之间的差距,它的定义如定义1所示。
定义1给定由分布 成的 N 个实例 的给定训练数据集,网络 的经验Rademacher复杂度定义为:
其中Rademacher变量是 中的独立统一随机变量。 使用经验Rademacher复杂度和MaDiarmid不等式,可以通过定理1得出预期风险的上限。
定理1 给定 ,对任意 ,至少以概率,对于所有的 ,满足
根据定理1,我们可以发现,期望风险和经验风险之间的差距可以借助特定神经网络和数据集上的经验Rademacher复杂度加以限制。 直接计算ERC比较难,因此通常在训练阶段使用ERC的上限或近似值来获得具有更好泛化的模型。
特征图扰动
我们通过减少网络的ERC来学习特征图的扰动值,不是固定扰动值。 通常,对具有输入数据 的第 层的输出特征所采用的干扰操作可以表示为:
是特征图 上的扰动。上面的等式中扰动的形式是在ERC指导下自行学习得到的。由于ERC是通过网络最后一层的输出计算出来的,直接使用它来指导扰动将非常困难。因此,我们使用以下定理,通过网络中间层的输出来间接表达网络的ERC:
定理 2 用 表示权重矩阵的第 k 行 是向量的-norm。假设,网络输出的ERC 可以被中间特征的ERC限制:
o和 f 分别是在激活函数之前和之后的特征图。令:
可以被计算为:
一个理想的 将减小下一层的ERC并保持网络的表示能力。 最优的扰动可以通过求解下式得到
其中,
是平衡目标函数和扰动强度的超参。直观地, 过于剧烈的扰动将破坏原始的特征并降低网络的表示能力;而过小的扰动不能很好地起到正则化效果。
实验
- 全连接层实验
表1总结了不同方法在CIFAR-10和CIFAR-100的测试准确率。在两个数据集上,所提出的特征图扰动方法都优于对比方法。在特征图扰动下训练的CNN达到85.24%的准确度,相比于最新的RDdrop方法,测试准确率分别在CIFAR-10和CIFAR-100数据集上提高了2.13%和1.58%。 结果表明,提出的Disout方法可以有效地降低经验Rademacher的复杂度,同时保留模型的表示能力,从而具有较好的测试性能。
- 卷积层实验
CIFAR-10和CIFAR-100数据集的结果如表2所示。该方法优于DropBlock方法,性能分别提高了0.32%和0.63%。 结果表明,提出的Disout方法可以很好地适用于卷积层,提高深度神经网络的性能。
- ImageNet 数据集实验
表3显示,提出的特征扰动方法不仅可以替换常规的dropout方法提高深度神经网络的性能,而且可以提升最近提出的Dropblock方法的性能。 结果显示,与传统的dropout方法相比,Disout将准确性从76.80%提高到77.71%,Block Disout方法达到了78.76%的top-1准确率,大大超越了其他现有技术。 结果表明我们的方法可以在提高泛化能力并保留原始特征的有用信息。
- 文本数据集实验
进一步的,我们将本方法作用于循环神经网络(RNN)中,并在文本数据集IMDB上进行了实验,结果如表4所示。
- 语音数据集实验
我们还在语音数据集UrbanSound8k上进行了实验,结果如表5所示:
- 对比实验
Block Disout与DropBlock。在CIFAR-100数据集上,我们的方法(红色)和Dropblock方法(绿色)的测试准确率随扰动概率(drop概率)p的变化如图1(a)所示。降低扰动概率p可以增强正则化的效果,将p设置在适当范围内可以提高测试精度。我们的方法在较大范围内都比DropBlock具有更好的性能,这证明了Disout方法的优越性。
测试准确率与训练准确率差距。图1(b)和(c)显示了当设置不同的扰动概率 和步长 时,测试准确度(红色)以及训练和测试准确性之间的准确度差距(蓝色)如何变化。 较大的表示特征图的更多位置会扰动,而控制每个位置的扰动强度。 或的增加会带来更强的正则化,从而导致训练和测试准确率之间的差距变小,这意味着更强的泛化能力。 但是,干扰太多的位置或干扰强度太大的位置可能会破坏表示能力,并对最终测试准确率产生负面影响。
推荐阅读
文章首发知乎,更多深度模型压缩相关的文章请关注深度学习压缩模型论文专栏。