動手學深度學習——循環神經網絡

循環神經網絡

循環神經網絡(RNN)主要用於預測任務:基於當前和歷史輸入序列,預測序列的下一個字符。循環神經網絡相對於普通神經網絡而言,最大的特點在於穎倉變量HH的引進,用HtH_{t}表示HH在時間步tt的值,該變量記錄了到當前字符爲止的序列信息。歷史信息的使用使得預測更爲精確。循環神經網絡的示意圖:
在這裏插入圖片描述

循環神經網絡模型

假設XtRn×d\boldsymbol{X_{t} \in \mathbb{R}^{n \times d}}是時間步tt的小批量輸入,HtRn×h\boldsymbol{H_{t} \in \mathbb{R}^{n \times h}}是該時間步的隱藏變量,則:
Ht=Φ(XtWxh+Ht1Whh+bh) \boldsymbol{H_{t}}=\Phi(\boldsymbol{X_{t}}\boldsymbol{W_{xh}}+\boldsymbol{H_{t-1}}\boldsymbol{W_{hh}}+\boldsymbol{b_{h}})

其中WxhRd×h\boldsymbol{W_{xh} \in \mathbb{R}^{d \times h}}WhhRh×h\boldsymbol{W_{hh} \in \mathbb{R}^{h \times h}}bhR1×h\boldsymbol{b_{h} \in \mathbb{R}^{1 \times h}}Φ\Phi函數是非線性激活函數。由於引入了Ht1Whh\boldsymbol{H_{t-1}}\boldsymbol{W_{hh}}Ht\boldsymbol{H_{t}}能夠捕捉截至當前時間步的序列的歷史信息,就像是神經網絡當前時間步的狀態或記憶一樣。循環神經網絡的展開式示意圖如下所示:
在這裏插入圖片描述
在時間步,輸出層的輸出爲:
Ot=HtWhq+bq \boldsymbol{O_{t}}=\boldsymbol{H_{t}}\boldsymbol{W_{hq}}+\boldsymbol{b_{q}}

其中WhqRd×h\boldsymbol{W_{hq} \in \mathbb{R}^{d \times h}}bqR1×q\boldsymbol{b_{q} \in \mathbb{R}^{1 \times q}}

注:上述來源於伯禹學習平臺的《動手學深度學習》的學習筆記

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