R-drop解读

论文:https://arxiv.org/abs/2106.14448

代码:https://github.com/dropreg/R-Drop

转载:又是Dropout两次!这次它做到了有监督任务的SOTA - 科学空间|Scientific Spaces

原理

SimCSE将dropout两次的想法应用在无监督任务上,而R-drop将dropout两次的想法应用在有监督文本分类任务上。

论文:https://arxiv.org/abs/2106.14448

代码:https://github.com/dropreg/R-Drop

转载:又是Dropout两次!这次它做到了有监督任务的SOTA - 科学空间|Scientific Spaces

原理

SimCSE将dropout两次的想法应用在无监督任务上,而R-drop将dropout两次的想法应用在有监督文本分类任务上。

训练数据为 {��,��}�=1� ,模型为 ��(�|�) ,每个样本的loss一般是交叉熵:

��=−�����(��|��)

在dropout两次的情况下,其实我们可以认为样本已经通过了两个略有不同的模型,分别记为 ��1(�|�) 和 ��2(�|�) 。这时候R-drop的loss分为两部分,一部分是常规的交叉熵:

����=−�����1(��|��)−�����2(��|��)

另一部分则是两个模型之间的对称KL散度,它希望不同dropout的模型输出尽可能一致:

����=12[��(��2(�|��)||��1(�|��))+��(��1(�|��)||��2(�|��))]

最终loss就是两个loss的加权和:

��=����+�����

也就是说,他在常规交叉熵的基础上加了一项强化模型鲁棒性的正则项。

分析

1、R-drop对dropout的改进

dropout使得模型存在训练和预测不一致问题。具体来说,dropout在训练阶段随机mask全连接层,这样每次预测时的模型是不同的,所以dropout的操作一定程度上使得训练后的模型是多个子模型的组合。但预测时直接关闭dropout,此时模型只有一个,但使用的是全部全连接层,这等价于预测模型由“模型平均”变成了“权重平均”。

R-drop通过增加一个正则项来强化模型对dropout的鲁棒性,使得不同的dropout下模型的输出基本一致,促进“模型平均”与“权重平均”的相似性,从而使得简单关闭dropout的效果等价于多dropout模型融合的结果,提升模型最终性能。

2、损失函数的解释

一个比较直接的疑问是,如果我的模型够复杂,单靠交叉熵这一项,不能使得模型对dropout鲁邦吗?事实上还真不能。交叉熵的训练目标是:让目标类的得分大于非目标类的得分。也就是说,如果只有交叉熵这一项,模型的训练效果顶多是不同的dropout下,目标类的得分都大于非目标类的得分,而不能做到不同的dropout下每个类的得分一直,所以也就没有解决训练预测不一致的问题。从公式上来看,交叉熵和目标类有关,不关心非目标类的分布,加入目标类为第一个类,那么预测结果是 [0.5, 0.2, 0.3] 或 [0.5, 0.3, 0.2],对他来说没有区别。但对于KL散度就不一样了,每个类的得分都要参与计算,[0.5, 0.2, 0.3] 或 [0.5, 0.3, 0.2]是有非零损失的。

 

分析

1、R-drop对dropout的改进

dropout使得模型存在训练和预测不一致问题。具体来说,dropout在训练阶段随机mask全连接层,这样每次预测时的模型是不同的,所以dropout的操作一定程度上使得训练后的模型是多个子模型的组合。但预测时直接关闭dropout,此时模型只有一个,但使用的是全部全连接层,这等价于预测模型由“模型平均”变成了“权重平均”。

R-drop通过增加一个正则项来强化模型对dropout的鲁棒性,使得不同的dropout下模型的输出基本一致,促进“模型平均”与“权重平均”的相似性,从而使得简单关闭dropout的效果等价于多dropout模型融合的结果,提升模型最终性能。

2、损失函数的解释

一个比较直接的疑问是,如果我的模型够复杂,单靠交叉熵这一项,不能使得模型对dropout鲁邦吗?事实上还真不能。交叉熵的训练目标是:让目标类的得分大于非目标类的得分。也就是说,如果只有交叉熵这一项,模型的训练效果顶多是不同的dropout下,目标类的得分都大于非目标类的得分,而不能做到不同的dropout下每个类的得分一直,所以也就没有解决训练预测不一致的问题。从公式上来看,交叉熵和目标类有关,不关心非目标类的分布,加入目标类为第一个类,那么预测结果是 [0.5, 0.2, 0.3] 或 [0.5, 0.3, 0.2],对他来说没有区别。但对于KL散度就不一样了,每个类的得分都要参与计算,[0.5, 0.2, 0.3] 或 [0.5, 0.3, 0.2]是有非零损失的。

 



R-drop解读 - 知乎

又是Dropout两次!这次它做到了有监督任务的SOTA - 科学空间|Scientific Spaces 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值