论文笔记:Distilling the Knowledge
原文:Distilling the Knowledge in a Neural Network
Distilling the Knowledge
1、四个问题
要解决什么问题?
神经网络压缩。
我们都知道,要提高模型的性能,我们可以使用ensemble的方法,即训练多个不同的模型,最后将他们的结果进行融合。像这样使用ensemble,是最简单的能提高模型性能的方法,像kaggle之类的比赛中大家也都是这么做的。但是使用多个深度网络模型进行ensemble常常会有十分巨大的计算开销,而且算起来整个算法中的模型也会非常大。
这篇文章就是为了解决这个问题,提出一套方法,将一个ensemble中的知识信息压缩到一个小模型中,让最终的模型更易于部署,节约算力。
用了什么方法解决?
- 提出一种 **知识蒸馏(Knowledge Distillation)**方法,从大模型所学习到的知识中学习有用信息来训练小模型,在保证性能差不多的情况下进行模型压缩。
- 知识蒸馏:
- 将一个训练好的大模型的知识通过迁移学习手段迁移给小模型。
- 换成大白话说就是:先训练一个复杂的网络,然后再使用这个网络来辅助训练一个小网络;相当于大网络是老师,小网络是学生。
- 知识蒸馏:
- 提出一种新的**集成模型(Ensembles of Models)**方法,包括一个通用模型(Generalist Model)和多个专用模型(Specialist Models),其中,专用模型用来对那些通用模型无法区分的细粒度(Fine-grained)类别的图像进行区分。
- 提出一种 **知识蒸馏(Knowledge Distillation)**方法,从大模型所学习到的知识中学习有用信息来训练小模型,在保证性能差不多的情况下进行模型压缩。
效果如何?
- 文中给了一些语音识别等领域的实验,通过知识蒸馏训练得到的小模型的准确率虽不及大模型,但能比较接近了,效果也比较不错。
还存在什么问题?
- 虽然思想很简单,实际使用时还需要较多的trick,很难保证每次训练都能取得很好的效果。
2、论文概述
2.1、知识蒸馏(Knowledge Distillation)
- 对于多分类任务的大模型来说,我们通常都是希望最大化输出概率的log值,来获取准确的预测结果。然而,这么做会有一个副作用,就是会赋予所有的非正确答案一定的概率,即使这些概率值都很小。
- 这些非正确答案的相对概率,隐含了大模型在训练中倾向于如何泛化的信息。
- 为此,Hinton等人在论文中提出了soft target的概念。
- **soft target **指的是大模型最后输出的概率预测值,即softmax层的输出。
- 相对的,就有hard target,指的是数据集的标签了。
- 给softmax加入蒸馏的概念:
- 公式中的TTT表示“温度”。使用它的目的就是,让输出的softmax更平滑,分布更均匀,同时保证各项之间的大小相对关系不变。
- T=1T = 1T=1时,上式就是平常使用的softmax函数。
- 上图摘自知乎,根据图很方便理解。
- 当我们不知道数据集的label时,可以直接使用大模型的soft target来训练小模型。训练的损失函数是cross-entropy。
- 当我们已知数据集的label时,可以将soft target和小模型预测值的cross-entropy与hard target和小模型预测值得cross-entropy进行加权求合,权重参数为λ\lambdaλ。这种方法得到的效果会更好。
- 实现流程:
2.2、distillation在特殊情况下相当于匹配logits(Matching logits is a special case of distillation )
- 再重复一遍,知识蒸馏(Knowledge Distillation)在特殊情况下相当于logits。
- 下式是cross-entropy到logit的梯度计算公式:
- viv_ivi是大模型(cumbersome model)产生的logits,ziz_izi是小模型(distillation model)的logits。
- 如果温度很高,即TTT很大,那么:
- 假设logits的均值均为0,即:∑jzj/T=∑jvj/T=0\sum_j{z_j / T} = \sum_j{v_j / T} = 0∑jzj/T=∑jvj/T=0。则有:
- 所以,在TTT很大且logit均值为0时,知识蒸馏就相当于标签匹配:12(zi−vi)2\frac{1}{2} (z_i - v_i)^221(zi−vi)2。
- 当T较小时,蒸馏更加关注负标签,在训练复杂网络的时候,这些负标签是几乎没有约束的,这使得产生的负标签概率是噪声比较大的,所以采用更大的T值(上面的简化方法)是有优势的。而另一方面,这些负标签概率也是包含一定的有用信息的,能够用于帮助简单网络的学习。这两种效应哪种占据主导,是一个实践问题。(注:我也不是很理解论文中的这段,简单点说,T就是个超参数,需要你自己调。)
2.3、在大数据集上训练专家模型(Training ensembles of specialists on very big datasets )
- 当数据集非常巨大以及模型非常复杂时,训练多个模型所需要的资源是难以想象的,因此作者提出了一种新的集成模型(ensemble)方法:
- 一个generalist model:使用全部数据训练。
- 多个specialist model(专家模型):对某些容易混淆的类别进行训练。
- specialist model的训练集中,一半是由训练集中包含某些特定类别的子集(special subset)组成,剩下一半是从剩余数据集中随机选取的。
- 这个ensemble的方法中,只有generalist model是使用完整数据集训练的,时间较长,而剩余的所有specialist model由于训练数据相对较少,且相互独立,可以并行训练,因此训练模型的总时间可以节约很多。
- specialist model由于只使用特定类别的数据进行训练,因此模型对别的类别的判断能力几乎为0,导致非常容易过拟合。
- 解决办法:当 specialist model 通过 hard targets 训练完成后,再使用由 generalist model 生成的 soft targets 进行微调。这样做是因为 soft targets 保留了一些对于其他类别数据的信息,因此模型可以在原来基础上学到更多知识,有效避免了过拟合。
- 实现流程:
3、参考资料
- Distilling the Knowledge in a Neural Network 论文笔记(注:个人觉得这篇博客总结得很不错)
- https://blog.csdn.net/qq_22749699/article/details/79460817
- 如何理解soft target这一做法?
论文笔记:Distilling the Knowledge相关推荐
- 论文笔记Improving Multi-hop Knowledge Base Question Answering by Learning Intermediate Supervision Signa
Improving Multi-hop Knowledge Base Question Answering by Learning Intermediate Supervision Signals 引 ...
- 论文笔记:Sequence-to-Sequence Knowledge Graph Completion and QuestionAnswering
Sequence-to-Sequence Knowledge Graph Completion and Question 备注:ACL 2022 Main Conference 链接:https:// ...
- 【论文笔记】Commonsense Knowledge Aware Conversation Generation with Graph Attention
Commonsense Knowledge Aware Conversation Generation with Graph Attention 文章目录 Commonsense Knowledge ...
- 【论文笔记】ERNIE-VIL: KNOWLEDGE ENHANCED VISION-LANGUAGE REPRESENTATIONS THROUGH SCENE GRAPH
本文强调的点是语义对齐(semantics alignment),并且将VL任务划分为了三个部分,即识别图中的对象.属性.关系. 本文利用了ERNIE的知识掩蔽策略,即每次掩蔽整个短语或实体而不是子词 ...
- Distilling the Knowledge in a Neural Network 论文笔记蒸馏
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/bryant_meng/article/ ...
- 【论文笔记】Exploring and Distilling Posterior and Prior Knowledge for Radiology Report ... (CVPR 2021)
论文原文:https://arxiv.org/pdf/2106.06963.pdf 参考:https://blog.csdn.net/qq_45645521/article/details/12349 ...
- 【论文笔记】An End-to-End Model for QA over KBs with Cross-Attention Combining Global Knowledge
一.概要 该文章发于ACL 2017,在Knowledge base-based question answering (KB-QA)上,作者针对于前人工作中存在没有充分考虑候选答案的相关信息来训 ...
- 论文笔记【A Comprehensive Study of Deep Video Action Recognition】
论文链接:A Comprehensive Study of Deep Video Action Recognition 目录 A Comprehensive Study of Deep Video A ...
- 【论文笔记】—低照度图像增强—ZeroShot—RUAS网络—2021-CVPR
论文介绍 题目:Retinex-Inspired Unrolling With Cooperative Prior Architecture Search for Low-Light Image E ...
最新文章
- 360脱口秀:‘未来属于虚拟’开播啦!
- 使用 spring 的 IOC 解决程序耦合——获取spring的Ioc核心容器,并根据id获取对象、核心容器的两个接口(ApplicationContext、BeanFactory)引发出的问题
- C/C++/VC++ 变量命名规则
- 科大星云诗社动态20210509
- 微信小程序------MD5加密(支持中文和不支持中文)和网络请求(get和post)
- LeetCode 1051. 高度检查器
- Spark案例:Python版统计单词个数
- java nio 多路复用_8分钟深入浅出搞懂BIO、NIO、AIO
- NSThread 在主线操作的三个方法
- 吴恩达教授机器学习课程笔记【六】- Part 6 学习理论
- [Android实例] 【eoeAndroid社区索引】android开发基础之定位篇
- LabelImg使用方法
- ps2硬盘接linux,PS2加装硬盘详细指导
- XRD格式转换 神器
- php万年历月份处理_使用 PHP 写的万年历接口
- 国家级专精特新小巨人企业是什么?
- 古有穷书生街中弄笔,今有弄潮儿网上卖字
- 22/04/30本周总结
- IOS端向下滑动骤停
- 天使玩偶(CDQ分治+最小曼哈顿距离)