1. 程式人生 > >【Coursera】吳恩達 deeplearning.ai 05.序列模型 第一週 迴圈序列模型 課程筆記

【Coursera】吳恩達 deeplearning.ai 05.序列模型 第一週 迴圈序列模型 課程筆記

迴圈序列模型

為什麼選擇序列模型

語音識別音樂生成情感分類DNA序列分析機器翻譯視訊識別命名實體識別等任務中,共同特點是輸入X和/或輸出Y都是序列。
這裡寫圖片描述

數學符號

例如,對於命名實體識別的問題:

這裡寫圖片描述

  • 對於輸入序列,用 x < 1 > , x < 2
    > , . . . , x < t >
    , . . . , x < 9 >
    來表示,其中 x < t > 表示 t 位置的單詞。
  • 對於輸出序列用 y < 1 > , y < 2 > , . . . , y < 9 > 來表示。
  • T x 表示輸入序列長度, T y 表示輸出序列長度,在本例中 T x = T y = 9
  • x ( i ) < t > 表示第 i 個樣本輸入的第 t 個位置的值, T x ( i ) 表示第 i 個訓練樣本的輸入序列長度。
  • y ( i ) < t > 表示第 i 個樣本的輸出第 t 個位置的值, T y ( i ) 表示第 i 個訓練樣本的輸出序列長度。
怎樣表現句子裡的某一個單詞:

one-hot編碼:在詞典中,該詞的編碼為1,其餘位置編碼為0,形成該詞的向量。

迴圈神經網路模型

無法選擇標準的神經網路的原因:
  • 在不同的樣本中,輸入輸出長度都是可變的。
  • 不共享跨文字不同位置學習的功能。
迴圈神經網路RNN

這裡寫圖片描述

在每一個時間步中,迴圈神經網路傳遞一個啟用值到下一個時間步中,用於計算。對於零時刻,則輸入一個零向量(或者隨機初始化的)作為偽啟用值。
迴圈神經網路是從左往右掃描資料,同時每個時間步的引數也是共享的。
限制:在某一時刻的預測僅僅使用了序列中之前的輸入資訊,而沒有使用該時刻之後的輸入資訊。(解決方法:雙向迴圈神經網路BRNN)

RNN前向傳播過程如下:
這裡寫圖片描述

其中, w a x 表示與 X 相乘的用來計算 a 的權重,同理, w y a 表示與 a 相乘的用來計算 y 的權重。
這裡寫圖片描述

穿越時間的反向傳播

這裡寫圖片描述

不同型別的迴圈神經網路

這裡寫圖片描述

結構:
多對一:如文字輸入
一對多:如音樂生成、序列生成等(輸入一個數字等或空,輸出一段·音樂)
多對多:如機器翻譯,輸入和輸出的長度不同,因此網路分為編碼器和解碼器兩個部分。

語言模型和序列生成

訓練語料:大的英文文字 。
預處理
- 將句子標記化(tokenize)
- 將每個單詞轉化成one-hot編碼,在句子結尾加上 < E O S > 標記。
- 對於訓練集中不在字典中的詞,用 < U N K > 代替。

RNN model

這裡寫圖片描述

對新序列取樣

即對詞的概率分佈進行取樣,來生成一個新的單詞序列。

這裡寫圖片描述

帶有神經網路的梯度消失

存在的問題
RNN從左到右前向傳播,由於梯度消失的原因,後面層的輸出誤差很難影響到前面層的計算。
梯度爆炸:採用梯度修剪的方法。
梯度消失則比較棘手(下一節GRU單元)

這裡寫圖片描述

GRU單元

GRU(Gated Recurrent Unit)門控迴圈單元,通過改變RNN的隱藏層,使其能捕捉深層連線,並改善梯度消失的問題。

c ~ < t > = t a n h ( W c [ c < t 1 > , X < t > ] + b c )
Γ u = σ ( W u [ c < t 1 > , X < t > ] + b u )

c ~ < t > 計算記憶細胞 c 的更新值,用 Γ u 來判斷是否需要更新。