Answers:
辍学的功能是增加模型的鲁棒性,并消除神经元之间的任何简单依赖关系。
神经元仅在通过网络的一次向前和向后传递中才被删除-意味着对于该传递,神经元的权重综合设置为零,因此它们的错误也将被设置为零,这意味着不会更新权重。辍学也可以作为正则化的一种形式,因为它会因某种程度的复杂性而对模型进行惩罚。
我建议阅读Michael Nielsen的《深度学习》书中的“辍学”部分(免费和在线),该书提供了很好的直觉并且还非常有用的图表/说明。他解释说:
辍学是一种完全不同的正则化技术。与L1和L2正则化不同,辍学不依赖于修改成本函数。相反,在辍学中,我们修改了网络本身。
这是一篇不错的总结文章。从那篇文章:
一些观察:
- 辍学迫使神经网络学习更强大的功能,这些功能可与其他神经元的许多不同随机子集结合使用。
- 辍学大约会使收敛所需的迭代次数加倍。但是,每个时期的训练时间更少。
- 对于H个隐藏单元,每个隐藏单元都可以删除,我们有2 ^ H个可能的模型。在测试阶段,将考虑整个网络,并且每次激活都会减少因子p。
想象一下,我要您为我泡一杯茶-您可能总是用右手倒水,用左眼测量水位,然后再用右手用勺子搅动茶。这意味着您的左手和右眼起不到作用。例如,使用辍学将右手绑在背后-迫使您使用左手。现在,当我用一只眼睛或一只手没动了20杯茶后,您会在使用所有可用东西方面得到更好的训练。也许以后您会被迫在一个很小的厨房里泡茶,在那儿只能用左臂使用水壶...并且在使用辍学品后,您会做得到!您对看不见的数据变得更加健壮。
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)。
这本书说-
核心思想是在层的输出值中引入噪声可以破坏不重要的事件模式,如果不存在噪声,网络将开始记忆该事件模式。
另一种查看辍学现象的方法是,在贝叶斯模型中,协变量的系数(即原始协变量的一些复杂的交互项,带有一些复杂的函数转换)就像先验先验的。这是Yarin Gal在其论文中提出的解释(请参阅他的出版物清单)。
这是为什么这样一个简短的挥手说法:
为什么我们要先得先得先得呢?它会在没有神经元的神经网络和有神经元的神经网络之间产生贝叶斯模型的平均值。换句话说,它使我们能够表达关于神经网络是否真的需要具有其全部可能的复杂性的不确定性,并适当地考虑了这种不确定性。预测。这解决了中性网络能够过拟合数据的主要问题(当然,这不是实现该目标的唯一可能方法)。
出于以下原因,辍学有助于提高机器学习模型的性能: