【论文笔记】Improving neural networks by preventing co-adaptation of feature detectors
多伦多大学计算机科学系12年的一篇文章,大量实验讨论了dropout的效果和直观解释了为什么dropout这么强大。
为什么强大?主要是参数独立训练,大量网络共享参数但是相当于独立训练出来的,参数之间只是部分协同工作而不是整个网络的参数协同,特征计算时不会因为输入有微小变化出现整体性能变特别差,因此泛化性会比全部协同工作的网络强。另外dropout也相当于bagging、贝叶斯平均方法,当然效果好了。
当一个大的前向神经网络在一个小的训练集上训练时,它通常在测试数据上表现不佳。通过在每个训练用例上随机省略一半的特征检测器(feature detectors ),可以大大减少这种“过度拟合”。这就防止了复杂的协同适应(feature detectors),协同适应中,一个特征检测器在内部环境中只对其他几个特定的特征检测器有帮助。相反,每一个神经元学习检测一个特征,这个特征通常有助于产生正确的答案,因为它必须在各种各样的内部环境中进行操作。使用随机“dropout”在许多基准测试任务上有了很大的提升,并创造了语音和物体识别的新纪录。
前向人工神经网络在输入和输出之间使用一层层非线性的“隐藏”单元。通过调整这些隐藏单元的传入连接的权重,它学习特征检测器,使它能够在给定输入向量(1)时预测正确的输出。如果输入和正确输出之间的关系很复杂,并且网络有足够的隐藏单元来精确地建模,那么通常会有许多不同的权重设置来几乎完美地建模训练集,特别是如果只有有限数量的标记训练数据。每一个权重向量都会对测试数据做出不同的预测,而且几乎所有的权重向量在测试数据上的表现都会比在训练数据上做得更差,因为特征检测器已经被调整为在训练数据上而不是在测试数据上协同工作。
通过使用“dropout”可以减少过度拟合,以防止对训练数据进行复杂的协同适应。在每个训练案例的每次呈现中,每个隐藏单元都以0.5的概率从网络中随机删除,因此一个隐藏单元不能依赖于其他隐藏单元的存在。另一种观点是用神经网络进行模型平均,这是一种非常有效的方法。减少测试集错误的一个好方法是对大量不同网络产生的预测进行平均。
这样做的方法是训练多个独立的网络,然后将这些网络中的每一个应用到测试数据中,但这在训练和测试过程中的计算成本都很高。随机辍学使得在合理的时间内训练大量不同的网络成为可能。几乎可以肯定的是,每个训练案例的每个呈现都有一个不同的网络,但是所有这些网络对于存在的隐藏单元共享相同的权重。
我们使用标准的随机梯度下降法在小批量的训练案例中训练dropout神经网络,但是修改了常用于防止权值增长过大的惩罚项。我们没有惩罚整个权重向量的平方长度(L2范数),而是为每个单独的隐藏单元设置传入权重向量的L2范数的上界。如果权重更新违反了这个约束,将通过除法重新规范化隐藏单元的权重。使用约束而不是惩罚可以防止权重变得非常大。这使模型有可能在带衰减的学习过程中从非常大的学习率开始,从而允许对权重空间进行比从小权重开始并使用小学习率的方法更彻底的搜索。
在测试时,我们使用“平均网络”,它包含所有隐藏的单元,但它们的输出权重减半,以补偿两倍多的单元处于活动状态的事实。事实上,这与大量的dropout网络的输出平均有非常类似的性能。在具有N个单元的单个隐藏层和用于计算类标签概率的“softmax”输出层的网络中,使用平均网络完全等效于取所有2的N方个可能网络预测的标签上概率分布的几何平均值。假设dropout网络并非都做出相同的预测,则平均网络的预测保证为正确答案分配比单个dropout网络分配的平均对数概率更高的对数概率(2)。同样地,对于线性输出单位的回归,平均网络的平方误差总是优于dropout网络的平方误差的平均值。
通过使用变换后的图像增强训练数据(3),或者通过将空间变换的知识连接到卷积神经网络(4),或者通过不使用标签而使用预训练模型从训练图像中提取有用的特征(5),可以极大地提高测试集的性能。如果不使用这些技巧,标准前馈神经网络的最佳结果是测试集上的160个错误。通过对每个隐藏单元的传入权重使用具有单独L2约束的50%丢弃,这可以减少到大约130个错误,并且还通过随机丢弃20%的像素,进一步减少到大约110个错误(参见图1)。
dropout也可以与生成式预训练相结合,但是在这种情况下,我们使用较小的学习率和无权重约束来避免丢失预训练得到的特征检测器。在(5)中描述的公开的、预先训练好的深度信念网,当使用标准反向传播进行微调时得到118个错误,当使用当使用URL上公开的代码对deep-Boltzmann机器进行五次预训练时,展开的网络在使用标准反向传播进行微调时得到103、97、94、93和88个错误,在使用50%的隐藏单元丢失时得到83、79、78、78和77个错误。79个错误的平均值是不使用先验知识或增强训练集的方法的记录(详情见附录a)。
当使用URL上公开的代码对deep-Boltzmann机器进行五次预训练时,展开的网络在使用标准反向传播进行微调时得到103、97、94、93和88个错误,在使用50%的隐藏单元丢失时得到83、79、78、78和77个错误。79个错误的平均值是不使用先验知识或增强训练集的方法的记录(详情见附录a)。
各种神经网络结构的MNIST测试集上的错误率用反向传播训练,所有隐藏层使用50%的辍学率。较低的一组也使用20%的输入层衰减。此任务的最佳先前发布结果显示为水平线,使用反向传播(backpropagation)无预先训练、权重共享或训练集增强。
然后,我们将dropout应用于TIMIT,TIMIT是一个广泛使用的小词汇量干净语音识别基准。语音识别系统使用隐马尔可夫模型(HMMs)来处理时间上的变化,它们需要一个声学模型来确定从声学输入中提取的系数帧与每个隐马尔可夫模型的每个可能状态的匹配程度。最近,将短帧序列映射到HMM状态的概率分布的深度、预训练、前馈神经网络在TIMIT(6)和各种更现实的大词汇量任务(7,8)上的表现都优于传统的高斯混合模型。当窗口的中心帧被神经网络分类为概率最大的HMM状态时,显示TIMIT基准的核心测试集上的帧分类错误率。网络的输入是21个相邻帧,每帧提前10毫秒。神经网络有4个完全连接的隐藏层,每层4000个单元和185个“softmax”输出单元,这些单元随后被合并到39个不同的类中,用于基准测试。删除50%的隐藏单元可显著提高各种不同网络体系结构的分类(见图2)。为了获得帧识别率,将神经网络输出的每一帧的类概率提供给解码器,解码器知道HMM状态之间的转移概率,并运行Viterbi算法来推断HMM状态的最佳序列。如果没有漏掉,识别率为22.7%,漏掉后识别率提高到19.7%,这是不使用任何说话人身份信息的方法的记录。
TIMIT基准的核心测试集上的帧分类错误率。不同网络架构下标准和差分微调的比较。dropout为50%的隐藏单元和20%的输入单元可以提高分类效率。
。。。其他的实验说明dropout的厉害 略
dropout比贝叶斯模型平均法简单得多,贝叶斯模型平均法通过给定训练数据的后验概率对每个模型进行加权。对于复杂的模型类,如前馈神经网络,贝叶斯方法通常使用马尔可夫链蒙特卡罗方法从后验分布中采样模型(14)。相比之下,概率为0.5的dropout假设所有模型最终在组合中都会被赋予同等的重要性,但共享权重的学习会考虑到这一点。在测试时,每个单元是否要被dropout是独立的,这一事实使得通过使用平均网的一次传递来近似指数多个退出网的组合意见非常容易。这比平均许多独立模型的预测要有效得多。
贝叶斯模型平均法的一个流行的替代方法是“bagging”,即根据训练集中不同的随机案例选择训练不同的模型,并且所有模型在组合中的权重相等(15)。Bagging最常用于决策树之类的模型,因为这些模型很快就能适应数据,而且在测试时也很快(16)。Dropout允许将类似的方法应用于更强大的前馈神经网络模型。dropout可以看作是一种极端形式的bagging,在这种bagging中,每个模型都在一个单独的情况下进行训练,并且模型的每个参数通过与所有其他模型中相应的参数共享而得到非常强的正则化。这是一个更好的正则化比标准方法收缩参数向零。
“朴素贝叶斯”是dropout的一种极端情况,在这种情况下,每个输入特征被分别训练以预测类标签,然后在测试时将所有特征的预测分布相乘。当训练数据非常少时,这通常比logistic分类效果更好,logistic分类训练每个输入特征在所有其他特征的上下文中都能很好地工作。
最后,辍学者和最近关于性别在进化中的作用的理论之间有一个有趣的相似之处(17)。对(17)中阐述的可混合性理论的一种可能解释是,性打破了一组共同适应的基因,这意味着通过使用一大组共同适应的基因来实现一个功能,远不如通过多种替代方式实现相同的功能,也许不如最佳,每一种都只使用了少量的共适应基因。这使得进化能够避免死胡同,在这种死胡同中,适应性的提高需要对大量协同适应的基因进行协同改变。它还降低了环境中的微小变化会导致适应度大幅下降的可能性,这种现象在机器学习领域被称为“过度拟合”。
总结
以上是生活随笔为你收集整理的【论文笔记】Improving neural networks by preventing co-adaptation of feature detectors的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 汽车ECU AUTOSAR 开发
- 下一篇: 如何调用浏览器打印功能来打印页面