label smoothing理论推导
我们知道,softmax容易使模型过度自信过拟合,label smoothing作为一种改善方案可以提高模型的泛化能力。
label_smoothing
上篇博客推导过反向求导的结果如下softmax求导/label_smoothing求导/知识蒸馏求导
y^i=softmax(zi)=expzi∑j=1Kexpzjloss=−∑i=1Nyilogy^i\hat{y}_i=\text{softmax}{(z_i)}=\frac{\exp{z_i}}{\sum_{j=1}^K\exp{z_j}}\\ loss=-\sum_{i=1}^Ny_i\log\hat{y}_i y^i=softmax(zi)=∑j=1Kexpzjexpziloss=−i=1∑Nyilogy^i
其中
yi={1−ϵi=trueϵK−1otherwisey_i=\left\{\begin{array}{ll}{1-\epsilon} & {i=true} \\ {\cfrac{\epsilon}{K-1}} & {otherwise}\end{array}\right. yi=⎩⎨⎧1−ϵK−1ϵi=trueotherwise
求导结果与上面softmax相同
∂loss∂zi=y^i−yi\frac{\partial{loss}}{\partial{z_i}}=\hat{y}_i-y_i ∂zi∂loss=y^i−yi
令导数等于0,将y^i\hat{y}_iy^i代入
{exp(zi)exp(zi)+∑j≠iexp(zj)=1−ϵi=trueexp(zi)∑jexp(zj)=ϵK−1i≠true\left\{\begin{array}{ll} \cfrac{\exp{(z_i)}}{\exp{(z_i)}+\sum_{j\neq i}\exp{(z_j)}}=1-\epsilon & {i=true} \\ \cfrac{\exp{(z_i)}}{\sum_j\exp{(z_j)}}=\cfrac{\epsilon}{K-1} & {i\neq true}\end{array}\right. ⎩⎪⎪⎪⎨⎪⎪⎪⎧exp(zi)+∑j=iexp(zj)exp(zi)=1−ϵ∑jexp(zj)exp(zi)=K−1ϵi=truei=true
假定错误类别的概率相等,化简上式得:
{zi=log((1−ϵ)(K−1)ϵ)+zji=truezi=log((1−ϵ)(K−1)ϵ)+zji≠true\left\{\begin{array}{ll} z_i=\log{\left({\cfrac{(1-\epsilon)(K-1)}{\epsilon}}\right)}+z_j & {i=true} \\ z_i=\log{\left({\cfrac{(1-\epsilon)(K-1)}{\epsilon}}\right)}+z_j & {i\neq true}\end{array}\right. ⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧zi=log(ϵ(1−ϵ)(K−1))+zjzi=log(ϵ(1−ϵ)(K−1))+zji=truei=true
将i≠truei\neq truei=true时记为α\alphaα得:
zi∗={log((1−ϵ)(K−1)ϵ)+αi=trueαi≠truez_i^{*}=\left\{\begin{array}{ll} \log{\left({\cfrac{(1-\epsilon)(K-1)}{\epsilon}}\right)}+\alpha & {i=true} \\ \alpha & {i\neq true}\end{array}\right. zi∗=⎩⎪⎨⎪⎧log(ϵ(1−ϵ)(K−1))+ααi=truei=true
所以,使用label smoothing编码,损失函数为交叉熵的话,错误类别的logit不会要求是负无穷,当正确类别和错误类别的logit有一定误差,接近log((1−ϵ)(K−1)ϵ)\log{\left({\cfrac{(1-\epsilon)(K-1)}{\epsilon}}\right)}log(ϵ(1−ϵ)(K−1))的情况下,loss就会很小趋于0。
简单的label smoothing为什么能够涨点呢
label smoothing理论推导相关推荐
- 目标检测的Tricks | 【Trick1】Label Smoothing
如有错误,恳请指出. 文章目录 1. Label Smoothing理论概要 2. Label Smoothing实现代码 1. Label Smoothing理论概要 假设我们的分类只有两个,一个是 ...
- NB朴素贝叶斯理论推导与三种常见模型
转自:http://www.tuicool.com/articles/zEJzIbR 朴素贝叶斯(Naive Bayes)是一种简单的分类算法,它的经典应用案例为人所熟知:文本分类(如垃圾邮件过滤). ...
- 朴素贝叶斯理论推导与三种常见模型
朴素贝叶斯(Naive Bayes)是一种简单的分类算法,它的经典应用案例为人所熟知:文本分类(如垃圾邮件过滤).很多教材都从这些案例出发,本文就不重复这些内容了,而把重点放在理论推导(其实很浅显,别 ...
- Label Smoothing标签平滑详解+Pytorch保姆级实际操作
目录 简介 从提出Label Smoothing的论文出发 不使用LS时的情况 不使用LS时可能带来的问题 LS作为正则化的一种方式 具体操作 为何LS可以避免偏激的输出 对LS的另一个角度理解 Py ...
- 【Pytorch】Label Smoothing
理论介绍可以参考 [Inception-v3]<Rethinking the Inception Architecture for Computer Vision> 中的 4.5 Mode ...
- MSCKF理论推导与代码解析
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 在SLAM后端中,主要有两种主流方法用于优化:基于滤波的方法和基于非线性的方法.基于滤波的方法主要有M ...
- GAN完整理论推导与实现,Perfect!
本文是机器之心第二个 GitHub 实现项目,上一个 GitHub 实现项目为从头开始构建卷积神经网络.在本文中,我们将从原论文出发,借助 Goodfellow 在 NIPS 2016 的演讲和台大李 ...
- UA MATH566 统计理论 推导卡方拟合优度检验
UA MATH566 统计理论 推导卡方拟合优度检验 卡方拟合优度检验主要是检验categorical data的,假设一共有ddd种category,每一种理论比例为pip_ipi,满足 ∑i=1 ...
- 机器学习入门学习笔记:(2.1)线性回归理论推导
理论推导 机器学习所针对的问题有两种:一种是回归,一种是分类.回归是解决连续数据的预测问题,而分类是解决离散数据的预测问题.线性回归是一个典型的回归问题.其实我们在中学时期就接触过,叫最小二乘法. ...
最新文章
- SAP QM 模块主数据
- linux docker 目录挂载映射
- 数据中心运营之4P标准化运维规程
- [Leetcode总结] 102.二叉树的层序遍历
- python公式_Python读取excel文件中带公式的值的实现
- Java笔记-使用CXF开发WebService服务器
- epoll哪些触发模式_epoll的内部实现 百万级别句柄监听 lt和et模式非常好的解释...
- php soapclient 超时,PHP SoapClient超时
- fluent二维叶型仿真_FLUENT太阳能热水器仿真
- 结巴分词python教程_Python笔记:用结巴分词制作词云图
- ITOP4412开发板学习前的准备2 -- 安装ADB驱动
- catia中的螺旋伞齿轮画法_使用CATIA绘制斜齿轮(直齿轮)得画法教程.doc
- Hutool操作数据库的基本封装
- 丢失的遗传力--Missing heritability
- 树莓派4B安装中文输入法(Googlepinyin)
- 使用Python连接阿里云盘
- 百度飞桨领航团python零基础训练营笔记
- SEO优化技术之关键字
- python特殊符号
- day16_雷神_前端04