從單層感知機到LSTM

單層感知機

擁有輸入層、隱含層、輸出層。輸入的特徵向量通過隱含層變換達到輸出層,在輸出層得到分類結果。只能處理很簡單的函數。


多層感知機(現在叫神經網絡NN)

特點:包含多個隱含層;

   使用sigmoid和tanh等連續函數模擬神經元對激勵的響應;

      使用反向傳播BP算法來訓練;

   擺脫了早起離散傳輸函數的束縛。

1上下層神經元全部相連的神經網絡——多層感知機

 

神經網絡的層數直接決定了它對現實的刻畫能力——利用每層更少的神經元擬合更加複雜的函數

層數增加帶來的問題:

優化函數容易陷入局部最優,偏離真正的全局最優;

性能下降;

“梯度消失”現象嚴重。

2006年,Hinton利用預訓練方法緩解了局部最優解問題,將隱含層推動到了7層。


DNN深度神經網絡

     克服梯度措施:用ReLU、maxout等傳輸函數代替了sigmoid,形成了如今DNN的基本形式。單從結構上來說,全連接的DNN和圖1的多層感知機沒有任何區別。

後來的高速公路網絡(highway network)和深度殘差學習(deep residual learning)進一步避免了梯度消失,網絡層數達到了前所未有的一百多層(深度殘差學習:152層)

圖2縮減版的深度殘差學習網絡,僅有34層,終極版有152層

全連接DNN潛在問題參數數量的膨脹這不僅容易過擬合,而且極容易陷入局部最優。另外,圖像中有固有的局部模式可以利用,應該將圖像處理中的概念和神經網絡技術相結合。


CNN卷積神經網絡(空間上深度)

通過“卷積核”作爲中介連接上下層神經元,不是全連接同一個卷積核在所有圖像內是共享的,圖像通過卷積操作後仍然保留原先的位置關係。兩層之間的卷積傳輸的示意圖如下:


圖3卷積神經網絡隱含層(摘自Theano教程)

假設圖3中m-1=1是輸入層,我們需要識別一幅彩色圖像,這幅圖像具有四個通道ARGB(透明度和紅綠藍,對應了四幅相同大小的圖像)

卷積核大小爲100*100,共100個卷積核w1到w100。

用w1在ARGB圖像上進行卷積操作,可以得到隱含層的第一幅圖像;這幅隱含層圖像左上角第一個像素是四幅輸入圖像左上角100*100區域內像素的加權求和,以此類推。

同理,算上其他卷積核,隱含層對應100幅“圖像”。每幅圖像對是對原始圖像中不同特徵的響應。按照這樣的結構繼續傳遞下去。


CNN中還有max-pooling等操作進一步提高魯棒性。

圖4一個典型的卷積神經網絡結構,注意到最後一層實際上是一個全連接層摘自Theano教程)


我們注意到輸入層到隱含層的參數瞬間降低到了100*100*100=10^6個!這使得我們能夠用已有的訓練數據得到良好的模型。CNN模型限制參數了個數並挖掘了局部結構,使它成功應用在了圖像識別領域同理,利用語音語譜結構中的局部信息,CNN照樣能應用在語音識別中。


RNN遞歸神經網絡(時間上深度)

全連接的DNN還存在着另一個問題:無法對時間序列上的變化進行建模。然而,樣本出現的時間順序對於自然語言處理、語音識別、手寫體識別等應用非常重要

爲了解決這個問題遞歸神經網絡RNN出現了

在普通的全連接網絡或CNN中,每層神經元的信號只能向上一層傳播,樣本的處理在各個時刻獨立,因此又被成爲前向神經網絡(Feed-forward Neural Networks)。而在RNN中,神經元的輸出可以在下一個時間戳直接作用到自身,表示成圖就是這樣的:

圖5 RNN網絡結

在隱含層節點之間增加了互連。爲了分析方便,將RNN在時間上進行展開,得到如圖6所示的結構:

圖6 RNN在時間上進行展開

t+1)時刻網絡的最終結果O(t+1)是該時刻輸入和所有歷史共同作用的結果這就達到了對時間序列建模的目的。

RNN可以看成一個在時間上傳遞的神經網絡,它的深度是時間的長度!

不過,“梯度消失”現象又要出現了,只不過這次發生在時間軸上。之前說“所有歷史”共同作用只是理想的情況,在實際中,這種影響也就只能維持若干個時間戳。

 

補充基本概念

神經元的組成:

 

 


分類:

 

 

   衍生:CW-RNN(Clockwork RNN)

通過將隱含層劃分幾個模塊來減少RNN中的長時間依賴從而減少訓練時間。

 

學習算法

BPTT(Back Propagation Through Time):BP算法的擴展,將加在網絡上的時序信號按層展開,用BP算法訓練。

 

RTRL(Real Time Recurrent Learning):用於訓練局部網絡。

 

LSTM長短時記憶單元

爲了解決RNN時間上的梯度消失,機器學習領域發展出了LSTM,通過門的開關實現時間上記憶功能,並防止梯度消失,一個LSTM單元長這個樣子:

圖7 LSTM的模樣

除了CNN、RNN、DNN三種網絡,和之前提到的深度殘差學習、LSTM外,深度學習還有許多其他的結構,還有了雙向RNN、雙向LSTM,同時利用歷史和未來的信息。

圖8雙向RNN

事實上,不論是那種網絡,他們在實際應用中常常都混合着使用

 

參考文獻:

[1] Bengio Y. Learning Deep Architectures for AI[J]. Foundations & Trends廬 in Machine Learning, 2009, 2(1):1-127.

[2] Hinton G E, Salakhutdinov R R. Reducing the Dimensionality of Data with Neural Networks[J]. Science, 2006, 313(5786):504-507.

[3] He K, Zhang X, Ren S, Sun J. Deep Residual Learning for Image Recognition. arXiv:1512.03385, 2015.

[4] Srivastava R K, Greff K, Schmidhuber J. Highway networks. arXiv:1505.00387, 2015.

[5] Ng寫的Ufldl:UFLDL教程 - Ufld

[6]Theano內自帶的教程:Deep Learning Tutorialsl

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章