原圖如下:
雖然這些節點圖不能顯示各個模型的內部工作過程,但是這些節點圖的匯總可以讓我們在同一層面上對比不同神經網絡的結構特點,從而對不同神經網絡之間的關系有一個更為具象的理解。
感知器(Perceptrons)和前饋神經網絡(Feed Forward Neural Networks)
單層感知器是最簡單的神經網絡。它僅包含輸入層和輸出層,而輸入層和輸出層是直接相連的。
相對於單層感知器,前饋神經網絡包含輸入層、隱藏層和輸出層。這一類網絡通常使用反向傳播算法(Backpropagation)進行訓練,由於網絡具有隱藏神經元,理論上可以對輸入和輸出之間的關系進行建模。但實際上該網絡的應用是很有限的,通常要將它們與其他網絡結合形成新的網絡。
徑向基函數網絡(Radial Basis Function,RBF)
徑向基函數(RBF)網絡是以徑向基函數作為激活函數的前饋神經網絡。徑向基函數網絡通常只有三層,輸入層、中間層和輸出層。中間層計算輸入矢量與樣本矢量歐式距離的徑向基函數值,輸出層計算它們的線性組合。
徑向基函數網絡的基本思想是:用徑向基函數作為隱單元的“基”構成隱含層空間,將低維空間的輸入通過非線性函數映射到一個高維空間,而低維空間不可分的數據到了高維空間更有可能變得可分。
Hopfield神經網絡(Hopfield Network,HN)
1982年,J.Hopfield提出了可用作聯想存儲器的互連網絡,這個網絡被稱為Hopfield網絡模型。Hopfield神經網絡是一種循環神經網絡,從輸出到輸入有反饋連接。反饋神經網絡由於其輸出端又反饋到其輸入端,所以Hopfield網絡在輸入的激勵下,會產生不斷的狀態變化。
網絡的每個節點在訓練前接受輸入,然后在訓練期間隱藏並輸出。可以通過將神經元的值設置為期望的模式來訓練網絡,此后權重不變。一旦訓練了一個或多個模式,網絡將收斂到一個學習模式,因為網絡在這個狀態中是穩定的。
波爾茲曼機(Boltzmann Machines,BM)
波爾茲曼機是一種隨機神經網絡。在這種網絡中神經元只有兩種輸出狀態,即二進制的0或1。狀態的取值根據概率統計法則決定,由於這種概率統計法則的表達形式與著名統計力學家L.Boltzmann提出的玻爾茲曼分布類似,故將這種網絡取名玻爾茲曼機。
波爾茲曼機(BM)很像Hopfield神經網絡,區別在於,它只有一些神經元被標記為輸入神經元,而其他神經元保持“隱藏”。輸入神經元在完整的網絡更新結束時成為輸出神經元。它從隨機權重開始,通過反向傳播(Backpropagation)學習或通過對比散度(Contrastive Divergence)算法訓練模型。
受限玻爾茲曼機(Restricted Boltzmann Machines,RBM)
受限玻爾茲曼機是一種可通過輸入數據集學習概率分布的隨機生成神經網絡。受限玻爾茲曼機由一個可見神經元層和一個隱神經元層組成。由於隱層神經元之間沒有相互連接,並且隱層神經元獨立於給定的訓練樣本,這讓直接計算依賴數據的期望值變得更容易。可見層神經元之間也沒有相互連接。
網絡通過在訓練樣本得到的隱層神經元狀態上執行馬爾可夫鏈抽樣過程來估計獨立於數據的期望值,並行交替更新所有可見層神經元和隱層神經元的值。
馬爾可夫鏈(Markov Chains,MC)或離散時間馬爾可夫鏈(Discrete Time Markov Chain,DTMC)
馬爾可夫鏈是指數學中具有馬爾可夫性質的離散事件隨機過程。該過程中,在給定當前知識或信息的情況下,過去(歷史狀態)對於預測將來(未來狀態)來說是沒有關聯的。馬爾科夫鏈雖然不是真正的神經網絡,但類似於神經網絡,並且構成了波爾茲曼機和Hopfield神經網絡的理論基礎。
自編碼器(Autoencoders,AE)
自編碼器的基本思想是自動編碼信息。自編碼器網絡結構像一個漏斗:它的隱藏層單元比輸入層和輸出層少,並且關於中央層對稱。最小的隱藏層總是處在中央層,這也是信息壓縮程度最高的地方。從輸入層到中央層叫做編碼部分,從中央層到輸出層叫做解碼部分,中央層叫做編碼(code)。
可以使用反向傳播算法來訓練自編碼器,將數據輸入網絡,將誤差設置為輸入數據與網絡輸出數據之間的差異。自編碼器的權重也是對稱的,即編碼權重和解碼權重是一樣的。
稀疏自編碼器(Sparse Autoencoders,SAE)
稀疏自編碼器在某種程度上與自編碼器相反。不同於以往訓練一個網絡在更低維的空間和結點上去表征信息,它嘗試在更高維的空間上編碼信息。所以在中間層,網絡不是收斂的,而是擴張的。
稀疏自編碼器可以自動從無標注數據中學習特征,可以給出比原始數據更好的特征描述。在實際運用時可以用稀疏編碼器提取的特征代替原始數據,這樣往往能帶來更好的結果。
變分自編碼器(Variational Autoencoders, VAE)
變分自編碼器和自編碼器有相同的網絡結構。不同點在於其隱藏代碼來自於訓練期間學習到的概率分布。
在90年代,一些研究人員提出一種概率解釋的神經網絡模型。概率解釋通過假設每個參數的概率分布來降低網絡中每個參數的剛性約束,將輸入、隱藏表示以及神經網絡的輸出轉換為概率隨機變量。網絡學習的目標是找到上述分布的參數。在變分自動編碼器中,僅在隱藏節點上假設這些分布。因此,編碼器變成一個變分推理網絡,而譯碼器則變成一個將隱藏代碼映射回數據分布的生成網絡。
通過參數化隱藏分布,可以反向傳播梯度得到編碼器的參數,並用隨機梯度下降訓練整個網絡。
去噪自編碼器(Denoising Autoencoders,DAE)
去噪自編碼器的訓練方法和其他自編碼器一樣,但是輸入不是原始數據,而是帶噪聲的數據。這樣的網絡不僅能夠學習到細節,而且能學習到更泛化的特征。原因有兩點:一是通過與非破損數據訓練的對比,破損數據訓練出來的權重噪聲比較小,二是破損數據在一定程度上減輕了訓練數據與測試數據之間的代溝。
論文作者也從生物神經網絡的角度進行了解釋:人類具有認知被阻擋的破損圖像能力,此源於我們的高等聯想記憶感受機能。我們能以多種形式進行記憶(比如圖像、聲音,甚至如上圖的詞根記憶法),所以即便是數據破損丟失,我們也能回想起來。
深度信念網絡(Deep Belief Networks,DBN)
深度信念網絡是受限玻爾茲曼機(RBM)或者變分自編碼器(VAE)的堆疊結構。深度信念網絡是一種生成模型,通過訓練其神經元間的權重,我們可以讓整個神經網絡按照最大概率來生成數據。深度信念網絡由多層神經元構成,這些神經元又分為顯性神經元和隱性神經元。顯元用於接受輸入,隱元用於提取特征。
深度信念網絡能夠通過對比散度(contrastive divergence)或者反向傳播來訓練,並像常規的受限玻爾茲曼機或變分自編碼器那樣,學習將數據表示成概率模型。一旦模型通過無監督學習被訓練或收斂到一個穩定的狀態,它可以被用於生成新數據。
卷積神經網絡(Convolutional Neural Networks,CNN)或深度卷積神經網絡(Deep Convolutional Neural Networks,DCNN)
卷積神經網絡由三部分構成。第一部分是輸入層。第二部分由n個卷積層和池化層的組合而組成的。第三部分由一個全連結的多層感知機分類器構成。
卷積神經網絡主要用於圖像處理,但也可用於其他類型的輸入,如音頻。它是一種特殊的深層神經網絡模型,它的特殊性體現在兩個方面:一方面神經元間的連接是非全連接的,另一方面同一層中某些神經元之間的連接的權重是共享的。它的非全連接和權值共享的網絡結構使之更接近於生物神經網絡,降低了網絡模型的復雜度,減少了權值的數量。
卷積神經網絡的卷積運算過程如下:輸入圖像通過可訓練的濾波器組進行非線性卷積,卷積后在每一層產生特征映射圖,然后特征映射圖中每組的四個像素再進行求和、加權值、加偏置,在此過程中這些像素在池化層被池化,最終得到輸出值。
反卷積神經網絡(Deconvolutional Networks,DN)
反卷積神經網絡是和卷積神經網絡對應的。在CNN中,是由輸入圖像與特征濾波器進行卷積,得到特征圖,而在反卷積神經網絡中,是由特征圖與特征濾波器卷積,得到輸入圖像。反卷積神經網絡主要用於圖像重構和卷積網絡可視化。
從結構中可以看出,網絡首先進行前向計算,在前向計算中收集一些數據,然后將這些數據放入反向網絡中進行反向計算,從而得到最終的反卷積結果。
深度卷積逆向圖網絡(Deep Convolutional Inverse Graphics Networks,DCIGN)
深度卷積逆向圖網絡實質上是變分自編碼器(VAE),只是在編碼器和解碼器中分別采用卷積神經網絡(CNN)和反卷積神經網絡(DNN)結構。這些網絡嘗試在編碼的過程中對“特征”進行概率建模。該網絡大部分用於圖像處理。網絡可以處理未訓練的圖像,也可以從圖像中移除物體、置換目標,或者進行圖像風格轉換。
生成式對抗網絡(Generative Adversarial Networks,GAN)
生成式對抗網絡由判別網絡和生成網絡組成。生成網絡負責生成內容,判別網絡負責對內容進行判別。判別網絡同時接收訓練數據和生成網絡生成的數據。判別網絡能夠正確地預測數據源,然后被用作生成網絡的誤差部分。這形成了一種對抗:判別器努力分辨真實數據與生成數據,而生成器努力生成判別器難以辨識的數據。
生成式對抗網絡很難訓練,因為不僅僅要訓練兩個網絡,而且還要考慮兩個網絡的動態平衡。如果判別或者生成網絡變得比另一個好,那么網絡最終不會收斂。
循環神經網絡(Recurrent Neural Networks,RNN)
循環神經網絡是基於時間的前饋神經網絡,循環神經網絡的目的是用來處理序列數據。在傳統的神經網絡模型中,從輸入層到隱含層再到輸出層,層與層之間是全連接的,每層之間的節點是無連接的。但是這種普通的神經網絡對於很多問題卻無能無力。例如,你要預測句子的下一個單詞是什么,一般需要用到前面的單詞,因為一個句子中前后單詞並不是獨立的。
在循環神經網路中,一個序列當前的輸出與前面的輸出也有關。具體的表現形式為網絡會對前面的信息進行記憶,並應用於當前輸出的計算中,即隱藏層之間的節點不再是無連接的,而是有連接的。並且隱藏層的輸入不僅包括輸入層的輸出,還包括上一時刻隱藏層的輸出。
循環神經網絡最大的問題是梯度消失(或者梯度爆炸),這取決於使用的激活函數。在這種情況下,隨着時間增加,梯度會快速消失,正如隨着前饋神經網絡的深度增加,信息也會丟失。
長短時記憶網絡(Long Short Term Memory,LSTM)
長短時記憶網絡是一種特殊的循環神經網絡,能夠學習長期依賴關系。網絡通過引入門結構(gate)和一個明確定義的記憶單元(memory cell)來嘗試克服梯度消失或者梯度爆炸的問題。長短時記憶網絡有能力向單元狀態中移除或添加信息,通過門限結構對信息進行管理。門限有選擇地讓信息通過。它們由一個sigmoid神經網絡層和逐點乘法運算組成。
每個神經元有一個記憶單元和三個門結構:輸入、輸出和忘記。這些門結構的功能是通過禁止或允許信息的流動來保護信息。輸入門結構決定了有多少來自上一層的信息存儲於當前記憶單元。輸出門結構承擔了另一端的工作:決定下一層可以了解到多少這一層的信息。忘記門結構初看很奇怪,但是有時候忘記是必要的:如果網絡正在學習一本書,並開始了新的章節,那么忘記前一章的一些人物角色是有必要的。
門控循環單元(Gated Recurrent Units,GRU)
門控循環單元是長短時記憶網絡的一種變體。不同之處在於,沒有輸入門、輸出門、忘記門,它只有一個更新門。該更新門確定了從上一個狀態保留多少信息,以及有多少來自上一層的信息得以保留。在大多數情況下,它們與LSTM的功能非常相似,最大的區別在於GRU稍快,運行容易,但表達能力更差。
在實踐中,這些往往會相互抵消,因為當我們需要一個更大的網絡來獲得更強的表現力時,表現力往往會抵消性能優勢。在不需要額外表現力的情況下,GRU可能優於LSTM。
神經圖靈機(Neural Turing Machines,NTM)
神經圖靈機包含兩個基本組成部分:神經網絡控制器和記憶庫。傳統的神經網絡是一個黑箱模型,而神經圖靈機嘗試解決這一問題。
像大多數神經網絡一樣,控制器通過輸入輸出向量與外界交互,但不同於標准網絡的是,它還與一個帶有選擇性讀寫操作的內存矩陣進行交互。它試圖將常規數字存儲的效率和永久性以及神經網絡的效率和表達力結合起來。這種想法的實現基於一個有內容尋址的記憶庫,神經網絡可以從中進行讀寫。
深度殘差網絡(Deep Residual Networks,DRN)
深度網絡容易造成梯度在反向傳播的過程中消失,導致訓練效果很差,而深度殘差網絡將基本的單元改成了這樣:
它在神經網絡的結構層面解決了這一問題,就算網絡很深,梯度也不會消失。
回聲狀態網絡(Echo State Networks,ESN)
回聲狀態網絡是另外一種不同類型的循環網絡。傳統的多層神經網絡的中間層是一層一層的全連接神經元,回聲狀態網絡把中間的全連接部分變成了一個隨機連接的存儲池,學習過程就是學習存儲池中的連接。它們的訓練方式也不一樣。
與循環神經網路的不同之處是網絡將輸入到隱藏層,隱藏層到隱藏層的連接權值隨機初始化,然后固定不變,只訓練輸出連接權值。由於只訓練輸出層,不需要反向傳播誤差,訓練過程就變成求線性回歸,速度非常快。
極限學習機(Extreme Learning Machines,ELM)
極限學習機是一種新型的快速學習算法,它們隨機初始化權重,並通過最小二乘擬合一步訓練權重。這使得模型表現力稍弱,但是在速度上比反向傳播快很多。
液體狀態機(Liquid State Machines,LSM)
液體狀態機是一種脈沖神經網絡:sigmoid激活函數被閾值函數所取代,每個神經元是一個累積記憶單元(memory cell)。所以當更新神經元的時候,其值並不是鄰近神經元的累加,而是它自身的累加。一旦達到閾值,它會將它的能量傳遞到其他神經元。這就產生了一種類似脈沖的模式,即在突然達到閾值之前什么也不會發生。
支持向量機(Support Vector Machines,SVM)
支持向量機是分類問題的最佳解決方式。支持向量機通過核函數,將低維空間不可分的數據映射到高維空間,使數據變得線性可分。支持向量機能夠學習出一個分類超平面,對數據進行分類,但一般不認為支持向量機是神經網絡。
Kohonen網絡(Kohonen Networks,KN)或自組織映射(Self-Organizing Map,SOM)
Kohonen網絡是自組織競爭型神經網絡的一種,該網絡為無監督學習網絡,能夠識別環境特征並自動聚類。Kohonen網絡神經元通過無監督競爭學習,令不同的神經元對不同的輸入模式敏感,從而特定的神經元在模式識別中可以充當某一輸入模式的檢測器。
Kohonen神經網絡算法工作機理為:網絡學習過程中,當樣本輸入網絡時,競爭層上的神經元計算輸入樣本與競爭層神經元權值之間的歐幾里德距離,距離最小的神經元為獲勝神經元。調整獲勝神經元和相鄰神經元權值,使獲得神經元及周邊權值靠近該輸入樣本。