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


来自:SimpleAI作者:郭必扬

  • 标题: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)

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

具体分为两种方法:

① 两阶段法(two-stage)

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

②渐进式(gradual)

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

具体设置就是这段话:

课程学习的具体设置

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

更详细的实验

总之就是,使用课程学习的思路来进行数据增强,确实会比传统的数据增强训练方式有效,这也是为什么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)中的示意图来帮助理解:


在训练样本很少的情况下,这种基于相似度的方法可以更加细致地刻画不同类别之间的区别,所以可以取得比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,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。

记得备注呦

整理不易,还望给个在看!

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

  1. 深度学习之实现图像数据增强

    深度学习之实现图像数据增强 前言 数据增强的意思就是让数据量增多.对于深度学习来说,大的数据量可以训练出更好的深度学习模型. 在图像增强方面,我们常用的手段如下: 旋转 翻转 缩放 平移 尺度变换 对 ...

  2. 基于岭回归的数据增强与深度学习模型

    作者:禅与计算机程序设计艺术 <基于岭回归的数据增强与深度学习模型>技术博客文章 <基于岭回归的数据增强与深度学习模型> 引言 随着深度学习技术的快速发展,模型压缩.数据增强成 ...

  3. 复旦大学python教程_复旦大学大数据学院本科生课程学习手册.PDF

    复旦大学大数据学院本科生课程学习手册 目录 第一章 前言 2 第二章 大数据学院本科生培养模式3 2.1 培养理念 3 2.2 数据科学与大数据技术 "2+2"培养模式 4 第三章 ...

  4. Generalizing from a Few Examples: A Survey on Few-Shot Learning 小样本学习最新综述 | 三大数据增强方法

    原文链接:小样本学习与智能前沿 文章目录 01 Transforming Samples from Dtrain 02 Transforming Samples from a Weakly Label ...

  5. 盘点深度学习中的各种数据增强技巧

    1 什么是数据增强? 数据增强也叫数据扩增,意思是在不实质性的增加数据的情况下,让有限的数据产生等价于更多数据的价值. 比如上图,第1列是原图,后面3列是对第1列作一些随机的裁剪.旋转操作得来. 每张 ...

  6. 使用卷积神经网络(普通CNN和改进型LeNet)以及数据增强和迁移学习技巧识别猫和狗,并制作成分类器软件(基于Keras)

    数据集:https://www.microsoft.com/en-us/download/confirmation.aspx?id=54765 猫和狗的图片各自有12500张. 第一步 整理数据集,查 ...

  7. 数据增强 transform_深度学习-Pytorch框架学习之数据处理篇

    前言 数据是深度学习的核心,大部分论文里都会提到data-driven这个词,也就是数据驱动的意思.基本的模型搭建完成后,如何处理数据,如何将数据送给网络,如何做数据增强等等,对于提高网络的性能都十分 ...

  8. gan 总结 数据增强_深度学习中的数据增强(下)

    言有三 毕业于中国科学院,计算机视觉方向从业者,有三工作室等创始人 编辑 | 言有三 今天带来深度学习中的数据增强方法的下篇.我们将从以下几个方向入手.1,介绍一下什么是无监督的数据增强方法.2,简单 ...

  9. 深度学习中如何实现数据增强,扩大数据集

    https://jingyan.baidu.com/article/4b52d702e6a167fc5c774bbb.html 深度学习算法需要大量的训练数据,而有时我们收集不到太多的数据源,那么为了 ...

  10. 深度学习之批量图片数据增强

    在之前的文章中,分别对数据增强的库函数进行了介绍,本文将结合实际应用进行批量图片的数据增强. 背景:项目采集的是灰度图,原数据只有不到20张图片,因此,选择数据增强的方法,通过不同变换方法的组合,实现 ...

最新文章

  1. grep 使用 nsr 实现查找
  2. 华为云域名注册_关于域名购买的常识介绍,想建站的必看
  3. python 制作gif-怎样用Python制作好玩的GIF动图
  4. 几乎死循环的存储过程
  5. 发布开源库的踩坑经历:jitpack.io
  6. 您为了什么而学?【一入红尘深似海 勿负天下有心人】
  7. Node.js CLI 工具最佳实践
  8. [多图/秒懂]白话OpenPose,最受欢迎的姿态估计网络
  9. day04_09 while循环03
  10. LeetCode 589. N叉树的前序遍历(前序遍历)
  11. 【实战练习】通过docker部署jenkins
  12. 最终章 | TensorFlow战Kaggle“手写识别达成99%准确率
  13. java系统缓存应用_著名java开源缓存系统 【zz】
  14. java 回调函数的写法
  15. 高级c语言程序设计视频教程,C语言高级编程视频教程
  16. hyperedger +fabric 区块链实践
  17. docker安装oracle
  18. 【纯干货】Vue仿蘑菇街商城项目(vue+koa+mongodb)X
  19. P1425 小鱼的游泳时间 题解
  20. sqlserver数据库可疑解决办法

热门文章

  1. Docker 外部访问容器Pp、数据管理volume、网络network 介绍
  2. NOIp 2014 联合权值 By cellur925
  3. GNU Binutils简介及基本用法
  4. Windows Bash on Ubuntu
  5. 【BZOJ-2618】凸多边形 计算几何 + 半平面交 + 增量法 + 三角剖分
  6. NFinal 控制器—URL
  7. OpenJudge 2990:符号三角形 解析报告
  8. Ruby IDE及相关书籍
  9. Android笔记:触摸事件的分析与总结----TouchEvent处理机制
  10. MVC控制器取参数值