小白循環神經網絡RNN LSTM 參數數量 門單元 cell units timestep batch_size

小白循環神經網絡RNN LSTM 參數數量 門單元 cell units timestep batch_size

  • RNN循環神經網絡 timestep batch_size
  • LSTM及參數計算
  • keras中若干個Cell例如LSTMCell

1.RNN循環神經網絡

在這裏插入圖片描述

先來解釋一下 batch_size timestep

在這裏插入圖片描述

樣本數據:

小明愛學習

小王愛學習

小李愛學習

小花愛學習

通常樣本數據會以(batch_size, time_step, embedding_size)送入模型,對應的可以是(4,5,100)

4表示批量送入也就是(小,小,小,小)第二批是(明,王,李,花)…

5表示時間步長,一句話共5個字

100表示詞嵌入的維度

Ht=ϕ(XtWxh+H(t1)Whh+bh) H_t = \phi(X_tW_{xh}+H_(t-1)W_{hh}+b_h)

XtX_t輸入 假設一次輸入4個字符,那麼Xt的維度是4*100

WxhW_{xh} 對應的矩陣大小是 100*hidden_size

XtWxhX_tW_{xh}輸出大小即爲4*hidden_size 也就是說W將詞嵌入轉換成隱藏層大小

$H_{t-1} $ 也就是 4*hidden_size

WhhW_{hh} 相乘大小就是 hidden_size * hidden_size

bhb_h 偏執項大小是1*h通過廣播的方式和前面相加

所以最終輸出HtH_t就是4*hidden_size

對於輸出層:
Ot=HtWhq+bq O_t = H_tW_{hq}+b_q
WhqW_{hq}相應的大小爲hidden_size*labels_number

這裏labels_number對應的是字典中字的個數,也就是說最終是要預測下一個字的概率

最終輸出 OtO_t是4*labels_number

如果是分類任務再加上一個softmax 就得到此次批量4個各自的最大概率的值是什麼。

2.LSTM及參數計算

對比上述RNN類比LSTM結構
在這裏插入圖片描述

依然用上面例子,輸入timestep=5 及一句話5個字。字嵌入維度是100及一個字用100維表示。設置LSTM(64)輸出維度是64及隱含層輸出是64維。

在這裏插入圖片描述

總共三個門結構
Ft=σ(Wf[ht1,xt]+bf)It=σ(Wi[ht1,xt]+bi)Ot=σ(Wo[ht1,xt]+bo)Ct~=tanh(Wc[ht1,xt]+bo)Ct=FtCt1+ItCt~Ht=Ottanh(Ct) 遺忘門:F_t = \sigma(W_f[h_{t-1}, x_t] + b_f) \\ 輸入門:I_t = \sigma(W_i[h_{t-1}, x_t] + b_i) \\ 輸出門:O_t = \sigma(W_o[h_{t-1}, x_t] + b_o) \\ 候選記憶細胞:\tilde{C_{t}}=tanh(W_c[h_{t-1}, x_t] + b_o) \\ 記憶細胞:C_t = F_t\cdot C_{t-1}+I_t\cdot \tilde{C_{t}} \\ 隱藏狀態:H_t = O_t \cdot tanh(C_t)
ht1h_{t-1} 是上一個隱含層,也就是64。[ht1,xt][h_{t-1}, x_t] 維度是(1,164) 所以WfW_f 大小就是(164,64) ,偏執項64

所以通過公式可以看到和[ht1,xt][h_{t-1}, x_t] 相乘共用4個矩陣,參數數量是(164*64+64 )* 4

σ\sigma激活函數是sigmoid輸出是[0,1],可以看出幾個門輸出的值是0到1之間。

tanh輸出是[-1, 1],

遺忘門控制上一個記憶細胞信息是否需要保留,輸入門控制當前候選細胞。

如果遺忘門一直近似1 輸入門近似0 ,記憶細胞會一直記錄歷史的信息。

對於這樣門組合方式是不是可以達到很好的效果,各個門結構實際上在樣本中體現在哪裏?

在這裏插入圖片描述

上圖是李宏毅老師的講義截圖,對於每一個輸入都會產生四個矩陣,由這四個矩陣決定最終的輸出(這裏也可以看出lstm的參數量是普通前饋神經網絡的4倍

例如:輸入樣本 豆漿喝起來很香醇,油條吃起來嘎嘣脆

當有足夠這樣多的句式,遺忘門會會將前一句中的主語或動詞丟棄,因爲後文中主語或吃起來等等和前文沒有關係。

有一些改進版本,例如GRU,JANET(JUST ANOTHER NETWORK)保留了遺忘門,由論文中的實驗可以看出遺忘門是最重要的門之一https://arxiv.org/yiabs/1804.04849

實際當中LSTM的傳輸是將上一層的細胞向量,隱藏層向量和當前輸入向量(c,h,x)一起進行計算。如下是李宏毅老師的講義截圖

在這裏插入圖片描述

在這裏插入圖片描述

3.keras中若干個Cell例如LSTMCell

LSTMCell或者其他得cell表示一個cell單元,表示一個step

而LSTM是一個循環層,LSTM也是RNN結構,只是cell是用LSTMCell實現得。

如LSTMCell

LSTMCell或者其他得cell表示一個cell單元,表示一個step

而LSTM是一個循環層,LSTM也是RNN結構,只是cell是用LSTMCell實現得。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章