深度学习中的各种tricks_1.0_label_smoothing

2017/11/16 - Thursday - 第一次修改
[ 用于整理遇到的NN设计中使用的不同结构和trick的原理与实现 ]

label smoothing (标签平滑)

在读cleverhans的示例代码时发现code中对于train_Y即训练标签做了label smoothing,于是找到paper中对于该方法的描述和理论分析,如下:

对于分类问题,常规做法时将类别做成one-hot vector,然后在网络最后一层全链接的输出后接一层softmax,softmax的输出是归一的,因此我们认为softmax的输出就是该样本属于某一类别的概率。由于标签是类别的one-hot vector, 因此表征我们已知该样本属于某一类别是概率为1的确定事件,而其他类别概率都为0。

softmax:

p(k|x)=exp(zk)∑i=Kiexp(zi)

p(k|x) = \frac{exp(z_k)}{\sum_i^{i=K}{exp(z_i)}}
其中 ziz_i 一般叫做 logits ,即 未被归一化的对数概率 。我们用 p 代表 predicted probability,用 q 代表 groundtruth 。在分类问题中loss函数一般用交叉熵,即:
cross entropy loss:

loss=−∑k=1Kq(k|x)log(p(k|x))

loss = -\sum_{k=1}^{K}{q(k|x) log(p(k|x))}
交叉熵对于logits可微,且偏导数形式简单: ∂loss∂zk=p(k)−q(k)\frac{\partial{loss}}{\partial{z_k}}=p(k) - q(k) ,显然梯度时有界的(-1到1)。

对于groundtruth为one-hot的情况,即每个样本只有惟一的类别,则 q(k)=δk,yq(k) = \delta_{k,y} ,yy 是真实类别。其中 δ\delta 是Dirac函数。要用predicted label 去拟合这样的函数具有两个问题:首先,无法保证模型的泛化能力(generalizing),容易导致过拟合; 其次,全概率和零概率将鼓励所属类别和非所属类别之间的差距尽可能拉大,而由于以上可知梯度有界,因此很难adapt。这种情况源于模型过于相信预测的类别。( Intuitively, this happens because the model becomes too confident about its predictions.)

因此提出一种机制,即要使得模型可以 less confident 。思路如下:考虑一个与样本无关的分布 u(k)u(k) ,将我们的 label 即真实标签 q(k)q(k) 变成 q′(k)q^{'}(k) ,其中:

可以理解为,对于 Dirac 函数分布的真实标签,我们将它变成以如下方式获得:首先从标注的真实标签的Dirac分布中取定,然后,以一定的概率 ϵ\epsilon ,将其替换为在 u(k)u(k) 分布中的随机变量。因此可以避免上述的问题。而 u(k)u(k) 我们可以用先验概率来充当。如果用 uniform distribution 的话就是 1/K 。该操作就叫做 label-smoothing regularization, or LSR 。

对于该操作的数学物理含义可以用交叉熵的概念说明:

可以认为 loss 函数分别以不同的权重对 predicted label 与标注的label 的差距 以及 predicted label 与 先验分布的差距 进行惩罚。根据文章的报告,可以对分类性能有一定程度的提升。(In our ImageNet experiments with K = 1000 classes, we used u(k) = 1/1000 and = 0.1. For ILSVRC 2012, we have found a consistent improvement of about 0.2% absolute both for top-1 error and the top-5 error )

reference:

  1. Szegedy C, Vanhoucke V, Ioffe S, et al. Rethinking the Inception Architecture for Computer Vision[C]// Computer Vision and Pattern Recognition. IEEE, 2016:2818-2826.
  2. https://github.com/tensorflow/cleverhans/blob/master/cleverhans_tutorials/mnist_tutorial_tf.py

深度学习中的各种tricks_1.0_label_smoothing相关推荐

  1. 深度学习中的一些英文解释

    A: (1)anchors:锚点.(anchors(锚点)定义在RPN网络中) B: (1)bounding box:预测边界框. (2)Botton-up 3D proposal generatio ...

  2. 深度学习中的优化算法之MBGD

    之前在https://blog.csdn.net/fengbingchun/article/details/75351323 介绍过梯度下降,常见的梯度下降有三种形式:BGD.SGD.MBGD,它们的 ...

  3. 深度学习中的优化算法之BGD

    之前在https://blog.csdn.net/fengbingchun/article/details/75351323 介绍过梯度下降,常见的梯度下降有三种形式:BGD.SGD.MBGD,它们的 ...

  4. 深度学习中的优化简介

    深度学习算法在许多情况下都涉及到优化. 1. 学习和纯优化有什么不同 在大多数机器学习问题中,我们关注某些性能度量P,其定义于测试集上并且可能是不可解的.因此,我们只是间接地优化P.我们系统通过降低代 ...

  5. 1 图片channels_深度学习中各种图像库的图片读取方式

    深度学习中各种图像库的图片读取方式总结 在数据预处理过程中,经常需要写python代码搭建深度学习模型,不同的深度学习框架会有不同的读取数据方式(eg:Caffe的python接口默认BGR格式,Te ...

  6. 深度学习中的注意力机制(三)

    作者 | 蘑菇先生 来源 | NewBeeNLP原创出品 深度学习Attenion小综述系列: 深度学习中的注意力机制(一) 深度学习中的注意力机制(二) 目前深度学习中热点之一就是注意力机制(Att ...

  7. 深度学习中的注意力机制(二)

    作者 | 蘑菇先生 来源 | NewBeeNLP 目前深度学习中热点之一就是注意力机制(Attention Mechanisms).Attention源于人类视觉系统,当人类观察外界事物的时候,一般不 ...

  8. 深度学习中的注意力机制(一)

    作者 | 蘑菇先生 来源 | NewBeeNLP 头图 | CSDN下载自视觉中国 目前深度学习中热点之一就是注意力机制(Attention Mechanisms).Attention源于人类视觉系统 ...

  9. 深度学习中的优化算法串讲

    Datawhale原创 作者:谢文睿,Datawhale成员 寄语:优化算法是一个超参数,一个优化算法不是适合所有损失函数的,没有哪个优化算法是绝对的好或绝对的坏,是要根据损失函数判断的 本文对深度学 ...

最新文章

  1. Science Robotics:新型多足机器人可自行组装,零件损坏时也能继续运动
  2. 贝叶斯网络/深度信念网络学习
  3. ABAP Range
  4. 白话详细解读(二)-----AlexNet
  5. R与量化(part1)--量化概述
  6. linux中第一个进程的形成,Linux进程管理
  7. CSU 2151 集训难度(线段树)
  8. 无锁编程(三) - 忙等待
  9. 【Python学习之路】——Day7(面向对象)
  10. pandownload如何使用cookie登录百度网盘账号
  11. Servlet过滤器
  12. Win7文件夹怎么加密
  13. 苹果低头了,但不想丢掉它的皇冠
  14. Downward API,它的作用是:让 Pod 里的容器能够直接获取到这个 Pod API 对象本身的信息。
  15. linux vi如何输入井号,Linux Vi命令用法详解
  16. 有新的CVE仓库送达~
  17. Android HOME键那些事
  18. python 论文写作_论文编辑神器Sublime Text,让论文写作过程事半功倍
  19. oa系统服务器租赁,oa服务器租赁
  20. R语言使用caret包的confusionMatrix函数计算混淆矩阵、基于混淆矩阵的信息手动编写函数计算Specificity、特异度指标

热门文章

  1. 图神经网络中同质图与异质图等区别
  2. 按键精灵---简单加密、发布
  3. 新手学习单片机用什么软件模拟
  4. 【JSON解析】JSON解析
  5. 一文带你了解爆火的Chat GPT
  6. linux 看不到光盘刻录的文件夹,ARM_Linux下光盘刻录方案
  7. Ubuntu下vim设置tab键为4个空格
  8. 【文献翻译CVPR2022】SoftGroup for 3D Instance Segmentation on Point Clouds
  9. 如何将Word处理为可编辑转态
  10. TreeSet的比较器简单的分析和使用(TreeMap同样适用)