考虑到辍学会抑制模型中的某些神经元,为什么添加辍学层会改善深度/机器学习性能?


13

如果删除一些神经元会产生更好的性能模型,为什么不首先使用层数更少,神经元更少的简单神经网络呢?为什么要在开始时建立一个更大,更复杂的模型,而在以后取消它的一部分呢?

Answers:


31

辍学的功能是增加模型的鲁棒性,并消除神经元之间的任何简单依赖关系。

神经元仅在通过网络的一次向前和向后传递中才被删除-意味着对于该传递,神经元的权重综合设置为零,因此它们的错误也将被设置为零,这意味着不会更新权重。辍学也可以作为正则化的一种形式,因为它会因某种程度的复杂性而对模型进行惩罚。

我建议阅读Michael Nielsen的《深度学习》书中的“辍学”部分(免费和在线),该书提供了很好的直觉并且还非常有用的图表/说明。他解释说:

辍学是一种完全不同的正则化技术。与L1和L2正则化不同,辍学不依赖于修改成本函数。相反,在辍学中,我们修改了网络本身。

这是一篇不错的总结文章。从那篇文章:

一些观察:

  • 辍学迫使神经网络学习更强大的功能,这些功能可与其他神经元的许多不同随机子集结合使用。
  • 辍学大约会使收敛所需的迭代次数加倍。但是,每个时期的训练时间更少。
  • 对于H个隐藏单元,每个隐藏单元都可以删除,我们有2 ^ H个可能的模型。在测试阶段,将考虑整个网络,并且每次激活都会减少因子p。

想象一下,我要您为我泡一杯茶-您可能总是用右手倒水,用左眼测量水位,然后再用右手用勺子搅动茶。这意味着您的左手和右眼起不到作用。例如,使用辍学将右手绑在背后-迫使您使用左手。现在,当我用一只眼睛或一只手没动了20杯茶后,您会在使用所有可用东西方面得到更好的训练。也许以后您会被迫在一个很小的厨房里泡茶,在那儿只能用左臂使用水壶...并且在使用辍学品后,您会做得到!您对看不见的数据变得更加健壮。


如何确定多类别分类的最佳辍学值?以及如何确定最佳辍学层数?
N.IT

2
@ N.IT-据我所知,除了jsut尝试许多组合之外,没有定义明确的方法可以找到最佳的辍学级别或多少层。与其他正则化和体系结构探索方法一样,通过训练模型并比较训练/验证损失曲线,您可能会获得最佳结果。查看有关该主题的解释
n1k31t4

好答案。为了更具体地说明您的厨房类比,Dropout仅在训练期间使用,而不是在推理期间使用。因此,复杂模型没有被部分利用。
Vaibhav Garg '18

我闭着眼睛打着这个回复。gyes更多的培训需求。nwws ew缝。
VHanded

3

Dropout实际上并不会删除神经元,只是对于给定的数据批次,那些特定的神经元不会发挥任何作用(不会被激活)。

示例-假设有一条8条车道的道路-卡车驶入时,它们通过1、2、4、6、7车道,汽车驶入时,它们通过2、3、4、7、8车道,而自行车驶入,它们通过车道1,2,5,8。因此,无论任何车辆,所有车道都在那里,但仅使用其中一些。

类似地,所有神经元都用于整个模型,但是对于特定的一批数据,仅激活了一部分神经元。而且该模型以后不会缩减,因此模型的复杂性保持不变。

为什么要使用辍学?

如伊恩·古德费洛(Ian Goodfellow)的《深度学习》一书中所述,

辍学比其他标准的计算便宜的正则化器(例如权重衰减,过滤器范数约束和稀疏活动正则化)更有效。

他还说-

辍学的一个优点是它在计算上非常便宜。

辍学的另一个显着优势是,它不会显着限制可以使用的模型或训练过程的类型。它几乎适用于所有使用分布式表示形式的模型,并且可以通过随机梯度下降进行训练。这包括前馈神经网络,概率模型(例如受限的Boltzmann机器)(Srivastava等,2014)和递归神经网络(Bayer和Osendorfer,2014; Pascanu等,2014a)。

这本书说-

核心思想是在层的输出值中引入噪声可以破坏不重要的事件模式,如果不存在噪声,网络将开始记忆该事件模式。


我已经编辑了问题以使用“抑制”而不是“删除”一词。问题仍然存在。到底为什么只使用其中一些,为什么还要建这么多车道?
user781486

@ user781486其中的一部分表示每批数据中有一部分,但是如果考虑整个数据,则将全部使用。就像在我的示例中一样,如果您为每辆车组合了一组车道号,则会使用所有1-8条车道。
安基塞斯

3

另一种查看辍学现象的方法是,在贝叶斯模型中,协变量的系数(即原始协变量的一些复杂的交互项,带有一些复杂的函数转换)就像先验先验的。这是Yarin Gal在其论文中提出的解释(请参阅他的出版物清单)。

这是为什么这样一个简短的挥手说法:

  • 在那些消除了神经元的批次中,特征/协变量的系数(由进入神经元的神经网络中的连接构成)为零(峰值为零)。
  • 在存在神经元的那些批次中,系数不受限制(不适当的平坦先验=平板)。
  • 在所有批次中取平均值,您将获得先验后检验的结果。

为什么我们要先得先得先得呢?它会在没有神经元的神经网络和有神经元的神经网络之间产生贝叶斯模型的平均值。换句话说,它使我们能够表达关于神经网络是否真的需要具有其全部可能的复杂性的不确定性,并适当地考虑了这种不确定性。预测。这解决了中性网络能够过拟合数据的主要问题(当然,这不是实现该目标的唯一可能方法)。


好点子。将更新答案。
比约恩

2

辍学层不加选择地剔除神经元的指定部分,从而降低了所讨论模型的表示能力。这防止网络拟合复杂的非线性决策边界(即数据集中的“噪声”),从而防止(或改善)过度拟合。


0

出于以下原因,辍学有助于提高机器学习模型的性能:

  • 使网络更简单:因此使网络更简单,防止过度拟合。
  • 比使用单个简单网络更好:比手动重新设计一个更简单的网络更好,因为一旦设计了特定的体系结构,就无法在整个训练过程结束之前更改它,即,对于所有时期而言,网络体系结构都是固定的。但是在辍学时期,网络在每个时代都以各种方式变得更加简单。假设有1000个时期,您实际上正在尝试使用1000种类型的简单网络变体。
  • 通过多种方式学习:网络的输入和输出不会改变,唯一的改变就是它们之间的映射。可以想象,网络正在以各种不同的方式学习同一件事。因此,就像这个网络一样,对于我们人类来说,只要我们以不同的方式思考相同的问题,我们就会自动学习对其进行概括,并且我们的整体知识和理解也会有所提高,并且网络也会发生类似的情况。在每个时期的删除过程中,随机权重(从一个神经元到下一层的另一个神经元的连接)被切掉,因此,我们迫使网络使用仍然可用的现有连接进行学习,因此网络正在学习如何从不同角度分析同一问题。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.