标签平滑 Label smoothing / Temperature Softmax
标签平滑 Label smoothing
- 逻辑
- 为什么有效
- Temperature Softmax
近期在查看一些训练技巧,无意中发现了标签平滑 Label smoothing,非常简单却有效的一个技巧,记录一下。
逻辑
思路很简单,如名,使标签更平滑。
假设三分类标签 [1, 0, 0]
从正确类的1中拿出一点点分给其他类,比如拿出0.1平分。变成 [0.933, 0.033, 0.033]
代码如下:
def label_smoothing(inputs, epsilon=0.1):K = inputs.get_shape().as_list()[-1] # 获取类别数量return ((1 - epsilon)) * inputs) + (epsilon / K)
在tensorflow中可以很简单的应用:
loss = tf.keras.losses.CategoricalCrossentropy(label_smoothing=0.1)
我的测试经验是设置在0.1 - 0.2可以获得最好的效果,最终accuracy可以提升0.4%左右。
为什么有效
[0, 1] 的标签值会导致模型对正确的分类奖励最大,对错误的分类惩罚最大。
而实际数据中,训练数据不可能完全正确,于是就可能带来过拟合。
其实平滑后的标签值也更符合真实世界,万事万物都是服从概率分布,难有绝对的情况。
Temperature Softmax
再说到另一个很类似的技巧,是在推理时使预测概率更加平滑,在进行Beam search时可能性更多。
比如logtis为 [5.0, 1.0, -0.5]
正常softmax结果为[0.978, 0.017, 0.0039]
假设进行降温处理,设T=2,logtis除以T为[2.5, 0.5, -0.25]
softmax后结果为[0.833 , 0.112, 0.053]。
会更加平滑。
标签平滑 Label smoothing / Temperature Softmax相关推荐
- 标签平滑 label smoothing
文章目录 简介 什么是label smoothing label smoothing作用 torch实现label smoothing 简介 label smoothing其实是机器学习和深度学习上比 ...
- 标签平滑Label Smoothing
Lable Smoothing 是分类问题中错误标注的一种解决方法. 对于分类问题,特别是多分类问题,常常把向量转换成one-hot-vector(独热向量) one-hot带来的问题:(对于独热的简 ...
- Label Smoothing 标签平滑 (Label smooth regularization, LSR)
Lable Smoothing 是分类问题中错误标注的一种解决方法.是一种正则化方法, 为了降低模型过拟合(overfitting) 出自inception v3,Transformer中就用到了 我 ...
- [轻笔记] label smoothing(标签平滑)
看google AI最新的开源代码,发现有个技巧--label smoothing,网上查到的公式与代码中的公式不一样,于是做个笔记,并对见到的觉得有问题的关于label smoothing的博客也列 ...
- 深度学习--TensorFlow(7)拟合(过拟合处理)(数据增强、提前停止训练、dropout、正则化、标签平滑)
目录 拟合 1.拟合情况 2.抵抗过拟合方法 过拟合处理(防止过拟合): 一.数据增强 1.设置图像生成器 2.载入图片 3.图像转三维数据 4.三维转四维 5.生成图片(用图像生成器) 代码 二.提 ...
- 【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正则化 在一次询问 ...
- 垃圾分类、EfficientNet模型、数据增强(ImageDataGenerator)、混合训练Mixup、Random Erasing随机擦除、标签平滑正则化、tf.keras.Sequence
日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) 垃圾分类.EfficientNet模型.数据增强(ImageD ...
- Label Smoothing介绍及其代码实现
一.标签平滑(Label Smoothing)介绍 标签平滑(Label Smoothing)的原理其实很简单,它大部分的用处用一句话总结就是: 修改数据集的标签来增加扰动,避免模型的判断过于自信从而 ...
- label smooth标签平滑的理解
今天我们来聊一聊label smooth这个tricks,标签平滑已经成为众所周知的机器学习或者说深度学习的正则化技巧.标签平滑--label smooth regularization作为一种简单的 ...
最新文章
- linux系统 大分区,linux大硬盘怎么分区
- 无法加载mspdb140.dll
- 线程安全的单例模式的几种实现方法分享
- Pycharm 在Ubuntu图形界面中创建桌面图标
- linux分区知识,Linux硬盘分区知识
- YII2框架的excel表格导出
- 机器学习中的训练集,验证集及测试集的关系
- jvm系列(七):jvm调优-工具篇
- 源码解析:Git的第一个提交是什么样的?
- maven环境下,控制台中文乱码
- 解决:Throwable:Stub index points to a file without PSI: com.intellij.openapi.fileTypes.UnknownFileType
- 信息学奥赛一本通(1048:有一门课不及格的学生)
- [ACL17]A Minimal Span-Based Neural Constituency Parser(一个最小化的基于跨度的神经句法分析器)...
- Chrom调试移动端页面
- AndroidSDK下载及安装
- 机械臂动力学建模(2)- Kane凯恩算法
- 等保三级密码技术应用要求 GM/T 0054-2018
- 轻量级云服务器部署K3S(公网部署)
- php interface类,类相关的关键字 - interface
- ICPC2019徐州区域赛 H.Yuuki and a problem