多层神经网络在文本、语音和图像处理的多种基准任务上都取得了令人瞩目的效果。尽管如此,这些深层神经网络也会产生难以搜索的高维、非线性超参数空间,进而导致过拟合以及泛化能力差。早期的神经网络使用反向传播算法,它们会由于缺乏足够的数据、梯度损失恢复以及很可能陷入性能较差的局部最小值而失效。深度学习(Hinton et al,2006)引入了一些创新技术来减少、控制这些过拟合和过度参数化问题,包括用线性整流单元(ReLU)来减少连续梯度损失,用 Dropout 技术避免陷入局部最小值,以及通过有效的模型平均技术来增强泛化能力。尽管数据海啸可以为各种各样的分类和回归任务提供大量的数据,在本文中,作者仍将重点讨论深层神经网络的过度参数化问题。Dropout 可以用来缓解过度参数化以及过度参数化引起的深度学习应用过拟合问题,还能够避免陷入性能较差的局部最小值。具体而言,Dropout 实现了一个概率为 p(有偏的 0-1 抽签法)的伯努利随机变量,在每一轮更新时从网络架构中随机删除隐藏单元及其连接,从而产生一个稀疏的网络架构——其中剩余权重被更新并保留到下一个 dropout 步骤中。在学习结束时,通过计算每个权重 p_w_ij 的期望值,重构了深度学习网络,这样的做法近似于对指数级数量的一组神经网络进行模型平均。在大多数情况下,带 Dropout 机制的深度学习能够在常见的基准测试中降低 50% 以上的误差率。
在本文余下的部分中,作者将介绍一种通用类型的 Dropout 技术,它能够在权值级别上进行操作并在每轮更新中注入依赖于梯度的噪声,这种技术被称为随机 delta 规则(SDR,参见 Murray & Andrews, 1991)。SDR 为每个权重实现了一个随机变量,并且为随机变量中的每个参数提供了更新规则,本文使用了带自适应参数的高斯分布(均值为µ_w_ij,标准差为 σ_w_ij)。尽管所有的 SDR 可以作用于任意的随机变量(gamma 分布、beta 分布、二项分布等)。本文将说明,Dropout 是一个带有固定参数 (np, np(1 − p)) 的二项随机变量的特例。最后,作者将用高斯 SDR 在标准基准(例如,CIFAR-10 和 CIFAR-100)中测试 DenseNet 框架,并且说明其相对于二项分布的 Dropout 具有很大的优势。
论文:Dropout is a special case of the stochastic delta rule: faster and more accurate deep learning
论文地址:https://arxiv.org/pdf/1808.03578v1.pdf
摘要:多层神经网络在文本、语音和图像处理的各种基准任务中都取得了令人瞩目的效果。然众所周知,层次模型中的非线性参数估计存在过拟合问题。Dropout(Srivastava, et al 2014, Baldi et al 2016)是一种用来解决这种过拟合以及相关问题(局部最小值、共线性、特征发现等)的方法。这种方法在每轮更新中通过带有概率 p 的伯努利随机变量删除隐藏单元。在本文中,我们说明了 Dropout 是一种更加通用的模型特例,这种被称为随机 delta 规则(「SDR」, Hanson, 1990)的模型于 1990 年被首次发表。SDR 用一个均值为µ_w_ij、标准差为 σ_w_ij 的随机变量将网络中的权值参数化。这些随机变量在每一次前馈激活中通过采样得到,从而建立指数级数量的共享权值的潜在网络。这两个参数都会根据预测误差而更新,从而实现了反映预测误差局部历史的权值噪声注入和高效的模型平均。因此,SDR 对每个权值实现了一个局部梯度依赖的模拟退火,从而收敛为一个贝叶斯最优网络。使用改进版的 DenseNet 在标准基准(CIFAR)上进行测试的结果显示,SDR 相较于标准 dropout 误差率降低了 50% 以上,损失也减少了 50% 以上。此外,SDR 的实现在指定的解决方案上收敛得更快,而且,采用 SDR 的 DenseNet-40 只需要训练 15 个 epoch 就实现误差率为 5% 的目标,而标准 DenseNet-40 实现这一目标需要训练 94 个 epoch。
5 实验结果
表 1:采用 SDR 的 DenseNet 与采用 dropout 的 DenseNet 误差率对比
上述结果表明,在 DenseNet 测试中,用 SDR 替换 dropout 技术会使所有 CIFAR 基准测试的误差减少 50 % 以上,降幅高达 64%。原始 DenseNet 实现的误差结果低于原始 DenseNet 论文中的误差结果,因为我们发现使用更大的批处理会带来更高的总体准确率。
表 2:达到训练误差率为 15%,10%,5% 分别所需的 epoch 数量。
如表 2 所示,使用 SDR 后,在训练中将误差率降到 15%,10%,5% 所需的时间明显缩短。使用了 SDR 的 DenseNet-40 只需要原本 1/6 的 epoch 就能够取得 5% 的误差率,而使用了 SDR 的 DenseNet-100 则只需原来 60% 的 epoch 就能实现 5% 的误差率。
图 3:采用 dropout 的 DenseNet-100 训练 100 个 epoch 之后的准确率(橙色曲线)和采用 SDR 的 DenseNet-100 训练 100 个 epoch 的准确率(蓝色曲线)。比起 dropout,SDR 不仅能够更快地提高训练准确率(训练 17 个 epoch 达到了 96% 的准确率,drouout 达到相同的准确率需要 33 个 epoch),而且还能够在训练 40 个 epoch 后达到 98% 的准确率。
图 4:表示采用 SDR 的 DenseNet-100 的第 21 层第 1 块的权重值频率的直方图,其中每个切片都是来自训练一个 epoch 的 snapshot,而最上面的切片是来自第一个 epoch 的 snapshot。在训练 100 个 epoch 的过程中,随着权值的标准差趋近于零,曲线变窄。
2 随机 delta 规则
众所周知,实际的神经传播包含噪声。如果一个皮质分离的神经元周期性地受到完全相同的刺激,它永远不会产生相同的反应(如烧伤等刺激)。设计 SDR 的部分原因是生物系统中通过神经元传递信号的随机性。显然,平滑的神经速率函数是建立在大量的刺激试验基础上的。这让我们想到了一种实现方法,即两个神经元之间的突触可以用一个具有固定参数的分布来建模。与这种分布相关的随机变量在时域内可能是一个 Gamma 分布(或在分级响应中,参见泊松分布)。在这里,我们假设有一个符合中心极限定理的独立同分布集合,并且采用高斯分布作为一般形式。尽管如此,对于独立成分分析(ICA)来说,同等情况下,长尾分布可能更具优势。
图 1:SDR 采样
如图 1 所示,我们按照图中的方法实现采用均值为 µwij、标准差为 σwij 的高斯随机变量的 SDR 算法。因此,将从高斯随机变量中采样得到每个权值,作为一种前馈运算。实际上,与 Dropout 类似,指数级别的网络集合通过训练期间的更新采样获取。与 Dropout 在这一点上的区别是,SDR 会调整每个权重上附加的隐藏单元的权重和影响,以便在更新时随误差梯度自适应地变化。这里的效果也与 Dropout 相类似,除了每个隐藏单元的响应会分解到权重上(与分类误差对信用分配的影响成比例)。因此,每个权重梯度本身也是基于隐藏单元预测性能的随机变量,它让系统能够:(1)在相同的例程/刺激下接受多值响应假设,(2)保留一个预测历史,与 Dropout 不同,Dropout 是局部的隐藏单元权重,在某个集合上是有条件的,甚至是一个特定的例程(3)可能返回由于贪婪搜索得到的性能较差的局部最小值,但是同时也远离了更好的局部最小值。局部噪声注入的结果对网络的收敛具有全局影响,并且为深度学习提供了更高的搜索效率。最后一个优点是,如 G. Hinton 所说,局部噪声注入可能通过模型平均平滑误差表面的沟壑,使模型能够更快更稳定地收敛到更好的局部最小值。
图 2:Dropout 采样