面對即將失效的摩爾定律,科學家用「稀疏學習演算法」打破深度學習的算力極限!

【為什麼我們要挑選這篇文章】物理的限制,讓摩爾定律即將失效,GPU 的性能成長將會放緩。在硬體的限制下,我們該如何提升 AI 的演算能力?

一個有效的解決方案就是優化演算法。科學家模仿人腦,編寫稀疏學習演算法,並透過稀疏動量訓練稀疏神經網路,成功將運算速度提升 10 到 100 倍。稀疏學習將為人工智慧開啟新的大門。(責任編輯:郭家宏)

「《科技報橘》徵才中!跟我們一起定位台灣產業創新力 >> 詳細職缺訊息
快將你的履歷自傳寄至  [email protected]

深度學習的重要推動力是運算能力的進步。

從 2010 年到 2018 年,GPU 性能提高了 97 倍。但是,由於我們幾乎已達到了半導體技術的物理極限,可以預計,在未來 5 到 8 年內,GPU 性能的提升僅會略高於 80%。

在無法進一步提高計算能力的情況下,我們還能進行什麼樣的研究呢?

一種可行的研究方向是,從人腦中尋找靈感。

人類大腦消耗的能量是 GPU 的十分之一,但強度要高出 10 億倍。是什麼讓大腦如此高效?

原因有很多,而其中一個就是是稀疏性。

研究已經發現,靈長類生物大腦中的神經元越多,平均下來每個神經元與其他神經元的連接就越少(來自 Herculano-Houzel 等人的研究,2010)。這與我們設計深度神經網絡的方式恰恰相反。深度神經網絡更傾向於將每一層中的每個新神經元,都與前一層中的所有神經元連接起來。

我們已經知道如何將一個完全訓練好的稠密網路壓縮到稀疏網路,但是,讓一個網絡在訓練期間始終保持稀疏卻很少被研究。

我們如何才能做到這一點的呢?今天,我們就要介紹 ELMo 作者 Luke Zettlemoyer 的最新研究,稀疏動量——一種訓練稀疏網絡的有效方法。

稀疏學習最重要的,是有效使用神經網路中的每個權重

在稀疏學習中,最重要的是盡可能有效地使用神經網路中的每一個權重。如果將「有效性」定義為「減少誤差」,那麼我們的下一步就很明確了。我們需要找到一個指標——它應當能夠衡量一個權重減少誤差的效果,並刪除所有並不能減少誤差的權重。一旦移除了權重,就可以在我們認為有望減少未來誤差的位置重新生成新的權重。

如果只是關注關於權重的誤差梯度,那我們確實有這樣的指標。然而,如果我們觀察連續梯度,就發現梯度的變化可能會非常的大。例如,假如你有一個神經網絡對手寫數字 0 到 9 進行分類,那麼某一權重可能能夠很好地檢測到頂部的直線——這可能有助於減少數字 5 和 7 的錯誤,但是它可能並無法辨認數字 0,1,2,3,6,8,9(或者甚至只會幫倒忙!)。相反,檢測右上方曲線圖案的重量可能有助於辨認 0,2,3,8,9。因此我們可以認為,隨著時間的推移,這一權重將比「頂部直線」權重能夠能更加一致地減少誤差。那麼,我們如何自動檢測神經網絡中這種有用的權重呢?

面對摩爾定律的極限,科技廠該如何突破?

2019 未來科技展,帶你了解台灣半導體製程與材料戰略創新!
《點我報名》

動量:找到能夠始終如一地減少誤差的權重

打個比方,如果將北極作為局部最小值並使用指北針向局部最小值的漸變,那麼您可以透過搖動指北針來旋轉羅盤針,來模擬隨機梯度下降更新。每次針經過正北時,它會逐漸減速,然而,由於旋轉,它仍會「超過」該方向。但是,如果你取平均指示「一次指針位於北極左側,另一次指向右側」,這些偏差抵消了,你會立即得到一個非常接近的方向真正的北極。

這是動量優化技術背後的主要思想:我們對連續梯度取平均值,以更好地估計局部最小值的方向。與羅盤指針在慢下來的時候會逐漸變得越來越準確這一特性類似,我們希望在隨機梯度下降中更加高度地加權最近的梯度方向。一種方法是指定一個加權平均值,我們為當前梯度分配一個更大的權重,為前一個梯度分配一個小權重——這稱為指數平滑。透過指數平滑權重的梯度,我們得到一個加權梯度矩陣——這個矩陣是動量矩陣(這就是動量優化這一名字的由來)。通過這一指標,我們可以確定哪些權重能夠一致地減少誤差。

重新分佈權重:層平均動量大小

如果一個權重的動量表明它一致地減少了多少誤差,那麼一個層中所有權重的平均動量大小應該表明每個層平均減少了多少誤差。透過獲取層的平均動量大小,我們可以輕鬆地比較每層中平均重量的有效性。這就使我們可以肯定地說,例如,卷積層 A 中的權重平均只有完全連接層 B 的 1/3,反之亦然。這種方法使我們能夠有效地重新分配權重:如果我們發現「無用」權重,現在我們就能夠很精確地知道到底把它放在哪一層了。可是這下問題又來了——在這一層中,我們把它具體放哪兒呢?

該刪除哪些權重,在何處重新分配權重?

我們可以從以下兩個問題著手:哪些是最無用的權重因素?我們應該在哪一層特徵中增加權重?第一個問題在神經網絡壓縮研究中十分常見,我們採取修剪小量級權重的方式,這種方式意義重大。假設所有權重具有相似量級的平均輸入,並使用批量歸一化方法,那麼小量級權重會使神經元產生啟動差異最小,因此,刪除這些小量級權重對神經網絡法預測性能的改變最小。

一旦我們移除了小量級權重,重新分配剩餘權重到有效層(由平均動量確定),就需要確定此權重在相應有效層的發展位置。首先思考一個問題:「連接哪些神經元可以協同減少誤差?」答案很明顯,取決於動量的大小。但無論如何,我們需要先找到缺失或零值權重的動量值(之前我們從訓練中排除的那些),在這些缺失權重的位置增加動量值大的權重,這樣就完成了稀疏動量算法,此過程如下圖所示。

稀疏動量透過查看臨近梯度(動量)的加權平均值來確定在稀疏網絡中增加新權重的位置,以找到能夠一致減少誤差的權重和層。(1)我們根據平均動量大小確定每層的重要性。(2)我們刪除每一層較小 50%的權重。(3)然後,我們根據層的重要性在層之間重新分配權重。在每一層中,我們增加大動量之處的權重。

結果

結果令人振奮!稀疏動量法得出的結果表明,它勝於基於 MNIST 手寫數據集的其他壓縮演算法。首先,它提供了一種實現方式:從密集網絡開始,重複重新訓練稀疏網絡;其次,可以透過使用 20% 密集權重(即 80% 稀疏權重)配對密集網絡的性能。為便於理解此結論,我們同時將稀疏動量法與基於 CIFAR-10 數據集的單發網絡修剪法進行比較,毫無疑問,對比得出稀疏動量法更勝一籌。在基於 CIFAR-10 數據集的單發網絡修剪法中,VGG16-D 和 WRN16-10 模型可以透過使用 5% 密集權重匹配密集網絡的性能,其他模型的密集權重水平與稀疏動量法的密集權重水平近似。此外,透過優化的稀疏卷積演算法,使用 WRN 16-10 模 型可以保證在實現相同性能情況下,使訓練速度提升 12 倍。

在 ImageNet 圖像識別數據庫中,我們無法達到密集性能水平,這表明需要改善稀疏動量的指標。但無論如何,稀疏動量法與其他方法相比,在訓練樣本過程中實現保持稀疏權重方面,具有明顯優勢。

加速效果

稀疏學習預示了我們需要加速樣本的訓練,我們是否已經做到了?似是而非。如果權衡稀疏卷積的加速效果,稀疏動量可以有效地加速訓練,但由於稀疏神經網絡法近期才用於訓練,對於 GPU 來說,尚未建立優化的稀疏卷積演算法,目前,至少對於稀疏動量法,細粒度稀疏模式的權重表現如此。

因此,我們將加速效果分為兩組:一組假設存在某種稀疏卷積演算法來實現加速,另一組使用標準密集卷積演算法來實現加速。究竟密集卷積法如何幫助稀疏網絡實現加速呢?

當看到神經網路稀疏模式出現卷積通道完全為空的情況,即出現一個全零的卷積濾波器時,我們便可以從計算中刪除此通道,同時不改變卷積的結果,從而獲得加速效果。

應用最佳稀疏卷積法和樸素密集卷積法所獲得加速效果

但是,我們從加速效果中發現,最佳稀疏卷積法和樸素密集卷積法大相逕庭,這正好清楚地表明了 GPU 對的優化稀疏卷積演算法的需求。

邊緣檢測器是稀疏學習的高效關鍵

我們使用稀疏動量法訓練的樣本,與使用僅有 5% 權重的密集卷積法的性能水平相當。是什麼原因讓這 5% 的權重如此高效,可以與稀疏動量法權重的 20 倍相比呢?

為了研究這個問題,我們對比了稀疏網路法與密集網路法的不同特徵,其中低層特徵例如邊緣檢測器,中層特徵例如輪子、鼻子、眼睛、爪子,高層特徵例如汽車表面、貓臉、冰箱門等。

邊緣檢測器可以有效減少卷積通道中特徵的數量,亦即神經元數量,同時可以確定卷積通道對數據集中數據分類的決定程度。邊緣檢測器對數據集中所有類型數據都適用,也就是說它的類特化水平較低,像眼睛這樣的中級特徵對例如貓,狗和人類的數據比較適用,高級特徵類特化水平較高,常用來選取特定的類別。

AlexNet 模型,VGG16 模型和 WRN 28-2 模型的稀疏動量法和密集網絡法的類特化直方圖。

我們發現,平均而言,稀疏網絡學習法的特徵可供學習的範圍更廣,這可以解釋為什麼稀疏網絡法可以與只用 5% 的權重的密集網絡法的性能相比。

用於運算稀疏學習演算法的專用處理器即將上市

我認為稀疏學習法的前景非常光明,一方面,未來幾年內 GPU 的性能不會有大的變化,另一方面,用於運算稀疏學習法的專用處理器 Graphcore(核圖形處理器)即將面世: 核圖形處理器將整個神經網路儲存在 300 MB 暫存空間中,同時將速度提升約 100 倍。這意味著訓練樣本時,如果我們將神經網路數據壓縮到 300 MB,訓練速度整體將提高 100 倍。那麼使用一個核圖形處理器,在 ImageNet 圖像識別數據庫上訓練 50 個殘差樣本只需要大約 15 分鐘,當然,通過稀疏學習法,數據可以毫無疑問的地控制在 300 MB 大小以內。

由此可以預測,第一個能夠在核圖形處理器上成功訓練稀疏神經網絡的研究團隊,將開啟人工智慧領域的新世界的大門。除此之外,稀疏學習演算法的另一個挑戰,是將其應用於自然語言處理(NLP)。基於我的實驗,毫無疑問,與電腦視覺化相比,在使用自然語言進行稀疏學習方面,還需要加強。

原文報導 傳送門

(本文經合作夥伴 大數據文摘 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈稀疏学习:从人脑得到灵感,让深度学习突破算力限制 〉。首圖來源:Wikimedia Commons

更多深度學習的相關知識

【破解 AI 黑箱】Google 提出 TCAV 技術,有望成為深度學習的全新框架!
【初學者也能輕鬆上手】MIT 推出「超越深度學習」的新 AI 程式語言,無須數學專業知識就能寫出 AI!
R 語言可用來開發深度學習!不只是統計分析,R 還有這 10 個強大隱藏功能


摩爾定律會被改寫嗎?

半導體關鍵一戰開打在即,台灣如何佈局國際分工優勢? 馬上報名 12/8《2019 未來科技展 》半導體論壇

點關鍵字看更多相關文章: