Yoshua Bengio談邁向硬體友好的深度學習
機器之心原創,作者:Joshua Chou,審校:王灝,編譯:機器之心編輯部。
2018 年 7 月 9 日,深度學習大牛 Yoshua Bengio 在多倫多大學的 Bahen 中心發表了一篇題為《Computing Hardware for Emerging Intelligent Sensory Applications》(服務於新興智能感官應用的計算硬體)的演講,該演講是 NSERC 戰略網路的一部分,聚焦於縮小深度學習方法與其實際應用之間的差距。
2018 年 AlphaGo Zero 所需的計算量是 2013 年 AlexNet 的 30 萬倍。當前數據集空前巨大,模型準確率也很高,在此背景下,深度學習演算法的設計需要更多地考慮硬體。
1 QNN:量化神經網路
目前很多研究都聚焦於量化信息以實現低精度的神經網路,Bengio 等研究者的早期研究嘗試在訓練和推斷過程中儘可能降低精度。他們團隊在實驗中將變數的精度由 32 位降低到 16 位,並嘗試組合不同的精度以觀察模型準確率在什麼時候會導致模型無效。
Bengio 團隊發現,當使用低精度的變數訓練神經網路時,模型會學習適應這種低精度,這就令神經網路的激活值與權重可以通過量化技術由 32 或 16 位的精度降低到 1、2 或 3 位的精度。
Bengio 團隊已經量化了前饋過程,但並不能量化梯度計算。在結束訓練時,它們能獲得允許在低精度參數上進行推斷的神經網路。然而對於需要大量算力的訓練過程來說,我們仍然需要高精度變數以計算梯度和反向傳播。這主要是因為梯度下降非常慢,且每一次迭代都只能令參數朝著梯度減小的方向逐漸修正一點點,因此更高的精度才能令參數修正更準確。例如,如果系統是二值神經網路,其中權重要麼是-1 要麼是 1,且我們希望逐漸修正這些權重以獲得更好的性能。那麼這個「逐漸」的過程就要求我們使用更高的精度從 -1 到 1。
一旦完成訓練,系統就不需要再使用高精度而只需要保留符號信息。因為降低了參數精度且保留相同的網路架構,系統會經歷一些性能上的損失,而我們需要權衡的就是計算成本與模型準確率。
圖 1:Bengio 等人研究的在訓練過程中進行位寬縮減的方法。
圖 2:由 Bengio 提供的展示使用低精度方法得到的誤差結果。
2 均衡傳播和基於能量的模型
演講的第二個主題是均衡傳播,這是一個填補基於能量的模型(EBM)和反向傳播之間鴻溝的模型。Bengio 認為,這是一個研究風險更大的領域(人少、資金少),但有可能給模擬計算系統的設計帶來深刻影響。這一概念和方法的靈感來自物理系統,當收斂到靜止狀態時,合力為零,因此有了「均衡」一詞。
2.1 什麼是基於能量的模型(EBM)?
首先,簡要介紹一下 EBM。EBM 的基礎設定是一個動力學的物理系統,這個系統具有能量,即動能。此外,根據熱力學定律,此系統將從高能構型變為低能構型。通過一個基於這些原理的神經網路和一個能控制結構隨時間改變的能量函數,能量函數往往會收斂到低能構型。如果不同的結構對同一問題有不同解,那這種情況下,「學習」就意味著能量函數的形成,以使對應合適解的構型有更低的能量。
在這裡,Bengio 將硬體更多地與問題聯繫起來。假設有一些物理機器,它們遵循一組微分方程。這些微分方程定義了上述物理系統的動力學。需要研究的數學問題是「如何計算衡量了此物理系統性能的代價函數的梯度」。因為對於這種系統,是無法使用反向傳播的標準的基於圖像模型(因為該系統具有多個微分方程,用來描述系統如何隨時間變化)。為了回答這個問題,可以假設一個這樣的能量函數——物理系統的動力學收斂於一些局部極小的能量。
2.2 EBM 中的優化問題
在這一節里,Bengio 向觀眾介紹了通常情況下如何定義和推導訓練 EBM 的梯度。這基於能量函數可以被分解成兩部分。第一部分叫作內部勢能(internal potential),管理不同神經元彼此之間的相互作用。第二部分叫作外部勢能(external potential),定義外部世界對神經元的影響。
任何系統的訓練都是在進行某種優化,而 EBM 的梯度優化問題可以理解成: 在每一次的梯度運算後,所得值可代表系統中的能量。這一概念的解釋見圖 3。對於每個神經元,優化問題都需要處理內部勢能和外部勢能。訓練將在兩個階段中推進:free phase 和 weakly clamped phase。free 階段中網路嘗試收斂至固定點 (優化問題的局部極小值),並讀取網路輸出的預測值。weakly clamped 階段「推動」輸出向目標的前進(目標和給定輸入相關)、誤差信號的傳播,並找到其他固定點。這兩個階段是對標準反向傳播中前向傳輸和反向傳輸的模擬。
圖 3:訓練基於能量的模型的概念解釋。訓練過程涉及尋找局部極小值,其中能量函數被最小化。
2.3 EBM 的作用
到底,基於能量的系統在構建模擬硬體的情況下起到了哪些作用?數字硬體的問題之一是它們是基於模擬硬體構建的。數字系統是模擬硬體的近似。為了使數字系統良好運行,該系統需要其組件按某些理想化原則運行。例如,按照 V-C 特性曲線為晶體管建模。追求這種理想化的後果之一就是它需要大量能量來使模擬組件保證正確運行。現在看一下當前的模擬硬體,一個問題是當電路構建完成時,不同的設備表現不同,且不完全按照完美的方式運行。此外,如果電路太小的話,還會出現大量雜訊。因此,EBM 沒有嘗試量化這些帶雜訊信號,而是允許該系統把這些組件作為一個整體來處理。如圖 4 所示,用戶可以不用處理電路組件的輸出,只需專註於整體輸出值即可,整體輸出值對應用戶感興趣的度量(在本案例中,該度量是能量)。
圖 4:基於能量的模型的潛在優勢。
3 文化演進
Bengio 最後討論的話題和大腦神經元並不是很相關,而跟社會中的人類更加相關。深度學習中關於硬體的一個問題是研究者是否可以利用並行計算的優勢。正如人們所知,GPU 工作得如此之好的原因是它們相比 CPU 能更好地實現並行計算。
更基本地,存在一個計算資源成本的問題。隨著人們嘗試建立更大規模、更複雜的系統,研究瓶頸變成了電路不同部分之間交流的能耗。這在 GPU 和 CPU 中最為明顯,其中晶元必須從內存中遷移大量的數據到晶元的其它部分中。通常來說,這些信息傳輸過程的能耗相當大。
如圖 5 所示,當前最優的分散式訓練方式是通過參數伺服器(Parameter Server)執行的同步隨機梯度下降演算法(SGD)。這是一種簡單的分散式演算法,其中存在一組節點,每個節點都擁有經過訓練的神經網路的一個版本。這些節點通過一個伺服器共享梯度和權重等信息。當試圖擴展節點數量時,問題出現了。考慮到如今的問題涉及的巨大維度,當擴展節點數量(到什麼級別)時,節點將不得不交流大量的信息。如何解決擴展性問題?一個可能的解決方案是文化演進。
圖 5:以同步隨機梯度下降為代表的分散式訓練方式將在 10 年後過時,圖為 2012 年 Jeff Dean 等人的 NIPS 研究。
3.1 什麼是文化演進?
文化演進是一種高效通信的分散式訓練方法,其靈感來自於人們在一個網路群體中發現的協作機制,這些網路正在(通過語言)學習和分享發現的概念。例如,假設人類是節點,每個人腦都有大量的突觸權重。讓兩個大腦同步的方法不是分享它們的權重,而是交流想法。如何做到這一點?分享「表徵」,這是神經元活動的離散總結。
Hinton 等人探索了通過傳遞激活而不是傳遞權重的方法同步兩個網路。他們的想法大致為:有兩個權重不同的網路,這兩個網路將嘗試同步它們正在計算的函數(而不是權重)。例如,從人類互動中獲得靈感,A 的大腦與 B 的大腦運作方式不同,但是只要 A 和 B 的大腦都理解相同的概念,他們就能共享上下文,從而進行合作。
這種方法基於一個舊思路:訓練一個能夠總結多個網路知識的單個網路。做到這一點需要採用「teaching」網路的輸出,然後在訓練中使用這些輸出作為網路的「targets」。文化演進的不同之處在於兩種網路同時學習。Bengio 的團隊已經試驗過這些概念,他們觀察到除了網路自己數據的 targets,讓網路之間共享輸出作為額外的 targets 能夠極大地改進對網路群體的訓練。下圖對文化演進給出了簡要總結。
圖 6:文化演進總結。
※構建深度神經網路,我有20條「不成熟」的小建議
※DeepMind提出關係RNN:記憶模塊RMC解決關係推理難題
TAG:機器之心 |