往期文章:

  1. AI/CV面试,直达目录汇总
  2. 【AI面试】NMS 与 Soft NMS 的辨析
  3. 【AI面试】L1 loss、L2 loss和Smooth L1 Loss,L1正则化和L2正则化

在一次询问chatGPT时候,在他的回答中,由smooth L1联想提到了Label Smoothing Loss 。我把问题贴到下面,和chatGPT的回答,供你参考。不知道你是不是也在使用chatGPT,后面针对这个思考也可以一起交流下。


原本我是想到了在faster RCNN目标检测算法中,对于目标框的位置回归部分,通常采用Smooth L1 Loss。于是我就想到,Smooth L1 Loss是否特能用于分类任务呢?当然,这里我就是脑洞一问,得知了用于分类任务中的Label Smoothing Loss

Label Smoothing LossSmooth L1 Loss里面,都有smooth,光滑的,平坦的,平整的。从Smooth L1 Loss,我们知道他是在L1 Loss的基础上,引入了L2 loss。在[1,1]的范围内,采用L2 loss,其他段都是L1 loss

一是避免了L1 lossx0的不可导,也使得在0附近的优化更加的平缓。具体的可以参考这里:【AI面试】L1 loss、L2 loss和Smooth L1 Loss,L1正则化和L2正则化

吸取Smooth L1 Loss的思想,在分类任务中,也想要Smooth 一些。于是,Label Smoothing运用而生。首席推荐阅读:

  1. 标签平滑 - Label Smoothing概述

上完上面,理解的,再看下面的:

  1. Wenet之LabelSmoothingLoss

实现方式:label_smoothing_loss.py

通过上述两个文章,大概就对Label Smoothing Loss 有了大概的了解,也知道他为什么要改写one-hot标签,而采用smooth的形式,平滑标签,使得参与损失loss计算的值,不只是局限于目标为1的点。将hard label编程了soft label。

1、One Hot Label --> soft Label

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

  • 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的计算,其他的都忽略了。这样就会造成一些后果:

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

总之,这都是由one-hot是一种hard label的设置的不合理表示造成的,因为one-hot只是对真实情况的一种简化,其他错误并不参与损失计算。面对one-hot可能带来的容易过拟合的问题,有研究提出了soft Label 方法:


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

2、优劣势

one-hot 劣势:

  • 可能导致过拟合。0或1的标记方式导致模型概率估计值为1,或接近于1,这样的编码方式不够soft,容易导致过拟合。因为用于训练模型的training set通常是很有限的,往往不能覆盖所有的情况,特别是在训练样本比较少的情况下更为明显

soft Label 优势:

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

soft Label 劣势:

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

提到老师学习,就不得不提知识蒸馏,下面是知识蒸馏较为经典的结构,其中:

  • Teacher Neural Network是经过预训练(pretrained)过大模型的,则经过老师网络前向推理经过SoftMax预测的soft labels就不是one hot形式,而是一个和为1的一组值;
  • 然而,Student Neural Network是从初始阶段进行训练的小模型;
  • 最后,在计算损失的时候,会将Soft predictions分别和Soft labels、Ground Truth求损失,并加权求和,得到最终的损失,用于回归优化。

3、发散总结

Smooth L1 Loss中的Smooth,引申到分类任务中,在label部分引入Smooth操作,平滑one hot的标签,使得模型的优化目标不再是1,而是一个小于1的数值,产生了soft label。避免了过分的追求完美,使得模型过拟合。

但是,经过自己的粗浅思考,这种方法对于分类目标类别之间的特征差异较小,分类较难的任务,应该是有比较好的改观的,主要的改观就体现在泛化性上面。

而对于分类目标类别之间的特征差异较大,比较好分开的分类任务中,就没有必要引入smooth的操作了。因为这样会使得训练没有充分的挖掘模型的分类能力。模型能考100分,非要考90就可以,可能泛化性不够。

除此之外,发散开来。如果对于类别之间界限没有那么的清晰的分类任务场景,比如等级分类。同一事物,介于5级和6级之间,那往6上分也可以,往5上分也行的标签,是不是可以采用更加smooth的方式,使得除去目标1外的标签,不是均等的。

这种最终还是需要有一个最大的值,只是这个值的数可能会更小。此时,优化的目标就不再是类别在one -hot中为1的那个类了,而是尽可能的将预测结果,与soft label后的结果一直。这样,就将一个分类任务,转化为一个回归任务。推荐阅读:Label Smoothing分析

上述的内容,都还需要检验。先学习记录,待后续补充。

【AI面试】hard label与soft label,Label Smoothing Loss 和 Smooth L1 Loss相关推荐

  1. 【AI面试】L1 loss、L2 loss和Smooth L1 Loss,L1正则化和L2正则化

    损失函数是深度学习模型优化的一个灵魂基础,所以无论是很新的transform模型,还是比较早期的AlexNet,都不可避免的要涉及到损失函数的设计和应用. 所以,各种形形色色的损失函数(Loss)也就 ...

  2. 数据集划分、label生成及按label将图片分类到不同文件夹

    1.数据集介绍 1.1 概念 1.2 数据集结构 2. 数据集划分及生成label 2.1 结构一 2.2 结构二 2.3 结构三 3. 数据集按label分类到不同文件夹 1.数据集介绍 1.1 概 ...

  3. Deep Label Distribution Learning With Label Ambiguity

    2017 年Deep Label Distribution Learning With Label Ambiguity精读 2021-06-21最近想要做关于semantic segmentation ...

  4. 年龄论文阅读——Deep Label Distribution Learning With Label Ambiguity

    论文阅读--Deep Label Distribution Learning With Label Ambiguity 版权声明:本文为博主原创文章,未经博主允许不得转载.https://blog.c ...

  5. 计算机视觉(AI)面试大全

    ​1.常见的lose损失函数? 1.交叉熵损失函数:与softmax回归一起使用,输出为概率分布. 2.指数损失函数 3.平方损失函数(最小二乘法) 2.说清楚精确率与召回率: 精确率(precisi ...

  6. ​AI 面试“泛滥”的时代,HR该如何甄别真假“AI”?

    作者 | 无缺 编辑 | 王晓曼 出品 | AI科技大本营(ID:rgznai100) 在互联网.物联网蓬勃发展的中国,AI在商业化领域的运用,大家并不陌生.但AI在人力资源领域的发展前景如何?这是一 ...

  7. AI面试官也太好骗了吧!

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI 当坐在你 ...

  8. 应有尽有!这可能是最全的 AI 面试笔记了

    点击上方"视学算法",选择"星标"公众号 重磅干货,第一时间送达 今天给大家推荐一个非常全面的 AI 面试笔记集锦,包含 2018.2019 年的校招.春招.秋 ...

  9. 大厂AI面试官一语中的:一场面试暴露了你的机器学习水平

    https://www.toutiao.com/a6621033976142234115/ 2018-11-07 16:33:22 从事机器学习就业方向有很多,比如有些公司侧重数据挖掘,而有些则更倾向 ...

最新文章

  1. 视频格式转换工具使用
  2. python与java的猜拳游戏
  3. 注册表被黑客篡改 怎样修复_使用快速注册表黑客设置Office 2007配色方案
  4. 第 5-4 课:ThreadLocal 详解 + 面试题
  5. 208.实现Trie(前缀树)
  6. golang module实践
  7. JAVA继承类phone_【Java基础】类-----继承
  8. Pythonic:递归、回溯等5种方法生成不重复数字整数
  9. android java代码打印系统日志_Java快速开发平台源码
  10. elasticsearch6.0单机配置+centos7.0J+dk1.8
  11. SLAM_相机与imu的融合基础知识
  12. 数据可视化分析软件开发_大数据系统建设解决方案
  13. 标签打印软件如何设置单排标签纸尺寸
  14. name域名转出的步骤流程有哪些?
  15. 树莓派vsftpd 425 Failed to establish connection
  16. 2. 导弹防御系统(动态规划)
  17. 阅读记录-统计你的每一次读书和笔‪记
  18. python百钱买百鸡问题答案_Python学习-算法-百钱买百鸡的问题
  19. 华为应用市场APP上架流程
  20. 服务器4块固态硬盘做raid5,RAID 5与RAID 10、硬盘和固态硬盘

热门文章

  1. 基于深度强化学习的机器人运动控制研究进展 | 无模型强化学习 | 元学习
  2. 你有试过AutoCAD的超级填充功能吗?
  3. 编写一个截取字符串的函数
  4. 华为p10关闭更新_华为P10怎么取消系统更新提醒
  5. USB U盘Linux mass_storage驱动学习笔记(1)
  6. Swift 代码添加约束
  7. 信号采样频率和信号频率的关系
  8. 【Proteus仿真】【51单片机】LED点阵花样显示设计
  9. CList 动态链表的学习笔记
  10. 【职场感言】为什么会感觉到前途迷茫