时间: NIPS 2014
作者在论文开始就提出了发人深省的连环问题
为什么更深的网络表现更好呢?
因为更深的网路拥有更多的参数?
因为更深的网络可以学习更复杂的功能?即使参数量一致
因为更深的网络可以学习结构性的表征,因为它具有inductive bias?
因为更深的网络具有卷积层?
因为现有的学习算法和正则方法更适合深的网络?
和以上提到的所有原因都有关系?或者都没有联系?
这篇论文想证明浅的网络同样可以学习深度网络同样的功能,只不过参数是一样多的。换言之,如果相同参数的较浅的网络可以取得和深度网络一样的效果,那么深度网络并不需要太深。
2.1 模型压缩
压缩的模型要学习的不是数据,而不是大模型得到的函数。一个被学习的模型(大模型)的复杂度,和学习到该模型最合适的模型的尺寸和架构,是两个概念。
The mimic model is not trained on the original labels—it is trained to learn the function that was learned by the larger model.
...
. This suggests to us that the complexity of a learned model, and the size and architecture of the representation best used to learn that model, are different things.
2.2 Mimic Learning via Regressing Logits with L2 Loss
我们把softmax输出的值称作probability, softmax的输入称作logits。
paper提出训练shallow net的时候使用deep net 的logist作为标签,让shallow net去模仿deep net的表达方法,让shallow net回归出deep net的输出。 我们让小模型直接学习大模型的logit,也就是e的指数,这样小概率的label和大概率的label差别不会太大。
2.3 Speeding-up Mimic Learning by Introducing a Linear Layer
在相同的参数量的情况下,更浅的模型意味着模型更宽,从而也会造成梯度下降太慢的问题,我们使用一个bottleneck层来链接feature层和hidden layers。这种设计也可以降低显存占用。
实验
TIMIT
CIFAR10
在cifar10中,SNN取得了teacher CNN 模型更好的效果,但是,这是基于它有更多的参数。
此外,作者提到,基于原始数据训练SNN更容易造成overfitting,而使用这种知识蒸馏的方式,overfitting会发生的更晚。
结论
模型更浅,依旧可以训练得到效果媲美DNN的网络。作者利用基于DNN 作为teacher model的这一方式实现了这一精度。但是,作者也承认,基于现有的训练策略和regularization方法,不能让SNN(Shallow neural network)基于原始数据得到同样的精度,基于SNN的训练策略还有很多的探索空间。
我的评价
作者证明了SNN使用蒸馏的策略可以得到和DNN一致甚至更好的结果,说明了SNN的潜力。但是,作者的这一对比建立在SNN和DNN参数量不一致的基础上。因此,按我的理解,也许这只是证明了参数量更多的模型有更大的潜力。
参考资料:
"Do Deep Nets Really Need to be Deep?"阅读笔记_shallow-deep nets-CSDN博客