大數(shù)據(jù)文摘作品
編譯:田奧leo、桑桑、璐、Aileen
27種?!神經(jīng)網(wǎng)絡竟有那么多種?這篇文章將逐一介紹下面這張圖片中的27種神經(jīng)網(wǎng)絡類型,并嘗試解釋如何使用它們。準備好了嗎?讓我們開始吧!
神經(jīng)網(wǎng)絡的種類越來越多,可以說是在呈指數(shù)級地增長。我們需要一個一目了然的圖表,在這些新出現(xiàn)的網(wǎng)絡構架和方法之間進行導航。
幸運的是,來自Asimov研究所的Fjodor van Veen編寫了一個關于神經(jīng)網(wǎng)絡的精彩圖表(就是上面那張大圖)。
下面,我們就來逐一看看圖中的27種神經(jīng)網(wǎng)絡:
Perceptron 感知機
Perceptron 感知機,我們知道的最簡單和最古老的神經(jīng)元模型。接收一些輸入,把它們加總,通過激活函數(shù)并傳遞到輸出層。這沒什么神奇的地方。
前饋神經(jīng)網(wǎng)絡(FF)
前饋神經(jīng)網(wǎng)絡(FF),這也是一個很古老的方法——這種方法起源于50年代。它的工作原理通常遵循以下規(guī)則:
1.所有節(jié)點都完全連接
2.激活從輸入層流向輸出,無回環(huán)
3.輸入和輸出之間有一層(隱含層)
在大多數(shù)情況下,這種類型的網(wǎng)絡使用反向傳播方法進行訓練。
RBF 神經(jīng)網(wǎng)絡
RBF 神經(jīng)網(wǎng)絡實際上是激活函數(shù)是徑向基函數(shù)而非邏輯函數(shù)的FF前饋神經(jīng)網(wǎng)絡(FF)。兩者之間有什么區(qū)別呢?
邏輯函數(shù)將某個任意值映射到[0 ,... 1]范圍內(nèi)來,回答“是或否”問題。適用于分類決策系統(tǒng),但不適用于連續(xù)變量。
相反,徑向基函數(shù)能顯示“我們距離目標有多遠”。 這完美適用于函數(shù)逼近和機器控制(例如作為PID控制器的替代)。
簡而言之,這些只是具有不同激活函數(shù)和應用方向的前饋網(wǎng)絡。
DFF深度前饋神經(jīng)網(wǎng)絡
DFF深度前饋神經(jīng)網(wǎng)絡在90年代初期開啟了深度學習的潘多拉盒子。這些依然是前饋神經(jīng)網(wǎng)絡,但有不止一個隱含層。那么,它到底有什么特殊性?
在訓練傳統(tǒng)的前饋神經(jīng)網(wǎng)絡時,我們只向上一層傳遞了少量的誤差信息。由于堆疊更多的層次導致訓練時間的指數(shù)增長,使得深度前饋神經(jīng)網(wǎng)絡非常不實用。直到00年代初,我們開發(fā)了一系列有效的訓練深度前饋神經(jīng)網(wǎng)絡的方法; 現(xiàn)在它們構成了現(xiàn)代機器學習系統(tǒng)的核心,能實現(xiàn)前饋神經(jīng)網(wǎng)絡的功能,但效果遠高于此。
RNN遞歸神經(jīng)網(wǎng)絡
RNN遞歸神經(jīng)網(wǎng)絡引入不同類型的神經(jīng)元——遞歸神經(jīng)元。這種類型的第一個網(wǎng)絡被稱為約旦網(wǎng)絡(Jordan Network),在網(wǎng)絡中每個隱含神經(jīng)元會收到它自己的在固定延遲(一次或多次迭代)后的輸出。除此之外,它與普通的模糊神經(jīng)網(wǎng)絡非常相似。
當然,它有許多變化 — 如傳遞狀態(tài)到輸入節(jié)點,可變延遲等,但主要思想保持不變。這種類型的神經(jīng)網(wǎng)絡主要被使用在上下文很重要的時候——即過去的迭代結果和樣本產(chǎn)生的決策會對當前產(chǎn)生影響。最常見的上下文的例子是文本——一個單詞只能在前面的單詞或句子的上下文中進行分析。
LSTM長短時記憶網(wǎng)絡
LSTM長短時記憶網(wǎng)絡引入了一個存儲單元,一個特殊的單元,當數(shù)據(jù)有時間間隔(或滯后)時可以處理數(shù)據(jù)。遞歸神經(jīng)網(wǎng)絡可以通過“記住”前十個詞來處理文本,LSTM長短時記憶網(wǎng)絡可以通過“記住”許多幀之前發(fā)生的事情處理視頻幀。 LSTM網(wǎng)絡也廣泛用于寫作和語音識別。
存儲單元實際上由一些元素組成,稱為門,它們是遞歸性的,并控制信息如何被記住和遺忘。下圖很好的解釋了LSTM的結構:
上圖的(x)是門,他們擁有自己的權重,有時也有激活函數(shù)。在每個樣本上,他們決定是否傳遞數(shù)據(jù),擦除記憶等等 - 你可以在這里(http://colah.github.io/posts/2015-08-Understanding-LSTMs/)閱讀更詳細的解釋。 輸入門(Input Gate)決定上一個樣本有多少的信息將保存在內(nèi)存中; 輸出門調(diào)節(jié)傳輸?shù)较乱粚拥臄?shù)據(jù)量,遺忘門(Forget Gate)控制存儲記憶的損失率。
然而,這是LSTM單元的一個非常簡單的實現(xiàn),還有許多其他架構存在。
GRU
GRU是具有不同門的LSTM。
聽起來很簡單,但缺少輸出門可以更容易基于具體輸入重復多次相同的輸出,目前此模型在聲音(音樂)和語音合成中使用得最多。
實際上的組合雖然有點不同:但是所有的LSTM門都被組合成所謂的更新門(Update Gate),并且復位門(Reset Gate)與輸入密切相關。
它們比LSTM消耗資源少,但幾乎有相同的效果。
Autoencoders自動編碼器
Autoencoders自動編碼器用于分類,聚類和特征壓縮。
當您訓練前饋(FF)神經(jīng)網(wǎng)絡進行分類時,您主要必須在Y類別中提供X個示例,并且期望Y個輸出單元格中的一個被激活。 這被稱為“監(jiān)督學習”。
另一方面,自動編碼器可以在沒有監(jiān)督的情況下進行訓練。它們的結構 - 當隱藏單元數(shù)量小于輸入單元數(shù)量(并且輸出單元數(shù)量等于輸入單元數(shù))時,并且當自動編碼器被訓練時輸出盡可能接近輸入的方式,強制自動編碼器泛化數(shù)據(jù)并搜索常見模式。
變分自編碼器
變分自編碼器,與一般自編碼器相比,它壓縮的是概率,而不是特征。
盡管如此簡單的改變,但是一般自編碼器只能回答當“我們?nèi)绾螝w納數(shù)據(jù)?”的問題時,變分自編碼器回答了“兩件事情之間的聯(lián)系有多強大?我們應該在兩件事情之間分配誤差還是它們完全獨立的?”的問題。
在這里(https://github.com/kvfrans/variational-autoencoder)可以看到一些更深入的解釋(含代碼示例)。
降噪自動編碼器(DAE)
雖然自動編碼器很酷,但它們有時找不到最魯棒的特征,而只是適應輸入數(shù)據(jù)(實際上是過擬合的一個例子)。
降噪自動編碼器(DAE)在輸入單元上增加了一些噪聲 - 通過隨機位來改變數(shù)據(jù),隨機切換輸入中的位,等等。通過這樣做,一個強制降噪自動編碼器從一個有點嘈雜的輸入重構輸出,使其更加通用,強制選擇更常見的特征。
稀疏自編碼器(SAE)
稀疏自編碼器(SAE)是另外一個有時候可以抽離出數(shù)據(jù)中一些隱藏分組樣試的自動編碼的形式。結構和AE是一樣的,但隱藏單元的數(shù)量大于輸入或輸出單元的數(shù)量。
馬爾可夫鏈(Markov Chain, MC)
馬爾可夫鏈(Markov Chain, MC)是一個比較老的圖表概念了,它的每一個端點都存在一種可能性。過去,我們用它來搭建像“在單詞hello之后有0.0053%的概率會出現(xiàn)dear,有0.03551%的概率出現(xiàn)you”這樣的文本結構。
這些馬爾科夫鏈并不是典型的神經(jīng)網(wǎng)絡,它可以被用作基于概率的分類(像貝葉斯過濾),用于聚類(對某些類別而言),也被用作有限狀態(tài)機。
霍普菲爾網(wǎng)絡(HN)
霍普菲爾網(wǎng)絡(HN)對一套有限的樣本進行訓練,所以它們用相同的樣本對已知樣本作出反應。
在訓練前,每一個樣本都作為輸入樣本,在訓練之中作為隱藏樣本,使用過之后被用作輸出樣本。
在HN試著重構受訓樣本的時候,他們可以用于給輸入值降噪和修復輸入。如果給出一半圖片或數(shù)列用來學習,它們可以反饋全部樣本。
波爾滋曼機(BM)
波爾滋曼機(BM)和HN非常相像,有些單元被標記為輸入同時也是隱藏單元。在隱藏單元更新其狀態(tài)時,輸入單元就變成了輸出單元。(在訓練時,BM和HN一個一個的更新單元,而非并行)。
這是第一個成功保留模擬退火方法的網(wǎng)絡拓撲。
多層疊的波爾滋曼機可以用于所謂的深度信念網(wǎng)絡(等一下會介紹),深度信念網(wǎng)絡可以用作特征檢測和抽取。
限制型波爾滋曼機(RBM)
在結構上,限制型波爾滋曼機(RBM)和BM很相似,但由于受限RBM被允許像FF一樣用反向傳播來訓練(唯一的不同的是在反向傳播經(jīng)過數(shù)據(jù)之前RBM會經(jīng)過一次輸入層)。
深度信念網(wǎng)絡(DBN)
像之前提到的那樣,深度信念網(wǎng)絡(DBN)實際上是許多波爾滋曼機(被VAE包圍)。他們能被連在一起(在一個神經(jīng)網(wǎng)絡訓練另一個的時候),并且可以用已經(jīng)學習過的樣式來生成數(shù)據(jù)。
深度卷積網(wǎng)絡(DCN)
當今,深度卷積網(wǎng)絡(DCN)是人工神經(jīng)網(wǎng)絡之星。它具有卷積單元(或者池化層)和內(nèi)核,每一種都用以不同目的。
卷積核事實上用來處理輸入的數(shù)據(jù),池化層是用來簡化它們(大多數(shù)情況是用非線性方程,比如max),來減少不必要的特征。
他們通常被用來做圖像識別,它們在圖片的一小部分上運行(大約20x20像素)。輸入窗口一個像素一個像素的沿著圖像滑動。然后數(shù)據(jù)流向卷積層,卷積層形成一個漏斗(壓縮被識別的特征)。從圖像識別來講,第一層識別梯度,第二層識別線,第三層識別形狀,以此類推,直到特定的物體那一級。DFF通常被接在卷積層的末端方便未來的數(shù)據(jù)處理。
去卷積網(wǎng)絡(DN)
去卷積網(wǎng)絡(DN)是將DCN顛倒過來。DN能在獲取貓的圖片之后生成像(狗:0,蜥蜴:0,馬:0,貓:1)一樣的向量。DNC能在得到這個向量之后,能畫出一只貓。
深度卷積反轉(zhuǎn)圖像網(wǎng)絡(DCIGN)
深度卷積反轉(zhuǎn)圖像網(wǎng)絡(DCIGN),長得像DCN和DN粘在一起,但也不完全是這樣。
事實上,它是一個自動編碼器,DCN和DN并不是作為兩個分開的網(wǎng)絡,而是承載網(wǎng)路輸入和輸出的間隔區(qū)。大多數(shù)這種神經(jīng)網(wǎng)絡可以被用作圖像處理,并且可以處理他們以前沒有被訓練過的圖像。由于其抽象化的水平很高,這些網(wǎng)絡可以用于將某個事物從一張圖片中移除,重畫,或者像大名鼎鼎的CycleGAN一樣將一匹馬換成一個斑馬。
生成對抗網(wǎng)絡(GAN)
生成對抗網(wǎng)絡(GAN)代表了有生成器和分辨器組成的雙網(wǎng)絡大家族。它們一直在相互傷害——生成器試著生成一些數(shù)據(jù),而分辨器接收樣本數(shù)據(jù)后試著分辨出哪些是樣本,哪些是生成的。只要你能夠保持兩種神經(jīng)網(wǎng)絡訓練之間的平衡,在不斷的進化中,這種神經(jīng)網(wǎng)絡可以生成實際圖像。
液體狀態(tài)機(LSM)
液體狀態(tài)機(LSM)是一種稀疏的,激活函數(shù)被閾值代替了的(并不是全部相連的)神經(jīng)網(wǎng)絡。只有達到閾值的時候,單元格從連續(xù)的樣本和釋放出來的輸出中積累價值信息,并再次將內(nèi)部的副本設為零。
這種想法來自于人腦,這些神經(jīng)網(wǎng)絡被廣泛的應用于計算機視覺,語音識別系統(tǒng),但目前還沒有重大突破。
極端學習機(ELM)
極端學習機(ELM)是通過產(chǎn)生稀疏的隨機連接的隱藏層來減少FF網(wǎng)絡背后的復雜性。它們需要用到更少計算機的能量,實際的效率很大程度上取決于任務和數(shù)據(jù)。
回聲狀態(tài)網(wǎng)絡(ESN)
回聲狀態(tài)網(wǎng)絡(ESN)是重復網(wǎng)絡的細分種類。數(shù)據(jù)會經(jīng)過輸入端,如果被監(jiān)測到進行了多次迭代(請允許重復網(wǎng)路的特征亂入一下),只有在隱藏層之間的權重會在此之后更新。
據(jù)我所知,除了多個理論基準之外,我不知道這種類型的有什么實際應用。歡迎留下你的不同意見~
深度殘差網(wǎng)絡(DRN)
深度殘差網(wǎng)絡(DRN)是有些輸入值的部分會傳遞到下一層。這一特點可以讓它可以做到很深的層級(達到300層),但事實上它們是一種沒有明確延時的RNN。
Kohonen神經(jīng)網(wǎng)絡(KN)
Kohonen神經(jīng)網(wǎng)絡(KN)引入了“單元格距離”的特征。大多數(shù)情況下用于分類,這種網(wǎng)絡試著調(diào)整它們的單元格使其對某種特定的輸入作出最可能的反應。當一些單元格更新了, 離他們最近的單元格也會更新。
像SVM一樣,這些網(wǎng)絡總被認為不是“真正”的神經(jīng)網(wǎng)絡。
支持向量機(SVM)
支持向量機(SVM)用于二元分類工作,無論這個網(wǎng)絡處理多少維度或輸入,結果都會是“是”或“否”。
SVM不是所有情況下都被叫做神經(jīng)網(wǎng)絡。
神經(jīng)圖靈機(NTM)
神經(jīng)網(wǎng)絡像是黑箱——我們可以訓練它們,得到結果,增強它們,但實際的決定路徑大多數(shù)我們都是不可見的。
神經(jīng)圖靈機(NTM)就是在嘗試解決這個問題——它是一個提取出記憶單元之后的FF。一些作者也說它是一個抽象版的LSTM。
記憶是被內(nèi)容編址的,這個網(wǎng)絡可以基于現(xiàn)狀讀取記憶,編寫記憶,也代表了圖靈完備神經(jīng)網(wǎng)絡。
聯(lián)系客服