史上最好記的神經網絡結構速記表

原文THE NEURAL NETWORK ZOO,出自Asimov人工智能研究所。前端

新的神經網絡結構不斷涌現,咱們很難一一掌握。哪怕一開始只是記住全部的簡稱( DCIGN,BiLSTM,DCGAN ),也會讓同窗們吃不消。後端

因此我決定寫篇文章概括概括,各類神經網絡結構。它們大部分都是神經網絡,也有一些是徹底不一樣的結構。雖然全部結構提及來都是新穎而獨特的,但當我畫出結點的結構圖時……它們之間的內在聯繫顯得更有意思。網絡

總表less

史上最好記的神經網絡結構速記表(下)

13函數

史上最好記的神經網絡結構速記表(下)

反捲積網絡(DN)又名逆向圖網絡(IGN),是卷積神經網絡的逆轉。舉個栗子:輸入「貓」這個詞,經過對比網絡生成的圖像和貓的真實圖像來訓練網絡,使網絡產生更像貓的圖像。DN 能夠像常規 CNN 那樣與 FFNN 相結合,這樣就須要給它一個新的「縮寫」了。「深度反捲積網絡」的稱呼大概可行,但你可能會反駁說,分別把 FFNN 接在 DN 的前端或後端時,應該用兩個不一樣的名字來指代。性能

在大多數應用場合,輸入網絡的不是文字式的類別信息而是二值向量。 如 表示貓, 表示狗, 表示貓和狗。在 DN 中,CNN常見的採樣層被相似的反向操做替換,主要有插值方法和帶有偏置假設的外推方法等等(若是採樣層使用最大值採樣,能夠在作逆向操做時單獨製造出一些比最大值小的新數據。)學習

Zeiler, Matthew D., et al. 「Deconvolutional networks.」 Computer Vision and Pattern Recognition (CVPR), 2010 IEEE Conference on. IEEE, 2010.編碼

14人工智能

史上最好記的神經網絡結構速記表(下)

深度卷積逆向圖網絡(DCIGN)的名稱有必定的誤導性,它其實是一類變分自動編碼器(VAE),只不過度別用 CNN 做編碼器、DN 做解碼器了。DCIGN 在編碼時試圖將「特徵」以機率建模,這樣一來就算僅僅學習了只有貓或狗一方存在的圖像,它也可以學着去產生貓狗共存的圖片。假如一張照片裏既有貓,又有鄰居家那條討厭的狗,你能夠把照片輸入網絡,讓網絡自動把那條狗扒出去,而無須額外的操做。演示程序代表,該網絡還能學習對圖像作複雜的變換,好比改變光源和旋轉3D物體。該網絡一般使用反向傳播來訓練。lua

Kulkarni, Tejas D., et al. 「Deep convolutional inverse graphics network.」 Advances in Neural Information Processing Systems. 2015.

15

史上最好記的神經網絡結構速記表(下)

生成對抗網絡(GAN)源出另外一類網絡,它由兩個成對的網絡協同運做。GAN 由任意兩個的網絡組成(不過一般是 FFNN 和 CNN 的組合),一個用來生成,另外一個用來判別。判別網絡的輸入是訓練數據或者生成網絡產生的內容,它正確區分數據來源的能力構成了生成網絡錯誤水平的表現的一部分。這樣就造成了一種競爭形式:判別器愈來愈擅長區分真實數據和生成數據,與此同時生成器不斷學習從而讓判別器更難區分。有時候,這樣的機制效果還不錯,由於即使是至關複雜的類噪聲模式最終都是可預測的,但與輸入數據特徵類似的生成數據更難區分。GAN 很難訓練——你不只須要訓練兩個網絡(它們可能都有本身的問題),還要很好地平衡它們的動態狀況。若是預測或者生成任意一方比另外一方更強,這個 GAN 就不會收斂,而是直接發散掉了。

Goodfellow, Ian, et al. 「Generative adversarial nets.」 Advances in Neural Information Processing Systems. 2014.

16

史上最好記的神經網絡結構速記表(下)

循環神經網絡(RNN)是帶有「時間結」的 FFNN。RNN 不是無狀態的[1],它既存在層間的聯繫,也存在時間上的聯繫。輸入到神經元的信息不只由上一層傳來,還來自前次傳遞時神經元自身的狀態。這意味着輸入和訓練網絡的順序很關鍵:先輸入「牛奶」、再輸入「曲奇」,與先輸入「曲奇」再輸入「牛奶」會獲得不一樣的結果。RNN 的一大問題是,使用不一樣的激勵函數會各自形成梯度彌散或者爆炸,這樣會讓信息隨時間變化而迅速流失,就像在極深 FFNN 中隨深度增長而流失同樣。乍一看好像不是什麼大問題,由於這些信息只是權重而不是神經元的狀態。

可是,不一樣時間上的權值實際存儲了來自過去的信息,而若是權值變成了 0 或 100 0000,就無所謂以前的狀態了。大致上說,RNN 能夠用在不少領域。儘管大部分數據並不存在形如音頻、視頻之類的時間線,但不妨把它們表示爲序列的形式。圖像、文字序列能夠用每次一個像素、字符的方式來輸入,這樣,時間相關的權值並不是來自前 x 秒出現的狀態,而是對序列早前狀態的表示。一般來講,循環網絡善於預測和補全信息,好比能夠用來作自動的補全。

[1] 「無狀態的(stateless)」,意爲「輸出僅由本時刻的輸入決定」。RNN 因爲部分「記憶」了以前輸入的狀態,因此是「有狀態的(stateful)」。——譯註。

Elman, Jeffrey L. 「Finding structure in time.」 Cognitive science 14.2 (1990): 179-211.

17

史上最好記的神經網絡結構速記表(下)

長短時記憶(LSTM)網絡試圖經過引進「門」和定義明確的記憶單元來對抗梯度彌散/爆炸問題。相較生物學,它更多受到電路學的啓發。每一個神經元有一個記憶單元和輸入、輸出、遺忘三個門。門的做用是經過阻止和容許信息的流動來實現對信息的保護。輸入門決定了前一層的信息有多少可以存儲在當前單元內;另外一端的輸出門決定了後一層可以在當前單元中獲取多少信息;遺忘門乍看起來有點奇怪,但「遺忘」有時候是對的——好比正在學習一本書,而後新的一章開始了,這時候網絡可能得忘掉一些在上一章中學到的文字。LSTM 可以學習複雜的序列,能夠像莎士比亞同樣寫做、創做新的樂曲。因爲每一個門對都有對前一個神經元的權重,網絡運行須要更多的資源。

Hochreiter, Sepp, and Jürgen Schmidhuber. 「Long short-term memory.」 Neural computation 9.8 (1997): 1735-1780.

18

史上最好記的神經網絡結構速記表(下)

門控循環單元(GRU)由LSTM的稍做變化而來。GRU 減小了一個門,還改變了鏈接方式:更新門取代了輸入、輸出、遺忘門。更新門決定了分別從上一個狀態和前一層網絡中分別保留、流入多少信息;重置門很像 LSTM 的遺忘門,不過位置稍有改變。GRU 會直接傳出所有狀態,而不是額外經過一個輸出門。一般,GRU 與 LSTM 功能接近,最大的區別在於, GRU 速度更快、運行也更容易(不過表達能力稍弱)。實踐中運行性能可能與表達能力相互抵消:運行一個更大的網絡來得到更強的表達能力時,運行性能的優點會被壓制。而在不須要額外的表達能力時,GRU 的性能超過 LSTM。

Chung, Junyoung, et al. 「Empirical evaluation of gated recurrent neural networks on sequence modeling.」 arXiv preprint arXiv:1412.3555 (2014).

19

史上最好記的神經網絡結構速記表(下)

神經圖靈機(NTM)能夠理解爲 LSTM 的抽象形式。它試圖將神經網絡「去黑盒化」,從而讓咱們部分了解神經網絡內部發生了什麼。不一樣於直接把記憶單元編碼進神經元,NTM 的記憶被分開了。NTM 想把常規數字化存儲的高效性與持久性、神經網絡的高效性與表達能力結合起來;它的設想是,創建內容可尋址的記憶組,以及可讀寫這個記憶組的神經網絡。「神經圖靈機」中的「圖靈」是說它是圖靈完備的:可以讀、寫,以及根據讀入內容改變狀態。這就是說,它能夠表達通用圖靈機所能表達的一切。

Graves, Alex, Greg Wayne, and Ivo Danihelka. 「Neural turing machines.」 arXiv preprint arXiv:1410.5401 (2014).

20

雙向循環網絡,雙向長短時記憶網絡和雙向門控循環單元(BiRNN,BiLSTM 和 BiGRU)同它們的單向形式看上去徹底同樣,因此不畫出來了。區別在於,這些網絡不只與過去的狀態鏈接,還與將來的狀態鏈接。舉例來講,讓單向 LSTM 經過依次輸入字母的形式訓練,來預測單詞 「fish」,此時時間軸上的循環鏈接就記住了以前狀態的值。而雙向 LSTM 在反向傳值的時候會繼續獲得序列接下來的字母,即得到了將來的信息。這就教會了網絡填補空隙、而不是預測信息——它們不是去擴展圖像的邊緣,而是填充圖像的中空。

Schuster, Mike, and Kuldip K. Paliwal. 「Bidirectional recurrent neural networks.」 IEEE Transactions on Signal Processing 45.11 (1997): 2673-2681.

21

史上最好記的神經網絡結構速記表(下)

深度殘差網絡(DRN)是在逐層鏈接的基礎上,帶有額外層間鏈接(一般間隔二到五層)的極深 FFNN。DRN 不像常規網絡那樣,力求解得輸入到輸出通過多層網絡傳遞後的映射關係;它往解中添加了一點兒恆等性,即把淺層的輸入直接提供給了更深層的單元。實驗證實,DRN 能夠高效地學得深達150層的網絡,其性能遠遠超過了常規的二到五層的簡單網絡。然而有人證實,DRN 實際上是不具有明確時間結構的 RNN,因此常常被類比做沒有門單元的 LSTM。

He, Kaiming, et al. 「Deep residual learning for image recognition.」 arXiv preprint arXiv:1512.03385 (2015).

22

史上最好記的神經網絡結構速記表(下)

回聲狀態網絡(ESN)是另外一種循環網絡。與通常網絡的不一樣在於,ESN 神經元之間的鏈接是隨機的(就是說,沒有整齊的層-層形式),訓練過程天然也就不一樣。數據前向輸入、偏差反向傳播的法子不能用了,咱們須要把數據前向輸入,等一下子再更新單元,再等一下子,最後觀察輸出。與通常神經網絡相比,ESN 中輸入和輸出層的角色發生了至關的改變——輸入層把信息填充給網絡、輸出層觀察激活模式隨時間展開的狀態。訓練時,只有輸出層和一部分隱層單元之間的鏈接會被改變。

Jaeger, Herbert, and Harald Haas. 「Harnessing nonlinearity: Predicting chaotic systems and saving energy in wireless communication.」 science 304.5667 (2004): 78-80.

23

史上最好記的神經網絡結構速記表(下)

極限學習機(ELM)基本上是隨機鏈接的 FFNN。看上去很像 LSM 和 ESN,但 ELM 既不是循環式的、也不是脈衝式的。ELM 也不用反向傳播,而是初始化爲隨機權值,而後用最小二乘擬合(在全部函數上偏差最小)、一步到位地完成訓練。這樣獲得的是一個表達能力稍弱,但遠快於使用反向傳播的神經網絡。

Cambria, Erik, et al. 「Extreme learning machines [trends & controversies].」 IEEE Intelligent Systems 28.6 (2013): 30-59.

24

史上最好記的神經網絡結構速記表(下)

液體狀態機(LSM)跟 ESN 比較像,區別在於 LSM 是一類脈衝神經網絡: sigmoid 激活函數被閾值函數取代;每一個神經元都是累加的記憶單元。因此更新神經元時,它的值不是相連神經元的和,而是自身的累加,一旦達到閾值就把能量釋放給其餘神經元。這就造成了脈衝式的網絡——超過閾值後,狀態纔會改變。

Maass, Wolfgang, Thomas Natschläger, and Henry Markram. 「Real-time computing without stable states: A new framework for neural computation based on perturbations.」 Neural computation 14.11 (2002): 2531-2560.

25

史上最好記的神經網絡結構速記表(下)

支持向量機(SVM)爲分類問題找到最優解。最初 SVM 只能處理線性可分的數據,好比判斷哪張是加菲貓,哪張是史努比,而不存在其餘的狀況。能夠這樣理解 SVM 的訓練:將全部的數據(好比加菲貓和史努比)在(2D)圖上畫出,在兩類數據中間想辦法畫一條線,這條線把數據區分開,即全部的史努比在這邊、全部的加菲貓在另外一邊。經過最大化兩邊數據點與這條分割線的間隔來找到最優解。對新的數據作分類時,只要把數據點畫在圖上,看看它在線的那一邊就行了。使用核方法能夠分類 n 維數據,這時須要把點畫在三維圖中,從而讓 SVM 可以區分史努比、加菲貓和——好比說西蒙的貓——或者是更高的維度、更多的卡通形象類別。有時候,人們也不把 SVM 當成神經網絡。

Cortes, Corinna, and Vladimir Vapnik. 「Support-vector networks.」 Machine learning 20.3 (1995): 273-297.

26

史上最好記的神經網絡結構速記表(下)

最後介紹 Kohonen 網絡(KN,也叫自組織(特徵)圖,SOM,SOFM)。KN 利用競爭性學習來無監督地分類數據。輸入數據以後,網絡會評估哪些神經元與輸入的匹配度最高,而後作微調來繼續提升匹配度,並慢慢帶動鄰近它們的其餘神經元發生變化。鄰近神經元被改變的程度,由其到匹配度最高的單元之間的距離來決定。Kohonen有時候也不被認爲是神經網絡。

相關文章
相關標籤/搜索