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