Lable Smoothing
是分类问题中错误标注的一种解决方法。

对于分类问题,特别是多分类问题,常常把向量转换成one-hot-vector(独热向量)
one-hot带来的问题:(对于独热的简单解释:https://blog.csdn.net/qq_43211132/article/details/96141409)
对于损失函数,我们需要用预测概率去拟合真实概率,而拟合one-hot的真实概率函数会带来两个问题:
1)无法保证模型的泛化能力,容易造成过拟合;
2) 全概率和0概率鼓励所属类别和其他类别之间的差距尽可能加大,而由梯度有界可知,这种情况很难适应。会造成模型过于相信预测的类别

使用下面的 label smoothing 可以缓解这个问题:

原理:对于以Dirac函数分布的真实标签,我们将它变成分为两部分获得(替换)。

  1. 第一部分:将原本Dirac分布的标签变量替换为(1 - ϵ)的Dirac函数;

  2. 第二部分:以概率 ϵ ,在u(k) 中份分布的随机变量(u(k)是类别分之一)
    代码:

def label_smoothing(inputs, epsilon=0.1):K = inputs.get_shape().as_list()[-1]    # number of channelsreturn ((1-epsilon) * inputs) + (epsilon / K)

交叉熵(Cross-Entropy)损失函数是分类模型中的一种非常重要的目标函数。在二分类问题中,交叉熵损失函数的形式如下:

如果分类准确,交叉熵损失函数的结果是0(即上式中p和y一致的情况),否则交叉熵为无穷大。也就是说交叉熵对分类正确给的是最大激励。换句话说,对于标注数据来说,这个时候我们认为其标注结果是准确的(不然这个结果就没意义了)。但实际上,有一些标注数据并不一定是准确的。那么这时候,使用交叉熵损失函数作为目标函数并不一定是最优的。

对于这个问题,我们还可以这么去理解。在分类任务中,我们通常对类别标签的编码使用[0,1,2,…]这种形式。在深度学习中,通常在全连接层的最后一层,加入一个softmax来计算输入数据属于每个类别的概率,并把概率最高的作为这个类别的输入,然后使用交叉熵作为损失函数。这会导致模型对正确分类的情况奖励最大,错误分类惩罚最大。如果训练数据能覆盖所有情况,或者是完全正确,那么这种方式没有问题。但事实上,这不可能。所以这种方式可能会带来泛化能力差的问题,即过拟合。

在2016年,Szegedy等人提出了inception v2的模型(论文:Rethinking the inception architecture for computer vision.)。其中提到了Label Smoothing技术,用以减轻这个问题。
我们先来看一下原理。假设我们的分类只有两个,一个是猫一个不是猫,分别用1和0表示。Label Smoothing的工作原理是对原来的[0 1]这种标注做一个改动,假设我们给定Label Smoothing的值为0.1:

可以看到,原来的[0,1]编码变成了[0.05,0.95]了。这个label_smoothing的值假设为ϵ,那么就是说,原来分类准确的时候,p=1,不准确为p=0,现在变成了p=1−ϵ和ϵ,也就是说对分类准确做了一点惩罚。

Label Smoothing在很多问题上对模型都有一定的提升。
在Tensorflow中使用方法时候只要在损失函数中加上label_smoothing的值即可,如下:

tf.losses.softmax_cross_entropy(onehot_labels,logits,weights=1.0,label_smoothing=0,scope=None,loss_collection=tf.GraphKeys.LOSSES,reduction=Reduction.SUM_BY_NONZERO_WEIGHTS
)

参考:
【1】https://blog.csdn.net/neveer/article/details/91646657
【2】https://www.datalearner.com/blog/1051561454844661

标签平滑Label Smoothing相关推荐

  1. 标签平滑 Label smoothing / Temperature Softmax

    标签平滑 Label smoothing 逻辑 为什么有效 Temperature Softmax 近期在查看一些训练技巧,无意中发现了标签平滑 Label smoothing,非常简单却有效的一个技 ...

  2. 标签平滑 label smoothing

    文章目录 简介 什么是label smoothing label smoothing作用 torch实现label smoothing 简介 label smoothing其实是机器学习和深度学习上比 ...

  3. Label Smoothing 标签平滑 (Label smooth regularization, LSR)

    Lable Smoothing 是分类问题中错误标注的一种解决方法.是一种正则化方法, 为了降低模型过拟合(overfitting) 出自inception v3,Transformer中就用到了 我 ...

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

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

  5. 深度学习--TensorFlow(7)拟合(过拟合处理)(数据增强、提前停止训练、dropout、正则化、标签平滑)

    目录 拟合 1.拟合情况 2.抵抗过拟合方法 过拟合处理(防止过拟合): 一.数据增强 1.设置图像生成器 2.载入图片 3.图像转三维数据 4.三维转四维 5.生成图片(用图像生成器) 代码 二.提 ...

  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. 垃圾分类、EfficientNet模型、数据增强(ImageDataGenerator)、混合训练Mixup、Random Erasing随机擦除、标签平滑正则化、tf.keras.Sequence

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) 垃圾分类.EfficientNet模型.数据增强(ImageD ...

  8. Label Smoothing介绍及其代码实现

    一.标签平滑(Label Smoothing)介绍 标签平滑(Label Smoothing)的原理其实很简单,它大部分的用处用一句话总结就是: 修改数据集的标签来增加扰动,避免模型的判断过于自信从而 ...

  9. label smooth标签平滑的理解

    今天我们来聊一聊label smooth这个tricks,标签平滑已经成为众所周知的机器学习或者说深度学习的正则化技巧.标签平滑--label smooth regularization作为一种简单的 ...

最新文章

  1. swift 中高德地图随时读取坐标地点的写法
  2. [原创]浅谈对华为34岁以上员工“退休”
  3. python实现名片管理系统在哪里_python实现名片管理系统项目
  4. win7系统相关问题故障解决
  5. 【Java】开源工具 Hutool 不糊涂
  6. poi判断合并行_POI实战2——实战代码
  7. 数据特征处理pca降维-小结
  8. 2011年我的关键词
  9. 前端实现在浏览器网页中录音
  10. CF 592D(Super M-虚树直径)
  11. 爬虫python是什么意思_python爬虫是什么? 【黑马程序员】
  12. Android Studio 全局搜索快捷键
  13. linux修改操作系统语言方法
  14. alt tab无法切换窗口
  15. 画论20 郭熙《林泉高致集》
  16. OpenCL: 从零开始学习OpenCL开发
  17. Lab 0: Setting up a productive workflow
  18. win10怎么更改账户名称_如何自定义WIN10登陆界面的用户名?
  19. 猿团宣布加入中国信息无障碍产品联盟,致力信息无障碍化公益事业
  20. stm32f407+xc6slx9 ,很好的设计参考资料,已投板验证过,包含宝贵的设计3w原则

热门文章

  1. docker解决permission denied
  2. easyUI整合富文本编辑器KindEditor详细教程
  3. oracle创建实例
  4. □ 影片名:《无法抗拒的诱惑》(27139) 在线播放
  5. HTML语法学习以及作业解答
  6. 《笨方法学python3》习题46.2 创建骨架项目目录
  7. PCS储能逆变并网模型 逆变侧采用背靠背三电平设计,SVPWM控制算法,中点平衡算法,马鞍波
  8. BZOJ-3884 上帝与集合的正确用法 欧拉定理
  9. AnyChart 开发 进阶篇
  10. nc63,nc65,ncc1811,ncc1903,ncc1909,ncc2005,ncc202111勒索病毒安全补丁