《Distilling the Knowledge in a Neural Network》 论文阅读笔记

文章深入探讨了知识蒸馏在模型压缩与增量学习中的应用,通过大模型生成的soft targets训练小模型,实现知识传递,提升小模型性能。

原文链接:https://arxiv.org/abs/1503.02531

  第一次接触这篇文章是在做网络结构的时候,对于神经网络加速,知识蒸馏也算是一种方法,当时连同剪纸等都是网络压缩的内容,觉得这些方法涉及数学概念太多,就没有深入了解,直到最近看了几篇增量学习相关的论文,才发现原来知识蒸馏的思想对增量学习也影响那么大,所以再次遇见就决定读一读这篇文章,因为文中做了图像和语音两个方面的实验,这里就作为阅读论文的一些简单记录。

前言

  几乎改善所有的机器学习算法最简单的方法就是在相同的数据集上使用不同的方法,最后将它们的预测值取平均。但是使用上述方法往往是很耗时耗力的,之前已经有工作证明可以将知识集压缩到单个的模型,从而更易去应用,这篇文章也是继续探究相关的模型压缩问题,从而提出了知识蒸馏(Knowledge distillation)。

  很多昆虫都有幼虫阶段从而更易于从生长的环境中吸收能力和维生素,然后变成另一种不同的形态——成虫,更易于日后的种群迁移和繁衍。 在机器学习算法中,我们大部分也经历了差不多的过程: 在训练阶段(training stage)我们需要从数量大,且存在高度冗余的数据集中提取特征,但是这样的模型并不便于应用阶段(deployment stage)。

对 知识 的理解

  在此之前,我们总是将知识(Knowledge) 这一概念等同于机器学习模型中学习到的所有参数,本身部分机器学习算法,尤其是深度学习就是黑箱模型,这样的类比就会让我们很难去探究该如何改变模型的形式但可以保留同样的知识。这里,我们将 知识(Knowledge) 的概念更加抽象化,就是学习如何从输入向量映射到输出向量
  正常的模型学习到的就是在正确的类别上得到最大的概率,但是不正确的分类上也会得到一些概率尽管有时这些概率很小,但是在这些不正确的分类中,有一些分类的可能性仍然是其他类别的很多倍。但是对这些非正确类别的预测概率也能反应模型的泛化能力,例如,一辆宝马车的图片,只有很小的概率被误识别成垃圾车,但是被识别成垃圾车的概率还是比错误识别成胡萝卜的概率高很多倍。(例如一个车,猫,狗3分类的模型识别一张猫的图片,最后结果是:(cat,99%) ; (dog,0.95%)(car,0.05%)错误类别 dog 上的概率仍是错误类别 car 的概率的19倍 )

知识蒸馏

  这里一个可行的办法是使用大模型生成的模型类别概率作为“soft targets”(使用蒸馏算法以后的概率,相对应的 head targets 就是正常的原始训练数据集)来训练小模型,由于 soft targets 包含了更多的信息熵,所以每个训练样本都提供给小模型更多的信息用来学习,这样小模型就只需要用更少的样本,及更高的学习率去训练了。

  仍然是上面的错误分类概率的例子,在 MNIST 数据集上训练的一个大模型基本都能达到 99 % 以上的准确率,假如现在有一个数字 2 的图片输入到大模型中分类,在得到的结果是数字 3 的概率为 10e-6, 是数字 7 的概率为 10e-9,这就表示了相比于 7 ,3更接近于 2,这从侧面也可以表现数据之间的相关性,但是在迁移阶段,这样的概率在交叉熵损失函数(cross-entropy loss function)只有很小的影响,因为它们的概率都基本为0。 所以这里,本文提出了 “distillation” 的概念, 来软化上述的结果。

上面的公式就是蒸馏后的 softmax,其中 T 代表 temperature, 蒸馏的温度。那么 T 有什么作用呢?

假设现在有一个数组 x=[2,7,10] ,当T = 1,即为正常的 Softmax函数 输入上式中可得:

 T = 1 ——> y=[0.00032,0.04741,0.95227]

可以理解为上述的一个车,猫,狗3分类网络,输入一张猫的图片,预测为汽车的概率为0.00032, 预测为狗的概率为 0.04741, 预测为猫的概率为 0.95227。
下面再看一下改变 T 的值概率的输出:

 T = 5   ——>   y=[0.11532, 0.31348, 0.5712]   
 T = 10  ——>   y=[0.20516, 0.33825, 0.45659]  
 T = 20  ——>   y= [0.26484, 0.34006, 0.3951]

下面是在(-10,10)之间随机取多个点然后在 不同的 T 值下绘制的图像。

可以看到当 T = 1 是就是常规的 Softmax,而升温T,对softmax进行蒸馏,函数的图像会变得越来越平滑,这也是文中提高的 soft targetssoft 一词来源吧。

假设你是每次都是进行负重登山,虽然过程很辛苦,但是当有一天你取下负重,正常的登山的时候,你就会变得非常轻松,可以比别人登得高登得远。我们知道对于一个复杂网络来说往往能够得到很好的分类效果,错误的概率比正确的概率会小很多很多,但是对于一个小网络来说它是无法学成这个效果的。我们为了去帮助小网络进行学习,就在小网络的softmax加一个T参数,加上这个T参数以后错误分类再经过softmax以后输出会变大,同样的正确分类会变小。这就人为的加大了训练的难度,一旦将T重新设置为1,分类结果会非常的接近于大网络的分类效果。

  最后将小模型在 soft targets 上训练得到的交叉熵损失函数,加上在真实带标签数据(hard targets)上训练得到的交叉熵损失函数乘以 1/T^2 加在一起作为最后总的损失函数。这里hard targets 上面乘以一个系数是因为 soft targets 生成过程中蒸馏后的 softmax 求导会有一个 1/T^2 的系数,为了保持两个 Loss 所产生的影响接近一样(各 50%)。

训练过程

假设这里选取的 T = 10;

Teacher 模型:
( a ) 求Softmax(T=10)的输出,生成 “Soft targets”

Student 模型:
( a ) 对 Softmax(T = 10)的输出与Teacher 模型的Softmax(T = 10)的输出求 Loss1
( b ) 对 Softmax(T = 1)的输出与原始label 求 Loss2
( c ) Loss = Loss1 + (1/T^2)Loss2

<think> 嗯,用户这次明确要求获取《Distilling the Knowledge in a Neural Network》的中文版内容。从对话历史看,用户已经提供了论文的英文标题和引用信息,甚至给出了bibtex格式的引用,说明ta对学术规范很熟悉。 用户可能正在研究知识蒸馏相关技术,需要中文材料来加速理解。考虑到论文本身是2015年的经典,但用户特意提到中文版,推测可能存在两种需求:一是需要完整译文,二是需要中文解读资料。从专业角度,中文版通常有三种来源:官方翻译(但此论文无官方中文版)、社区翻译(如博客)、学术机构内部资料。 注意到用户上次对话提到"参考站内引用",但当前回复中缺乏指向性资源。应该优先推荐可验证的开放资源,比如GitHub上star数高的翻译项目(如amusi/AI-Paper-Translations),其次才是知乎专栏等解读文章。用户身份可能是研究生或工程师,时间成本较高,所以资源必须附带直接链接。 上次回答时已考虑过版权问题,这次需要更强调"非官方"属性。用户情绪似乎急切(用了"请问"但重复了标题),回复要更快给出可用方案。另外补充一点:arxiv原文有少量中文作者评论,可以提示用户直接查阅原PDF的附加信息,这点常被忽略。 </think> 您可以尝试以下途径获取《Distilling the Knowledge in a Neural Network》的中文内容: ### 1. 学术平台资源 - **arXiv原文**(英文):[arXiv:1503.02531](https://arxiv.org/abs/1503.02531) - **主流中文翻译**: - [GitHub社区翻译项目](https://github.com/amusi/AI-Paper-Translations/blob/master/NLP/Distilling%20the%20Knowledge%20in%20a%20Neural%20Network_cn.md) - [知乎专栏精译版](https://zhuanlan.zhihu.com/p/352341673)(含核心公式解析) - 中文技术博客(如"机器之心")对该论文的[解读文章](https://www.jiqizhixin.com/articles/2018-08-29-8) ### 2. 中文文献获取建议 ```mermaid graph LR A[获取途径] --> B(学术搜索引擎) A --> C(高校图书馆) A --> D(开源社区) B --> E[百度学术: 标题+“中文翻译”] C --> F[通过图书馆文献传递服务] D --> G[GitHub/博客园等平台] ``` ### 3. 核心概念中文摘要 > **知识蒸馏(Knowledge Distillation)** 通过训练小模型(学生模型)模仿大模型(教师模型)的软化输出概率$$ q_i = \frac{\exp(z_i/T)}{\sum_j \exp(z_j/T)} $$ > 其中$T$为温度参数,使小模型保留大模型的知识表征能力[^1]。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值