from JMLR 2014
by多伦多大学
【main points】提出了node Bernoulli dropout,用在前馈神经网络(MLP, CNN),限制boltzmann机模型上,在监督学习任务上测试。
训练时候对每个min batch 以一定的概率暂时的移除节点(及其输入输出连接),相当于训练 2n 个共享权重的网络。测试的时候用weight scaling后的全网络。
Gauss dropout(为权重乘以高斯噪声而非Bernoulli噪声)也有差不多更好的效果。
introduction
多个非线性隐层,可以学习输入和输出之间的复杂的关系。
但是当训练数据有限的时候,可能部分关系是从采样噪声学到的,这些关系在训练集中存在但在实际的测试数据中不存在。这就导致了过拟合。
减少过拟合的方法包括,验证集上的性能开始下降时尽快停止训练,为权重引入L1/L2正则惩罚项,soft weight sharing【?】。
如果计算量上不受限制,按照bayesian的黄金准则,regularize 一个固定规模的模型的最好的方式是,在参数的所有可能的取值上做预测,再根据每种取值的后验概率对这些预测加权取平均。
实际中希望用更少的计算量近似到达bayesian的性能。
本文提出dropout,学习指数个共享参数的模型,做预测,求几何平均。近似地有效地组合了指数多个神经网络体系结构。
dropout做法,暂时地随机地移除网络中的单元(及其输入和输出连接)。比如,每个单元都以固定的概率p(比如=0.5)保留。(但是输入单元的保留概率应该接近1)
相当于从原网络中采样一个thinned稀疏的网络。
原网络有n个单元,则有 2n 种可能(每个节点有移除/保留2种可能,各节点独立)的稀疏网络。
2n 个网络,每个网络被训练的次数都很少。
在测试的时候,直接地先对每个网络做预测再平均 计算量大不可行。采用近似平均方法,将 2n 个网络组合成一个NN(所有单元都保留,但单元的输出权重都乘以该单元在训练时候的保留概率),基于这个NN做预测。
经过验证,dropout方法在许多分类问题上都能达到比其他正则方法更低的generalization error。
model description
第 l 层的第
第 l 层的所有节点的输出
model training
可以和 max-norm正则,大的衰减学习率,高momentum 等方法技巧一起用。
experiments
数据集
- MNIST 手写字母图片分类
- TIMIT 语音识别
- CIFAR-10/100 图片分类
- SVHN 房子号码图片分类?
- ImageNet 图片分类
- Reuters-RCV1 新闻文章
- 基因拼接数据
模型及规模
- 2层 3层的NN, 1024-8192个单元
- 各种ConvNet
- 。。。
more
comparison with Bayesian NN
dropout相当于对 2n