哈希法讓深度學習告別密集計算
摘要:為了能在復雜的數據集上進行學習,當前深度學習架構正變得越來越大。這些架構需要極大量的矩陣乘法運算以訓練數以百萬計的參數。相對地,還有另一個正在發展的趨勢想要將深度學習引入低功耗的、嵌入式的設備中。這些矩陣運算(深度網絡的訓練和測試都需要)在計算和功耗上都有很高的成本。我們提出了一種全新的基于哈希法(hashing)的技術,可以極大地減少深度網絡的訓練和測試所需的計算量。我們的方法結合了自適應dropout(adaptive dropout)和用于最大內積搜索(maximum inner product search)的隨機化哈希(randomized hashing),從而可以有效地選擇有最高激活(activation)的節點。我們用于深度學習的新算法可以運行在顯著更少(稀疏)的節點上,從而可以極大減少前向和反向傳播的總計算成本。因此,我們的算法可以僅使用5%的總乘法量就平均保持在原模型準確度的1%的范圍內。這里提出的基于哈希法的反向傳播有一個獨特的性質:其更新總是稀疏的。因為這種稀疏的梯度更新,我們的算法可以完美地用于異步和并行的訓練,可以通過增加內核的數量來實現近乎線性的加速。我們通過在幾個真實數據集上的嚴格評估證明了我們提出的算法的可擴展性和可持續性(能效)。
萊斯大學的助理教授Anshumali Shrivastava說,「它應用于任何深度學習架構,該技術都能亞線性地擴展,也就是應用到的深度神經網絡越大節省的計算越多。」
該研究將會發布在今年的 KDD 會議上被介紹,它解決了谷歌、Facebook、微軟等大公司面臨的最大難題之一。這些大公司都在爭相建立、訓練、部署大量的深度學習網絡來發展不同的產品,例如自動駕駛汽車、翻譯、郵件智能回復。
Shrivastave 和萊斯大學的研究生Ryan Spring表示該技術來自于哈希法(hashing),一種行之有效的數據檢索方法,經過改編可極大地減少深度學習的計算成本。哈希法使用哈希函數將數據轉換為易管理的小數值哈希(被稱作 hash)。哈希被存儲在表格中,類似于印刷書中的索引。
Spring 說:「我們的方法融合了兩項技術——巧妙的本地敏感性哈希法變體(variant of locality-sensitive hashing)和稀疏反向傳播變體——以減少計算需求,且不附帶大量的精確度損失。例如,在小規模的測試中發現我們可以降低95%的計算,但是和通過標準方法獲取的精確度依然差1%以內。」
深度學習網絡的基本構建塊是人工神經元。盡管在1950年代就被作為生物大腦神經元的模型,人工神經元還僅僅是把輸入數據轉化為輸出結果的數學函數和方程式。
在機器學習中,所有神經元都有相同的初始狀態,就像白紙一樣,它們會隨著訓練擁有各自的特定功能。在訓練中,神經網絡「看到」了大量數據,每個神經元都會成為識別數據中特定模式的專用結構。在最底層,神經元執行簡單的任務。例如在圖像識別應用中,底層神經元或許用于識別亮/暗,或是物體的邊緣。來自這些神經元的輸出會被傳遞到網絡中下一層的神經元那里,經受其他模式的識別和處理。僅有幾層的神經網絡即可識別面部、貓狗、交通指示牌和校車等概念。
Shrivastava說:「向神經網絡層級添加更多的神經元能擴展其表現性能,而我們希望神經網絡沒有大小上限,據報道谷歌正在嘗試訓練一個包含1370億神經元的模型。」相比之下,對于訓練和部署這樣的神經網絡可能會有計算力的限制。
他說:「如今使用的大部分機器學習算法都開發于30至50年前,設計時并未考慮計算復雜性。但有了大數據之后,在資源上有了基本的限制,比如計算周期、能耗和存儲。我們實驗室旨在解決這些限制。」
Spring表示,大規模的深度網絡中,哈希法將會極大地節省計算量和能耗。
他說:「節能隨著規模而增加是由于我們利用了大數據之中的稀疏性。例如,我們知道一個深度網絡有10億個神經元。對于任何給定的輸入,比如一只狗的圖片,只有其中的幾個會變興奮。按照數據用語,我們將其稱為稀疏性,而正是由于稀疏性,我們的方法將在網絡變大之時節能更多。因此,當我們展示了1000個神經元的95%的節能時,數學表明我們可以為10億個神經元實現超過99%的節能。」
論文:通過隨機化哈希的可擴展和可持續的深度學習(Scalable and Sustainable Deep Learning via Randomized Hashing)
非常好我支持^.^
(0) 0%
不好我反對
(0) 0%