NIPS2014_workshop_Distilling the Knowledge in a Neural Network

2018/03/12 10:59
阅读数 14

作者

Equal contribution: Geoffrey Hinton, Oriol Vinyals     Google Inc.    只有三个作者,三作是Jeff Dean都是大佬啊

Abstract

一个很简单的通用的提升性能的方法就是在相同数据集上训练很多个不同的模型,然后对它们的预测做平均。但是这种做法计算复杂度太高了。 Model Compression这篇论文证明了可以将ensemble模型中的knowledge压缩到单个模型了。

本文使用了一种不同的压缩方法,在MNIST取得了惊艳的效果。提出了一种新型的ensemble方式,由一个或多个全模型,以及多个子模型组成,子模型可以精细分类出原来模型分不出的情况。不同于之前的mixture,这些子模型是可以快速并行训练的

Introduction

很多昆虫都有幼虫形态(方便从环境中吸收能量和营养),而成年之后形态完全不同(满足旅行和繁殖的不同需求)

类比于这个,可以再训练阶段和deploy阶段根据不同的需求使用不同的模型

首先cumbersome模型被训练好,我们就可以使用不同的训练方式进行"distillation"从cubersome模型迁移只是到small模型(方便进行deployment)   这种方法的一个版本已经被Model Compression2006抢先了

 它们的论文中证明了从多个模型中获取知识迁移到小模型的可行性。

有个问题是,我们用参数表示knowledge的话,那证明保证改变了模型的形式同时还保留相同的knowledge. 对知识的另一种抽象的view就是input vectors到output vectors的一种映射。

很显然的,把大模型的泛化能力迁移到小模型的方式可以利用大模型的class probabilities作为小模型的soft targets,当softmax target有很高的entropy,那么它提供了比hard target更多的信息, 而且使得训练样本的梯度variance更小,所以小模型可以使用比大模型更少的数据和可以使用一个更大的学习率。比如在MNIST上,对2进行分类,预测成3的概率10^(-6), 预测成7的概率为10^(-9),这样就提供了更加丰富的结构信息,(3更像2而7没这么像),如果使用softmax的结果,很多结果趋于0,就不能得到很好的提升,2006年的方法直接使用的是logits,也就是score.这里使用一个更加general的solution,called "distillation",是不断提升final softmax的temperature知道大模型产生合适的soft targets,然后使用相同的温度来训练小网络。训练完成后T降为1

可以使用unlabeled的数据(未标签数据+ soft 标签)和原始的训练数据(原始数据+ 原始标签 + soft标签)训练小网络,但是发现用原始数据效果更好,特别是在目标函数上加上拟合soft target的term。拟合两种标签的两个目标函数的权重加和

Distillation

softmax

T is the temperature 通常设置为1  使用更大的T会产生softer 概率分布

注意,因为由soft target目标函数产生的梯度被scale到 1/T^2 在目标函数时需要乘以T^2

Discussion

本文发现Distiling确实有效果,从大网络distilling knowledge到小网络,而且发现对于一个训练大数据的大网络,可以用小网络来辅助提升性能,但是还没有证明可以从小网络distill 知识到 大网络。

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部