深度学习网络大杀器之Dropout——深入解析Dropout

过拟合深度神经网DNN)中的一个常见问题:模型只学会训练集分类这些年提出的许多拟合问题解决方案;其中dropout具有简单并取得良好的结果

Dropout

深度学习网络大杀器之Dropout——深入解析Dropout

上图为Dropout的可视化表示,左边是应用Dropout之前的网络,右边是应用了Dropout的同一个网络。

Dropout的思想是训整体DNN,并平均整个集合的结果,而不是训练单个DNNDNNs以概率P舍弃部分神经元其它神经元以概率q=1-p被保留舍去的神经元的输出都被设置为零。

引述作者

在标准神经网络中,每个参数的导数告诉应该如何改变,以致损失函数最后被减少因此神经元可以通过这种方式修正其他单的错误。但这可能导致复杂的协调,反过来导致过拟合,因为这些协调没有推广到未知数据。Dropout通过使其他隐藏单元存在不可靠来防止共拟合。

简而言之:Dropout在实践很好工作因为在训阶段阻止神经元的共适应。

Dropout如何工作

Dropout以概率p舍弃神经元并让其它神经元以概率q=1-p保留。每个神经元被关闭的概率是相同的。这意味着:

假设:

h(x)=xW+bdi维的输入xdh维输出空间上的线性投影;

a(h)是激活函数

在训练阶段中,将假设的投影作为修改的激活函数:

深度学习网络大杀器之Dropout——深入解析Dropout

其中D=(X1,...,Xdh)dh维的伯努利变量Xi伯努利随机变量具有以下概率质量分布:

深度学习网络大杀器之Dropout——深入解析Dropout

其中k是可能的输出。

Dropout应用在第i个神经元上:

深度学习网络大杀器之Dropout——深入解析Dropout

其中P(Xi=0)=p

由于在训练阶段神经元保持q概率,在测试阶段必须仿真出在训练阶段使用的网络集的行为。

为此,作者建议通过系数q来缩放激活函数:

训练阶段深度学习网络大杀器之Dropout——深入解析Dropout

测试阶段深度学习网络大杀器之Dropout——深入解析Dropout

Inverted Dropout

dropout稍微不同。该方法在训练阶段期间对激活值进行缩放,而测试阶段保持不变。

倒数Dropout的比例因子为深度学习网络大杀器之Dropout——深入解析Dropout,因此:

训练阶段:深度学习网络大杀器之Dropout——深入解析Dropout

测试阶段深度学习网络大杀器之Dropout——深入解析Dropout

Inverted DropoutDropout在各种深度学习框架实践中实现的,因为它有助于一次性定义模型,并只需更改参数(保持/舍弃概率)就可以在同一模型上运行训练和测试过程

一组神经元的Dropout

n个神经元的第h层在每个训练步骤中可以被看作是n个伯努利实验的集合,每个成功的概率等于p

因此舍弃部分神经元后h层的输出等于:

深度学习网络大杀器之Dropout——深入解析Dropout

因为每一个神经元建模为伯努利随机变量,且所有这些随机变量是独立同分布的,舍去神经元的总数也是随机变量,称为二项式:

深度学习网络大杀器之Dropout——深入解析Dropout

n次尝试中有k次成功的概率由概率质量分布给出:

深度学习网络大杀器之Dropout——深入解析Dropout

当使用dropout,定义了一个固定的舍去概率p对于选定的层,成比例数量的神经元被舍弃

深度学习网络大杀器之Dropout——深入解析Dropout

图可以看出,无论p是多少舍去的平均神经元数量均衡为np

深度学习网络大杀器之Dropout——深入解析Dropout

此外可以注意到,围绕在p = 0.5附近的分布对称。

Dropout与其它正则化

Dropout通常使用L2归一化以及其他参数约束技术。正则化有助于保持较小的模型参数

L2归一化是损失附加项,其中λ是一种超参数F(W;x)是模型以及ε真值y和预测值y^之间的误差函数。

深度学习网络大杀器之Dropout——深入解析Dropout

通过梯度下降进行反向传播,减少了更新量。

深度学习网络大杀器之Dropout——深入解析Dropout

Inverted Dropout和其他正则化

由于Dropout不会阻止参数增长和彼此压制,应用L2正则化可以起到作用

明确缩放因子上述等式变为:

深度学习网络大杀器之Dropout——深入解析Dropout

可以看出使用Inverted Dropout,学习率是由因子q进行缩放 。由于q[0,1]之间,ηq之间的比例变化:

深度学习网络大杀器之Dropout——深入解析Dropout

q称为推动因素,因为其能增强学习速率,将r(q)称为有效的学习速率

有效学习速率相对于所选的学习速率而言更高:基于此约束参数值的规化可以帮助简化学习速率选择过程。

总结

1 Dropout存在两个版本:直接(不常用)和反转

2 单个神经元上的dropout可以使用伯努利随机变量建模

3 可以使用二项式随机变量来对一组神经元上的舍弃进行建模

4 即使舍弃神经元恰巧为np的概率是低的,但平均上np神经元被舍弃

5 Inverted Dropout提高学习率

6 Inverted Dropout应该与限制参数值的其他归一化技术一起使用,以便简化学习速率选择过程

7 Dropout有助于防止深层神经网络中的过度拟合


作者介绍:Paolo Galeone,计算机工程师以及深度学习研究者,专注于计算机视觉问题的研究


深度学习网络大杀器之Dropout——深入解析Dropout


Bloghttps://pgaleone.eu/

Linkedinhttps://it.linkedin.com/in/paolo-galeone-6782b311b

Twitterhttps://twitter.com/paolo_galeone

数十款阿里云产品限时折扣中,赶紧点击领劵开始云上实践吧!

以上为译文

本文由北邮@爱可可-爱生活 老师推荐,阿里云云栖社区组织翻译。

文章原标题《Analysis of Dropout》,作者:Paolo Galeone,译者:海棠,审校:我是主题曲哥哥。

文章为简译,更为详细的内容,请查看原文

上一篇:大数据,数据从哪里来?


下一篇:取之开源,用之开源——深度剖析阿里巴巴对Apache Flink的优化与改进