为什么与减少隐藏层中的单元数量相比,dropout 更受青睐?

人工智能 神经网络 机器学习 深度学习 辍学 正则化
2021-11-11 02:54:26

为什么与减少卷积网络隐藏层中的单元数量相比,dropout 更受青睐?

如果大量单位导致过度拟合并丢弃“平均”响应单位,为什么不直接抑制单位呢?

我已经阅读了关于辍学主题的不同问题和答案,包括这些有趣的,什么是“辍学”技术?还有这个我应该删除神经网络的单元还是增加 dropout?,但没有得到我的问题的正确答案。

顺便说一句,Nitish Srivastava 等人的《防止神经网络过度拟合的简单方法》 (A Simple Way to Prevent Neural Networks from Overfitting)(2014 年)被引用为该主题的第一篇,这很奇怪。我刚刚阅读了 2012 年的一篇文章: 通过防止特征检测器的共同适应来改进神经网络

2个回答

Dropout 在单个训练批次更新期间仅忽略一部分单元。每个训练批次都将使用不同的单元组合,这使它们有最好的机会使它们中的那一部分一起工作以进行泛化。请注意,每个单位的权重都会保留下来,并将在选择该单位的下一批中更新。在推理过程中,是的,所有单位都被使用(一个因子应用于激活......定义所用分数的相同因子)......这基本上变成了所用单位的所有不同组合的集合。

与更少的单元相比,更少的单元方法只会了解那些更少的单元可以优化什么。将 dropout 视为具有较少单元的层的集合。(除了层之间存在部分权重共享)

辍学的想法是,在训练时,有一定的概率pi[0,1], 单位(或神经元)i被丢弃,i,即单位的输出i设置为零,使得i在向前和向后(或反向传播)通过(或步骤)期间,不会影响它连接到的其他单元。在每个 mini-batch 中,您通常会随机丢弃不同的单元,因此,在不同的 mini-batch(以及相应的 epoch)中,您并不总是或必然会丢弃相同的单元。

论文的标题通过防止特征检测器的共同适应来改进神经网络强调了 dropout 阻止了单元(特征检测器)的共同适应,因此单元尝试独立于其他单元检测某些特征,从而减少了过度拟合,即也就是说,它提高了神经网络的泛化能力。

在测试时,通常不会掉落任何单元。然而,有一个基于在训练和测试时间应用 dropout的深度高斯过程贝叶斯神经网络的近似。这称为Monte Carlo dropout,或者简称为 MC dropout,其原因可以通过阅读论文Dropout as a Bayesian Approximation: Representing Model Uncertainty in Deep Learning来理解。

也有可能丢弃神经元之间的连接,称为DropConnect,而不是神经元本身。这两种方法略有不同,尽管 DropConnect 可以看作是 dropout 的泛化。在 DropConnect 中,您不会完全关闭单元,而只是关闭某些单元对其他单元的输出的贡献。在辍学中,您完全关闭某些单元。

如果您决定在训练之前确定性地(手动)减少单元的数量,本质上,您将训练一个固定的较小网络,但这不一定会减少过度拟合,或者更准确地说,是减少单元的协同适应。在 dropout 中,您随机选择要删除的单元,因此,在每个 mini-batch(或 epoch,取决于 dropout 的实现),您有效地训练原始神经网络单元的随机子集,因此,它可以被认为是较小的神经网络的集合。

两篇论文通过防止特征检测器的共同适应来改进神经网络(2012)和辍学:防止神经网络过度拟合的简单方法(2014)的作者完全相同,但后一篇论文发表在机器学习杂志上研究,而前者显然没有在任何期刊上发表。事实上,Dropout: A Simple Way to Prevent Neural Networks from Overfitting甚至没有引用通过防止特征检测器的共同适应来改进神经网络,而是引用了Nitish Srivastava的硕士论文Improvement Neural Networks with Dropout (2013),他是dropout 的作者之一。