当前位置:网站首页>R-Drop:更强大的Dropout正则方法
R-Drop:更强大的Dropout正则方法
2022-04-23 11:07:00 【研究生不迟到】
写在前面:本文学习引用微软研究院AI头条、“肉丸先生呀”的博文“R-Drop——更强大的Dropout”
1 背景介绍
1.1 Dropout技术
深度神经网络(DNN)近来已经在各个领域都取得了令人瞩目的成功。在训练这些大规模的 DNN 模型时,正则化(regularization)技术,如 L2 Normalization、Batch Normalization、Dropout 等是不可缺少的模块,以防止模型过拟合(over-fitting),同时提升模型的泛化(generalization)能力。在这其中,Dropout 技术由于只需要简单地在训练过程中丢弃一部分的神经元,而成为了被最广为使用的正则化技术。
正则化技术 regularization : L2 Normalization、Batch Normalization、Dropout 等等
- 然而 Dropout 的操作,在一定程度上会使得训练后的模型成为一种多个子模型的组合约束。 因此,提出了
R-Drop
1.2 Regularized 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 都取得了非常不错的结果提升,并且在机器翻译、文本摘要等任务上取得了当前最优的结果。
2 R-Dropout的原理介绍
由于DNN非常容易过拟合,因此采用Dropout方法,随机丢弃每层的部分神经元,以此来避免在训练过程中的过拟合问题。
而正是因为随机丢弃,导致了每次丢弃后产生的子模型都不一样,所以Dropout的操作在一定程度上使得训练后的模型是一种多个子模型的组合约束。
基于 Dropout 的这种特殊方式对网络带来的随机性,研究员们提出了 R-Drop 来进一步对(子模型)网络的输出预测进行了正则约束。
增加一个 KL-divergence 损失函数项
- 总体框架如下:
2.1 模型解释
- 论文提出的模型是上图中右侧模型。可以看到,同一个数据在两次计算中,使用了随机dropout后,得到了两个不同的子模型,图中 P 1 ( y ∣ x ) P_1(y|x) P1(y∣x)和 P 2 ( y ∣ x ) P_2(y|x) P2(y∣x)是两个子模型的分布情况。(两个子模型是因为,Dropout丢失的神经元不同)
- 因此,对于相同的输入数据 P 1 w ( y ∣ x ) P_1^w(y|x) P1w(y∣x)和 P 2 w ( y ∣ x ) P_2^w(y|x) P2w(y∣x)的分布是不同的。
- 因此,在训练步骤中,R-Dropout方法,尝试通过最小化同一样本的这两个输出分布之间的双向 K u l l b a c k − L e i b l e r ( K L ) Kullback−Leibler(KL) Kullback−Leibler(KL) 散度来正则化模型预测。
3 总结
-
Dropout的缺陷很明显:预测和训练的不一致性,这也是很直观的。
-
而R-D通过增加一个正则项,来强化模型对Dropout的鲁棒性,使得不同的Dropout下模型的输出基本一致,因此能降低这种不一致性,促进“模型平均”与“权重平均”的相似性,从而使得简单关闭Dropout的效果等价于多Dropout模型融合的结果,提升模型最终性能。
-
总的来说,R-D形式简洁,效果出色,是一个非常具有创新点的想法。但是针对R-D为什么可以做到如此出色的效果,以及如何引导模型找到合适的R-D也是非常值得探究的。
版权声明
本文为[研究生不迟到]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_42521185/article/details/124359544
边栏推荐
- Visualization Road (10) detailed explanation of segmentation canvas function
- A diary of dishes | 238 Product of arrays other than itself
- remote: Support for password authentication was removed on August 13, 2021.
- ffmpeg命令行常用参数
- ID number verification system based on visual structure - Raspberry implementation
- Esp32 learning - add folder to project
- 一道有趣的阿里面试题
- MySQL索引优化之分页探索详细介绍
- ConstraintLayout布局
- 升级cpolar内网穿透能获得的功能
猜你喜欢
Excel·VBA数组冒泡排序函数
关于JUC三大常用辅助类
Visual Road (XII) detailed explanation of collection class
Source insight 4.0 FAQs
Visualized common drawing (II) line chart
Solutions to common problems in visualization (VIII) solutions to problems in shared drawing area
26. Delete duplicates in ordered array
Visualization Road (10) detailed explanation of segmentation canvas function
CUMCM 2021-b: preparation of C4 olefins by ethanol coupling (2)
Mysql8. 0 installation guide
随机推荐
Xdotool key Wizard
Visualization Road (11) detailed explanation of Matplotlib color
学习 Go 语言 0x06:《Go 语言之旅》中 斐波纳契闭包 练习题代码
Mysql8.0安装指南
How to quickly query 10 million pieces of data in MySQL
使用 PHP PDO ODBC 示例的 Microsoft Access 数据库
Latex usage
期货开户哪个公司好?安全靠谱的期货公司谁能推荐几家?
第六站神京门户-------手机号码的转换
MySQL对数据表已有表进行分区表的实现
Gets the current time in character format
Common parameters of ffmpeg command line
学习 Go 语言 0x04:《Go 语言之旅》中切片的练习题代码
Detailed introduction to paging exploration of MySQL index optimization
remote: Support for password authentication was removed on August 13, 2021.
ID number verification system based on visual structure - Raspberry implementation
Learning note 5 - gradient explosion and gradient disappearance (k-fold cross verification)
Mysql排序的特性详情
Learning notes 7-depth neural network optimization
Notes on concurrent programming of vegetables (IX) asynchronous IO to realize concurrent crawler acceleration