给BERT加一个loss就能稳定提升?斯坦福+Facebook最新力作!

 

人工智能学习离不开实践的验证,推荐大家可以多在FlyAI-AI竞赛服务平台多参加训练和竞赛,以此来提升自己的能力。FlyAI是为AI开发者提供数据竞赛并支持GPU离线训练的一站式服务平台。每周免费提供项目开源算法样例,支持算法能力变现以及快速的迭代算法模型。

摘要: 关注CV领域的小伙伴一定都记得Hinton团队在年初提出的SimCLR,采用自监督的对比学习方法进行encoder的训练,各种碾压之前的模型。所以今年我一直在等某个大招,终于在20年的尾巴看到了一丝希望。今天要介绍的这篇工 ...

 

关注CV领域的小伙伴一定都记得Hinton团队在年初提出的SimCLR[1],采用自监督的对比学习方法进行encoder的训练,各种碾压之前的模型。所以今年我一直在等某个大招,终于在20年的尾巴看到了一丝希望。

 

今天要介绍的这篇工作来自斯坦福和Facebook AI,作者在BERT分类任务的精调阶段加入了对比学习的loss,在各个任务上都获得了很稳定的提升:

上图中CE表示交叉熵,SCL表示Supervised Contrastive Learning。实话说结果并不够惊艳,用对抗学习也差不多可以做到,让我惊喜的是在Few-shot上的效果:

N表示训练样本数量。可以看到N=20时QNLI上有10个点之多的提升。

下面就让我们来走近科学,看看SCL是个啥玩意儿叭~

论文题目:Supervised Contrastive Learning for Pre-trained Language Model Fine-tuning

论文链接:https://arxiv.org/abs/2011.01403

 

对比学习

对比学习的核心思想,就是让模型学习如何将正样本和其他负样本区别开来,抓住样本的本质特征,而不是把每个细节都考虑到。拿人来举例,假如有人让你凭空画一张一美元,你可能只画成这样[2]:

而如果给你一张美元照着临摹,可能还能画好看点,比如这样:

所以说我们记住的,不一定是像素级别的特征,而是更高维度的。在训练模型时,也不强求它们把所有信息都编码,只要细致到可以区分数据中的不同样本就可以。

 

如何实现呢?这个就体现在目标函数上:

Supervised Contrastive Learning

上文讲了自监督的对比学习主要是靠一个batch内的样本间相互对比,那有监督的数据如何更好利用呢?

 

作者就针对分类任务进行了研究。分类的核心思想就是把不同类别的样本划分开来,通常使用交叉熵作为损失函数。作者则提出了一个新的对比学习loss SCL,将同一类的样本互相作为正例,不同类别的作为负例。以此达到拉近类内样本、拉开类间距离的目的:

实验结果

除了开头展示的直接提升外,作者还进行了很多分析。从SST-2数据集的[CLS] embedding来看,通过CE(左)和SCL(右)损失训练出来的encoder对正负例的区分能力确实有不少差距:

同时在有噪声的训练数据上SCL鲁棒性会更强(T越高噪声越多):

总结

这篇文章目前正在投稿ICLR2021(都在arxiv上挂了还盲审啥。。),总体的改动比较简单,但对比学习的前景还是挺大的,同时加上SCL损失之后不仅对少样本的情况很有帮助,也能提升模型鲁棒性,相比于对抗学习的计算代价明显要小,还是比较实用的,一起立个flag,复现一波?

 

参考资料

[1]A Simple Framework for Contrastive Learning of Visual Representations: https://arxiv.org/abs/2002.05709

[2]Contrastive Self-Supervised Learning: https://ankeshanand.com/blog/2020/01/26/contrative-self-supervised-learning.html

[3]对比学习(Contrastive Learning)相关进展梳理: https://zhuanlan.zhihu.com/p/141141365

 

更多精彩内容请访问FlyAI-AI竞赛服务平台;为AI开发者提供数据竞赛并支持GPU离线训练的一站式服务平台;每周免费提供项目开源算法样例,支持算法能力变现以及快速的迭代算法模型。

挑战者,都在FlyAI!!!

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值