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


来自:Smarter

深度学习领域中,通常将数据标注为hard label,但事实上同一个数据包含不同类别的信息,直接标注为hard label会导致大量信息的损失,进而影响最终模型取得的效果。本文首先探讨一下hard label和soft label之间的关系,然后介绍一下如何用可靠的方法得到蕴含更多信息的soft label,其中主要包含Label SmoothingKnowledge Distillation两种经典方法。

Hard Label vs Soft Label

hard label更容易标注,但是会丢失类内、类间的关联,并且引入噪声。

soft label给模型带来更强的泛化能力,携带更多的信息,对噪声更加鲁棒,但是获取难度大。

Label Smoothing

Softmax Cross Entropy不仅可以做分类任务(目标为one-hot label),还可以做回归任务(目标为soft label)。设网络输出的softmax prob为p,soft label为q,那Softmax Cross Entropy定义为:

而Label Smoothing虽然仍是做分类任务,但其目标q从one-hot label变为soft label了,原来是1的位置变为  ,其他的原来是0的位置变为   ,    通常取0.1。

InfoNCE的损失函数

InfoNCE可以拆分成两个部分,alignment和uniformity。

如上图所示,alignment部分只跟positive pair相关,希望positive pair的feature拉近,uniformity部分只跟negative pair相关,希望所有点的feature尽可能均匀分布在unit hypersphere上。

从softmax和InfoNCE损失函数上理解,把InoNCE公式的分母想象成soft label的所有位置相加,也就是最大值的那个位置可以看成是positive pair,其他位置都可以看成是negative pair,softmax的损失函数不是跟InfoNCE损失函数一模一样了吗,异曲同工!也就是说hard label可以认为只有positive pair,而soft label仍然保留negative pair。因此,soft label更容易避免退化解问题。

上图是sigmoid曲线。Softmax Cross Entropy 的loss曲线其实跟sigmoid类似,越靠近1的时候,loss曲线会越平缓,这里以sigmoid曲线图为例。

从softmax的损失函数曲线上理解,hard label监督下,由于softmax的作用,one-hot的最大值位置无限往1进行优化,但是永远不可能等于1,从上图可知优化到达一定程度时,优化效率就会很低,到达饱和区。而soft label可以保证优化过程始终处于优化效率最高的中间区域,避免进入饱和区。

Knowledge Distillation

knowledge distillation相比于label smoothing,最主要的差别在于,知识蒸馏的soft label是通过网络推理得到的,而label smoothing的soft label是人为设置的。

原始训练模型的做法是让模型的softmax分布与真实标签进行匹配,而知识蒸馏方法是让student模型与teacher模型的softmax分布进行匹配。直观来看,后者比前者具有这样一个优势:经过训练后的原模型,其softmax分布包含有一定的知识——真实标签只能告诉我们,某个图像样本是一辆宝马,不是一辆垃圾车,也不是一颗萝卜;而经过训练的softmax可能会告诉我们,它最可能是一辆宝马,不大可能是一辆垃圾车,但绝不可能是一颗萝卜。

知识蒸馏得到的soft label相当于对数据集的有效信息进行了统计,保留了类间的关联信息,剔除部分无效的冗余信息。相比于label smoothing,模型在数据集上训练得到的soft label更加可靠。

Reference

https://zhuanlan.zhihu.com/p/302843504

https://zhuanlan.zhihu.com/p/90049906

When Does Label Smoothing Help?

Distilling the Knowledge in a Neural Network


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

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

记得备注呦

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

从Label Smoothing和Knowledge Distillation理解Soft Label相关推荐

  1. Label Smoothing标签平滑详解+Pytorch保姆级实际操作

    目录 简介 从提出Label Smoothing的论文出发 不使用LS时的情况 不使用LS时可能带来的问题 LS作为正则化的一种方式 具体操作 为何LS可以避免偏激的输出 对LS的另一个角度理解 Py ...

  2. [轻笔记] label smoothing(标签平滑)

    看google AI最新的开源代码,发现有个技巧--label smoothing,网上查到的公式与代码中的公式不一样,于是做个笔记,并对见到的觉得有问题的关于label smoothing的博客也列 ...

  3. 【损失函数】NLLLoss损失、CrossEntropy_Loss交叉熵损失以及Label Smoothing示例与代码

      机缘巧合下,近期又详细学习了一遍各损失函数的计算,特此记录以便后续回顾.   为了公式表示更加清晰,我们设 y n ∈ { 1 , 2 , - , K } {{y_n} \in \{ 1,2, \ ...

  4. 浅谈Label Smoothing技术

    目录 一.从 One-Hot 到 Label Smoothing 二.Label Smoothing 的简单实现 三.Label Smoothing 的优缺点 四.什么时候使用 Label Smoot ...

  5. RETHINKING SOFT LABELS FOR KNOWLEDGE DISTIL- LATION: A BIAS-VARIANCE TRADEOFF PERSPECTIVE

    最近的一些研究指出soft labels带来的regularization是知识蒸馏有效的原因之一.这边论文从训练过程中的bias-variance博弈角度出发,对soft labels重新进行了思考 ...

  6. 【AI面试】hard label与soft label,Label Smoothing Loss 和 Smooth L1 Loss

    往期文章: AI/CV面试,直达目录汇总 [AI面试]NMS 与 Soft NMS 的辨析 [AI面试]L1 loss.L2 loss和Smooth L1 Loss,L1正则化和L2正则化 在一次询问 ...

  7. 关于label smoothing的理解

    背景介绍 提到label smoothing(标签平滑),首先介绍一下什么是hard label和soft label. 简单来说,hard label就是非1即0,不存在既可能是A也可能是B的情况, ...

  8. 知识蒸馏(Knowledge Distillation)详细深入透彻理解重点

    知识蒸馏是一种模型压缩方法,是一种基于"教师-学生网络思想"的训练方法,由于其简单,有效,在工业界被广泛应用.这一技术的理论来自于2015年Hinton发表的一篇神作: 论文链接 ...

  9. 如何理解soft target这一做法?

    来自 | 知乎 地址 | https://www.zhihu.com/question/50519680 编辑 | 机器学习算法与自然语言处理公众号 本文仅作学术分享,若侵权,请联系后台删文处理 如何 ...

  10. 知识蒸馏是什么?(Knowledge Distillation)KD

    1. 知识蒸馏介绍 1.1 什么是知识蒸馏? 在化学中,蒸馏是一种有效的分离不同沸点组分的方法,大致步骤是先升温使低沸点的组分汽化,然后降温冷凝,达到分离出目标物质的目的.化学蒸馏条件:(1)蒸馏的液 ...

最新文章

  1. AI实验室•西安站 教你用人脸识别打造爆款应用
  2. SAP 库存物资收发存报表主要思路
  3. 在C#中怎么调用Resources文件中的图片
  4. php中pandans,Python地信专题 | 基于geopandas的空间数据分析-文件IO篇
  5. socket io 不使用redis_Redis这么快,线程模型竟然是单线程
  6. c模拟linux进程管理课程设计,操作系统课程设计(三):Linux进程管理
  7. android高仿微信视频编辑页-视频多张图片提取
  8. Nsight Compute与nvprof metrics 对照
  9. 自学编程和计算机科班出身的差别在哪里?
  10. 自然语言处理5:jieba分词详解全模式,精确模式和搜索引擎模式
  11. idea lanyu方式激活
  12. 会员管理系统源码 php语言开发
  13. CXF报错及解决方案
  14. 华为交换机修改telnet接口号
  15. 【存储知识】NAS存储
  16. Android Send Email 发送邮件
  17. 达人评测 锐龙r7 5800x3D相当于i几 r75800x3d参数
  18. SoC的ESL建模学习(一)
  19. Linux下如何运行.sh文件
  20. python:办公自动化之:WORD实战之批量自动填写毕业论文指导记录(逐步完善)

热门文章

  1. 工作中常用的Linux命令(不断更新中)
  2. yii 标签用法(模板)
  3. iOS应用的真机调试
  4. mybatis3文档
  5. POJ 1094 Sorting It All Out 【拓扑排序】
  6. 第三百三十二节,web爬虫讲解2—Scrapy框架爬虫—Scrapy使用
  7. latex中pdflatex与xelatex的区别
  8. windows下perl使用
  9. Linux安装python环境方法
  10. 1分钟实现Autodesk Vault登录对话框