DNN、CNN、RNN、LSTM的區別


廣義上來說,NN(或是DNN)確實可以認為包含了CNN、RNN這些具體的變種形式。在實際應用中,所謂的深度神經網絡DNN,往往融合了多種已知的結構,包括卷積層或是LSTM單元。但是從狹義上來說,單獨的DNN、CNN、RNN及LSTM也可以對比。

DNN(深度神經網絡)

神經網絡是基於感知機的擴展,而DNN可以理解為有很多隱藏層的神經網絡。多層神經網絡和深度神經網絡DNN其實也是指的一個東西,DNN有時也叫做多層感知機(Multi-Layer perceptron,MLP)。

DNN存在的局限:

  • 參數數量膨脹。由於DNN采用的是全連接的形式,結構中的連接帶來了數量級的權值參數,這不僅容易導致過擬合,也容易造成陷入局部最優。

  • 局部最優。隨着神經網絡的加深,優化函數更容易陷入局部最優,且偏離真正的全局最優,對於有限的訓練數據,性能甚至不如淺層網絡。

  • 梯度消失。使用sigmoid激活函數(傳遞函數),在BP反向傳播梯度時,梯度會衰減,隨着神經網絡層數的增加,衰減累積下,到底層時梯度基本為0。

  • 無法對時間序列上的變化進行建模。對於樣本的時間順序對於自然語言處理、語音識別、手寫體識別等應用非常重要。


CNN(卷積神經網絡)

主要針對DNN存在的參數數量膨脹問題,對於CNN,並不是所有的上下層神經元都能直接相連,而是通過“卷積核”作為中介。同一個卷積核在多有圖像內是共享的,圖像通過卷積操作仍能保留原先的位置關系。

CNN之所以適合圖像識別,正式因為CNN模型限制參數個數並挖掘局部結構的這個特點。


RNN(循環神經網絡)

針對CNN中無法對時間序列上的變化進行建模的局限,為了適應對時序數據的處理,出現了RNN。

在普通的全連接網絡或者CNN中,每層神經元的信號只能向上一層傳播,樣本的處理在各個時刻獨立(這種就是前饋神經網絡)。而在RNN中,神經元的輸出可以在下一個時間戳直接作用到自身。

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

存在的問題:RNN可以看成一個在時間上傳遞的神經網絡,它的深度是時間的長度,而梯度消失的現象出現時間軸上。

 

LSTM(Long Short-Term Memory,長短期記憶網絡)

是一種時間循環神經網絡,是為了解決一般的RNN存在的長期依賴問題而專門設計出來的。

由於RNN也有梯度消失的問題,因此很難處理長序列的數據,對RNN做了改進,得到了RNN的特例LSTM(Long Short-Term Memory),它可以避免常規RNN的梯度消失,因此在工業界得到了廣泛的應用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM