label smoothing是一种在分类问题中,防止过拟合的方法。

label smoothing(标签平滑)

  • 交叉熵损失函数在多分类任务中存在的问题
  • label smoothing(标签平滑)
  • 参考资料

交叉熵损失函数在多分类任务中存在的问题

多分类任务中,神经网络会输出一个当前数据对应于各个类别的置信度分数,将这些分数通过softmax进行归一化处理,最终会得到当前数据属于每个类别的概率。

qi=exp(zi)∑j=1kexp(zj)q_i={{exp(z_i)}\over{\sum_{j=1}^kexp(z_j)}}qi​=∑j=1k​exp(zj​)exp(zi​)​

然后计算交叉熵损失函数:

Loss=−∑i=1kpilogqiLoss=-\sum_{i=1}^k p_i \space log\space q_iLoss=−i=1∑k​pi​ log qi​

pi={1,if(i=y)0,if(i≠y)p_i=\left\{\begin{matrix} 1,if(i=y)\\0,if(i\neq y) \end{matrix}\right.pi​={1,if(i=y)0,if(i​=y)​

其中i表示多分类中的某一类其中i表示多分类中的某一类其中i表示多分类中的某一类

训练神经网络时,最小化预测概率和标签真实概率之间的交叉熵,从而得到最优的预测概率分布。最优的预测概率分布是:

Zi={+∞,if(i=y)0,if(i≠y)Z_i=\left\{\begin{matrix} +\infty,if(i=y)\\0,if(i\neq y) \end{matrix}\right.Zi​={+∞,if(i=y)0,if(i​=y)​

神经网络会促使自身往正确标签和错误标签差值最大的方向学习,在训练数据较少,不足以表征所有的样本特征的情况下,会导致网络过拟合。

label smoothing(标签平滑)

label smoothing可以解决上述问题,这是一种正则化策略,主要通过soft one-hot来加入噪声,减少真实样本标签的类别在计算损失函数时的权重,最终起到抑制过拟合的效果。
增加label smoothing后真实的概率分布有如下改变:

pi={1,if(i=y)0,if(i≠y)p_i=\left\{\begin{matrix} 1,if(i=y)\\0,if(i\neq y) \end{matrix}\right.pi​={1,if(i=y)0,if(i​=y)​

pi={(1−ϵ),if(i=y)ϵK−1,if(i≠y)p_i=\left\{\begin{matrix} (1-\epsilon),if(i=y)\\{{\epsilon}\over{K-1}},if(i\neq y) \end{matrix}\right.pi​={(1−ϵ),if(i=y)K−1ϵ​,if(i​=y)​

K表示多分类的类别总数K表示多分类的类别总数K表示多分类的类别总数
ϵ是一个较小的超参数\epsilon是一个较小的超参数ϵ是一个较小的超参数

交叉熵损失函数的改变如下:

Loss=−∑i=1kpilogqiLoss=-\sum_{i=1}^k p_i \space log\space q_iLoss=−i=1∑k​pi​ log qi​

Loss={(1−ϵ)∗Loss,if(i=y)ϵ∗Loss,if(i≠y)Loss=\left\{\begin{matrix} (1-\epsilon)*Loss,if(i=y)\\ \epsilon*Loss,if(i\neq y) \end{matrix}\right.Loss={(1−ϵ)∗Loss,if(i=y)ϵ∗Loss,if(i​=y)​

最优预测概率分布如下:

Zi={+∞,if(i=y)0,if(i≠y)Z_i=\left\{\begin{matrix} +\infty,if(i=y)\\0,if(i\neq y) \end{matrix}\right.Zi​={+∞,if(i=y)0,if(i​=y)​

Zi={log(k−1)(1−ϵ)ϵ+α,if(i=y)α,if(i≠y)Z_i=\left\{\begin{matrix} log{{(k-1)(1-\epsilon)}\over{\epsilon+\alpha}},if(i=y)\\\alpha,if(i\neq y) \end{matrix}\right.Zi​={logϵ+α(k−1)(1−ϵ)​,if(i=y)α,if(i​=y)​

这里的α是任意实数,最终模型通过抑制正负样本输出差值,使得网络有更强的泛化能力。

参考资料

  1. https://zhuanlan.zhihu.com/p/116466239
  2. https://blog.csdn.net/qq_43211132/article/details/100510113

label smoothing(标签平滑)相关推荐

  1. 关于label smoothing(标签平滑)

    目的: label smoothing常用于分类任务,防止模型在训练中过拟合,提高模型的泛化能力. 意义: 对于分类问题,我们通常使用one-hot编码,"非黑即白",标签向量的目 ...

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

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

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

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

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

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

  5. label smooth标签平滑【ConvE(知识图谱补全-链接预测)中使用到】

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

  6. label smooth标签平滑的理解

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

  7. 目标检测的Tricks | 【Trick1】Label Smoothing

    如有错误,恳请指出. 文章目录 1. Label Smoothing理论概要 2. Label Smoothing实现代码 1. Label Smoothing理论概要 假设我们的分类只有两个,一个是 ...

  8. 标签平滑论文笔记:2020《When Does Label Smoothing Help?》

    标签平滑 介绍 实验1:标签平滑作用 实验2:针对ECE与温度缩放进行对比(作用相近) 实验3:标签平滑对知识蒸馏影响(变差) 实验3知识蒸馏:互信息I(X;Y) 链接 介绍   看成距离:   这里 ...

  9. 标签平滑 label smoothing

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

最新文章

  1. Matlab编程与数据类型 -- 内联函数
  2. shell批量创建和删除10个系统帐号密码(密码为随机10位字符串)
  3. pgsql 安装详解
  4. 【BZOJ-3578】GTY的人类基因组计划2 set + map + Hash 乱搞
  5. java 递归_Java的递归、如何与流相结合
  6. C语言深度剖析书籍学习记录 第一章 关键字
  7. gdb当前哪一行_GDB原理之ptrace实现原理
  8. Spring Boot Serverless 实战系列“架构篇”首发 | 光速入门函数计算
  9. 如何使用Jmeter对WebSocket进行压力测试
  10. 人群密度检测-MCNN
  11. cap 2 加州房价预测
  12. 陕南柿子红了_陕南赤子_新浪博客
  13. 计算机专业的创新方向和创业情况,计算机专业创新创业教育模式探究
  14. 智能洗地机好不好用、洗地机和扫地机哪个实用?十大洗地机测评
  15. 三相电开水器的工作原理及接法
  16. PIC单片机延时问题
  17. PS-InSAR大坝稳定性监测
  18. 在linux下使用ftp命令
  19. 老爷机的第二春, HTPC变形记
  20. 离散数学之王教授是哪里人--python

热门文章

  1. Centos与Ubuntu
  2. linux局域网内根据ip查询主机名
  3. 项目中常用的sql整理和详细01
  4. [eBook] SQL 2008
  5. mysql 事物封装_mysqls 一个node对mysql的封装库 链式调用、支持事务
  6. java课程设计进程管理_GitHub - Shadow-Java/OS: 操作系统课程设计,关键词:进程同步与互斥、进程死锁、LRU页面替换算法、时间片轮转算法、时钟等...
  7. python把中文转英文_Python 3.0_文本清洗之中文特殊符号转英文特殊符号及全角字符转半角字符...
  8. i219v linux,I219V高传播延迟
  9. 0-1背包动态规划c语言,动态规划解决0-1背包问题程序看不懂,请大家看看帮忙解决下...
  10. java招投标网站源码_基于jsp的招标系统-JavaEE实现招标系统 - java项目源码