感知機(perceptron)是由輸入空間(特征空間)到輸出空間的函數:f(x) = sign(w*x+b), 其中w和b是感知機的權重參數和偏置參數。線性方程w*x+b=0表示的是特征空間的一個超平面,即分離超平面。首先感知機的數據集是對線性可分的數據集的,所謂線性可分就是存在這么一個超平面可以把數據完全正確的划分到兩邊。感知機學習的目標就是要得出w、b,需要確定一個(經驗)損失函數,並將損失函數最小化。對於這個損失函數我們最容易想到的就是誤分類的總數,但是我們也要注意到這個不能夠是w、b的可導連續函數,所以我們選擇點誤分類的點到超平面的距離作為損失函數:L=-∑(yi*(w*xi+b))。一般采用梯度下降法進行訓練。
反卷積網絡(DN)又名逆向圖網絡(IGN),是卷積神經網絡的逆轉。舉個栗子:輸入“貓”這個詞,通過對比網絡生成的圖像和貓的真實圖像來訓練網絡,使網絡產生更像貓的圖像。DN 可以像常規 CNN 那樣與 FFNN 相結合,這樣就需要給它一個新的“縮寫”了。“深度反卷積網絡”的稱呼大概可行,但你可能會反駁說,分別把 FFNN 接在 DN 的前端或后端時,應該用兩個不同的名字來指代。
在大多數應用場合,輸入網絡的不是文字式的類別信息而是二值向量。 如 <0,1> 表示貓,<1,0> 表示狗,<1,1> 表示貓和狗。在 DN 中,CNN常見的采樣層被類似的反向操作替換,主要有插值方法和帶有偏置假設的外推方法等等(如果采樣層使用最大值采樣,可以在做逆向操作時單獨制造出一些比最大值小的新數據。)
Zeiler, Matthew D., et al. “Deconvolutional networks.” Computer Vision and Pattern Recognition (CVPR), 2010 IEEE Conference on. IEEE, 2010.
深度卷積逆向圖網絡(DCIGN)的名稱有一定的誤導性,它實際上是一類變分自動編碼器(VAE),只不過分別用 CNN 作編碼器、DN 作解碼器了。DCIGN 在編碼時試圖將“特征”以概率建模,這樣一來就算僅僅學習了只有貓或狗一方存在的圖像,它也能夠學着去產生貓狗共存的圖片。假如一張照片里既有貓,又有鄰居家那條討厭的狗,你可以把照片輸入網絡,讓網絡自動把那條狗扒出去,而無須額外的操作。演示程序表明,該網絡還能學習對圖像做復雜的變換,比如改變光源和旋轉3D物體。該網絡通常使用反向傳播來訓練。
Kulkarni, Tejas D., et al. “Deep convolutional inverse graphics network.” Advances in Neural Information Processing Systems. 2015.
生成對抗網絡(GAN)源出另一類網絡,它由兩個成對的網絡協同運作。GAN 由任意兩個的網絡組成(不過通常是 FFNN 和 CNN 的組合),一個用來生成,另一個用來判別。判別網絡的輸入是訓練數據或者生成網絡產生的內容,它正確區分數據來源的能力構成了生成網絡錯誤水平的表現的一部分。這樣就形成了一種競爭形式:判別器越來越擅長區分真實數據和生成數據,與此同時生成器不斷學習從而讓判別器更難區分。有時候,這樣的機制效果還不錯,因為即便是相當復雜的類噪聲模式最終都是可預測的,但與輸入數據特征相似的生成數據更難區分。GAN 很難訓練——你不僅需要訓練兩個網絡(它們可能都有自己的問題),還要很好地平衡它們的動態情況。如果預測或者生成任意一方比另一方更強,這個 GAN 就不會收斂,而是直接發散掉了。
Goodfellow, Ian, et al. “Generative adversarial nets.” Advances in Neural Information Processing Systems. 2014.
循環神經網絡(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.
長短時記憶(LSTM)網絡試圖通過引進“門”和定義明確的記憶單元來對抗梯度彌散/爆炸問題。相較生物學,它更多受到電路學的啟發。每個神經元有一個記憶單元和輸入、輸出、遺忘三個門。門的作用是通過阻止和允許信息的流動來實現對信息的保護。輸入門決定了前一層的信息有多少能夠存儲在當前單元內;另一端的輸出門決定了后一層能夠在當前單元中獲取多少信息;遺忘門乍看起來有點奇怪,但“遺忘”有時候是對的——比如正在學習一本書,然后新的一章開始了,這時候網絡可能得忘掉一些在上一章中學到的文字。LSTM 能夠學習復雜的序列,可以像莎士比亞一樣寫作、創作新的樂曲。由於每個門對都有對前一個神經元的權重,網絡運行需要更多的資源。
Hochreiter, Sepp, and Jürgen Schmidhuber. “Long short-term memory.” Neural computation 9.8 (1997): 1735-1780.
門控循環單元(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).
神經圖靈機(NTM)可以理解為 LSTM 的抽象形式。它試圖將神經網絡“去黑盒化”,從而讓我們部分了解神經網絡內部發生了什么。不同於直接把記憶單元編碼進神經元,NTM 的記憶被分開了。NTM 想把常規數字化存儲的高效性與持久性、神經網絡的高效性與表達能力結合起來;它的設想是,建立內容可尋址的記憶組,以及可讀寫這個記憶組的神經網絡。“神經圖靈機”中的“圖靈”是說它是圖靈完備的:能夠讀、寫,以及根據讀入內容改變狀態。這就是說,它可以表達通用圖靈機所能表達的一切。
Graves, Alex, Greg Wayne, and Ivo Danihelka. “Neural turing machines.” arXiv preprint arXiv:1410.5401 (2014).
雙向循環網絡,雙向長短時記憶網絡和雙向門控循環單元(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.
深度殘差網絡(DRN)是在逐層連接的基礎上,帶有額外層間連接(通常間隔二到五層)的極深 FFNN。DRN 不像常規網絡那樣,力求解得輸入到輸出經過多層網絡傳遞后的映射關系;它往解中添加了一點兒恆等性,即把淺層的輸入直接提供給了更深層的單元。實驗證明,DRN 可以高效地學得深達150層的網絡,其性能遠遠超過了常規的二到五層的簡單網絡。然而有人證明,DRN 其實是不具備明確時間結構的 RNN,所以經常被類比作沒有門單元的 LSTM。
He, Kaiming, et al. “Deep residual learning for image recognition.” arXiv preprint arXiv:1512.03385 (2015).
回聲狀態網絡(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.
極限學習機(ELM)基本上是隨機連接的 FFNN。看上去很像 LSM 和 ESN,但 ELM 既不是循環式的、也不是脈沖式的。ELM 也不用反向傳播,而是初始化為隨機權值,然后用最小二乘擬合(在所有函數上誤差最小)、一步到位地完成訓練。這樣得到的是一個表達能力稍弱,但遠快於使用反向傳播的神經網絡。
Cambria, Erik, et al. “Extreme learning machines [trends & controversies].” IEEE Intelligent Systems 28.6 (2013): 30-59.
液體狀態機(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.
支持向量機(SVM)為分類問題找到最優解。最初 SVM 只能處理線性可分的數據,比如判斷哪張是加菲貓,哪張是史努比,而不存在其他的情況。可以這樣理解 SVM 的訓練:將所有的數據(比如加菲貓和史努比)在(2D)圖上畫出,在兩類數據中間想辦法畫一條線,這條線把數據區分開,即所有的史努比在這邊、所有的加菲貓在另一邊。通過最大化兩邊數據點與這條分割線的間隔來找到最優解。對新的數據做分類時,只要把數據點畫在圖上,看看它在線的那一邊就好了。使用核方法可以分類 n 維數據,這時需要把點畫在三維圖中,從而讓 SVM 能夠區分史努比、加菲貓和——比如說西蒙的貓——或者是更高的維度、更多的卡通形象類別。有時候,人們也不把 SVM 當成神經網絡。
Cortes, Corinna, and Vladimir Vapnik. “Support-vector networks.” Machine learning 20.3 (1995): 273-297.
Kohonen 網絡(KN,也叫自組織(特征)圖,SOM,SOFM)。KN 利用競爭性學習來無監督地分類數據。輸入數據之后,網絡會評估哪些神經元與輸入的匹配度最高,然后做微調來繼續提高匹配度,並慢慢帶動鄰近它們的其他神經元發生變化。鄰近神經元被改變的程度,由其到匹配度最高的單元之間的距離來決定。Kohonen有時候也不被認為是神經網絡。
Kohonen, Teuvo. “Self-organized formation of topologically correct feature maps.” Biological cybernetics 43.1 (1982): 59-69.
轉載自:https://www.leiphone.com/news/201710/0hKyVawQLqAuKIm6.html