0
雷鋒網(wǎng) AI 科技評(píng)論按:Hinton 團(tuán)隊(duì)最近發(fā)表了一篇關(guān)于「在線(xiàn)蒸餾」的新論文。論文里講了什么呢?
我們?yōu)槭裁葱枰诰€(xiàn)蒸餾?
近年來(lái),隨著深度學(xué)習(xí)技術(shù)的蓬勃發(fā)展,我們?nèi)粘I畹拿總€(gè)角落都充滿(mǎn)了「人工智能」的影子,并由此催生了許多新的業(yè)態(tài)、以人工智能應(yīng)用為核心產(chǎn)品的初創(chuàng)公司也如雨后春筍般在科技行業(yè)中嶄露頭角。是的,這也許是人工智能(特別是深度學(xué)習(xí))最好的時(shí)代。
然而,深度學(xué)習(xí)作為當(dāng)今人工智能領(lǐng)域皇冠上最璀璨的明珠,如果要想將其推向工業(yè)級(jí)的應(yīng)用,則往往需要可望而不可及的強(qiáng)大算力!而這種算力則是由價(jià)格高昂的硬件、龐大而復(fù)雜的分布式計(jì)算環(huán)境、精妙高效的算法作為支撐的。可想而知,除了 Google、Amazon、阿里巴巴、百度等掌握強(qiáng)大計(jì)算資源的科技巨頭外,想獲得這樣的計(jì)算資源對(duì)于小型企業(yè)或者個(gè)人用戶(hù)可謂是天方夜譚。實(shí)際上,在很多普通的高等院校和科研單位中,擁有像 Titan X 或 GTX 1080 Ti 這樣的民用顯卡已經(jīng)是很奢侈的事情。更重要的是,由于基礎(chǔ)架構(gòu)的限制(分布式計(jì)算節(jié)點(diǎn)的通信、同步、任務(wù)調(diào)度等問(wèn)題)、對(duì)模型進(jìn)行優(yōu)化求解的障礙、集成學(xué)習(xí)環(huán)境下各模型的貢獻(xiàn)缺乏好的決策,使得盲目的堆砌計(jì)算資源也可能觸碰到模型性能的天花板(例如:分布式隨機(jī)梯度下降(distrtibuted SGD))。
為此,「深度學(xué)習(xí)泰斗」Geoffrey E.Hinton 近年來(lái)在知識(shí)蒸餾(或者「暗知識(shí)提取」)方面做了一系列工作,試圖通過(guò)這種從高計(jì)算能力要求、同時(shí)也具有高表現(xiàn)的模型中提取出一些隱含的知識(shí),并且將其作為先驗(yàn),通過(guò)設(shè)計(jì)新的網(wǎng)絡(luò)結(jié)構(gòu)和目標(biāo)函數(shù)將這種知識(shí)「?jìng)魇凇菇o規(guī)模較小的深度學(xué)習(xí)網(wǎng)絡(luò),實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)模型的壓縮,以顯著縮小的網(wǎng)絡(luò)規(guī)模和計(jì)算需求展現(xiàn)出盡量高的模型表現(xiàn)。最近,為了將這種思想部署在分布式環(huán)境中,用以突破如今常常被使用的分布式 SGD(同步和異步形式)的瓶頸,Hinton 團(tuán)隊(duì)又發(fā)布了名為「LARGE SCALE DISTRIBUTED NEURAL NETWORK TRAINING THROUGH ONLINE DISTILLATION」(通過(guò)在線(xiàn)蒸餾的神經(jīng)網(wǎng)絡(luò)大規(guī)模分布式訓(xùn)練)的論文。在筆者看來(lái),Hinton 的這一系列工作進(jìn)一步降低了深度學(xué)習(xí)模型應(yīng)用的門(mén)檻,之前的研究對(duì)深度學(xué)習(xí)模型在移動(dòng)終端上的部署、這篇論文對(duì)提高大規(guī)模計(jì)算集群上的模型表現(xiàn)和計(jì)算效率都有深遠(yuǎn)意義。
論文地址:https://arxiv.org/abs/1804.03235
要想理解「在線(xiàn)蒸餾」的概念,我們有必要回顧一下 Hinton 從 2014 年開(kāi)始對(duì) dark knowledge extraction(暗知識(shí)提?。?和 knowledge distillation(知識(shí)蒸餾)的相關(guān)工作,甚至更早的 Caruana et.al 所做的模型壓縮的工作。
為了提升神經(jīng)網(wǎng)絡(luò)模型的性能,Caruana 等人早在 2006 年(那時(shí)深度學(xué)習(xí)還沒(méi)有大火)就提出了一種壓縮大規(guī)模復(fù)雜網(wǎng)絡(luò)的方法。由于集成學(xué)習(xí)在傳統(tǒng)的機(jī)器學(xué)習(xí)領(lǐng)域大獲成功,許多深度學(xué)習(xí)研究人員很自然地想要利用集成學(xué)習(xí)的思想,將大量的模型聚合到一個(gè)神經(jīng)網(wǎng)絡(luò)中,通過(guò)暴力的訓(xùn)練,為不同的模型賦予不同的權(quán)值,對(duì)這些模型的輸出進(jìn)行加權(quán)平均得到最終的結(jié)果,以便充分利用它們各自對(duì)于不同的任務(wù)所具有的優(yōu)勢(shì)。然而,這種暴力的訓(xùn)練過(guò)程和臃腫的網(wǎng)絡(luò)結(jié)構(gòu)需要消耗巨大的計(jì)算資源、造成額外的能源消耗。Caruana 等人提出了 MUNGE 的數(shù)據(jù)增強(qiáng)算法,將大規(guī)模模型學(xué)習(xí)到的函數(shù)壓縮進(jìn)規(guī)模更小、訓(xùn)練更便捷的模型中。
受此啟發(fā),時(shí)隔 8 年后,當(dāng)深度學(xué)習(xí)迎來(lái)春天、人們沉醉于大規(guī)模深度學(xué)習(xí)網(wǎng)絡(luò)帶來(lái)的人工智能在計(jì)算機(jī)視覺(jué)、自然語(yǔ)言處理等方面的成功應(yīng)用的時(shí)候,宗師 Hinton 則認(rèn)為,是時(shí)候回過(guò)頭來(lái)看看 Caruana 的文章,思考如何將這些「丑陋的」大規(guī)模的模型壓縮到小而快的模型中去。
由此,Hinton 提出了「dark knowledge」的概念。在他看來(lái),這種被稱(chēng)為「暗知識(shí)」的東西才是深度學(xué)習(xí)本質(zhì)上學(xué)到的知識(shí)(或許這也是尋求深度學(xué)習(xí)可解釋性的一種途徑)。Dark knowledge,顧名思義,就是隱藏在深度學(xué)習(xí)表面上所展現(xiàn)出來(lái)的網(wǎng)絡(luò)結(jié)構(gòu)、節(jié)點(diǎn)之間的連接權(quán)重、網(wǎng)絡(luò)的輸出這些看得到的數(shù)據(jù)之下的知識(shí)。如果能夠找到一種途徑,使得我們能夠獲取這種知識(shí),并且將其包裝成一種先驗(yàn)概率,遷移到更小的模型中去,是否能夠提升小模型的性能呢?事實(shí)上,筆者認(rèn)為,這也可以看作是在遷移學(xué)習(xí)的框架下,將大規(guī)模網(wǎng)絡(luò)視作信息充分的 source domain,將小規(guī)模網(wǎng)絡(luò)視作需要大規(guī)模網(wǎng)絡(luò)補(bǔ)充信息的 target domain,而我們提取到的 dark knowledge 則是兩個(gè)任務(wù)之間的 common knowledge。
然而,該從哪里下手,獲取這種知識(shí)呢?Hinton 敏銳地觀察到:我們?cè)诮^大多數(shù)的預(yù)測(cè)任務(wù)的深度學(xué)習(xí)網(wǎng)絡(luò)中,都會(huì)使用 softmax layer 為大量的標(biāo)簽分配概率分布。然而這種處理方式存在一個(gè)負(fù)作用:與正確標(biāo)簽相比,模型為所有的誤標(biāo)簽都分配了很小的概率;然而實(shí)際上對(duì)于不同的錯(cuò)誤標(biāo)簽,其被分配的概率仍然可能存在數(shù)個(gè)量級(jí)的懸殊差距。例如:在圖片分類(lèi)問(wèn)題中,我們要將圖片分成貓、狗、老虎三類(lèi)。在一次訓(xùn)練中,我們給三類(lèi)分配的概率分別為 [0.0010, 0.0001, 0.9989],從而最終得到 [0,0,1] 的 one-hot 編碼作為分類(lèi)結(jié)果(即 hard-target),我們認(rèn)為圖片所代表的是一只老虎。然而,softmax 函數(shù)輸出的概率往往包含著類(lèi)別之間潛在的相關(guān)性。在這個(gè)例子中,我們可以看到,圖片可能是貓的概率比圖片是狗的概率更接近圖片是老虎的概率,這說(shuō)明貓和老虎之間存在的內(nèi)在聯(lián)系更加強(qiáng)大。類(lèi)似地,Hinton 也舉例說(shuō):在識(shí)別一輛寶馬汽車(chē)的圖片時(shí),分類(lèi)器將該圖片識(shí)別為清潔車(chē)的概率是很小的,然而這種概率比起將其識(shí)別為胡蘿卜的可能是會(huì)大出很多。由于在宏觀上由于這些概率都很小,這一部分的知識(shí)很容易在訓(xùn)練過(guò)程中淹沒(méi),這無(wú)疑是浪費(fèi)了重要的可以用于將大規(guī)模網(wǎng)絡(luò)的知識(shí)遷移到小規(guī)模網(wǎng)絡(luò)中去的寶貴先驗(yàn)概率。
為了充分利用這種類(lèi)類(lèi)別之間的相關(guān)性,我們需要通過(guò)某種方式去改變概率分布,使其更加平緩。而 Hinton 僅僅對(duì)我們經(jīng)常使用的 softmax 函數(shù)進(jìn)行了一點(diǎn)點(diǎn)修改,就達(dá)到了這一目標(biāo),他究竟是怎么做的呢?
事實(shí)上,如下面的公式所示,Hinton 向 softmax 函數(shù)添加了一點(diǎn)「佐料」——參數(shù)「T, 溫度」(如今 T 已經(jīng)成為了許多深度學(xué)習(xí)模型的標(biāo)配,例如在生成文本的 RNN 中提高 T 可以增加生成文本的多樣性):
其中,z 為每一個(gè)類(lèi)別輸入的 logit。式中 T=1 時(shí),退化成傳統(tǒng)的 softmax;T無(wú)窮大時(shí),結(jié)果趨近于 1/C,即所有類(lèi)別上的概率趨近于相等。T>1 時(shí),我們就能獲得 soft target label。通過(guò)提高 T,softmax層的映射曲線(xiàn)更加平緩,因而實(shí)例的概率映射將更為集中,便使得目標(biāo)更加地「soft」。
有了這個(gè) distillation 的內(nèi)核,Hinton 按照以下的步驟對(duì)大規(guī)模網(wǎng)絡(luò)進(jìn)行「蒸餾」:
1. 訓(xùn)練大模型:先用 hard target(類(lèi)似于 [0,0,1] 的 one-hot 編碼)的樣本訓(xùn)練。
2. 計(jì)算 soft target:利用訓(xùn)練好的大模型來(lái)計(jì)算 soft target 。也就是大模型「軟化后」再經(jīng)過(guò) softmax 的輸出。
3. 重新創(chuàng)建一個(gè)小的網(wǎng)絡(luò),該網(wǎng)絡(luò)最后有兩個(gè) loss,一個(gè)是 hard loss,即傳統(tǒng)的 softmax loss,使用 one-hot label;另外一個(gè)是 soft loss,即 T>1 的 softmax loss,使用我們第二步保存下來(lái)的 soft target label。
整體的 loss 如下式:
其中
為第二步輸出的 soft label。
用「軟化」訓(xùn)練集訓(xùn)練小模型。訓(xùn)練小模型時(shí) T 不變?nèi)匀惠^大,訓(xùn)練完之后 T 改為1。
4. 預(yù)測(cè)時(shí),將訓(xùn)練好的小模型按常規(guī)方式使用。
現(xiàn)在我們可以把 Hinton 的方法和下圖所示的最初 knowledge distillation 的由來(lái)作個(gè)對(duì)比。
可見(jiàn),本質(zhì)上這相當(dāng)于對(duì)數(shù)據(jù)進(jìn)行了增強(qiáng)(augmentation),加入了類(lèi)別之間的關(guān)聯(lián)性的先驗(yàn)信息。將大規(guī)模網(wǎng)絡(luò)學(xué)習(xí)到的這種關(guān)系包裝在數(shù)據(jù)中,用這種更強(qiáng)的數(shù)據(jù)來(lái)訓(xùn)練小規(guī)模的模型,充分考慮到了類(lèi)間的距離和類(lèi)內(nèi)的方差信息。從而提升了小規(guī)模模型的性能,達(dá)到了「蒸餾」的效果。與直接使用預(yù)訓(xùn)練模型的結(jié)構(gòu)和權(quán)重相比,這是一種相對(duì)更「高級(jí)」的知識(shí)遷移的方式。
時(shí)間的車(chē)輪一眨眼就駛向了 2018 年,隨著移動(dòng)終端上的深度學(xué)習(xí)等應(yīng)用的出現(xiàn),網(wǎng)絡(luò)模型壓縮成為了一個(gè)廣受關(guān)注的領(lǐng)域,大量的研究者在 Hinton 的啟發(fā)下,退出了 distillation 的諸多變形,進(jìn)行了深入的優(yōu)化。Hinton 則一如既往地嘗試開(kāi)拓更多新的深度學(xué)習(xí)范式;當(dāng)然也可能是谷歌的計(jì)算資源太過(guò)充足所以遇到了別人沒(méi)有機(jī)會(huì)遇到的問(wèn)題(給跪),Hinton 開(kāi)始嘗試在大規(guī)模分布式計(jì)算環(huán)境下使用「在線(xiàn)蒸餾(online distillation)」方法。這是由于目前的分布式 SGD 方法遇到了瓶頸。而本地的「蒸餾」算法也因其對(duì)數(shù)據(jù)管道的計(jì)算操作過(guò)于復(fù)雜而暴露出越來(lái)越多的問(wèn)題。
具體而言,在分布式 SGD 中,由于邊際效益遞減的規(guī)律,增加參與訓(xùn)練的機(jī)器數(shù)量而獲得的計(jì)算效率的提升漸漸變小,直到毫無(wú)效果。另一方面,他們也想使用集成的深度學(xué)習(xí)模型提高預(yù)測(cè)的準(zhǔn)確率。為了在不增加測(cè)試時(shí)間成本的情況下獲得與集成學(xué)習(xí)同等的收益,他們對(duì)一個(gè) n 路集成模型進(jìn)行蒸餾(distill),得到一個(gè)單一模型,這包括兩個(gè)階段:
使用 M 機(jī)器來(lái)訓(xùn)練分布式 SGD 的 n 路集成模型,然后使用 M 機(jī)器(T 不變)來(lái)訓(xùn)練 student 網(wǎng)絡(luò)(小規(guī)模網(wǎng)絡(luò)),這個(gè)小規(guī)模網(wǎng)絡(luò)會(huì)模擬這個(gè) n 路集成模型。
通過(guò)在訓(xùn)練過(guò)程中使用更多機(jī)器,蒸餾會(huì)增加訓(xùn)練時(shí)間和計(jì)算復(fù)雜度,以換取接近更大的 teacher 集成模型的質(zhì)量改進(jìn)。
Hinton 他們將這種在線(xiàn)的蒸餾方式稱(chēng)為「codistillation」:即分布式環(huán)境中的每個(gè)節(jié)點(diǎn)之間都可以互為 teacher 和 student,并且互相提取內(nèi)在的知識(shí),用以提升其它節(jié)點(diǎn)的模型性能,具體的算法如下:
如算法 1 中所示,為了突破分布式 SGD 的瓶頸,Hinton 他們利用蒸餾算法提高了模型的訓(xùn)練效率。使用蒸餾方法更新一個(gè)網(wǎng)絡(luò)的參數(shù)只需要對(duì)其他網(wǎng)絡(luò)的預(yù)測(cè)結(jié)果,這些網(wǎng)絡(luò)可以利用其他網(wǎng)絡(luò)權(quán)重的副本進(jìn)行本地計(jì)算。
值得注意的是,即使教師模型和學(xué)生模型是同一神經(jīng)網(wǎng)絡(luò)的兩個(gè)實(shí)例,蒸餾也有好處,只要它們有足夠的區(qū)別(比如,不同的初始化、以不同的順序接收輸入樣本;可以參見(jiàn)論文第 3 節(jié)的經(jīng)驗(yàn)證據(jù))。這也說(shuō)明這種「在線(xiàn)蒸餾」的方法是具有很強(qiáng)的普適性的。
Hinton 他們?cè)谶@個(gè)工作中將蒸餾技術(shù)和分布式 SGD 相結(jié)合,從而使一個(gè)分布式 SGD 的工作組內(nèi)的各個(gè)節(jié)點(diǎn)能夠交換檢查點(diǎn)(checkpoint)保存的網(wǎng)絡(luò)信息,利用這種信息作為蒸餾出來(lái)的知識(shí),通過(guò)「老師-學(xué)生」的訓(xùn)練,加速學(xué)生網(wǎng)絡(luò)的訓(xùn)練。在這個(gè)過(guò)程中,學(xué)生節(jié)點(diǎn)和老師結(jié)點(diǎn)的角色是互換的,因此,各個(gè)網(wǎng)絡(luò)互相促,進(jìn)從而實(shí)現(xiàn)共同的蒸餾。
其實(shí),就算「在線(xiàn)蒸餾」是新瓶裝舊酒,那也是一個(gè)非常恰當(dāng)?shù)?,閃閃發(fā)光的新瓶子。它利用蒸餾技術(shù),降低了分布式 SGD 的通信開(kāi)銷(xiāo),成功提高了預(yù)測(cè)的準(zhǔn)確率,提升模型的計(jì)算性能!
筆者通過(guò)這篇文章和大家一起回顧了知識(shí)蒸餾的相關(guān)知識(shí),并且粗淺地了解了 Hinton 在這個(gè)領(lǐng)域所做的最新工作。我們可以看到,Hinton 作為一代宗師,每次都能夠以超過(guò)常人的眼光發(fā)現(xiàn)研究的新方向,并且提出簡(jiǎn)單、美、效果卓越的解決方案,這與他對(duì)自然、對(duì)生物的神經(jīng)系統(tǒng)、對(duì)生活、對(duì)所面臨的問(wèn)題的犀利的觀察是密不可分的。這激勵(lì)著所有的人工智能研究者開(kāi)拓視野、放飛心靈,充滿(mǎn)創(chuàng)造力地去探索新的未知領(lǐng)域。雷鋒網(wǎng) AI 科技評(píng)論這樣的學(xué)術(shù)媒體也會(huì)不斷地把最新的學(xué)術(shù)研究進(jìn)展介紹給大家。
論文地址:https://arxiv.org/abs/1804.03235 ,雷鋒網(wǎng) AI 科技評(píng)論報(bào)道
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。