小样本学习与Triplet Loss,数据增强和课程学习

每天给你送来NLP技术干货!


来自:SimpleAI 作者:郭必扬 cfc9340ee857033648a545937384ea34.png
  • 标题:Few-Shot Text Classification with Triplet Networks, Data Augmentation, and Curriculum Learning.

  • 会议:NAACL-21 (short paper)

  • 链接:https://readpaper.com/paper/3139506831

一句话总结:

一个简洁明了的short-paper,没啥技术含量,主要贡献在于设计了使用数据增强的课程学习方式,并验证了在few-shot分类问题上的有效性。

课程学习式数据增强(curriculum data augmentation)

这应该就是本文最主要的贡献了。作者使用文本增强时文本的改动幅度来衡量增强样本的难度,从而设计课程学习策略

98817b5d2e8f1fb3b45f5a72b696a601.png具体分为两种方法:

① 两阶段法(two-stage)

先使用原样本进行训练,然后把增强样本混进来训练。这里的增强样本使用都是同样的改动幅度,所以该方法就是分了两个层级的难度。

②渐进式(gradual)

设定一个难度范围,从最低难度开始训练,收敛后就增大难度继续训练,直到训练到最大难度。

具体设置就是这段话:

1b37ae559b5cfa76923c9e9566e9e338.png
课程学习的具体设置

然后就可以直接看实验结果了:

4e906031bd47a5e6c8764f79a7224bc5.png a697eab3647ea8149fe4871726bbeedb.png
更详细的实验

总之就是,使用课程学习的思路来进行数据增强,确实会比传统的数据增强训练方式有效,这也是为什么two-stage的方式会更好。而那个gradual的方式,相当于设置了更多的课程阶梯,使用了更多的增强样本,所以效果肯定会好一些。

小样本学习和Triplet loss

这里再单独讲一讲few-shot learning和Triplet loss,因为一开始我是从数据增强角度去找到这篇文章的,加上之前对few-shot learning也不太了解,所以搞不懂为什么一定要跟triplet loss扯上关系。

我们回顾上面贴第二个实验结果表,它揭示了Triplet loss在few-shot任务中相比于使用cross-entropy loss的优势。

这个triple loss最开始是用于训练人脸识别模型的,因为人脸识别就是要识别的人一般非常多(类别多),但是我们能够提供给模型拿来训练的人脸样本非常少(few-shot),所以在这种背景下,triple loss就被设计出来,把一个分类问题,转化成相似度问题,使用少量的训练样本,训练出一个相似函数,然后在预测时,就可以计算新样本跟训练集中已有的样本的相似度,从而判断类别。

计算Triplet Loss使用的是一批三元组(A,P,N),计算公式是这样的:

其中,A代表anchor样本,P代表positive样本,N代表negative样本,则是一个用于缓冲的距离,或者说margin,d则是一个计算距离的函数,可以使用余弦距离或者欧氏距离。

借用B站Shusen Wang老师的教程(链接:https://www.bilibili.com/video/BV1vQ4y1R7dr?t=511.5)中的示意图来帮助理解:

28846574d0f18bc719ee4d3de5fb38ba.png


在训练样本很少的情况下,这种基于相似度的方法可以更加细致地刻画不同类别之间的区别,所以可以取得比cross-entropy更好的效果。

triplet loss VS. cross-entropy loss

这里我们不禁要问,那triplet loss和cross-entropy loss各自的适用场景是什么呢?

triplet loss,一般用于相似度、检索和小样本分类任务上,而一般的分类任务,则更常使用cross-entropy。

虽然triplet loss我们看起来可以使同类别的样本的表示更近、不同类别的表示更远,在这一点上似乎比cross-entropy loss更优一些,但实际上由于每次计算triplet loss都只是考虑了两个类别,还涉及到正负样本的采样问题,所以triplet loss计算存在不稳定、收敛慢的问题,而cross-entropy则是计算时会考虑所有类别,所以在普通分类问题上效果会更好。

更多关于二者的对比,可以参见下面链接:

  • 知乎讨论:https://www.zhihu.com/question/402067053/answer/1297490623

  • 为什么triplet loss有效?http://bindog.github.io/blog/2019/10/23/why-triplet-loss-works/


下载一:中文版!学习TensorFlow、PyTorch、机器学习、深度学习和数据结构五件套!  后台回复【五件套】
下载二:南大模式识别PPT  后台回复【南大模式识别】

投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。

方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。

773aa879fb278716acdff1b5896e2c3a.png

记得备注呦

整理不易,还望给个在看!
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值