当前位置:网站首页>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
边栏推荐
- Which company is good for opening futures accounts? Who can recommend several safe and reliable futures companies?
- Esp32 learning - use and configuration of GPIO
- Typora operation skill description (I) md
- 学习 Go 语言 0x08:《Go 语言之旅》中 练习使用 error
- Ueditor -- limitation of 4m size of image upload component
- web三大组件(Servlet,Filter,Listener)
- Pycharm
- 学习 Go 语言 0x06:《Go 语言之旅》中 斐波纳契闭包 练习题代码
- Database management software sqlpro for SQLite for Mac 2022.30
- Data analysis learning (I) data analysis and numpy Foundation
猜你喜欢

More reliable model art than deep learning

Visualized common drawing (II) line chart

26. 删除有序数组中的重复项

关于JUC三大常用辅助类

Excel·VBA数组冒泡排序函数

Database management software sqlpro for SQLite for Mac 2022.30

After the MySQL router is reinstalled, it reconnects to the cluster for boot - a problem that has been configured in this host before

STM32接电机驱动,杜邦线供电,然后反烧问题

MySQL Router重装后重新连接集群进行引导出现的——此主机中之前已配置过的问题

Jupyter Lab 十大高生产力插件
随机推荐
Jupyter lab top ten high productivity plug-ins
How to Ping Baidu development board
数据库管理软件SQLPro for SQLite for Mac 2022.30
Esp32 learning - use and configuration of GPIO
SWAT—Samba WEB管理工具介绍
vm设置静态虚拟机
Excel · VBA array bubble sorting function
MySQL对数据表已有表进行分区表的实现
Solutions to common problems in visualization (IX) background color
Manjaro installation and configuration (vscode, wechat, beautification, input method)
MBA-day5数学-应用题-工程问题
26. 删除有序数组中的重复项
Go interface usage
语雀文档编辑器将开源:始于但不止于Markdown
学习 Go 语言 0x03:理解变量之间的依赖以及初始化顺序
《Neo4j权威指南》简介,求伯君、周鸿袆、胡晓峰、周涛等大咖隆重推荐
VM set up static virtual machine
Code implementation of general bubbling, selection, insertion, hill and quick sorting
Alarm scene recognition
Oracle connectivity test gadget