日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

DNN、CNN、RNN、LSTM的区别

發布時間:2023/12/15 65 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DNN、CNN、RNN、LSTM的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

昨天聽室友問起DNN與CNN的區別,感覺自己不太了解,所在在網上搜了一些資料,這篇博客主要是根據知乎上的回答,加上自己的理解整理出來的。

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

DNN(深度神經網絡)

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

DNN存在的局限:

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

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

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

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

DNN的基本介紹可參考:

  • 深度神經網絡(DNN)模型與前向傳播算法
  • 神經網絡入門:深層學習為何要“Deep”(上)
  • 前饋神經網絡引入的先驗知識:并行、迭代;深層學習為何要“Deep”(下)較難懂,建議先看完公開課再看該篇文章。

  • CNN(卷積神經網絡)

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

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

    CNN相關知識可參考:

  • CNN相關知識總結
  • YJango的卷積神經網絡——介紹

  • RNN(循環神經網絡)

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

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

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

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

    RNN相關知識可參考:

  • 循環神經網絡(RNN)模型與前向反向傳播算法
  • YJango的循環神經網絡——介紹

  • LSTM(長短時記憶單元)

    為了解決RNN中時間上的梯度消失,機器學習領域發展出了長短時記憶單元LSTM,通過門的開關實現時間上記憶功能,并防止梯度消失。

    參考:

  • [譯] 理解 LSTM(Long Short-Term Memory, LSTM) 網絡
  • 探索LSTM:基本概念到內部結構

  • 擴展

    深度神經網絡中的梯度不穩定性,前面層中的梯度或會消失,或會爆炸。前面層上的梯度是來自于后面層上梯度的乘乘積。當存在過多的層次時,就出現了內在本質上的不穩定場景,如梯度消失和梯度爆炸。

    • 梯度爆炸(exploding gradient):梯度爆炸就是由于初始化權值過大,前面層會比后面層變化的更快,就會導致權值越來越大,梯度爆炸的現象就發生了。

      在深層網絡或循環神經網絡中,誤差梯度可在更新中累積,變成非常大的梯度,然后導致網絡權重的大幅更新,并因此使網絡變得不穩定。在極端情況下,權重的值變得非常大,以至于溢出,導致 NaN 值。

      網絡層之間的梯度(值大于 1.0)重復相乘導致的指數級增長會產生梯度爆炸。

      解決梯度爆炸的方法參考:詳解梯度爆炸和梯度消失

    • 梯度消失(vanishing gradient):前面的層比后面的層梯度變化更小,故變化更慢,從而引起了梯度消失問題。

      因為通常神經網絡所用的激活函數是sigmoid函數,這個函數有個特點,就是能將負無窮到正無窮的數映射到0和1之間,并且對這個函數求導的結果是f′(x)=f(x)(1?f(x))。因此兩個0到1之間的數相乘,得到的結果就會變得很小了。神經網絡的反向傳播是逐層對函數偏導相乘,因此當神經網絡層數非常深的時候,最后一層產生的偏差就因為乘了很多的小于1的數而越來越小,最終就會變為0,從而導致層數比較淺的權重沒有更新,這就是梯度消失。

    因為sigmoid導數最大為1/4,故只有當abs(w)>4時梯度爆炸才可能出現。深度學習中最普遍發生的是梯度消失問題。

    解決方法:使用ReLU,maxout等替代sigmoid。

    ReLU與sigmoid的區別:(1)sigmoid函數值在[0,1],ReLU函數值在[0,+無窮],所以sigmoid函數可以描述概率,ReLU適合用來描述實數;(2)sigmoid函數的梯度隨著x的增大或減小和消失,而ReLU不會。


    參考:

  • CNN(卷積神經網絡)、RNN(循環神經網絡)、DNN(深度神經網絡)…
  • 機器學習總結(九):梯度消失(vanishing gradient)與梯度爆炸(exploding gradient)問題
  • 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

    總結

    以上是生活随笔為你收集整理的DNN、CNN、RNN、LSTM的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。