【新智元導(dǎo)讀】 萊斯大學(xué)兩位研究員使用一種基于 Hashing 的新技術(shù),大幅減少了訓(xùn)練和測試神經(jīng)網(wǎng)絡(luò)所需的計算量。他們稱:“1000 個神經(jīng)元的網(wǎng)絡(luò)我們能節(jié)能 95%,根據(jù)數(shù)學(xué)推導(dǎo),10 億個神經(jīng)元的網(wǎng)絡(luò)我們就能節(jié)能 99%”。phys.org報道稱,這對谷歌、微軟和Facebook等有著大量深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)訓(xùn)練的大公司來說事關(guān)重大。


 

美國萊斯大學(xué)(Rice University )的計算機(jī)科學(xué)家通過使用被廣泛使用的快速數(shù)據(jù)查找技術(shù),以大幅度減少深度學(xué)習(xí)所必需的計算量,進(jìn)而大大地節(jié)約了能源和時間。


萊斯大學(xué)計算機(jī)科學(xué)家已經(jīng)采用了廣泛使用的快速數(shù)據(jù)查找技術(shù),以減少計算量,從而減少了深度學(xué)習(xí)所需的能量和時間,這是一種計算強(qiáng)大的機(jī)器學(xué)習(xí)形式。


“這能運(yùn)用到任何一種深度學(xué)習(xí)架構(gòu)中,并且,其技巧是亞線性擴(kuò)展的,也就是說,運(yùn)用的神經(jīng)網(wǎng)絡(luò)越大,能節(jié)省的計算資源就會越多”,萊斯大學(xué)計算機(jī)科學(xué)系助理教授、該研究的第一作者 Anshumali Shrivastava 介紹說。

 

研究將會出現(xiàn)在2017年的 KDD 會議上,會議將于8月在Nova Scotia的Halifax 舉辦。這一研究解決了谷歌、Facebook 和 微軟等這些爭先恐后地希望搭建、訓(xùn)練和部署大規(guī)模的深度神經(jīng)網(wǎng)絡(luò)的科技巨頭最緊迫的需求之一。它們希望用深度學(xué)習(xí)來滿足越來越多的產(chǎn)品需求,如自動駕駛汽車,語言翻譯和智能回復(fù)電子郵件等。


Shrivastava和 Rice 大學(xué)的研究生 Ryan Spring 證明,“哈希”(Hashing)技術(shù)是一種真實(shí)的數(shù)據(jù)索引方法,可以大大減少深度學(xué)習(xí)的計算消耗。“哈希” 涉及使用智能散列函數(shù)將數(shù)據(jù)轉(zhuǎn)換為可管理的小數(shù),稱為哈希。哈希被存儲在表格中,其運(yùn)行方式就好像紙質(zhì)書中的索引。

 

 “我們的方法混合了兩種技術(shù):一個局部敏感哈希 clever 變量,以及一個稀疏的反向傳播。這樣就能在不大量地降低準(zhǔn)確率的情況下,減少必要的計算消耗。Spring 說,“比如,在小規(guī)模的測試中,我們發(fā)現(xiàn)在標(biāo)準(zhǔn)方法下,能在準(zhǔn)確率損失控制在1%的情況下,將計算能耗減少95%。”


深度學(xué)習(xí)網(wǎng)絡(luò)的基礎(chǔ)建造模塊是一個人造神經(jīng)元。雖然1950年代,生物神經(jīng)元的首先被發(fā)現(xiàn),但是,人造神經(jīng)元只是一個數(shù)學(xué)函數(shù)和等式,建立在大量的數(shù)據(jù)之上,可以轉(zhuǎn)化為輸出。


在機(jī)器學(xué)習(xí)中,所有的神經(jīng)元都從一張白紙的“空”狀態(tài)開始,在訓(xùn)練過程中變得特異化(specialized)。在訓(xùn)練期間,網(wǎng)絡(luò)被“給予”大量數(shù)據(jù),每個神經(jīng)元都成為識別數(shù)據(jù)中特定模式的專家。在最低層,神經(jīng)元執(zhí)行最簡單的任務(wù)。例如,在照片識別應(yīng)用中,低級神經(jīng)元可能識別來自暗處的光線或物體的邊緣。這些神經(jīng)元的輸出被傳遞到網(wǎng)絡(luò)下一層的神經(jīng)元中,這些神經(jīng)元又會以其特有的方式搜索它們會識別的特征。


只有幾層的神經(jīng)網(wǎng)絡(luò)就可以學(xué)習(xí)識別人臉、各種犬類、停車標(biāo)志和校車。


Shrivastava 說:“向網(wǎng)絡(luò)的每層增加更多的神經(jīng)元可以增強(qiáng)其表現(xiàn)力(expressive power),而且我們想要網(wǎng)絡(luò)有多大這一點(diǎn)沒有上限。”


據(jù)報道,谷歌正在嘗試訓(xùn)練一個擁有 1370 億個神經(jīng)元的網(wǎng)絡(luò)。相比之下,訓(xùn)練和部署這樣的網(wǎng)絡(luò)需要的計算力是有限的。


Shrivastava 說,目前使用的大多數(shù)機(jī)器學(xué)習(xí)算法都是 30 到 50 年前開發(fā)的,在設(shè)計的時候沒有考慮到計算的復(fù)雜性。但是,有了大數(shù)據(jù)之后,對于計算周期、能源和內(nèi)存等資源來說,就存在著基本的限制,而“我們的實(shí)驗(yàn)室側(cè)重于解決這些限制。”


Spring 表示,在大規(guī)模深度網(wǎng)絡(luò)中,hashing 帶來的計算和節(jié)能將會更大。


Spring 說,由于他們利用大數(shù)據(jù)中固有的稀疏性,因此能量的節(jié)省會隨著網(wǎng)絡(luò)規(guī)模的增加而增加。“假設(shè)一個深度網(wǎng)絡(luò)有 10 億個神經(jīng)元,對于任何一個給定輸入——例如一張狗的圖片——只有少部分神經(jīng)元會被激活。


在數(shù)據(jù)科學(xué)的術(shù)語中,這就叫做稀疏性(sparsity),而正因?yàn)橛辛讼∈栊裕麄兊姆椒ü?jié)省的能量會隨著網(wǎng)絡(luò)規(guī)模的擴(kuò)大而增加。


“所以,1000 個神經(jīng)元的網(wǎng)絡(luò)我們能節(jié)能 95%,根據(jù)數(shù)學(xué)推導(dǎo),10 億個神經(jīng)元的網(wǎng)絡(luò)我們就能節(jié)能 99%。”


原文:https://phys.org/news/2017-06-scientists-slash-deep.html#jCp


Ryan Spring (左) 和 Anshumali Shrivastava.


通過隨機(jī)哈希實(shí)現(xiàn)可擴(kuò)展、可持續(xù)的深度學(xué)習(xí)


這篇論文《通過隨機(jī)哈希實(shí)現(xiàn)可擴(kuò)展、可持續(xù)的深度學(xué)習(xí)》(Scalable and Sustainable Deep Learning via Randomized Hashing),已經(jīng)作為 Oral 被 KDD 2017 接收。


雖然論文的同行評議版本要到 KDD 召開時才能得知,通過網(wǎng)上的資料,我們可以看到去年底 Spring 在 arXiv 上傳的論文預(yù)印版(地址:https://arxiv.org/pdf/1602.08194.pdf)。


下面是論文的摘要。


為了從復(fù)雜的數(shù)據(jù)集中學(xué)習(xí),當(dāng)前深度學(xué)習(xí)框架越來越大。這些框架需要進(jìn)行巨大的矩陣乘法運(yùn)算來訓(xùn)練數(shù)百萬個參數(shù)。與此相反,另一個呈增長的趨勢是將深度學(xué)習(xí)帶入低功耗、嵌入式設(shè)備。為了訓(xùn)練和測試深度網(wǎng)絡(luò)而進(jìn)行的相關(guān)矩陣運(yùn)算,從計算和能量消耗的角度看是非常昂貴的。我們提出了一種基于 Hashing 的新技術(shù),大幅減少了訓(xùn)練和測試神經(jīng)網(wǎng)絡(luò)所需的計算量。我們的方法結(jié)合了最近提出的兩大概念,即自適應(yīng) dropout 和最大內(nèi)部搜索(MIPS)隨機(jī) Hashing,有效選擇網(wǎng)絡(luò)中具有最高激活的節(jié)點(diǎn)。


這一新深度學(xué)習(xí)算法通過在(數(shù)量明顯更少的)稀疏節(jié)點(diǎn)上運(yùn)行,減少前向和后向傳播步驟的總體計算成本。因此,我們的算法在保持原始模型平均精度 1% 的同時,僅使用總乘法的 5%。


論文提出的基于 Hashing 的反向傳播算法,一個獨(dú)特屬性是 update 總是稀疏的。而由于稀疏梯度 update,我們的算法非常適合異構(gòu)和并行訓(xùn)練。通過在幾個真實(shí)數(shù)據(jù)集上進(jìn)行嚴(yán)格的實(shí)驗(yàn)評估,我們證明了提出的算法具有可擴(kuò)展性和可持續(xù)性(能量效率高)。


神經(jīng)網(wǎng)絡(luò)進(jìn)行隨機(jī)哈希的視覺展示





圖1:從圖中可見,神經(jīng)網(wǎng)絡(luò) Low-Rank 假設(shè)需要的參數(shù)數(shù)量自然會更少



圖2:對神經(jīng)網(wǎng)絡(luò)進(jìn)行隨機(jī)哈希的視覺展示。① 建一個哈希表,方法是對每個隱藏層(一次迭代)的權(quán)重做哈希。② 使用該層的隨機(jī)哈希函數(shù)對該層的輸入做哈希。③ 查詢這一層的哈希表,獲取激活數(shù)據(jù)集 AS。④ 僅在激活神經(jīng)元上做前向和后向傳播。⑤ 更新 AS 權(quán)重和哈希表。


 56 核的英特爾 Xeon ES-2697 處理器上的性能比較




7一個標(biāo)準(zhǔn)網(wǎng)絡(luò)使用我們的方法隨機(jī)哈希和使用異構(gòu)隨機(jī)梯度下降 56 核的英特爾 Xeon ES-2697 處理器上的性能比較。我們依次在 MNISTNORBConvex  Rectangles 數(shù)據(jù)集上進(jìn)行了測試。所有網(wǎng)絡(luò)的初始值都是一樣的。


圖8:新方法(LSH-5%)使用異構(gòu)隨機(jī)梯度下降每步(per epoch)獲得的掛鐘時間。我們用一個有 3 層隱藏層的網(wǎng)絡(luò),依次在 MNIST、NORB、Convex 和 Rectangles 數(shù)據(jù)集上進(jìn)行了測試。Convex 和 Rectangles 數(shù)據(jù)集上增量較少,是因?yàn)樵谡麄€過程中可用的訓(xùn)練樣本不夠多。實(shí)驗(yàn)中只使用了 5% 的標(biāo)準(zhǔn)網(wǎng)絡(luò)計算量。


更多內(nèi)容,請見論文預(yù)印版(地址:https://arxiv.org/pdf/1602.08194.pdf)