1. 程式人生 > >深度學習基礎--不同網路種類--多層感知機MLP

深度學習基礎--不同網路種類--多層感知機MLP

多層感知機MLP

  BP演算法的方面掀起了基於統計模型的機器學習熱潮,那時候人工神經網路被叫做“多層感知機”   可以擺脫早期離散傳輸函式的束縛,使用sigmoid或tanh等連續函式模擬神經元對激勵的響應,在訓練演算法上則使用Werbos發明的反向傳播BP演算法。對,這貨就是我們現在所說的神經網路NN。多層感知機給我們帶來的啟示是,神經網路的層數直接決定了它對現實的刻畫能力——利用每層更少的神經元擬合更加複雜的函式。

問題與解決

  1)隨著神經網路層數的加深,優化函式越來越容易陷入區域性最優解,並且這個“陷阱”越來越偏離真正的全域性最優。利用有限資料訓練的深層網路,效能還不如較淺層網路。   解決:預訓練方法緩解了區域性最優解問題,將隱含層推動到了7層,由此揭開了深度學習的熱潮。

  2)另一個不可忽略的問題是隨著網路層數增加,“梯度消失”現象更加嚴重。具體來說,我們常常使用sigmoid作為神經元的輸入輸出函式。對於幅度為1的訊號,在BP反向傳播梯度時,每傳遞一層,梯度衰減為原來的0.25。層數一多,梯度指數衰減後低層基本上接受不到有效的訓練訊號。   解決:為了克服梯度消失,ReLU、maxout等傳輸函式代替了sigmoid,形成了如今DNN的基本形式。值得一提的是,今年出現的高速公路網路(highway network)和深度殘差學習(deep residual learning)進一步避免了梯度消失,網路層數達到了前所未有的一百多層。

MLP與CNN的區別

  經典的多層感知機(Multi-Layer Perceptron)形式上是全連線(fully-connected)的鄰接網路(adjacent network)。   最大的區別是Local receptive fields。   全連線的多層感知機中,輸入視為(或者需轉化為)一個列向量。而在卷積神經網路中,以手寫字元識別為例,輸入不再 reshape 為 (28*28, 1) 的列向量,而是作為 28×28 的畫素灰度矩陣。