本文主要观点:Dropout方法提出使隐藏层的神经元以50%的概率被丢弃,其输出为零且相应权值在本次迭代中不被训练,从而避免模型在数据集较小情况下的过拟合问题。对于训练一个n层的隐藏层,其潜在规模的神经元集合为2^n个。本文提出了continouns dropout的方法,神经元的丢弃概率不再服从Bernoulli的01分布,而是使其服从连续的概率分布,如Uniform或Guassian,更好地避免神经元之间的共适性,从而获得更高的鲁棒性和预测精度。
continouns dropout:因为dropout算法在0.5的丢弃率下能取得最好的效果,对于continouns dropout,我们分别假设神经元服从u ∼ U(0, 1)的Uniform dropout和服从g ∼ N (0.5, σ^2)的Guassian dropout,相当于使weights乘以(高斯)噪声,它们的期望输出均为原输出的50%。
1.对于continouns dropout的静态特性,文章证明了,Guassian dropout的网络的输出的方差和协方差是关于σ^2的函数,可以通过调整σ^2平衡方差与协方差的关系,其中高方差反映了神经元的差异性,有利于模型的泛化能力;低协方差反映了独立性,避免了神经元的共适性。同时continouns dropout在前向传播期间可以正则化复杂的权重和输入,增强模型鲁棒性。
2.对于continouns dropout的动态特性,文章证明,可以通过调节σ^2实现网络输出和模型复杂性之间的平衡,在非线性系统中能引入正则化项减轻权重、衰减变量和输入单位之间的协方差,避免共适性。
continouns dropout与SDR算法之间的差异:continouns dropout算法相当于对于隐藏层的输出单元,乘一个服从连续(高斯)分布的向量,从而实现连续意义上的dropout,而非单一“选择“或”舍弃“的dropout。SDR算法则假设weights本身就是服从高斯分布的,并且通过反向传播算法更新means和variances。
本文算法的简单验证:在MNIST数据集上验证此算法,搭建(784-800-800-10)的全连接神经网络,在隐藏层上分别添加Bernoulli dropout,Uniform dropout,Guassian dropout和不添加dropout来测试模型在测试集上的预测精度。实验结果如下:
上图为设置batch_size为100,迭代30K步后模型的accuracy曲线,可见Uniform dropout和Guassian dropout分别达到了98.01%和98.08%的预测精度,不添加dropout的网络达到了97.58%的预测精度,dropout网络达到92.40%的精度,可能在模型较为简单且训练集充足的情况下效果不及no dropout。从该实验可以看出在MNIST数据集上,全连接神经网络使用Uniform dropout和Guassian dropout的效果明显好于Bernoulli dropout和no dropout。