模型压缩--知识蒸馏Knowledge Distilling

前言

目前提高机器学习算法性能的方法几乎都用多模型ensamble,在计算上非常昂贵且难以部署,尤其是大型神经网络,比如bert。
知识蒸馏就是希望用小型模型得到跟大型复杂模型一样的性能。人们普遍认为,用于训练的目标函数应尽可能地反映任务的真实目标。在训练过程中,往往以最优化训练集的准确率作为训练目标,但真实目标其实应该是最优化模型的泛化能力。显然如果能直接以提升模型的泛化能力为目标进行训练是最好的,但这需要正确的关于泛化能力的信息,而这些信息通常不可用。
那么怎么能获得可以利用的泛化能力的信息呢?
在一般的分类训练任务中,我们以softmax层输出各个类别的概率,然后以跟one-hot lables的交叉熵作为loss function,这个loss function丢失了在其他类别上的概率,只把正确label上的概率值考虑进来。但其实在错误label上的概率分布也是具有价值的。比如狗的样本识别为老虎上的错误概率会比识别为蚂蚁的错误概率大,因为🐶更像🐯,而不像🐜。这在一定程度上反映了该分类器的泛化机制,反映了它“脑袋里的知识”。

知识蒸馏

如果我们使用由大型模型产生的所有类概率作为训练小模型的目标,是否就是直接以“泛化能力”作为目标函数呢?研究证明,这样的方法确实可以让小模型得到不输大模型的性能,而且有时甚至青出于蓝胜于蓝。这种把大模型的“知识”迁移到小模型的方式,我们称之为“蒸馏”(浓缩就是精华)。有人用单层BiLSTM对bert进行蒸馏,效果不输ELMo。(详细可看论文 Distilling Task-Specific Knowledge from BERT into Simple Neural Networks )
这里先定义两个概念。“硬目标(softmax)”:正确标签的交叉熵。“软目标”(soft_softmax):大模型产生的类概率的交叉熵。
soft_softmax公式如下:
q_{i}=\tfrac{exp(Z_{i}/T)}{\sum_{j} exp(Z_{j}/T)}
可以看到,它跟softmax比起来就是在指数项里多了一个“T”,这个T称为蒸馏温度。为什么要加T呢?假如我们分三类,然后网络最后的输出是[1.0 2.0 3.0],我们可以很容易的计算出,传统的softmax(即T=1)对此进行处理后得到的概率为[0.09 0.24 0.67],而当T=4的时候,得到的概率则为[0.25 0.33 0.42]。可以看出,当T变大的时候输出的概率分布变得平缓了,这就蒸馏温度的作用。这时候得到的概率分布我们称之为“soft target label”。我们在训练小模型的时候需要用到“soft target label”。
在训练小模型时,目标函数为:
L=\alpha L^{soft}+(1-\alpha )L^{hard}其中L^{soft}=-\sum_{c=1}^{C}y_{c}^{soft}log\frac{exp^{x_{c}}/T}{\sum_{c=1}^{C}exp^{x_{c}}/T}
y_{c}^{soft}为soft target lable,这里T要跟蒸馏复杂模型时的T大小一致,也就是保持同样的蒸馏温度,避免改变“知识”分布。注意:小模型在做预测时蒸馏温度要还原为1,也就是用原始概率分布做预测,因为再预测时希望正确标签与错误标签的概率差距尽量大,与蒸馏时的希望平缓区别开来。
实际上可以这么理解,知识蒸馏是在本来的目标函数上加上了正则项,正则项可以提高模型的泛化能力,把软目标当作正则项就是让小模型的泛化能力尽量接近复杂模型的泛化能力。软目标具有高熵值时,它们为每个训练案例提供比硬目标更多的信息,并且在训练案例之间梯度的变化更小,因此小模型通常可以在比原始繁琐模型少得多的数据上训练并可以使用更高的学习率加快训练过程。

总结一下:

知识蒸馏就是
1.从复杂模型中得到“soft target label”。
2.在训练小模型时同时训练硬目标和软目标。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,980评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,178评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,868评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,498评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,492评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,521评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,910评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,569评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,793评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,559评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,639评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,342评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,931评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,904评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,144评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,833评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,350评论 2 342

推荐阅读更多精彩内容