李宏毅機器學習2016 第二十二講 循環神經網路RNN

視頻鏈接:李宏毅機器學習(2016)_演講?公開課_科技_bilibili_嗶哩嗶哩

課程資源:Hung-yi Lee

課程相關PPT已經打包命名好了:鏈接:pan.baidu.com/s/1c3Jyh6 密碼:77u5

我的第二十一講筆記:李宏毅機器學習2016 第二十一講 隱馬爾可夫模型與條件隨機場

Recurrent Neural Network

本章主要介紹了循環神經網路。

1.引言

槽填充(Slot Filling)是現今比較常見的問題,例如在一個訂票系統中,用戶輸入「我想本周六去北京」,需要填充槽(slot),目的地:北京,時間:2018.1.27

如何解決這個問題,考慮使用前饋神經網路(Feedforward network)。

比較常見的是使用1-of-N encoding方法將每一個單詞表示成一個向量。

當然也有其他的改進版本。

但是問題是可能用戶輸入的是離開北京而不是去北京,這就要求北京是起點,而不是目的地。

顯然解決此類問題要求網路是要有記憶(memory)的。

2.循環神經網路(Recurrent Neural Network,RNN)

簡單思想是將隱藏層的輸出存儲在記憶中,然後將記憶也作為網路的一個輸入。

當然也可以將網路的輸出存儲在記憶中。

再者考慮多個隱藏層的結構,深度網路。如果是將隱藏層的輸出存儲在記憶中稱為Elman Network,將輸出層的輸出值存儲在記憶中就稱為Jordan Network。

雙向(Bidirectional)RNN從順逆兩個方向上考慮。

3.長短時記憶網路(Long Short-term Memory,LSTM)

長短時記憶網路(Long Short-term Memory,LSTM)指的是具有多個長的短時間記憶網路。

其網路形狀有四個輸入,一個輸出。

網路詳細情況如上圖所示,1代表的是開,0代表的是關。值得注意的是在Forget Gate中,如果值為1則表示不忘記,保持原值;值為0時則表示將記憶值清為0,忘記。(打開其實是不忘記)

在學習訓練RNN時可以用梯度下降(gradient descent)方法。

然而基於RNN的網路是不好訓練的。損失曲面要不是平的要不就是陡峭的,不易訓練。

通過LSTM可以很好的解決此問題。

這是因為與普通RNN不同的是,LSTM的記憶和輸入是相加的,而不是直接清零的。除非Forget Gate關閉時,影響才會消失。因此只要確保大多數情況下Forget Gate是開啟的,就可以解決梯度消失(gradient vanishing)的問題,不是梯度爆炸(gradient exploding)。

3.應用

循環神經網路有很多種應用情景。

①語義分析

②關鍵詞提取

③語音識別

應用廣泛。

3.總結

本章主要講解了循環神經網路(Recurrent Neural Network,RNN)的原理及應用,重點講述了LSTM。


推薦閱讀:

通往無限層神經網路 (1):對於殘差網路(Residual Network)的一種理解方法,與深層網路的訓練
XGBoost入門系列第一講
機器學習原來這麼有趣!第四章:用深度學習識別人臉

TAG:机器学习 | RNN | LSTM |