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

《Distilling the Knowledge in a Neural Network》

Abstract:

​ 对于很多大型的机器学习任务来说,集成是一个非常简便就能提高表现的方法,但是集成方法计算量太大。Caruana等人说明了将一个大型网络(集成的模型)中的知识压缩到一个便于计算的小模型中是可取的,Hinton等人提出了一种不同的知识压缩的技巧—知识蒸馏。作者在MNIST上将一个商用网络的知识蒸馏出来应用于一个小模型后,效果有了显著的提高。

Introduction:

​ 基于幼虫理论—“许多昆虫小时候学习是通过吸收环境中的养分,而长大后则是基于小时候学到的知识,通过一次次的实践来调整”。大型神经网络在训练阶段可以(需要)在“超算中心”建立一个很Robust的模型,输入很多很多的数据来进行拟合。但是在部署阶段,不同的场景下都有着各种各样的需求,算力都没有那么大。作者提出了一种能够将已经训练好的大模型的知识迁移到一个容易部署的模型中去的训练方法—“知识蒸馏”。

那么到底什么是原来模型中所学到的知识呢,人们在这之前一般的理解就是模型中的每个权重和偏差的数值以及模型整体的架构,我们怎么去改变模型的整体架构却要同时保持着相同的知识呢,作者在原文中提出了这么一段话表达了读者应该产生的一个疑问:

​ We tend to identify the knowledge in a trained model with the learned parameter values and this makes it hard to see how we can change the form of the model but keep the same knowledge.

​ 这个问题解答是,作者将一个神经网络其中所蕴含的知识表达为输入向量和输出向量之间的映射关系。一般的大型神经网络的训练目标—最小化损失函数,其实也就是等价于极大正确答案的似然函数(MLE is equal to minimize the loss function),但同时这个操作会导致模型将一些极小的概率赋值给其他错误的答案,其中有一些也会比一些类别的概率很大。因此,**这种概率分布就显示了一个很大的模型是如何generalize分配所有类别的概率的。**换句话说,模型对于所有类别(也许特别是错误的类别)所分配的概率是十分重要的。

​ 文章中提到,如果我们所采用的训练数据能够很好的归纳客观世界的信息,那么理论上训练模型就可以很好的去归纳出客观世界的信息。在蒸馏过程中,我们需要让小模型采用和大模型一样的归纳方式。

if the cumbersome model generalizes well , then we can train the small model to generalize in the same way as the large model

​ 那么问题又来了,如何让小模型拥有和大模型一样的归纳方式呢?做法是将大型模型产生的类别概率分布作为小模型的"soft targets"(如果大型模型是集成的模型的话,我们可以取所有集成模型的算术均值或者几何均值)。关于数据我们可以仍然使用之前大模型的训练集或者单独划分出来一个迁移集。这里还提到了,如果产生的"soft targets"拥有很大的熵的话(即接近均匀分布),我们训练小模型的时候就可以使用很大的学习率以及更少的数据。从信息论的角度看软标签,那些对于一些很简单的模型所产生的"soft target"来说,其大量的信息存在于那些对于错误类别分到的很小的概率值的比率。所以这里再次强调了,真正有用的信息不是对于正确的类别有多确定,而是其对错误类别极小概率值的分配情况,但是有一个问题就是这些很小的概率值可能对于交叉熵而言并不会影响很大,如果只是单纯的使用Softmax的话提取的到信息可能不太理想。

​ 因此这里又产生了新的问题,怎么才能让模型取学到这些有用的信息呢?一个解决方法是不用Softmax所产生的概率值,而是用网络倒数第二层输入进Softmax的logits。第二解决方法就是使用蒸馏,即在最后Softmax的时候提高温度T直到产生一个合适的概率值,之后训练小模型的时候也用相同大小的温度值。这里第一种方式其实是第二种方法的特例。

Distillation

qi=exp(zi/T)∑jexp(zj/T) q_i = \frac {exp(z_i/T)} {\sum_j{exp(z_j/T)}} qi=

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值