當前位置:
首頁 > 新聞 > 神經網路:從基本概念到新的可能性

神經網路:從基本概念到新的可能性

機器之心報道



生物學中的神經網路是互相交換信息的相互連接的神經元。這個想法現在已經適用於機器學習的世界,並被稱為人工神經網路(ANN)。深度學習(deep learning)是一個經常出現的詞,是指幾層連續放置的人工神經網路。

人工神經網路(ANN)包含了許多可以學習類似人腦的認知能力的模型。其它演算法不能處理的極其複雜的任務(如圖像識別),神經網路就可以辦到。然而,就像人類的大腦,它需要很長時間來訓練模型,且需要很多的能量(想一想我們為了保持大腦的工作,我們吃了多少東西)。



目前,包括計算機視覺、語音識別和機器人在內的諸多人工智慧應用已廣泛使用了深度神經網路(deep neural networks,DNN)。DNN 在很多人工智慧任務之中表現出了當前最佳的準確度,但同時也存在著計算複雜度高的問題。因此,那些能幫助 DNN 高效處理並提升效率和吞吐量,同時又無損於表現準確度或不會增加硬體成本的技術是在人工智慧系統之中廣泛部署 DNN 的關鍵。

本文旨在提供一個關於實現 DNN 的有效處理(efficient processing)的目標的最新進展的全面性教程和調查。特別地,本文還給出了一個 DNN 綜述——討論了支持 DNN 的多種平台和架構,並強調了最新的有效處理的技術的關鍵趨勢,這些技術或者只是通過改善硬體設計或者同時改善硬體設計和網路演算法以降低 DNN 計算成本。


I. 導語

深度神經網路(DNN)目前是許多人工智慧應用的基礎 [1]。由於 DNN 在語音識別 [2] 和圖像識別 [3] 上的突破性應用,使用 DNN 的應用量有了爆炸性的增長。這些 DNN 被部署到了從自動駕駛汽車 [4]、癌症檢測 [5] 到複雜遊戲 [6] 等各種應用中。在這許多領域中,DNN 能夠超越人類的準確率。而 DNN 的出眾表現源於它能使用統計學習方法從原始感官數據中提取高層特徵,在大量的數據中獲得輸入空間的有效表徵。這與之前使用手動提取特徵或專家設計規則的方法不同。

然而 DNN 獲得出眾準確率的代價是高計算複雜性成本。雖然通用計算引擎(尤其是 GPU),已經成為許多 DNN 處理的砥柱,但提供對 DNN 計算更專門化的加速方法也越來越熱門。本文的目標是提供對 DNN、理解 DNN 行為的各種工具、有效加速計算的各項技術的概述。



II. 深度神經網路(DNN)的背景

在這一部分,我們將描述深度神經網路(DNN)在人工智慧這個大框架下的位置,以及一些促進其發展的的概念。我們還將對其主要的發展歷程和現階段主要的應用領域做一個簡單的介紹。

A. 人工智慧和深度神經網路

根據 John McCarthy 的論述,深度神經網路(也稱為深度學習)是人工智慧(AI)大框架下的一部分。而人工智慧(AI)是利用科學與工程學創造具有如同人類那樣能實現目標的智能機器。人工智慧這個詞就是這位計算機科學家在上個世紀 50 年代所創造出的。深度學習和整個人工智慧的關係就如下圖所示。

神經網路:從基本概念到新的可能性

圖 1:深度學習在人工智慧大框架下的位置

B. 神經網路和深度神經網路(DNN)

神經網路從神經元涉及對輸入值求加權和進行計算這一概念而獲得靈感。這些加權和對應於突觸完成值的縮放以及其和神經元值間的組合。此外,因為計算與神經元級聯相關聯,並且其為簡單線性代數的運算,所以神經元不會僅僅輸出加權和。相反,在神經元中有函數執行組合輸入的運算,而這種函數應該是非線性運算。在非線性運算的過程中,神經元只有在輸入超過一定閥值時才生成輸出。因此通過類比,神經網路將非線性函數運用到輸入值的加權和中。我們等一下會描述一些非線性函數。

神經網路:從基本概念到新的可能性

圖 2:簡單的神經網路例子。(a) 神經元和突觸,(b) 為每一層計算加權和,(c) 前向和反向(循環)網路,(d) 全連接與稀疏

(a)中展示了計算神經網路的示意圖。圖的前端是輸入層,該層會接受輸入數據值。這些數據值前向傳播到神經網路中間層的神經元中,中間層也常稱為神經網路的隱藏層。一個或多個隱藏層的加權和最終前向傳播到輸出層,該輸出層會最終向用戶呈現神經網路的輸出結果。為了將腦啟發的術語和神經網路相匹配,神經元的輸出通常稱為激活(activation),並且突觸如(a)所示通常稱為權重(weight)。

神經網路:從基本概念到新的可能性

在上方表達式中,W_ij 代表著權重、x_i 為輸入激活、y_i 是輸出激活,而 f(·) 就代表著在 III-2 中描述的非線性激活函數。

在神經網路的領域內,有一門稱為深度學習的研究。普通神經網路基本上層級不會很多,而在深度學習里,神經網路的層級數量十分巨大,現如今基本上神經網路可以達到 5 到 1000 多層。

C. 推理 vs 訓練

這一節中,如圖 4 所示,我們將把圖像分類用作訓練 DNN 的一個強勁的實例。評估 DNN 時,我們輸入一個圖像,DNN 為每一個對象分類輸出分值向量;分值最高的分類將成為圖像中最有可能的對象分類。訓練 DNN 的總體目標是決定如何設置權重以最大化正確分類(來自標註的訓練數據)的分值並最小化其他不正確分類的分值。理想的正確分值與 DNN 基於其當前權重計算的分值之間的差被稱為損失值(L)。因此訓練 DNN 的目標是找到一組權重以最小化大型數據集中的平均損失值。

神經網路:從基本概念到新的可能性

圖 4:圖像分類任務

D. 開發歷史

  • 1940 年代 - 神經網路被提出

  • 1960 年代 - 深度神經網路被提出

  • 1989 年 - 識別數字的神經網(LeNet)出現

  • 1990 年代 - 淺層神經網硬體出現(Intel ETANN)

  • 2011 年 - DNN 語音識別取得突破性進展(Microsoft)

  • 2012 年 - 用於視覺的 DNN 開始替代人工放大(AlexNet)

  • 2014 年+ - DNN 加速器研究興起(Neuflow、DianNao 等等)

圖 5 的表柱是這些年來 ImageNet 競賽中每屆冠軍的表現。你可以看到最初演算法精確度的錯誤率在 25% 或更多。2012 年,多倫多大學的 AlexNet 團隊通過 GPU 來提升其計算能力並採用深度神經網路方法,把錯誤率降低了近 10% [3]。他們的成功帶來了深度學習風格的演算法的井噴,以及圖像識別技術的持續進步。

神經網路:從基本概念到新的可能性

圖 5:ImageNet 競賽 [10] 結果

E. DNN 的應用

從多媒體到醫療,DNN 對很多應用大有裨益。在這一節中,我們將展示 DNN 正在發揮影響的領域,並凸顯 DNN 有望在未來發揮作用的新興領域。

  • 圖像和視頻

  • 語音和語言

  • 醫療

  • 遊戲

  • 機器人

F. 嵌入 vs 雲

執行 DNN 推斷處理的嵌入平台有著嚴格的能耗、計算和存儲成本限制。當 DNN 推斷在雲中執行時,語音識別等應用經常有強烈的延遲需求。因此,在本文中,我們將聚焦於推斷處理而不是訓練的計算需求。



III. 深度神經網路概述

根據應用情況不同,深度神經網路的形態和大小也各異。流行的形態和大小正快速演化以提升模型準確性和效率。所有深度神經網路的輸入是一套表徵網路將加以分析處理的信息的值。這些值可以是一張圖片的像素,或者一段音頻的樣本振幅或者某系統或者遊戲狀態的數字化表示。

處理輸入的網路有兩種主要形式:前饋以及循環(圖 2c)。前饋網路中,所有計算都是在前一層輸出基礎上進行的一系列運作。最終一組運行就是網路的輸出,比如,這張圖片包括某個特定物體的概率是多少,某段音頻出現某個單詞的概率是多少,或者下一步行動的建議等。在這類深度神經網路中,網路並無記憶,輸出也總是與之前網路輸入順序無關。

相反,循環網路(LSTM 是一個很受歡迎的變種)是有內在記憶的,允許長期依存關係影響輸出。在這些網路中,一些中間運行生成的值會被存儲於網路中,也被用作與處理後一輸入有關的其他運算的輸入。在這篇文章中,我們關注的是前饋網路,因為到目前為止,少有人關注硬體加速,特別是循環網路的。

深度神經網路也可以是全連接的(FC,也指多層感知器),如圖 2(d)最左部分所示。在一個全連接層中,所有輸出與所有輸入都是相連接的。這需要相當數量的存儲和計算空間。謝天謝地,在許多應用中,我們可以移除激活(activations)之間的一些連接,方法就是將權重設置為零而不影響準確性。結果會產生一個稀疏連接層。圖 2(d)最右端的層就是一個稀疏連接層。

通過限制對結果有影響的權重數量,我們也可以實現更高效的計算。如果每個輸出僅僅是一個固定大小輸入窗口的函數,就會出現這類結構化稀疏性。如果這套權重被用於每一個輸入計算,就會進一步提高效率。這一權重共享能顯著降低權重的存儲要求。

通過將計算構建為卷積,一種非常流行的窗口式的權重共享的網路誕生了,如圖 6(a) 所示,其僅使用少量臨近的激活來計算加權和的輸出(即,該過濾器有一個有限的接受域,與輸入的距離超過特定值的所有權重都將被設置為 0),而且這一套權重能被每個輸入共享來計算(即,濾波器是空間不變的)。這種結構稀疏性的形式正交於源自網路(修改情況如本文部分 VII-B2 所述)的稀疏性。所以,卷積神經網路就是一種受歡迎的深度神經網路形式 [35]。

1) 卷積神經網路(CNN)

神經網路:從基本概念到新的可能性

圖 6:卷積的維度。(a) 傳統圖像處理中的二維卷積,(b) CNN 中的高維卷積

神經網路:從基本概念到新的可能性

圖 7:卷積神經網路

神經網路:從基本概念到新的可能性

表 1:CONV/FC 層的形狀參數

給定表 I 中的形狀參數(shape parameters),卷積層的計算可以定義為:

神經網路:從基本概念到新的可能性

2)非線性(Non-Linearity)

神經網路:從基本概念到新的可能性

圖 8:多種形式的非線性激活函數(來自 Caffe Tutorial [43])

3)池化(Pooling)

神經網路:從基本概念到新的可能性

圖 9:多種形式的池化(來自 Caffe Tutorial [43])

4)歸一化(Normalization)

控制輸入在層級中的分布能顯著地加快訓練速度並提升準確度。因此,輸入激活在層級上的分布(σ, μ)需要歸一化處理,使其變換為均值為 0、標準差為 1 的分布。在批量歸一化(batch normalization)中,歸一化值如方程(2)所示將進一步縮放和平移,參數(γ, β)是從訓練 [44] 中學到的兩個小常數,它們能避免數值問題。

神經網路:從基本概念到新的可能性

A. 流行的 DNN 模型

在過去的二十多年裡出現了很多種 DNN 模型。每一種都稱其擁有不同的「網路架構」,因為他們依據不同層級數量、濾波器形狀(如過濾尺寸,濾波器和通道的數量)、層級類型以及連接方式而劃分。正確地理解這些不同的方法和它們發展的趨勢對於提高 DNN 引擎的效率至關重要。

其中包括:

  • LeNet [9] 於 1989 年提出,是最早的 CNN 方式之一。其中最為人熟知的是第八版的 LeNet-5,其中包含兩個卷積層和兩個全連接層 [45]。

  • AlexNet[3] 是第一次贏得 ImageNet 挑戰賽的 CNN 網路(2012 年)。它由五個卷積層和三個全連接層組成。

  • Overfeat [46] 與 AlexNet 具有非常相似的架構:五個卷積層和三個全連接層。

  • VGG-16 [47] 更進一步,使用了 16 層的深度神經網路,其中包含 13 個卷積層,3 個全連接層。

  • GoogLeNet[48] 更深,有 22 個層,它首次引入了起始模塊(見下圖)。

  • ResNet [11],即殘差網路(Residual Net),使用殘差連接可以讓層級更加深入(34 層以上)。該網路第一次讓 DNN 在 ImageNet 挑戰賽中的表現超過了人類,top-5 錯誤率在 5% 以下。

神經網路:從基本概念到新的可能性

圖 11:GoogleNet[48] 的起始模塊(Inception module)通道長度實例,其中每個 CONV 層在 ReLU 層之後(圖中未顯示)。

神經網路:從基本概念到新的可能性

圖 12:ResNet[11] 中的快捷模塊。其中最後一個 CONV 層之後的 ReLU 層被快捷連接。

神經網路:從基本概念到新的可能性

表 2:目前流行的 DNN [3, 11, 45, 47, 48] 模型,其中正確率都基於在 ImageNet [10] 中 TOP-5 誤差。



神經網路新的可能性

神經網路:從基本概念到新的可能性

當使用合成梯度(Synthetic Gradients /SG)訓練神經網路時,可以在不使用更新鎖定(update locking)的情況下訓練層級或模塊,這樣就不需要等待誤差真值梯度(true error gradient)沿反向傳播,也就導致一種退耦合神經介面(Decoupled Neural Interfaces/DNIs)。這種更新解鎖的能力(unlocked ability)可以使用非同步的方式更新部分神經網路,並且 Jaderberg 等人(2016)也證明了只有局部信息(local information)能以經驗為主地工作(work empirically)。然而,很少有證據表明是什麼改變了從函數(functional)、表徵(representational)和視角學習動力點(learning dynamics point)實施的 DNI 和 SG。在本論文中,我們通過使用前饋網路上的合成梯度(Synthetic Gradients)來研究 DNI,並期望能更好地理解它們的行為和闡明其對優化演算法的影響。我們的研究表明 SG 的併入並不會影響神經網路學習系統的表徵強度(representational strength),並證明了線性和深線性(deep linear)模型的學習系統收斂性。在實際操作問題上,我們調查了使用合成梯度估計量逼近損失真值(true loss)的機制,並很驚訝地發現其是如何導致完全不同的層級表徵。最後,我們還揭示了合成梯度和其他誤差逼近技術(error approximation techniques)的關係,並發現可以使用同一的語言進行討論和比較。

神經網路:從基本概念到新的可能性

在過去幾年裡,卷積神經網路(CNN)已經為計算機視覺領域帶來了革新,推動實現了超越人類準確度的圖像分類。但是,我們需要非常高功耗的並行處理器或者通用計算圖形處理器(GP-GPU)才能滿足運行目前 CNN 的要求。最近在為系統級晶元集成(system-on-chip integration)的 CNN 加速器上的發展已經實現了顯著的功耗降低。不幸的是,即便是這些經過高度優化的設備,其包絡功率(power envelope)也因超過了移動設備和深層嵌入式應用從而面臨因 CNN weight I/O 和 storage 導致的硬性限制。這也阻礙了未來在超低功耗物聯網端節點中採用 CNN 來對近感測器(near-sensor)的分析工作。最近在演算法和理論中的進展使具有競爭力的分類準確度成為可能——即便當在訓練中限制 CNN 使其使用二值權重(+1/-1)來計算也沒問題。通過去除對大量乘法運算的需求和減少 I/O 帶寬與存儲,這些新發現為我們帶來了在運算核心中進行重要優化的良機。本文中,我們提出了一種為二值 CNN 優化過的加速器,它在僅 1.33MGE(Million Gate Equivalent,百萬級等效門)或 0.19 平方毫米的核心區域上在 1.2 V 的條件下實現了 1510 GOp/s 的速度,而且在 0.6 V 條件下使用 UMC 65 nm 技術時僅有 895 uW 的功率耗散。我們的加速器在能量效率和尺寸效率上的表現都顯著超越了當前最佳水平,分別在 0.6 V 和 1.2 V 的條件下實現了 61.2 TOp/s/W 和 1135 GOp/s/MGE 的表現。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

UC Berkeley教授:還原論遠不是通向人工智慧的坦途
FB宣布開源Caffe2:可在手機與樹莓派上訓練和部署模型
陸奇宣布自動駕駛Apollo計劃,一圖看懂百度智能汽車的發展
英偉達嵌入式計算平台Jetson:讓神經網路走進終端設備
招商局創投領投,氪信科技完成 B 輪融資

TAG:機器之心 |

您可能感興趣

深度神經網路全面概述:從基本概念到實際模型和硬體基礎
人工智慧可測血型,神經網路不再「學新忘舊」
神經網路的「非直觀屬性」匯總
MIT 研究「看見」神經網路形成概念過程,神經網路不全是黑箱
神經網路:比原來更容易學習了
網路戀情是否能成功?
深度神經網路中的對抗樣本與學習
人工智慧可測血型;神經網路不再「學新忘舊」
網紅告訴你:你在網路上看到的可能都是假的!
正在湧現的新型神經網路模型:優於生成對抗網路
正能量是網路的立身之本
深度神經網路是否模擬了人類大腦皮層結構?
深度神經網路中的數學,對你來說會不會太難?
「新智元專訪」神經元本身也能編程,神經網路學習能力遠超預期
網路讀史,如何辨別小編是不是在一本正經的胡說八道?
為什麼人會隨著長大變「聰明」:兒童認知能力的大腦神經網路基礎
對等神經網路
只能說太慘太神奇,這個消息已經傳遍網路!這樣都能賴上中國?
疑似精神分裂症產前基因網路,可能會破壞前額葉皮層新神經元誕生