【转】RNN、LSTM、Transformer、BERT简介与区别
幾者的主要參考文章: https://blog.csdn.net/weixin_41089007/article/details/96474760
RNN與LSTM的區別參考文章: https://blog.csdn.net/hfutdog/article/details/96479716
RNN和LSTM的區別如下:
- RNN沒有細胞狀態;LSTM通過細胞狀態記憶信息。
- RNN激活函數只有tanh;LSTM通過輸入門、遺忘門、輸出門引入sigmoid函數并結合tanh函數,添加求和操作,減少梯度消失和梯度爆炸的可能性。
- RNN只能夠處理短期依賴問題;LSTM既能夠處理短期依賴問題,又能夠處理長期依賴問題。
- 但是LSTM相對的運行時間較長
雙向RNN和BERT:
雙向RNN與self attention layer 的共同點在于: 輸入輸出都是序列,且輸出每個時間節點預測的向量都與輸入的所有時間節點相關聯;
最大的不同點在于雙向RNN輸出無法并行(當前時刻的輸出與上一時刻的hidden state相關),而attention可以并行
LSTM與BERT:
-
LSTM
概述:
lstm是代表性的rnn結構,rnn提出是為了解決時序的問題;典型的例子就是NLP中的句子理解,視頻的內容理解;模型結構的設計保證輸入順序按照時序順序對結果產生影響,當前時間步的輸入是當前位置和上一個時間步的輸出。 -
優點:
解決了dnn或者是bow詞袋模型的問題,不能區分時序 -
缺點:
處理長文本的時候耗時較長,考慮到上下文,一般還采用雙向rnn結構;模型效果上,對于長依賴問題效果不好,容易理解 經過很多個step的傳遞,信息會減弱 -
BERT
-
概述
bert通過注意力機制實現時序的理解,我認為精妙之處有兩點,一點是位置編碼融入向量表達,另外一點是就是注意力機制中的QKV矩陣了;殘差網絡防止網絡過于復雜帶來的過擬合。
優點 -
注意力機制,也就是每個位置相對另一個位置的權重是可以并行計算的,在計算資源足夠的前提下比lstm會快很多;通過設計預訓練任務,用海量無監督數據做預訓練,模型效果更好
-
缺點
由于網絡更加復雜,計算量相對lstm更大,訓練收斂更慢
總結
以上是生活随笔為你收集整理的【转】RNN、LSTM、Transformer、BERT简介与区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 动态规划 - Floyd算法求最短路径
- 下一篇: PAT乙类1005之继续(3n+1)猜想