赞
踩
深度神经网络(DNN)近来已经在各个领域都取得了令人瞩目的成功。在训练这些大规模的 DNN 模型时,正则化(regularization)技术,如 L2 Normalization、Batch Normalization、Dropout 等是不可缺少的模块,以防止模型过拟合(over-fitting),同时提升模型的泛化(generalization)能力。在这其中,Dropout 技术由于只需要简单地在训练过程中丢弃一部分的神经元,而成为了被最广为使用的正则化技术。
正则化技术 regularization : L2 Normalization、Batch Normalization、Dropout 等等
R-Drop
微软亚洲研究院与苏州大学 在 Dropout 的基础上提出了进一步的正则方法:Regularized Dropout,简称R-Drop。
与传统作用于神经元(Dropout)或者模型参数(DropConnect )上的约束方法不同,R-Drop 作用于模型的输出层,弥补了 Dropout 在训练和测试时的不一致性。
简单来说就是在每个 mini-batch 中,每个数据样本过两次带有 Dropout 的同一个模型,R-Drop 再使用 KL-divergence 约束两次的输出一致。所以,R-Drop 约束了由于 Dropout 带来的两个随机子模型的输出一致性。【这里有些晦涩难懂,后面会继续介绍】
与传统的训练方法相比,R- Drop 只是简单增加了一个 KL-divergence 损失函数项,并没有其他任何改动。虽然该方法看起来很简单,但实验表明,在5个常用的包含 NLP 和 CV 的任务中(一共18个数据集),R-Drop 都取得了非常不错的结果提升,并且在机器翻译、文本摘要等任务上取得了当前最优的结果。
由于DNN非常容易过拟合,因此采用Dropout方法,随机丢弃每层的部分神经元,以此来避免在训练过程中的过拟合问题。
而正是因为随机丢弃,导致了每次丢弃后产生的子模型都不一样,所以Dropout的操作在一定程度上使得训练后的模型是一种多个子模型的组合约束。
基于 Dropout 的这种特殊方式对网络带来的随机性,研究员们提出了 R-Drop 来进一步对(子模型)网络的输出预测进行了正则约束。
增加一个 KL-divergence 损失函数项
公式如下:
总体框架如下:
Dropout的缺陷很明显:预测和训练的不一致性,这也是很直观的。
而R-D通过增加一个正则项,来强化模型对Dropout的鲁棒性,使得不同的Dropout下模型的输出基本一致,因此能降低这种不一致性,促进“模型平均”与“权重平均”的相似性,从而使得简单关闭Dropout的效果等价于多Dropout模型融合的结果,提升模型最终性能。
总的来说,R-D形式简洁,效果出色,是一个非常具有创新点的想法。但是针对R-D为什么可以做到如此出色的效果,以及如何引导模型找到合适的R-D也是非常值得探究的。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。