IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 浅谈Label Smoothing技术 -> 正文阅读

[人工智能]浅谈Label Smoothing技术

一、从 One-Hot 到 Label Smoothing

考虑单个样本的交叉熵损失

H ( p , q ) = ? ∑ i = 1 C p i log ? q i H(p,q)=-\sum_{i=1}^C p_i\log q_i H(p,q)=?i=1C?pi?logqi?

其中 C C C 代表类别个数, p i p_i pi? 是真实分布(即 target), q i q_i qi? 是预测分布(即神经网络输出的 prediction)。

如果真实分布采用传统的 One-Hot 向量,则其分量非 0 0 0 1 1 1。不妨设第 k k k 个位置是 1 1 1,其余位置是 0 0 0,此时交叉熵损失变为

H ( p , q ) = ? log ? q k H(p,q)=-\log q_k H(p,q)=?logqk?

从上面的表达式不难发现一些问题:

  • 真实标签跟其他标签之间的关系被忽略了,一些有用的知识无法学到;
  • One-Hot 倾向于让模型过度自信(Overconfidence),容易造成过拟合,进而导致泛化性能降低;
  • 误标注的样本(即 target 错误)更容易对模型的训练产生影响;
  • One-Hot 对 “模棱两可” 的样本表征较差。

缓解这些问题的方法就是采用 Label Smoothing 的技术,它也是一种正则化的技巧,具体如下:

p i : = { 1 ? ? , i = k ? / ( C ? 1 ) , i ≠ k p_i:= \begin{cases} 1-\epsilon,& i=k \\ \epsilon/(C-1),&i\neq k\\ \end{cases} pi?:={1??,?/(C?1),?i=ki?=k?

其中 ? \epsilon ? 是一个小正数。

例如,设原始 target [ 0 , 0 , 1 , 0 , 0 , 0 ] [0,0,1,0,0,0] [0,0,1,0,0,0],取 ? = 0.1 \epsilon=0.1 ?=0.1,则经过 Label Smoothing 后 target 变为 [ 0.02 , 0.02 , 0.9 , 0.02 , 0.02 , 0.02 ] [0.02,0.02,0.9,0.02,0.02,0.02] [0.02,0.02,0.9,0.02,0.02,0.02]

📌 原始的 One-Hot 向量通常称为 Hard Target(或 Hard Label),经过标签平滑后通常称为 Soft Target(或 Soft Label)

二、Label Smoothing 的简单实现

import torch


def label_smoothing(label, eps):
    label[label == 1] = 1 - eps
    label[label == 0] = eps / (len(label) - 1)
    return label


a = torch.tensor([0, 0, 1, 0, 0, 0], dtype=torch.float)
print(label_smoothing(a, 0.1))
# tensor([0.0200, 0.0200, 0.9000, 0.0200, 0.0200, 0.0200])

三、Label Smoothing 的优缺点

优点:

  • 一定程度上可以缓解模型 Overconfidence 的问题,此外也具有一定的抗噪能力;
  • 提供了训练数据中类别之间的关系(数据增强);
  • 可能在一定程度上增强了模型的泛化能力。

缺点:

  • 单纯地添加随机噪音,也无法反映标签之间的关系,因此对模型的提升有限,甚至有欠拟合的风险;
  • 某些场景下 Soft Label 并不能帮助我们构建更好的神经网络(表现不如 Hard Label)。

四、什么时候使用 Label Smoothing?

  • 庞大的数据集难免存在噪音(即标注错误),为了避免模型学到这些噪音可以加入 Label Smoothing;
  • 对于模糊的 case 而言可以引入 Label Smoothing(比如猫狗分类任务中,可能存在一些图片既像狗又像猫);
  • 防止模型 Overconfidence。
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-07-05 23:31:36  更:2022-07-05 23:31:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 1:32:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码