日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

(pytorch-深度学习)双向循环神经网络

發布時間:2024/8/23 循环神经网络 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (pytorch-深度学习)双向循环神经网络 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

雙向循環神經網絡

一般,我們認為循環神經網絡模型都是假設當前時間步是由前面的較早時間步的序列決定的,因此它們都將信息通過隱藏狀態從前往后傳遞。
有時候,當前時間步也可能由后面時間步決定
例如,當我們寫下一個句子時,可能會根據句子后面的詞來修改句子前面的用詞。雙向循環神經網絡通過增加從后往前傳遞信息的隱藏層來更靈活地處理這類信息。

  • 給定時間步ttt的小批量輸入Xt∈Rn×d\boldsymbol{X}_t \in \mathbb{R}^{n \times d}Xt?Rn×d(樣本數為nnn,輸入個數為ddd
  • 隱藏層激活函數為?\phi?

在雙向循環神經網絡的架構中, 設

  • 該時間步正向隱藏狀態為H→t∈Rn×h\overrightarrow{\boldsymbol{H}}_t \in \mathbb{R}^{n \times h}Ht?Rn×h(正向隱藏單元個數為hhh
  • 反向隱藏狀態為H←t∈Rn×h\overleftarrow{\boldsymbol{H}}_t \in \mathbb{R}^{n \times h}Ht?Rn×h(反向隱藏單元個數為hhh)。

我們可以分別計算正向隱藏狀態和反向隱藏狀態:

H→t=?(XtWxh(f)+H→t?1Whh(f)+bh(f)),H←t=?(XtWxh(b)+H←t+1Whh(b)+bh(b))\begin{aligned} \overrightarrow{\boldsymbol{H}}_t &= \phi(\boldsymbol{X}_t \boldsymbol{W}_{xh}^{(f)} + \overrightarrow{\boldsymbol{H}}_{t-1} \boldsymbol{W}_{hh}^{(f)} + \boldsymbol{b}_h^{(f)}),\\ \overleftarrow{\boldsymbol{H}}_t &= \phi(\boldsymbol{X}_t \boldsymbol{W}_{xh}^{(b)} + \overleftarrow{\boldsymbol{H}}_{t+1} \boldsymbol{W}_{hh}^{(b)} + \boldsymbol{b}_h^{(b)})\end{aligned} Ht?Ht??=?(Xt?Wxh(f)?+Ht?1?Whh(f)?+bh(f)?),=?(Xt?Wxh(b)?+Ht+1?Whh(b)?+bh(b)?)?

其中權重Wxh(f)∈Rd×h\boldsymbol{W}_{xh}^{(f)} \in \mathbb{R}^{d \times h}Wxh(f)?Rd×hWhh(f)∈Rh×h\boldsymbol{W}_{hh}^{(f)} \in \mathbb{R}^{h \times h}Whh(f)?Rh×hWxh(b)∈Rd×h\boldsymbol{W}_{xh}^{(b)} \in \mathbb{R}^{d \times h}Wxh(b)?Rd×hWhh(b)∈Rh×h\boldsymbol{W}_{hh}^{(b)} \in \mathbb{R}^{h \times h}Whh(b)?Rh×h和偏差 bh(f)∈R1×h\boldsymbol{b}_h^{(f)} \in \mathbb{R}^{1 \times h}bh(f)?R1×hbh(b)∈R1×h\boldsymbol{b}_h^{(b)} \in \mathbb{R}^{1 \times h}bh(b)?R1×h均為模型參數。

然后通過連結兩個方向的隱藏狀態H→t\overrightarrow{\boldsymbol{H}}_tHt?H←t\overleftarrow{\boldsymbol{H}}_tHt?來得到隱藏狀態Ht∈Rn×2h\boldsymbol{H}_t \in \mathbb{R}^{n \times 2h}Ht?Rn×2h,并將其輸入到輸出層。

輸出層計算輸出Ot∈Rn×q\boldsymbol{O}_t \in \mathbb{R}^{n \times q}Ot?Rn×q(輸出個數為qqq):

Ot=HtWhq+bq,\boldsymbol{O}_t = \boldsymbol{H}_t \boldsymbol{W}_{hq} + \boldsymbol{b}_q,Ot?=Ht?Whq?+bq?,

其中權重Whq∈R2h×q\boldsymbol{W}_{hq} \in \mathbb{R}^{2h \times q}Whq?R2h×q和偏差bq∈R1×q\boldsymbol{b}_q \in \mathbb{R}^{1 \times q}bq?R1×q為輸出層的模型參數。不同方向上的隱藏單元個數也可以不同。

總結

以上是生活随笔為你收集整理的(pytorch-深度学习)双向循环神经网络的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。