首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >标签平滑 - Label Smoothing概述

标签平滑 - Label Smoothing概述

作者头像
AI算法与图像处理
发布于 2021-04-21 06:46:41
发布于 2021-04-21 06:46:41
12.3K00
代码可运行
举报
运行总次数:0
代码可运行

目 录

  • One-Hot -> Label Smoothing
  • label smoothing 降低feature norm
  • 标签平滑归一化:Label Smoothing Regularization (LSR)
  • label smoothing在什么场景有奇效?
  • 什么时候不使用标签平滑
  • Label Smoothing 更进一步的思考研究

关于label smoothing是一些比赛中,比较常用的技巧,特别是图像多分类之中,效果蛮好的。这边整理一下,该技巧的文章,其中文章[6]写的非常赞,由其开篇。

当然这里,还有多种对应的说法:

  • Hard target和Soft target
  • hard label 和 soft label

举一个问文章[2]的例子,Hard target和Soft target:

另一个hard label转变成soft label,文章[5]:



1 One-Hot -> Label Smoothing

文本分类和图像分类实际上在训练模式上是类似的,基本都遵循这样的一个流程:

  • step 1. 一个深度网络(DNN,诸如LSTM、CNN、BERT等)来得到向量表示
  • step 2. 一个softmax分类器来输出预测的标签概率分布p
  • step 3. 使用Cross-entropy来计算真实标签(one-hot表示)与p之间的损失,从而优化

这里使用cross-entropy loss(简称CE-loss)基本上成了大家训练模型的默认方法,但它实际上存在一些问题。下面我举个例子:

比如有一个六个类别的分类任务,CE-loss是如何计算当前某个预测概率p相对于y的损失呢:

可以看出,根据CE-loss的公式,只有y中为1的那一维度参与了loss的计算,其他的都忽略了。这样就会造成一些后果

  • 真实标签跟其他标签之间的关系被忽略了,很多有用的知识无法学到;比如:“鸟”和“飞机”本来也比较像,因此如果模型预测觉得二者更接近,那么应该给予更小的loss;
  • 倾向于让模型更加“武断”,成为一个“非黑即白”的模型,导致泛化性能差;
  • 面对易混淆的分类任务、有噪音(误打标)的数据集时,更容易受影响

总之,这都是由one-hot的不合理表示造成的,因为one-hot只是对真实情况的一种简化。

面对one-hot可能带来的容易过拟合的问题,有研究提出了Label Smoothing方法:

label smoothing就是把原来的one-hot表示,在每一维上都添加了一个随机噪音。这是一种简单粗暴,但又十分有效的方法,目前已经使用在很多的图像分类模型中了。

目前来看一下两者的优劣势:

one-hot 劣势:

- 可能导致过拟合。0或1的标记方式导致模型概率估计值为1,或接近于1,这样的编码方式不够soft,容易导致过拟合。为什么?

用于训练模型的training set通常是很有限的,往往不能覆盖所有的情况,特别是在训练样本比较少的情况下更为明显。

以神经机器翻译(NMT)为例:假设预测句子“今天下午我们去..”中,“去”后面的一个词。假设只有“去钓鱼”和“去逛街”两种搭配,且真实的句子是“今天下午我们去钓鱼”。

training set中,“去钓鱼”这个搭配出现10次,“去逛街”搭配出现40次。“去钓鱼”出现概率真实概率是20%,

“去逛街”出现的真实概率是80%。

因为采用0或1的表示方式,随着training次数增加,模型逐渐倾向于“去逛街”这个搭配,使这个搭配预测概率为100%或接近于100%,“去钓鱼”这个搭配逐渐被忽略。(文章[1])

- 另外,也会造成模型对它的预测过于confident,导致模型对观测变量x的预测严重偏离真实的情况,比如上述例子中,把“去逛街”搭配出现的概率从80%放大到100%,这种放大是不合理的。

Label Smoothing 优势:

  • 一定程度上,可以缓解模型过于武断的问题,也有一定的抗噪能力
  • 弥补了简单分类中监督信号不足(信息熵比较少)的问题,增加了信息量;
  • 提供了训练数据中类别之间的关系(数据增强);
  • 可能增强了模型泛化能力
  • 降低feature norm (feature normalization)从而让每个类别的样本聚拢的效果(文章[10]提及)
  • 产生更好的校准网络,从而更好地泛化,最终对不可见的生产数据产生更准确的预测。(文章[11]提及)

Label Smoothing 劣势:

  • 单纯地添加随机噪音,也无法反映标签之间的关系,因此对模型的提升有限,甚至有欠拟合的风险。
  • 它对构建将来作为教师的网络没有用处,hard 目标训练将产生一个更好的教师神经网络。(文章[11]提及)

2 label smoothing 降低feature norm

文章[10]提及了一个有意思的知识点:

Hinton组对Label Smoothing的分析文章[When Does Label Smoothing Help? https://arxiv.org/pdf/1906.02629.pdf],里面有一张图比较有意思:

熟悉人脸识别loss的人会发现,这个Label Smoothing得到的特征分布,怎么跟人脸loss的效果这么像?

竟然都可以起到让每个类别的样本聚拢的效果。

而少数细心的朋友可能会发现这里的玄机:

不做Label Smoothing(标注为w/o LS)的feature norm,普遍比做了LS(标注为w/ LS)的要大很多!w/o LS时最大可以达到1.6,而w/ LS时只有0.4。

Label Smoothing也并不要求p优化到1,而是优化到0.9即可。Softmax Cross Entropy 的loss曲线其实跟sigmoid类似,越靠近1的时候,loss曲线会越平缓:


3 标签平滑归一化:Label Smoothing Regularization (LSR)

文章[1][2]提及该方法: Label Smoothing Regularization(LSR)是一种通过在输出y中添加噪声,实现对模型进行约束,降低模型过拟合(overfitting)程度的一种约束方法(regularization methed)。

LSR也是对“硬目标”的优化:

Label Smoothing Regularization(LSR)就是为了缓解由label不够soft而容易导致过拟合的问题,使模型对预测less confident,把预测值过度集中在概率较大类别上,把一些概率分到其他概率较小类别上。

该方法应用在较多的论文中,譬如:

  • Attentional Encoder Network for Targeted Sentiment Classification
  • Müller R, Kornblith S, Hinton G. When Does Label Smoothing Help?[J]. arXiv preprint arXiv:1906.02629, 2019.

4 label smoothing在什么场景有奇效?

文章[4]提及了一些NLP领域使用场景的思考:

  • 真实场景下,尤其数据量大的时候 数据里是会有噪音的(当然如果你非要说我100%确定数据都是完全正确的, 那就无所谓了啊),为了避免模型错误的学到这些噪音可以加入label smoothing
  • 2.避免模型太自信了,有时候我们训练一个模型会发现给出相当高的confidence,但有时候我们不希望模型太自信了(可能会导致over-fit 等别的问题),希望提高模型的学习难度,也会引入label smoothing
  • 3.分类的中会有一些模糊的case,比如图片分类,有些图片即像猫又像狗, 利用soft-target可以给两类都提供监督效果

hinton的这篇[when does label smoothing help? ]论文从另一个角度去解释了 label smoothing的作用:

多分类可能更效果, 类别更紧密,不同类别分的更开;小类别可能效果弱一些

发散一下,该策略如果用到序列标注等模型上,是不是效果会变好?

文章[5]提及,该策略可以使网络优化更加平滑:

label smoothing将hard label转变成soft label,使网络优化更加平滑。标签平滑是用于深度神经网络(DNN)的有效正则化工具,该工具通过在均匀分布和hard标签之间应用加权平均值来生成soft标签。

它通常用于减少训练DNN的过拟合问题并进一步提高分类性能。

targets = (1 - label_smooth) * targets + label_smooth / num_classes

文章[8]在[观点阅读理解任务]比赛中也使用该策略:

focal loss的损失函数中加入了标签平滑(label smoothing),标签平滑[6]是一种防止模型过拟合的正则化手段。

label smoothing是将真实的one hot标签做一个标签平滑处理,使得标签变成soft label。

其中,在真实label处的概率值接近于1,其他位置的概率值是个非常小的数。

在label smoothing中有个参数epsilon,描述了将标签软化的程度,该值越大,经过label smoothing后的标签向量的标签概率值越小,标签越平滑,反之,标签越趋向于hard label。

较大的模型使用label smoothing可以有效的提升模型的精度,较小的模型使用此种方法可能会降低模型精度。

本次比赛中,在多个roberta_large预训练模型微调过程中使用有一定的提升。

文章[9]提到在早先Google在Inception网络上就使用过这个技巧

对于Imagenet这个分类问题标签的种类是确定的K=1000类,所以在Inception论文[2]里直接用一个系数来控制平滑的强度,即平滑后的标签

但是如果用同样方法在这些长短不一的句子上做平滑,其实是不合适的。每个位置的平滑概率反比于句子的长度,也就是K,所以我认为更好的确定平滑强度的方法是先确定一个单位平滑强度,再根据句子总长来确定原标签的权重。

文章[10]的大佬还细细研究了该策略为什么不能在人脸任务取得效果:

Label Smoothing起到的作用实际上是抑制了feature norm,此时softmax prob永远无法达到设定的 ,loss曲面上不再存在平缓区域,处处都有较大的梯度指向各个类中心,所以特征会更加聚拢。

而之所以人脸上不work,是因为我们通常会使用固定的s,此时Label Smoothing无法控制feature norm,只能控制角度,就会起到反向优化的作用,因此在人脸loss上加Label Smoothing效果会变差。

文章[11]也提及了与文章[10]类似的结论:

标签平滑强制对分类进行更紧密的分组,同时强制在聚类之间进行更等距的间隔。 标签平滑为最终的激活产生了更紧密的聚类和更大的类别间的分离。

左:没有使用标签平滑进行训练,右:使用标签标签平滑进行训练

标签平滑可以产生更多的正则化和鲁棒的神经网络的主要原因,重要的是趋向于更好地泛化未来的数据

因此,标签平滑应该是大多数深度学习训练的一部分。然而,有一种情况是,它对构建将来作为教师的网络没有用处,hard 目标训练将产生一个更好的教师神经网络。


5 什么时候不使用标签平滑

文章[11]提及了一种不适用的场景:

尽管标签平滑可以产生用于各种任务的改进的神经网络……如果最终的模型将作为其他“学生”网络的老师,那么它不应该被使用。

尽管使用标签平滑化训练提高了教师的最终准确性,但与使用“硬”目标训练的教师相比,它未能向学生网络传递足够多的知识(没有标签平滑化)。

标签平滑“擦除”了在hard目标训练中保留的一些细节。

这样的泛化有利于教师网络的性能,但是它传递给学生网络的信息更少。

标签平滑产生的模型是不好的教师模型的原因可以通过初始的可视化或多或少的表现出来。

通过强制将最终的分类划分为更紧密的集群,该网络删除了更多的细节,将重点放在类之间的核心区别上。

这种“舍入”有助于网络更好地处理不可见数据。

然而,丢失的信息最终会对它教授新学生模型的能力产生负面影响。

因此,准确性更高的老师并不能更好地向学生提炼信息。


Label Smoothing 更进一步的思考研究

文章[6]针对label smoothing随机噪音 以及 smoothing值都为固定的缺陷,提出一个更优质的策略:

最终的目标,是能够使用更加合理的标签分布来代替one-hot分布训练模型,最好这个过程能够和模型的训练同步进行。

一个合理的标签分布,应该有什么样的性质。

**① 很自然地,标签分布应该可以反映标签之间的相似性。**比方下面这个例子:

② 标签间的相似性是相对的,要根据具体的样本内容来看。比方下面这个例子,同样的标签,对于不同的句子,标签之间的相似度也是不一样的:

③ 构造得到的标签分布,在01化之后应该跟原one-hot表示相同。

啥意思呢,就是我们不能构造出了一个标签分布,最大值对应的标签跟原本的one-hot标签还不一致,我们最终的标签分布,还是要以one-hot为标杆来构造。

根据上面的思考,我们这样来设计模型:

使用一个Label Encoder来学习各个label的表示,与input sample的向量表示计算相似度,从而得到一个反映标签之间的混淆/相似程度的分布。 最后,使用该混淆分布来调整原来的one-hot分布,从而得到一个更好的标签分布。

这个结构分两部分,左边是一个Basic Predictor,就是各种我们常用的分类模型。右边的则是LCM的模型。注意LCM是一个插件,所以左侧可以更换成任何深度学习模型。


参考文献

1 Label Smoothing Regularization_LSR原理是什么? 2 一文总览知识蒸馏概述 3 小方案蕴藏大改变,人物识别挑战赛TOP2团队依靠创新突围 4 label smoothing + knowledge distill + nlp 5 大道至简:算法工程师炼丹Trick手册 6 用模型“想象”出来的target来训练,可以提高分类的效果! 7 样本混进了噪声怎么办?通过Loss分布把它们揪出来! 8 百度人工智能开源大赛冠军分享——如何在观点阅读理解任务取得高分 9 Kaggle Tweet Sentiment Extraction 第七名复盘 10 Label Smoothing分析 11 标签平滑&深度学习:Google Brain解释了为什么标签平滑有用以及什么时候使用它

关联阅读

训练集 和 测试集分布是否一致——对抗验证(Adversarial Validation)

半监督学习:伪标签技术pseudo-label

笔记︱模型压缩:knowledge distillation知识蒸馏(一)

竞赛技巧:TTA(Test Time Augmentation)与数据增强

代码语言:javascript
代码运行次数:0
运行
复制
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-04-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI算法与图像处理 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
YUV数据格式
最近在做直播视频通话、自定义采集应用,恶补了YUV格式相关的问题,这篇文章就记录一下。
ppchao
2020/11/13
1.6K0
YUV数据格式
常见图像格式总结
raw数据是sensor输出的原始数据,一般有raw8, raw10, raw12等,分别表示一个像素点有8bit、10bit、12bit数据。是sensor将光信号转化为电信号时的电平高低的原始记录,单纯地没有进行任何处理的图像数据,即摄像元件直接得到的电信号进行数字化处理而得到的。
刘盼
2023/09/11
2.4K0
常见图像格式总结
手机广告常见的10bit是什么?YUV444、YUV422、YUV420、YUV411是什么?
2)如何理解YUV444、YUV422、YUV420、YUV411?YUV420为何不命名为“更合理的YUV411”?
微帧Visionular
2024/11/18
7020
手机广告常见的10bit是什么?YUV444、YUV422、YUV420、YUV411是什么?
音视频知识体系(基础篇3)----图像颜色空间
我们从视频的信号表示方法开始讲起,逐步深入到视频压缩编码的原理。我们主要从下面几个要点来讲解或者加深记忆。
jerrypxiao
2021/02/04
2K0
详解YUV数据格式
我们在讲 FFmpeg 系列的时候,有提到 YUV 的。其中包括YUV播放器、简单的YUV格式介绍。
233333
2019/08/02
2K0
Linux音视频(YUV图像数据格式)
摄像头图像数据的主流封装格式是JPEG/MJPG/YUV等,这些都是经过编码压缩的数据,大大减少了图像尺寸,方便传输和存储。
用户2617681
2019/08/08
8340
Android二维码扫描开发(二):YUV图像格式详解
前一篇提到了,相机返回的是YUV格式的图像数据,那么YUV到底是怎样一种格式呢?本篇将对YUV图像格式进行详细的解释。 上一篇中,我们了解了Android二维码扫描开发的实现思路和原理。其中从相机里获
非著名程序员
2018/02/02
2.1K0
Android二维码扫描开发(二):YUV图像格式详解
【音视频原理】图像相关概念 ⑤ ( YUV 数据存储 | I444 格式说明 | I422 格式说明 | I420 格式说明 | NV12 格式说明 | NV21 格式说明 )
YUV 4:4:4 采样格式 , Y 亮度分量 与 UV 色度分量 的比例是 1:1 ;
韩曙亮
2024/01/21
1.6K0
【音视频原理】图像相关概念 ⑤ ( YUV 数据存储 | I444 格式说明 | I422 格式说明 | I420 格式说明 | NV12 格式说明 | NV21 格式说明 )
在视频中,使用YUV420好,还是YUV444好?
视频和图像的颜色空间类型有很多,比如 RGB、YUV、HSV、LAB 等,其中,YUV 颜色空间又有 YUV420、YUV422、YUV444 之分。先不考虑 YUV422 格式,直接对比 YUV420 和 YUV444,哪个格式更好,更具优势呢?
liuzhen007
2022/12/18
6.3K0
在视频中,使用YUV420好,还是YUV444好?
高清YUV极速转码,了解一下?
市面上主流摄像头的图像封装格式一般逃不过这三种:JPEG、MJPG和YUV。其中YUV编码既可以与灰度图像兼容,又利用了人眼对亮度和色度的定量优化,使其可以直接跟三原色RGB进行直接互换而到广泛青睐。但YUV与RGB的转码涉及大量浮点运算,对于高分辨率高速摄像头而言,转码对CPU的负担很重,本文来看看如何巧妙化解这个难点。
用户2617681
2019/08/08
1.6K0
高清YUV极速转码,了解一下?
音视频基础概念
HSV 色彩空间还可以表示为类似于上述圆柱体的圆锥体,色相沿着圆柱体的外圆周变化,饱和度沿着从横截面的圆心的距离变化,明度沿着横截面到底面和顶面的距离而变化。这种用圆锥体来表示 HSV 色彩空间的方式可能更加精确,有些图像在 RGB 或者 YUV 的色彩模型中处理起来并不精准,可以将图像转换为 HSV 色彩空间,再进行处理,效果会更好。
Cellinlab
2023/05/17
5290
音视频基础概念
音视频技术基础(三)--音视频数据格式
后面会讲关于音视频处理及渲染的内容,渲染和处理都是对音视频raw数据的操作,所以我们先来学习一下音视频的数据格式。
黑眼圈云豆
2020/07/09
1.5K0
0:什么是音视频?
音频:常见的音频格式是MP3格式,也就是我们使用网易云音乐听歌,歌曲就是音频文件。
春江花月夜
2023/12/16
8960
0:什么是音视频?
深入探索视频帧中的颜色空间—— RGB 和 YUV
接触前端音视频之后,需要掌握大量音视频和多媒体相关的基础知识。在使用 FFmpeg + WASM 进行视频帧提取时,涉及到视频帧和颜色编码等相关概念。本文将对视频帧中的颜色空间进行介绍。 一、视频帧 对于视频,我们都知道是由一系列的画面在一个较短的时间内(通常是 1/24 或 1/30 秒)不停地下一个画面替换上一个画面形成连贯的画面变化。这些画面称之为视频帧。 对于视频帧,在现代视频技术里面,通常都是用 RGB 颜色空间或者 YUV 颜色空间的像素矩阵来表示。在 ffmpeg 里面,我们可以看到源码 li
用户1097444
2022/06/29
2K0
深入探索视频帧中的颜色空间—— RGB 和 YUV
YUV420 YUV420sp 图像格式「建议收藏」
YUV定义:分为三个分量,“Y”表示明亮度(Luminance或Luma),也就是灰度值;而“U”和“V” 表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。
全栈程序员站长
2022/07/25
1.1K0
【音视频原理】图像相关概念 ④ ( YUV 排列格式 | 打包格式 | 平面格式 | YUV 表示法 | YUV 采样格式表示方法 | YUV 4:2:2 采样 | 上采样与下采样概念 )
YUV 格式 的 颜色编码算法 有 很多排列格式 , 但是大概可以分为以下两大类 :
韩曙亮
2024/01/21
3280
【音视频原理】图像相关概念 ④ ( YUV 排列格式 | 打包格式 | 平面格式 | YUV 表示法 | YUV 采样格式表示方法 | YUV 4:2:2 采样 | 上采样与下采样概念 )
【音视频原理】图像相关概念 ⑥ ( YUV 与 RGB 之间的转换 | YUV444 颜色编码格式 转为 RGB 格式 | RGB 颜色编码格式 转为 YUV444 格式 )
YUV 颜色编码格式 转为 RGB 格式 的 转换公式 取决于 于 YUV 的具体子采样格式 :
韩曙亮
2024/01/22
3.1K0
播放器基础--YUV色彩模型
做过camera, 播放器,图片处理的对YUV都不会陌生,但是关于YUV有很多的格式YUV420, NV21, YUV420sp, YV12等等往往令人混乱
小蚂蚁与大象
2020/06/09
1.1K0
图像基础知识之YUV
YUV是编译true-color颜色空间(color space)的种类,Y’UV, YUV, YCbCr,YPbPr等专有名词都可以称为YUV,彼此有重叠。“Y”表示明亮度(Luminance、Luma),“U”和“V”则是色度与浓度(Chrominance、Chroma)
全栈程序员站长
2022/09/07
1.4K0
图像基础知识之YUV
一文读懂 YUV 的采样与格式
RGB 三个字母分别代表了 红(Red)、绿(Green)、蓝(Blue),这三种颜色称为 三原色,将它们以不同的比例相加,可以产生多种多样的颜色。
音视频开发进阶
2019/06/03
4.1K2
一文读懂 YUV 的采样与格式
推荐阅读
相关推荐
YUV数据格式
更多 >
LV.0
这个人很懒,什么都没有留下~
目录
  • 1 One-Hot -> Label Smoothing
  • 2 label smoothing 降低feature norm
  • 3 标签平滑归一化:Label Smoothing Regularization (LSR)
  • 4 label smoothing在什么场景有奇效?
  • 5 什么时候不使用标签平滑
  • Label Smoothing 更进一步的思考研究
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档