G.Hinton Dark Knowledge

来源:互联网 发布:关于51单片机与esp8266 编辑:程序博客网 时间:2024/06/05 13:24

Model Compression

Caruana06的文章,提出了一种压缩compressing大规模复杂网络的方法,对模型进行压缩与加速,同时不会明显损失精度。作者首先提到了ensemble model的方法,即利用多个模型预测输出的加权平均或投票的方法来代替单个模型的输出结果。传统方法中,这样的算法思路很常见,例如,特征袋,随机森林,boosting算法等。但是对于神经网络模型来说,大量模型的聚合需要消耗大量的存储空间和计算能耗。Caruana提出一种将大模型学习到的函数压缩进更小更快的模型,而获得可以匹敌大模型结果的方法。提出了MUNGE的数据增强办法,并与RANDOM和NBT算法比较。

Distilling the Knowledge in a Neural Network

Distillation:作者说利用该方法去迁移知识,从而通过训练好的大模型得到更加适合测试的小模型,作者自己也说其实这个思路早在06年就有人提出来了,就是上面提到的那位。
有个细节,Hinton说利用原始训练数据训练small model效果最好,尤其是在目标函数里加入cumbersome的soft targets输出匹配度。
反向传播时,目标函数更新的方法就是加入这样一项:计算small与cumbersome两个模型的交叉熵(cross-entropy)。
dark knowledge主要利用在两个方面
一, hard target –就是label信息
a) N维的softmax输出是除了一个1其他全是0的N维向量
二, soft target –是由已经训练好的model的出来的对Unlabeled数据各个类别的probability信息。

一.模型压缩
这个思想,早在2006 caruana提出过吗,见前文。在很多竞赛时,会利用不同的网络架构,不同的初始化或者不同的训练数据等,来学习到很多网络模型,然后combine 多个model来提高performance。 如何训练一个模型,达到这个combine model的效果呢? 这里提到的模型压缩是指:原来包括在参加一些竞赛时,用到的模型都是通过训练大量不同的模型,得到每个模型的输出,然后combine他们,这样取得的效果较好(ensemble方法),但是这样训练大量网络包含大量的参数。因此Hinton说,当训练得到这么一个ensemble网络之后,假设该网络性能已经足够好了,
Transfer learning,作者举了迁移学习MNIST的例子,
二.专家网络的学习
类似于一种subcategory的思想,用k-means把容易混淆的一些类聚合在一起,然后针对某些易混淆的类别,进行专家网络的学习。当然要解决的问题便是overfitting策略,参考6.1
Hinton说,soft Targets(ST)是一种正则器。他说之所以用ST是因为ST比hardtarget包含更多的信息。利用HT很容易过拟合。
无论是模型压缩,还是在专家网络学习,都提到了基于soft target和hard target两种目标函数。
其中在soft target时,用到了raise the temperature策略,来提高soft target对应的cross entropy。在进行模型压缩的时候,我们利用hard target 和soft target的loss function sum,来训练单一模型,努力达到很多模型combine的结果。在进行专家网路训练的时候,利用hard target loss来优化易混淆的某一子类,用soft target loss来优化其他所有类。

作者在MNIST上实验验证的结果是,采用784 -> 800 -> 800 -> 10的small网络,得到的误差是146个错误,784 -> 1200 -> 1200 -> 10,cumbersome模型的错误是67个,明显性能提升了。接下来采用作者提到的迁移学习方法,使用soft targets,784 -> 800 -> 800 -> 10网络的性能提升到74个错误。作者总结,对于这个small的net几乎包含了cumbersome model的所有知识。
作者在该试验中,总计:soft targets可以将原来大规模模型的知识迁移给distilled model。

qi=exp(zi/T)Σjexp(zj/T)

这里温度T是distilled model的关键,temperature一般指温度,设为1。知识是如何从大模型迁移到small model上来的呢?
也就是distillation的过程是什么样子的呢?
对于训练得到的cumbersome模型,利用其训练数据集,训练distilled model时,目标函数使用大模型function的soft target distribution交叉熵和correct label交叉熵,训练过程的T采用训练cumbersome一致。Hinton认为,最好的训练目标函数就是这样,并且第一个目标函数的权重要大一些。

L=αL(soft)+(1α)L(hard)

其实,这种ensemble的思想就和Dropout类似,也是一种模型平均的方法。利用大量模型的输出,单个模型产生过拟合,陷入局部极小的劣势。但是为了使模型之间的相关性尽量高,数据也要处理,符合类似的分布。Dropout采用概率代替多个模型的方法,实际上就是用一组参数进行共享。
测试的时候该如何做,选取一小部分,或者全部模型,计算他们分布的几何均值。

0 0