label smoothing(标签平滑)

article/2025/8/19 2:41:59

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

label smoothing(标签平滑)

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

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

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

q i = e x p ( z i ) ∑ j = 1 k e x p ( z j ) q_i={{exp(z_i)}\over{\sum_{j=1}^kexp(z_j)}} qi=j=1kexp(zj)exp(zi)

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

L o s s = − ∑ i = 1 k p i l o g q i Loss=-\sum_{i=1}^k p_i \space log\space q_i Loss=i=1kpi log qi

p i = { 1 , i f ( i = y ) 0 , i f ( 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

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

Z i = { + ∞ , i f ( i = y ) 0 , i f ( 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后真实的概率分布有如下改变:

p i = { 1 , i f ( i = y ) 0 , i f ( 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)

p i = { ( 1 − ϵ ) , i f ( i = y ) ϵ K − 1 , i f ( 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)K1ϵ,if(i=y)

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

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

L o s s = − ∑ i = 1 k p i l o g q i Loss=-\sum_{i=1}^k p_i \space log\space q_i Loss=i=1kpi log qi

L o s s = { ( 1 − ϵ ) ∗ L o s s , i f ( i = y ) ϵ ∗ L o s s , i f ( 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)

最优预测概率分布如下:

Z i = { + ∞ , i f ( i = y ) 0 , i f ( 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)

Z i = { l o g ( k − 1 ) ( 1 − ϵ ) ϵ + α , i f ( i = y ) α , i f ( 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ϵ+α(k1)(1ϵ),if(i=y)α,if(i=y)

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

参考资料

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

http://chatgpt.dhexx.cn/article/pE01jY04.shtml

相关文章

When Does Label Smoothing Help?

原文链接:When Does Label Smoothing Help? Hinton老师的这篇paper,解释了标签平滑策略在什么情况下是有效的? 摘要 通过从hard targets加权平均得到的soft targets,可以显著提升多分类神经网络的泛化性和训练速度。这种标签平…

【NLP基础理论】02 N-grams语言模型和Smoothing

注: Unimelb Comp90042 NLP笔记 相关tutorial代码链接 N-grams Language Model (N-grams语言模型) 目录 N-grams Language Model (N-grams语言模型)1.1 Deriving n-gram language models(推导&#xff0…

Good-Turning Smoothing介绍及推理

在介绍Good-Turning Smoothing之前,我们可以先看一个有趣的例子: 假设你在钓鱼,已经抓到了18只鱼: 10条鲤鱼,3条黑鱼,2条刀鱼,1条鲨鱼,1条草鱼,1条鳗鱼… Q1:…

关于label smoothing的理解

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

Label-Smoothing

论文:Rethinking the Inception Architecture for Computer Vision 个人理解: 就是让softmax不那么相信某一类的数据,增强泛化性。主要操作就是,在制作标签的时候,属于那一类就让网络90%相信他,其他…

MATLAB Smoothing Spline 拟合

参考 The Elements of Statistical Learning (chapter 5.4) MATLAB - Smoothing Splines MATLAB - fit 1. 基础 Smoothing Spline 可以用于离散数据的函数拟合。考虑下面的问题:在所有存在二阶连续导数的函数中寻找拟合函数 f ( x ) f(x) f(x),可以使…

Label Smoothing分析

点击上方“小白学视觉”,选择加"星标"或“置顶” 重磅干货,第一时间送达 作者丨王峰知乎 来源丨https://zhuanlan.zhihu.com/p/302843504 编辑丨极市平台 转自 | 极市平台 导读 Label Smoothing在图像识别中能稳定涨点,但在人脸的…

label smoothing

label smoothing 背景:当我们将交叉熵损失函数用于分类任务的时候,我们期望真实的标签为1,而其他虚假的标签为0。换句话来说,我们认为原始数据的标注是准确无误的。但是,真实情况并不是这样,在某些领域,或者使用一些数据增强的方法时,都会存…

标签平滑(Label Smoothing)详解

一、什么是label smoothing? 标签平滑(Label smoothing),像L1、L2和dropout一样,是机器学习领域的一种正则化方法,通常用于分类问题,目的是防止模型在训练时过于自信地预测标签,改善…

标签平滑Label Smoothing

Lable Smoothing 是分类问题中错误标注的一种解决方法。 对于分类问题,特别是多分类问题,常常把向量转换成one-hot-vector(独热向量) one-hot带来的问题:(对于独热的简单解释:https://blog.csd…

模型优化之Label Smoothing

1. 引言 Label Smoothing 又被称之为标签平滑,常常被用在分类网络中来作为防止过拟合的一种手段,整体方案简单易用,在小数据集上可以取得非常好的效果。 Label Smoothing 做为一种简单的训练trick,可以通过很少的代价&#xff08…

Smoothing

文章目录 返回主目录Add-one SmoothingAdd-K SmoothingInterpolationGood-Turning Smoothing 返回主目录 这是一个系列的文章,点击返回综合目录页 Add-one Smoothing P A d d − 1 ( W i ∣ W i − 1 ) C ( W i − 1 , W i ) 1 C ( W i ) V P_{Add-1}(W_i|W_{i-…

分类任务中常用的Label smoothing

目录 1.Label smoothing的原理 2.pytorh中如何使用Label smoothing 3.适用场景 1.Label smoothing的原理 交叉熵损失(softmax cross Entropy)中,常用公式: yi: 表示样本i的label,正类为1,负类为0; pi:…

平滑(smoothing)

1 问题的提出 由于在现实生活中,我们的观察尺度有限,我们的样本(输入)很可能没有办法包含所有可能的情况,那么我们怎么去处理先前看不见的事件呢? 举个例子,莎士比亚使用了30000个双连词(bigra…

【简单理解】自然语言处理-平滑方法(Smoothing)

【简单理解】自然语言处理-平滑方法(Smoothing) 简单介绍平滑策略 平滑策略的引入,主要使为了解决语言模型计算过程中出现的零概率问题。零概率问题又会对语言模型中N-gram模型的Perplexity评估带来困难。 零概率问题,就是在计算实例的概率时&#xf…

二十二、动网格Smoothing Spring方法及实例

1 概念介绍 最近一直忙着其他的事情,好久都没有更新,让各位家人们久等了。 今天我们接着聊一聊动网格问题,我们在文章二十一中介绍了动网格的Layering方法,但是Layering方法的局限性很高,只能对四边形网格或六面体网格…

numpy安装

1.以管理员的形式打开cmd 2.安装numpy插件 pip install numpy 3.安装成功后,输入pip list 命令查看是否安装成功 pip list 3.创建 #使用array创建一维数组 list01 [1,2,3,4] np01 np.array(list01) print(np01) print(type(np01)) #使用array创建二维数组 …

Matplotlib安装

安装matplotlib 使用python中pip命令安装 使用python中pip命令安装 第一步:使用winR输入cmd命令打开命令窗口,找到python安装目录下的Scripts目录,使用python -m pip install matplotlib命令 如果出现以下错误或警告,则需按照指示…

node安装

1、进入node官网,下载长期支持版,安装 2、输入node -v,能查询到版本号即为安装成功 3、为方便管理,修改默认的缓存和模块存放路径(C:\Users\Administrator\AppData\Roaming\npm),在nodede 安装文…

如何安装仿宋GB2312字体

步骤: 一、下载仿宋_GB2312.zip压缩包并解压缩; 百度网盘:https://pan.baidu.com/s/1L7yYKhoDmUw1RpNXVS5KDQ 提取码:eclz 阿里云盘:https://www.aliyundrive.com/s/ih3kDDidcGa 二、双击打开字体文件,…