深度学习知识:softlabel策略

目录

一、hard label和soft label之间的关系

二、如何得到soft label

1. 回归任务:使用离散化方法生成软标签

PS: Soft 标签的定义规则

2. ​分类任务:使用 Label Smoothing 或 Knowledge Distillation 

方法1:Label Smoothing

                PS: 用 ​InfoNCE 函数 和 ​Softmax 损失函数 的相似性,来说明 ​Soft Label 更容易避免退化解问题

​方法 2:Knowledge Distillation(知识蒸馏)​(未细看)

三、如何将soft label运用于模型训练

 ① 模型输出 logits

② Softmax 转换

③ 计算交叉熵损失

④ 优化损失函数


深度学习领域中,通常将数据标注为hard label,但事实上同一个数据包含不同类别的信息,直接标注为hard label会导致大量信息的损失,进而影响最终模型取得的效果。

一、hard label和soft label之间的关系

hard labelsoftlabel
优点易于获得丢失类内、类间关联,引入噪声
缺点更强泛化能力、携带更多信息、对噪声更鲁棒难以获得

二、如何得到soft label

1. 回归任务:使用离散化方法生成软标签

在回归任务中,目标值是连续值。为了使用 ​Softmax Cross Entropy,我们需要将连续目标值转换为软标签。具体方法如下:

① 离散化目标值:将目标值的范围划分为多个区间(类别)。例如,将 y 的范围 [0,1] 划分为 3 个区间:

  • 区间 1:[0,0.33)
  • 区间 2:[0.33,0.66)
  • 区间 3:[0.66,1]

​② 定义 Soft 标签:根据目标值 y 的位置,为每个区间分配一个概率值。例如:

  • 如果 y=0.7,它更接近区间 3,因此可以定义 Soft 标签为 q=[0.1,0.2,0.7]。

PS: Soft 标签的定义规则

Soft 标签是一个 ​概率分布,表示目标值在各类别上的置信度。它的定义规则需要满足以下两点:

  1. 非负性:每个类别的概率值必须大于或等于 0。
  2. 和为 1:所有类别的概率值之和必须等于 1。

在回归任务中,Soft 标签的定义通常基于 ​目标值与各类别的距离。具体来说:

  • 如果目标值 y 更接近某个类别,则该类别的概率值较大。
  • 如果目标值 y 远离某个类别,则该类别的概率值较小。

1. ​如何定义 Soft 标签?

假设我们已经将目标值的范围划分为多个区间(类别),例如:

  • 区间 1:[0,0.33)
  • 区间 2:[0.33,0.66)
  • 区间 3:[0.66,1]

对于目标值 y=0.7,它属于区间 3(类别 3),但我们需要为每个类别分配一个概率值,生成 Soft 标签 q=[q1​,q2​,q3​]。具体步骤如下:

步骤 1:计算目标值与各类别的距离

假设每个区间的中心点作为该类别的代表值:

  • 类别 1 的中心点:c1​=0.165(区间 [0,0.33) 的中点)
  • 类别 2 的中心点:c2​=0.495(区间 [0.33,0.66) 的中点)
  • 类别 3 的中心点:c3​=0.825(区间 [0.66,1] 的中点)

计算目标值 y=0.7 与各类别中心点的距离:

  • d1​=∣y−c1​∣=∣0.7−0.165∣=0.535
  • d2​=∣y−c2​∣=∣0.7−0.495∣=0.205
  • d3​=∣y−c3​∣=∣0.7−0.825∣=0.125
步骤 2:将距离转换为概率值

距离越小,表示目标值越接近该类别,因此该类别的概率值应该越大。我们可以通过以下公式将距离转换为概率值:

\frac{1/d_{i}}{\sum_{j=1}^{3}1/d_{i}}

其中:

  • di​ 是目标值与类别 i 的距离,
  • qi​ 是类别 i 的概率值。

计算各类别的概率值:

  • q1​=1/0.535+1/0.205+1/0.1251/0.535​≈0.1
  • q2​=1/0.535+1/0.205+1/0.1251/0.205​≈0.2
  • q3​=1/0.535+1/0.205+1/0.1251/0.125​≈0.7
  • 因此,Soft 标签为 q=[0.1,0.2,0.7]。

2. ​为什么这样定义?

这种定义方式的核心思想是:

  • 距离越小,概率越大:目标值越接近某个类别,该类别的概率值越大。
  • 平滑过渡:Soft 标签是一个平滑的分布,反映了目标值的不确定性或模糊性。
  • 符合概率分布的性质:Soft 标签满足非负性和和为 1 的条件。

2. ​分类任务:使用 Label Smoothing 或 Knowledge Distillation 

方法1:Label Smoothing

Label Smoothing 通过对 One-hot 标签进行平滑处理生成软标签。具体方法如下:

① 平滑处理

  • 将原本为 1 的位置(正确类别)的值从 1 变为 1−α。
  • 将原本为 0 的位置(其他类别)的值从 0 变为 K−1α​,其中 K 是类别总数,α 是平滑系数(通常取 0.1)。

​② 生成 Soft 标签

  • 例如,对于 3 分类问题,正确类别为类别 1,平滑后的软标签为:q=[1−α,α/2​,α/2​]
  • 如果 α=0.1,则软标签为:q=[0.9,0.05,0.05]
核心思想
  • 通过引入噪声(软标签),防止模型过于自信地拟合训练数据。
  • 提高模型的泛化能力。

PS: 用 ​InfoNCE 函数 和 ​Softmax 损失函数 的相似性,来说明 ​Soft Label 更容易避免退化解问题

1.问题描述

假设我们有一个 ​对比学习(Contrastive Learning)​ 任务,目标是通过对比正样本和负样本,学习到更具判别性的特征表示。例如:

  • 任务:图像分类。
  • 目标:学习图像的特征表示,使得相似图像的特征接近,不相似图像的特征远离。

2. ​InfoNCE 损失函数的定义

InfoNCE 损失函数的公式为:

其中:

  • fT​ 是目标样本的特征表示,
  • fy​ 是正样本的特征表示,
  • fyi​​ 是负样本的特征表示,
  • τ 是温度参数,用于控制分布的平滑程度。

作用

  • 最大化正样本对(Positive Pair)的相似度。
  • 最小化负样本对(Negative Pair)的相似度。

3. ​模型训练的具体步骤

下面通过一个具体的例子,说明 InfoNCE 损失函数如何运用于模型训练。

步骤 1:准备数据

假设我们有以下数据:

  • 目标样本:一张猫的图像 x_{T }​。
  • 正样本:另一张猫的图像 x_{y }​(与目标样本相似)。
  • 负样本:一张狗的图像 x_{y1 }​​ 和一张车的图像 x_{y2 }​​(与目标样本不相似)。
步骤 2:提取特征

通过模型(例如卷积神经网络)提取特征:

  • 目标样本的特征:f_{T }​ = model(x_{T }​)
  • 正样本的特征:f_{y } = model(x_{y }​)
  • 负样本的特征:f_{y1} ​​= model(x_{y1}),fy2 ​​= model(x_{y2}​​)
步骤 3:计算相似度

计算目标样本与正样本、负样本的相似度:

  • 目标样本与正样本的相似度:f_{T}^T{}f_{y}^{}
  • 目标样本与负样本的相似度:f_{T}^T{}f_{y1}^{}f_{T}^T{}f_{y2}^{}
步骤 4:计算 InfoNCE 损失

根据 InfoNCE 损失函数的公式,计算损失值。

步骤 5:反向传播与优化

通过反向传播算法,计算损失函数对模型参数的梯度,并使用梯度下降法更新模型参数,使损失函数逐渐减小。

4. ​InfoNCE 损失函数的两个部分

如图所示,InfoNCE 损失函数可以拆分为两个部分:​alignment 和 ​uniformity

Alignment(对齐)​
  • 目标:使正样本对的特征尽可能接近。
  • 实现:通过最大化 f_{T}^T{}f_{y}^{}​ 实现。
Uniformity(均匀性)​
  • 目标:使所有特征尽可能均匀分布在单位超球面上。
  • 实现:通过最小化f_{T}^T{}f_{y1}^{} 和 f_{T}^T{}f_{y2}^{} 实现。

从softmax和InfoNCE损失函数的相似性上理解,把InoNCE公式的分母想象成soft label的所有位置相加,也就是最大值的那个位置可以看成是positive pair,其他位置都可以看成是negative pair,softmax的损失函数不是跟InfoNCE损失函数一模一样了吗,异曲同工!也就是说hard label可以认为只有positive pair,而soft label仍然保留negative pair。因此,soft label更容易避免退化解问题。 

方法 2:Knowledge Distillation(知识蒸馏)​(未细看)

knowledge distillation相比于label smoothing,最主要的差别在于,知识蒸馏的soft label是通过网络推理得到的,而label smoothing的soft label是人为设置的。

原始训练模型的做法是让模型的softmax分布与真实标签进行匹配,而知识蒸馏方法是让student模型与teacher模型的softmax分布进行匹配。直观来看,后者比前者具有这样一个优势:经过训练后的原模型,其softmax分布包含有一定的知识——真实标签只能告诉我们,某个图像样本是一辆宝马,不是一辆垃圾车,也不是一颗萝卜;而经过训练的softmax可能会告诉我们,它最可能是一辆宝马,不大可能是一辆垃圾车,但绝不可能是一颗萝卜。

通过使用一个 ​教师模型 的输出作为软标签,指导 ​学生模型 的训练。具体方法如下:

​① 训练教师模型:在训练集上训练一个复杂的教师模型,使其能够输出更准确的概率分布。

​② 生成 Soft 标签:使用教师模型的输出作为软标签,例如:q=[0.8,0.15,0.05]

​③ 训练学生模型:使用软标签训练一个更轻量级的学生模型。

核心思想
  • 通过教师模型的输出(软标签),将知识从教师模型迁移到学生模型。
  • 学生模型可以学习到教师模型的泛化能力,同时降低模型复杂度。
  • 知识蒸馏得到的soft label相当于对数据集的有效信息进行了统计,保留了类间的关联信息,剔除部分无效的冗余信息。 相比于label smoothing,模型在数据集上训练得到的soft label更加可靠。


三、如何将soft label运用于模型训练

 ① 模型输出 logits

模型输出 3 个类别的 logits z1​,z2​,z3​。

② Softmax 转换

通过 Softmax 函数将 logits 转换为概率分布 p1​,p2​,p3​:

③ 计算交叉熵损失

使用 Soft 标签 q=[q1​,q2​,q3​] 和模型预测的概率分布 p=[p1​,p2​,p3​],计算交叉熵损失:

\iota =-\sum_{i=1}^{3} q_{i}log(p_{i})

④ 优化损失函数

通过反向传播和梯度下降法更新模型参数,使损失函数逐渐减小。模型的目标是使预测的概率分布 p 尽可能接近 Soft 标签 q。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/33130.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自然语言处理:文本聚类

介绍 大家好,博主又来和大家分享自然语言处理领域的知识了。今天给大家分享的内容是自然语言处理中的文本聚类。 文本聚类在自然语言处理领域占据着重要地位,它能将大量无序的文本按照内容的相似性自动划分成不同的类别,极大地提高了文本处…

Python----计算机视觉处理(opencv:像素,RGB颜色,图像的存储,opencv安装,代码展示)

一、计算机眼中的图像 像素 像素是图像的基本单元,每个像素存储着图像的颜色、亮度和其他特征。一系列像素组合到一起就形成 了完整的图像,在计算机中,图像以像素的形式存在并采用二进制格式进行存储。根据图像的颜色不 同,每个像…

Spring Boot(十六):使用 Jenkins 部署 Spring Boot

Jenkins 是 Devops 神器,本篇文章介绍如何安装和使用 Jenkins 部署 Spring Boot 项目 Jenkins 搭建、部署分为四个步骤; 第一步,Jenkins 安装 第二步,插件安装和配置 第三步,Push SSH 第四步,部署项目 第…

【Linux 指北】常用 Linux 指令汇总

第一章、常用基本指令 # 注意: # #表示管理员 # $表示普通用户 [rootlocalhost Practice]# 说明此处表示管理员01. ls 指令 语法: ls [选项][目录或文件] 功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件&#xf…

解决Windows版Redis无法远程连接的问题

🌟 解决Windows版Redis无法远程连接的问题 在Windows系统下使用Redis时,很多用户会遇到无法远程连接的问题。尤其是在配置了Redis并尝试通过工具如RedisDesktopManager连接时,可能会报错“Cannot connect to ‘redisconnection’”。今天&am…

大语言模型学习及复习笔记(1)语言模型的发展历程

1.大模型进入人们视野 ChatGPT 于2022年11月底上线 模型名称 发布时间 核心突破 GPT-3 2020年6月 首款千亿参数模型,少样本学习 GPT-3.5-Turbo 2022年11月 对话能力优化,用户级应用落地 GPT-4 2023年3月 多模态、强逻辑推理 GPT-4o / GPT-4…

MySQL中count(*)与count(字段区别)

核心规则 表达式 统计规则 COUNT(*) 统计所有行数(包括所有字段为NULL的行)。 COUNT(字段) 仅统计该字段不为NULL的行数(若字段为NULL则自动忽略该行)。 误区 A表连接B表,若A和B是一对多的关系时,会出现…

【Unity】在项目中使用VisualScripting

1. 在packagemanager添加插件 2. 在设置中进行初始化。 Edit > Project Settings > Visual Scripting Initialize Visual Scripting You must select Initialize Visual Scripting the first time you use Visual Scripting in a project. Initialize Visual Scripting …

vue 仿deepseek前端开发一个对话界面

后端:调用deepseek的api,所以返回数据格式和deepseek相同 {"model": "DeepSeek-R1-Distill-Qwen-1.5B", "choices": [{"index": 0, "delta": {"role": "assistant", "cont…

基于Spring Boot的小区疫情购物系统的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…

【openwebui 搭建本地知识库(RAG搭建本地知识库)】

安装准备 openwebui 这个本地安装之前写过使用python安装。也可以直接用docker 命令 docker run --rm -d \-p 3080:8080 \-p 3081:8081 \-e WEBUI_AUTHtrue \-e DEFAULT_LOCALEcn \-e GLOBAL_LOG_LEVEL"INFO" \-e AIOHTTP_CLIENT_TIMEOUT100 \--privilegedtrue \-…

Linux 提权

文章目录 前言1. 内核漏洞提权脏牛(CVE-2016-5195) 2. 不安全的系统配置项2.1 SUID/SGID提权2.2 sudo提权2.3 定时任务提权2.4 capabilities提权 3. 第三方软件提权Tomcat managerNginx本地提权(CVE-2016-1247)Redis未授权 4. 参考…

谷粒商城:性能压测JVM堆区

目录 Kit Apache JMeter VisualVM 堆内存 jvm内存模型 垃圾回收(Garbage Collection, GC) 新对象分配内存 GC步骤 MinorGC 性能优化 影响因素 优化 nginx动静分离 优化三级分类获取 Jvm参数配置堆区 测试 Kit Apache JMeter 压力测试&…

TCP协议支持全双工原因TCP发送接收数据是生产者消费者模型

一、TCP支持全双工的原因 TCP协议支持全双工,即使用TCP协议进行通信时,服务端和客户端可以同时进行数据的发送和接收,互不干扰,实现同时双向传输数据。 这是因为使用TCP协议通信时,读写套接字的文件描述符既用来发送…

观成科技:​加密C2框架Platypus流量分析

一、工具介绍 Platypus 是一款支持多会话的交互式反向 Shell 管理器。在实际的渗透测试中,为了解决 Netcat/Socat 等工具在文件传输、多会话管理方面的不足,该工具在多会话管理的基础上增加了在渗透测试中能更好发挥作用的功能(如:交互式 Sh…

在 C# 中,is null 和 == null ‌不完全等价‌

最近遇到了一个看似奇怪的问题,判断一个对象是否为null,我使用了null来判断,结果他是null但是仍然进入了判断。 经过讨论和验证,发现使用is null 可以解决问题,于是查阅了资料。 在 C# 中,is null 和 nul…

go语言zero框架拉取内部平台开发的sdk报错的修复与实践

在开发过程中,我们可能会遇到由于认证问题无法拉取私有 SDK 的情况。这种情况常发生在使用 Go 语言以及 Zero 框架时,尤其是在连接到私有平台,如阿里云 Codeup 上托管的 Go SDK。如果你遇到这种错误,通常是因为 Go 没有适当的认证…

VBA+FreePic2Pdf 找出没有放入PDF组合的单个PDF工艺文件

设计部门针对某个项目做了一个工艺汇总报告,原先只要几十个工艺文件,组合成一个PDF,但后来要求要多放点PDF进去,但工艺文件都混在一起又不知道哪些是重复的,找上我让我帮忙处理一下,我开始建议让她重新再组…

Webservice如何调用

webservice调用方式: (1)http方式调用 请求头增加Content-type:text/xml 或application/soapxml SOAPAction:方法名 请求body以xml字符串传递,xml格式定义 返回以xml字符串返回,xml某个字段是一个json字符串。 入…

2025-03-10 吴恩达机器学习1——机器学习概述

文章目录 1 监督学习1.1 回归1.2 分类 2 无监督学习2.1 聚类2.2 异常检测2.3 降维 3 使用 Jupyter Notebook ​ 1959 年,Arthur Samuel 将机器学习定义如下: ​ Field of study that gives computers the ability to learn without being explicitly pro…