序言
在深度学习的浩瀚领域中,模型过拟合一直是研究者们面临的挑战之一。当模型在训练集上表现得近乎完美,却难以在未见过的数据(测试集)上保持同样优异的性能时,过拟合现象便悄然发生。为了有效缓解这一问题, Dropout \text{Dropout} Dropout技术应运而生,成为深度学习工具箱中的一把利器。 Dropout \text{Dropout} Dropout的核心思想在于,在训练过程中随机地“丢弃”(即暂时忽略)神经网络中的一部分神经元及其连接,使得每次迭代时网络结构都有所不同。这种“集成学习”的策略迫使网络学习到更加鲁棒、泛化能力更强的特征表示,而非过分依赖于训练数据中的噪声或细节。
Dropout \text{Dropout} Dropout
-
D r o p o u t \bold{Dropout} Dropout(Srivastava et al., 2014) 提供了正则化一大类模型的方法,计算方便但功能强大。
- 第一种近似下, Dropout \text{Dropout} Dropout可以被认为是集成非常多的大神经网络的实用 Bagging \text{Bagging} Bagging方法。
- Bagging涉及训练多个模型,并在每个测试样本上评估多个模型。当每个模型是一个大型神经网络时,这似乎是不切实际的,因为训练和评估这样的网络需要花费很多运行时间和内存。
- 通常只能集成五至十个神经网络,如Szegedy et al. (2014a) 用六个赢得 I L S V R C \bold{ILSVRC} ILSVRC,超过这个数量就会迅速变得难以处理。
-
Dropout \text{Dropout} Dropout提供了一种廉价的 Bagging \text{Bagging} Bagging集成近似,能够训练和评估指数级的神经网络。
-
具体而言, Dropout \text{Dropout} Dropout训练的集成包括所有从基本的基础网络除去非输出单元形成子网络,如在图例1所示。
- 最先进的神经网络基于一系列仿射变换和非线性变换,我们可以将一些单元的输出乘零就能有效地删除一个单元。
- 这个过程需要对模型一些修改,如径向基函数网络,单元的状态和参考值之间存在一定区别。
- 为了简单起见,我们在这里提出乘零的简单 Dropout \text{Dropout} Dropout算法,但是它被简单地修改后,可以与从网络中移除单元的其他操作一起工作。
-
回想一下使用 Bagging \text{Bagging} Bagging学习,我们定义 k k k个不同的模型,从训练集有替换采样构造 k k k个不同的数据集,然后在训练集 i i i上训练模型 i i i。
- Dropout \text{Dropout} Dropout的目标是在指数级数量的神经网络上近似这个过程。
- 具体来说,训练中使用 Dropout \text{Dropout} Dropout,我们使用基于 minibatch \text{minibatch} minibatch的学习算法和小的步长,如梯度下降等。
- 我们每次在 minibatch \text{minibatch} minibatch加载一个样本,然后随机抽样应用于网络中所有输入和隐藏单元的不同二值掩码。
- 对于每个单元,掩码是独立采样的。
- 掩码值为 1 1 1的采样概率(导致包含一个单元)是训练开始前固定一个超参数。
- 它不是模型当前参数值或输入样本的函数。
- 通常一个输入单元包括的概率为 0.8 0.8 0.8,一个隐藏单元包括的概率为 0.5 0.5 0.5。
- 然后,我们运行之前一样的前向传播、反向传播以及学习更新。
- 图例2说明了在 Dropout \text{Dropout} Dropout下的前向传播。
- 更正式地说,假设一个掩码向量 μ \mu μ制定被包括的单元, J ( θ , μ ) J(\boldsymbol{\theta},\boldsymbol{\mu}) J(θ,μ)是由参数 θ \boldsymbol{\theta} θ和掩码 μ \boldsymbol{\mu} μ定义的模型代价。
- 那么 Dropout \text{Dropout} Dropout训练在于最小化 E μ J ( θ , μ ) \mathbb{E}_{\mu}J(\boldsymbol{\theta},\boldsymbol{\mu}) EμJ(θ,μ)。期望包含指数多的想,但我们可以通过抽样 μ \boldsymbol{\mu} μ获得梯度的无偏估计。
-
Dropout \text{Dropout} Dropout训练与 Bagging \text{Bagging} Bagging训练不太一样。
- 在 Bagging \text{Bagging} Bagging的情况下,所有模型是独立的。
- 在 Dropout \text{Dropout} Dropout的情况下,模型是共享参数的,其中每个模型继承的父神经网络参数的不同子集。
- 参数共享使得在有限可用的内存下代表指数数量的模型变得可能。
- 在 Bagging \text{Bagging} Bagging的情况下,每一个模型在其相应训练集上训练到收敛。
- 在 Dropout \text{Dropout} Dropout的情况下,通常大部分模型都没有显式地被训练,通常该模型很大,以致到宇宙毁灭都不能采样所有可能的子网络。取而代之的是,可能的子网络的一小部分训练单个步骤, 参数共享导致剩余的子网络能有好的参数设定。这些是仅有的区别。
- 除了这些, Dropout \text{Dropout} Dropout与 Bagging \text{Bagging} Bagging算法一样。例如,每个子网络中遇到的训练集确实是替换采样的原始训练集的一个子集。
-
Bagging集成必须从所有成员的累积投票做一个预测。在这种背景下,我们将这个过程称为推断 (inference)。
-
目前为止, Dropout \text{Dropout} Dropout与 Bagging \text{Bagging} Bagging的描述中没有要求模型具有明确的概率。
- 现在,我们假定该模型的作用是输出一个概率分布。
- 在 Bagging \text{Bagging} Bagging的情况下,每个模型 i i i产生一个概率分布 p ( i ) ( y ∣ x ) p^{(i)}(y\mid \boldsymbol{x}) p(i)(y∣x)。
- 集成的预测由这些分布的算术平均值给出: 1 k ∑ i = 1 k p ( i ) ( y ∣ x ) — 公式1 \frac{1}{k}\sum\limits_{i=1}^k p^{(i)}(y\mid \boldsymbol{x})\quad\textbf{---\footnotesize{公式1}} k1i=1∑kp(i)(y∣x)—公式1
- 在 Dropout \text{Dropout} Dropout的情况下,通过掩码 μ \boldsymbol{\mu} μ定义每个子模型的概率分布 p ( y ∣ x , μ ) p(y\mid \boldsymbol{x},\boldsymbol{\mu}) p(y∣x,μ)。
- 关于所有掩码的算术平均值由下式给出:
∑ u p ( μ ) p ( y ∣ x , μ ) — 公式2 \sum\limits_u p(\boldsymbol{\mu})p(y\mid \boldsymbol{x},\boldsymbol{\mu})\quad\textbf{---\footnotesize{公式2}} u∑p(μ)p(y∣x,μ)—公式2 - 其中 p ( μ ) p(\boldsymbol{\mu}) p(μ)是训练时采掩码 μ \boldsymbol{\mu} μ的概率分布。
- 关于所有掩码的算术平均值由下式给出:
-
因为这个求和包含指数多的项,除非在该模型的结构允许某种形式的简化,否则是不可能计算的。
- 目前为止,无法得知深度神经网络是否允许任何可行的简化。
- 相反,我们可以通过采样近似推断,即平均许多掩码的输出。
- 即使是 10 − 20 10 − 20 10−20个掩码就足以获得不错的表现。
-
然而,有一个更好的方法能得到一个不错的近似整个集成的预测,且只需一个前向传播的代价。
- 要做到这一点,我们改用集成成员预测分布的几何平均而不是算术平均。
- Warde-Farley et al. (2014) 提出的论点和经验证据表明,在这个情况下几何平均与算术平均表现得差不多。
-
多个概率分布的几何平均不能保证是一个概率分布。为了保证结果是一个概率分布,我们要求没有子模型给某一事件分配概率 0 0 0,并重新标准化所得分布。
- 通过几何平均直接定义的非标准化概率分布由下式给出:
p ~ ensemble ( y ∣ x ) = 2 d ∏ μ p ( y ∣ x , μ ) — 公式3 \tilde{p}_{\text{ensemble}}(y\mid \boldsymbol{x})=2^d \sqrt{\prod\limits_{\boldsymbol{\mu}} p(y\mid \boldsymbol{x},\boldsymbol{\mu})}\quad\textbf{---\footnotesize{公式3}} p~ensemble(y∣x)=2dμ∏p(y∣x,μ)—公式3 - 其中 d d d是可被丢弃的单元数。这里为简化介绍,我们使用均匀分布的 μ \boldsymbol{\mu} μ,但非均匀分布也是可能的。
- 为了作出预测,我们必须重新标准化集成:
p ensemble ( y ∣ x ) = p ~ ensemable ( y ∣ x ) ∑ y ′ p ~ ensemble ( y ′ ∣ x ) — 公式4 p_{\text{ensemble}}(y\mid \boldsymbol{x})=\frac{\tilde{p}_{\text{ensemable}}(y\mid \boldsymbol{x})}{\sum_{y^\prime }\tilde{p}_{\text{ensemble}}(y^\prime\mid \boldsymbol{x})}\quad\textbf{---\footnotesize{公式4}} pensemble(y∣x)=∑y′p~ensemble(y′∣x)p~ensemable(y∣x)—公式4 - 涉及 Dropout \text{Dropout} Dropout的一个重要观点 (Hinton et al., 2012b) 是,我们可以通过评估模型中 p ( y ∣ x ) p(y\mid\boldsymbol{x}) p(y∣x)近似 p ensemble p_{\text{ensemble}} pensemble:该模型具有所有单元,但单元 i i i输出的权重乘以包括单元 i i i的概率。这个修改的动机是捕获从该单元输出的正确期望值。我们把这种方法称为权重比例推断规则(weight scaling inference rule)。
- 目前还没有在深度非线性网络上对这种近似推断规则的准确性作任何理论上的说法,但经验上表现得很好。
- 因为我们通常使用 1 2 \frac{1}{2} 21的包含概率,权重比例规则一般相当于在训练结束后将权重除 2 2 2,然后像平常一样使用模型。实现相同结果的另一种方法是在训练期间将单元的状态乘 2 2 2。无论哪种方式,我们的目标是确保在测试时一个单元的期望总输入是与在训练时该单元的期望总输入是大致相同(即使近半单位在训练时丢失)。
- 通过几何平均直接定义的非标准化概率分布由下式给出:
-
对许多不具有非线性隐藏单元的模型族,权重比例推断规则是精确的。
- 举个简单的例子,考虑 softmax \text{softmax} softmax函数回归分类,其中由向量 v \bold{v} v表示 n n n个输入变量:
P ( y = y ∣ v ) = softmax ( W ⊤ v + b ) y — 公式5 P(\text{y}=y\mid \bold{v})=\text{softmax}(\boldsymbol{W}^\top \bold{v}+\boldsymbol{b})_y \quad\textbf{---\footnotesize{公式5}} P(y=y∣v)=softmax(W⊤v+b)y—公式5 - 我们可以根据二值向量 d \boldsymbol{d} d逐元素的乘法将一类子模型进行索引:
P ( y = y ∣ v ; d ) = softmax ( W ⊤ ( d ⊙ v ) + b ) y — 公式6 P(\text{y}=y\mid \bold{v};\boldsymbol{d})=\text{softmax}(\boldsymbol{W}^\top (\boldsymbol{d}\odot\bold{v})+\boldsymbol{b})_y \quad\textbf{---\footnotesize{公式6}} P(y=y∣v;d)=softmax(W⊤(d⊙v)+b)y—公式6 - 集成预测器被定义为重新标准化所有集成成员预测的几何平均:
P ensemble ( y = y ∣ v ) = p ~ ensemable ( y ∣ v ) ∑ y ′ p ~ ensemble ( y ′ ∣ v ) — 公式7 P_{\text{ensemble}}(\text{y}=y\mid \bold{v})=\frac{\tilde{p}_{\text{ensemable}}(y\mid \bold{v})}{\sum_{y^\prime }\tilde{p}_{\text{ensemble}}(y^\prime\mid \bold{v})}\quad\textbf{---\footnotesize{公式7}} Pensemble(y=y∣v)=∑y′p~ensemble(y′∣v)p~ensemable(y∣v)—公式7 - 其中, p ~ ensemable ( y = y ∣ v ) = 2 n ∏ d ∈ { 0 , 1 } n P ( y = y ∣ v ; d ) — 公式7 \tilde{p}_{\text{ensemable}}(\text{y}=y\mid \bold{v})=2^n\sqrt{\prod\limits_{\boldsymbol{d}\in\{0,1\}^n}P(\text{y}=y\mid \bold{v};\boldsymbol{d})}\quad\textbf{---\footnotesize{公式7}} p~ensemable(y=y∣v)=2nd∈{0,1}n∏P(y=y∣v;d)—公式7
- 为了证明权重比例推断规则是精确的,我们简化 p ~ ensemable \tilde{p}_{\text{ensemable}} p~ensemable:
{ p ~ ensemable ( y = y ∣ v ) = 2 n ∏ d ∈ { 0 , 1 } n P ( y = y ∣ v ; d ) — 公式8 = 2 n ∏ d ∈ { 0 , 1 } n softmax ( W ⊤ ( d ⊙ v ) + b ) y — 公式9 = 2 n ∏ d ∈ { 0 , 1 } n e ( W y , : ⊤ ( d ⊙ v ) + b y ) ∑ y ′ e ( W y ′ , : ⊤ ( d ⊙ v ) + b y ′ ) — 公式10 = 2 n ∏ d ∈ { 0 , 1 } n e ( W y , : ⊤ ( d ⊙ v ) + b y ) 2 n ∏ d ∈ { 0 , 1 } n ∑ y ′ e ( W y ′ , : ⊤ ( d ⊙ v ) + b y ′ ) — 公式11 \begin{cases}\begin{aligned}\tilde{p}_{\text{ensemable}}(\text{y}=y\mid \bold{v})&=2^n\sqrt{\prod\limits_{\boldsymbol{d}\in\{0,1\}^n}P(\text{y}=y\mid \bold{v};\boldsymbol{d})} &\quad\textbf{---\footnotesize{公式8}}\\ &=2^n\sqrt{\prod\limits_{\boldsymbol{d}\in\{0,1\}^n} \text{softmax}(\boldsymbol{W}^\top (\boldsymbol{d}\odot\bold{v})+\boldsymbol{b})_y}&\quad\textbf{---\footnotesize{公式9}}\\ &=2^n\sqrt{\prod\limits_{\boldsymbol{d}\in\{0,1\}^n} \frac{e^{(\boldsymbol{W}_{y,:}^\top(\boldsymbol{d}\odot \bold{v})+\boldsymbol{b}_y)}}{\sum_{y^\prime} e^{(\boldsymbol{W}_{y^\prime,:}^\top(\boldsymbol{d}\odot\bold{v})+\boldsymbol{b}_y^\prime)}}} &\quad\textbf{---\footnotesize{公式10}}\\ &=\frac{2^n\sqrt{\prod_{\boldsymbol{d}\in\{0,1\}^n}e^{(\boldsymbol{W}_{y,:}^\top(\boldsymbol{d}\odot \bold{v})+\boldsymbol{b}_y)}} } {2^n\sqrt{\prod_{\boldsymbol{d}\in\{0,1\}^n}}\sum_{y^\prime} e^{(\boldsymbol{W}_{y^\prime,:}^\top(\boldsymbol{d}\odot\bold{v})+\boldsymbol{b}_y^\prime)}}&\quad\textbf{---\footnotesize{公式11}}\end{aligned}\end{cases} ⎩ ⎨ ⎧p~ensemable(y=y∣v)=2nd∈{0,1}n∏P(y=y∣v;d)=2nd∈{0,1}n∏softmax(W⊤(d⊙v)+b)y=2nd∈{0,1}n∏∑y′e(Wy′,:⊤(d⊙v)+by′)e(Wy,:⊤(d⊙v)+by)=2n∏d∈{0,1}n∑y′e(Wy′,:⊤(d⊙v)+by′)2n∏d∈{0,1}ne(Wy,:⊤(d⊙v)+by)—公式8—公式9—公式10—公式11 - 由于 P ~ \tilde{P} P~将被标准化,我们可以放心地忽略那些相对 y y y不变的乘法:
{ p ~ ensemable ( y = y ∣ v ) ∝ 2 n ∏ d ∈ { 0 , 1 } n e ( W y , : ⊤ ( d ⊙ v ) + b y ) — 公式12 = e ( 1 2 n ∑ d ∈ { 0 , 1 } n W y , : ⊤ ( d ⊙ v ) + b y ) — 公式13 = e ( 1 2 W y , : ⊤ v + b y ) — 公式14 \begin{cases}\begin{aligned}\tilde{p}_{\text{ensemable}}(\text{y}=y\mid \bold{v})&\propto 2^n\sqrt{\prod_{\boldsymbol{d}\in\{0,1\}^n}e^{(\boldsymbol{W}_{y,:}^\top(\boldsymbol{d}\odot \bold{v})+\boldsymbol{b}_y)}} &\quad\textbf{---\footnotesize{公式12}}\\ &=e^{\left(\frac{1}{2^n} \sum\limits_{\boldsymbol{d}\in\{0,1\}^n} \boldsymbol{W}_{y,:}^\top(\boldsymbol{d}\odot\bold{v})+\boldsymbol{b}_y \right)} &\quad\textbf{---\footnotesize{公式13}}\\ &=e^{\left(\frac{1}{2} \boldsymbol{W}_{y,:}^\top\bold{v}+\boldsymbol{b}_y\right)} &\quad\textbf{---\footnotesize{公式14}} \end{aligned}\end{cases} ⎩ ⎨ ⎧p~ensemable(y=y∣v)∝2nd∈{0,1}n∏e(Wy,:⊤(d⊙v)+by)=e(2n1d∈{0,1}n∑Wy,:⊤(d⊙v)+by)=e(21Wy,:⊤v+by)—公式12—公式13—公式14 - 将其代入公式7,我们得到了一个权重 1 2 W \frac{1}{2}\boldsymbol{W} 21W的 softmax \text{softmax} softmax函数分类器。
- 举个简单的例子,考虑 softmax \text{softmax} softmax函数回归分类,其中由向量 v \bold{v} v表示 n n n个输入变量:
-
权重比例推断规则在其他设定下也是精确的,包括条件正态输出的回归网络以及那些隐藏层不包含非线性的深度网络。然而,权重比例推断规则对具有非线性的深度模型仅仅是一个近似。虽然这个近似尚未有理论上的分析,但在实践中往往效果很好。 Goodfellow et al. (2013b) 实验发现,集成预测权重比例推断规则可以比蒙特卡罗近似工作得更好(在分类精度方面)。即使允许蒙特卡罗近似采样多达 1000 1000 1000子网络时也比不过。 Gal and Ghahramani (2015) 发现一些模型可以通过二十个样本和蒙特卡罗近似获得更好的分类精度。似乎推断近似的最佳选择是与问题相关的。
-
Srivastava et al. (2014) 显示, Dropout \text{Dropout} Dropout比其他标准的计算开销小的正则化项,如权重衰减、过滤器范数约束和稀疏激活的正则化更有效。 Dropout \text{Dropout} Dropout也可以与其他形式的正则化合并,得到进一步的提升。
-
计算方便是 Dropout \text{Dropout} Dropout的一个优点。训练过程中使用 Dropout \text{Dropout} Dropout产生 n n n个随机二进制数与状态相乘,每个样本每次更新只需 O ( n ) \Omicron(n) O(n)的计算复杂度。根据实现,也可能需要 O ( n ) \Omicron(n) O(n)的存储空间来持续保存这些二进制数(直到反向传播阶段)。使用训练好的模型推断时,计算每个样本的代价是与不使用 Dropout \text{Dropout} Dropout一样的,尽管我们必须在开始运行推断前将权重除以 2 2 2。
-
Dropout \text{Dropout} Dropout的另一个显著优点是不怎么限制适用的模型或训练过程。几乎在所有使用分布式表示且可以用随机梯度下降训练的模型上都表现很好。包括前馈神经网络、概率模型,如受限玻尔兹曼机(Srivastava et al., 2014),以及循环神经网络(Bayer and Osendorfer, 2014; Pascanu et al., 2014a)。许多其他差不多强大正则化策略对模型结构的限制更严格。
-
虽然 Dropout \text{Dropout} Dropout在特定模型上每一步的代价是微不足道的,但在一个完整的系统使用 Dropout \text{Dropout} Dropout的代价可能非常显著。因为 Dropout \text{Dropout} Dropout是一个正则化技术,它减少了模型的有效容量。为了抵消这种影响,我们必须增大模型规模。不出意外的话,使用 Dropout \text{Dropout} Dropout时最佳验证集的误差会低很多,但这是以更大的模型和更多训练算法的迭代次数为代价换来的。对于非常大的数据集,正则化带来的泛化误差减少得很小。在这些情况下,使用 Dropout \text{Dropout} Dropout和更大模型的计算代价可能超过正则化带来的好处。
-
只有极少的训练样本可用时, Dropout \text{Dropout} Dropout不会很有效。在只有不到 5000 5000 5000的样本的Alternative Splicing数据集上 (Xiong et al., 2011),贝叶斯神经网络 (Neal, 1996)比 Dropout \text{Dropout} Dropout表现更好 (Srivastava et al., 2014)。当有其他未分类的数据可用时,无监督特征学习比 Dropout \text{Dropout} Dropout更有优势。
-
Wager et al. (2013) 表明,当 Dropout \text{Dropout} Dropout作用于线性回归时,相当于每个输入特征
具有不同权重衰减系数的 L 2 L^2 L2权重衰减。每个特征的权重衰减系数的大小是由其方差来确定。其他线性模型有类似的结果。而对于深度模型, Dropout \text{Dropout} Dropoutt与权重衰减是不等同的。 -
使用 Dropout \text{Dropout} Dropout训练时的随机性不是这个方法成功的必要条件。它仅仅是近似所有子模型总和的一个方法。 Wang and Manning (2013) 导出近似这种边缘分布的解析解。他们的近似被称为快速 Dropout \text{Dropout} Dropout(fast dropout),由于梯度计算中的随机性减小导致更快的收敛时间。这种方法也可以在测试时应用,比权重比例推断规则更合理地(但计算也更昂贵)近似所有子网络的平均。 快速 Dropout在小神经网络上的性能几乎与标准的 Dropout \text{Dropout} Dropout相当,但在大问题上尚未产生显著地改善或尚未应用。
-
正如随机性对实现 Dropout \text{Dropout} Dropout的正则化效果不是必要的,这也不是充分的。为了证明这一点, Warde-Farley et al. (2014) 使用一种称为 Dropout Boosting \text{Dropout Boosting} Dropout Boosting (Dropout Boosting) 的方法设计了一个对照实验,与传统 Dropout \text{Dropout} Dropout方法完全相同的噪声掩码,但缺乏正则化效果。 Dropout Boosting \text{Dropout Boosting} Dropout Boosting训练整个集成以最大化训练集上的似然。在相同意义上,传统的 Dropout \text{Dropout} Dropout类似于 Bagging \text{Bagging} Bagging,这种方式类似于 Bagging \text{Bagging} Bagging。如预期一样,比较单一模型训练整个网络的情况, Dropout Boosting \text{Dropout Boosting} Dropout Boosting几乎没有正则化效果。这表明, Dropout Boosting \text{Dropout Boosting} Dropout Boosting的解释超过 Dropout \text{Dropout} Dropout作为稳健性噪音的解释。当随机抽样的集成成员相互独立地训练好后, Bagging \text{Bagging} Bagging集成的正则化效果才能达到。
-
Dropout \text{Dropout} Dropout启发其他以随机方法训练指数量级的共享权重的集成。 DropConnect \text{DropConnect} DropConnect是 Dropout \text{Dropout} Dropout的一个特殊情况,其中一个标量权重和单个隐藏单元状态之间的每个乘积被认为是可以丢弃的一个单元 (Wan et al., 2013)。随机池化是构造卷积神经网络集成的一种随机池化的形式,其中每个卷积网络参与每个特征图的不同空间位置。目前为止, Dropout \text{Dropout} Dropout仍然是最广泛使用的隐式集成方法。
-
关于 Dropout \text{Dropout} Dropout的一个重要见解是,通过随机行为训练网络并平均多个随机决定进行预测,通过参数共享实现了 Bagging \text{Bagging} Bagging的一种形式。早些时候,我们将 Dropout \text{Dropout} Dropout描述为通过包括或排除单元形成模型集成的 Bagging \text{Bagging} Bagging。然而,这种参数共享策略不一定要基于包括和排除。原则上,任何一种随机的修改都是可接受的。在实践中,我们必须选择能让神经网络能够学习对抗的修改类型。理想情况下,我们也应该使用可以快速近似推断的模型族。我们可以认为由向量 μ \boldsymbol{\mu} μ参数化的任何形式的修改,是对于 μ \boldsymbol{\mu} μ所有可能的值训练 p ( y ∣ x , μ ) p(y\mid \boldsymbol{x},\boldsymbol{\mu}) p(y∣x,μ)的集成。这里不要求 μ \boldsymbol{\mu} μ具有有限数量的值。例如, μ \boldsymbol{\mu} μ可以是实值。Srivastava et al. (2014) 表明,权重乘以 μ ∼ N ( 1 , I ) \boldsymbol{\mu}\sim\mathcal{N}(\bold{1},\boldsymbol{I}) μ∼N(1,I)比基于二值掩码 Dropout \text{Dropout} Dropout表现更好。由于 E [ μ ] = 1 \mathbb{E}[\boldsymbol{\mu}]=1 E[μ]=1,标准网络自动实现集成的近似推断,而不需要权重比例推断规则。
-
目前为止,我们介绍了 Dropout \text{Dropout} Dropout纯粹作为一种高效近似 Bagging \text{Bagging} Bagging的方法。然而,有比这更进一步的 Dropout \text{Dropout} Dropout观点。 Dropout \text{Dropout} Dropout不仅仅是训练一个 Bagging \text{Bagging} Bagging的集成模型,并且是共享隐藏单元的集成模型。这意味着无论其他隐藏单元是否在模型中,每个隐藏单元必须都能够表现良好。 隐藏单元必须准备好进行模型之间的交换和互换。Hintonet al. (2012c) 由生物学的想法受到启发:有性繁殖涉及到两个不同生物体之间交换基因,进化产生的压力使得基因不仅是良好的而且要准备好不同有机体之间的交换。这样的基因和这些特点对环境的变化是非常稳健的,因为它们一定会正确适应任何一个有机体或模型不寻常的特性。因此 Dropout \text{Dropout} Dropout正则化每个隐藏单元不仅是一个很好的特征,更要在许多情况下良好的特征。 Warde-Farley et al. (2014) 将 Dropout \text{Dropout} Dropout与大集成的训练相比并得出结论:相比独立模型的集成获得的泛化误差, Dropout \text{Dropout} Dropout会提供的额外改进。
-
Dropout \text{Dropout} Dropout强大的大部分是由于施加到隐藏单元的掩码噪声,了解这一事实是重要的。这可以看作是对输入内容的信息高度智能化、自适应破坏的一种形式,而不是对输入原始值的破坏。例如,如果模型学得通过鼻检测脸的隐藏单元 h i h_i hi,那么丢失 h i h_i hi对应于擦除图像中有鼻子的信息。模型必须学习另一种 h i h_i hi,要么是鼻子存在的冗余编码,要么是脸部的另一特征,如嘴。传统的噪声注入技术,在输入端加非结构化的噪声不能够随机地从脸部图像中抹去关于鼻子的信息,除非噪声的幅度大到几乎能抹去图像中所有的信息。破坏提取的特征而不是原始值,让破坏过程充分利用该模型迄今获得的关于输入分布的所有知识。
-
Dropout \text{Dropout} Dropout的另一个重要方面是噪声是乘性的。如果是固定规模的加性噪声,那么加了噪声 ϵ \epsilon ϵ的整流线性隐藏单元可以简单地学会使 h i h_i hi变得很大(使增加的噪声 ϵ \epsilon ϵ变得不显著)。乘性噪声不允许这样病态地解决噪声鲁棒性问题。
-
另一种深度学习算法—— batch normalization \text{batch normalization} batch normalization,在训练时向隐藏单元引入加性和
乘性噪声重参数化模型。 batch normalization \text{batch normalization} batch normalization的主要目的是改善优化,但噪音具有正
则化的效果,有时使 Dropout \text{Dropout} Dropout变得没有必要。 batch normalization \text{batch normalization} batch normalization将会在后续篇章中更详细地讨论。 -
图例1: Dropout \text{Dropout} Dropout训练由所有子网络组成的,其中子网络通过从基本网络中删除非输出单元构建。
-
图例1说明:
- 我们从具有两个可见单元和两个隐藏单元的基本网络开始。这四个单元有十六个可能的子集。
- 右图展示了从原始网络中丢弃不同的单元子集而形成的所有十六个子网络。
- 在这个小例子中,所得到的大部分网络没有输入单元或没有从输入连接到输出的路径。当层较宽时,丢弃所有从输入到输出的可能路径的概率变小,所以这个问题对于层较宽的网络不是很重要。
- 图例2:在使用 Dropout \text{Dropout} Dropout的前馈网络中前向传播的示例
- 图例2说明:
- 顶部图:
- 我们使用具有两个输入单元,具有两个隐藏单元的隐藏层以及一个输出单元的前馈网络。
- 底部图:
- 为了执行具有 Dropout \text{Dropout} Dropout的前向传播,我们随机地对向量 μ \boldsymbol{\mu} μ进行采样,其中网络中的每个输入或隐藏单元对应一项。
- μ \boldsymbol{\mu} μ中的每项都是二值的且独立于其他项采样。
- 每项为 1 1 1的概率是超参数,对于隐藏层通常为 0.5 0.5 0.5,对于输入通常为 0.8 0.8 0.8。
- 网络中的每个单元乘以相应的掩码,然后正常地继续通过网络的其余部分前向传播。
- 这相当于从图例1中随机选择一个子网络并通过它前向传播。
- 顶部图:
总结
Dropout \text{Dropout} Dropout技术的引入,不仅显著提升了深度学习模型的泛化能力,还促进了神经网络结构设计的创新。通过减少神经元间的共适应性, Dropout \text{Dropout} Dropout鼓励网络中的每个神经元学习更为独立的特征,从而在整体层面构建出更为灵活、适应性更强的模型。此外, Dropout \text{Dropout} Dropout作为一种正则化手段,其简单而高效的特点使得它广泛应用于各种深度学习架构中,从基础的卷积神经网络到复杂的循环神经网络,均可见其身影。随着深度学习技术的不断发展, Dropout \text{Dropout} Dropout及其变种(如 DropConnect \text{DropConnect} DropConnect、 Spatial Dropout \text{Spatial Dropout} Spatial Dropout等)将继续在提升模型性能、降低过拟合风险方面发挥重要作用,推动人工智能领域迈向新的高度。
往期内容回顾
深度学习中的正则化技术 - Bagging和其他集成方法篇