深度循环神经网络 DRNN
转载自:《动手学深度学习》(PyTorch版) 6.9 深度循环神经网络github:https://github.com/ShusenTang/Dive-into-DL-PyTorch6.9 深度循环神经网络在深度学习应用里,我们通常会用到含有多个隐藏层的循环神经网络,也称作深度循环神经网络。图6.11演示了一个有 LLL 个隐藏层的深度循环神经网络,每个隐藏状态不断传递至当前层的下一时间步和当
转载自:
《动手学深度学习》(PyTorch版) 6.9 深度循环神经网络
github:https://github.com/ShusenTang/Dive-into-DL-PyTorch
深度循环神经网络
在深度学习应用里,我们通常会用到含有多个隐藏层的循环神经网络,也称作深度循环神经网络。图6.11演示了一个有 L L L 个隐藏层的深度循环神经网络,每个隐藏状态不断传递至当前层的下一时间步和当前时间步的下一层。
具体来说, 在时间步 t t t 里, 设小批量输入 X t ∈ R n × d \boldsymbol{X}_{t} \in \mathbb{R}^{n \times d} Xt∈Rn×d (样本数为 n n n, 输入个数为 d ) \left.d\right) d), 第 ℓ \ell ℓ隐藏层 ( ℓ = 1 , … , L ) (\ell=1, \ldots, L) (ℓ=1,…,L) 的隐藏状态为 H t ( ℓ ) ∈ R n × h \boldsymbol{H}_{t}^{(\ell)} \in \mathbb{R}^{n \times h} Ht(ℓ)∈Rn×h (隐藏单元个数为 h h h ), 输出层变量为 O t ∈ R n × q O_{t} \in \mathbb{R}^{n \times q} Ot∈Rn×q (输出个数为 q ) \left.q\right) q), 且隐藏层的激活函数为 ϕ ∘ \phi_{\circ} ϕ∘ 第1隐藏层的隐藏状态和之前的计算一样:
H t ( 1 ) = ϕ ( X t W x h ( 1 ) + H t − 1 ( 1 ) W h h ( 1 ) + b h ( 1 ) ) \boldsymbol{H}_{t}^{(1)}=\phi\left(\boldsymbol{X}_{t} \boldsymbol{W}_{x h}^{(1)}+\boldsymbol{H}_{t-1}^{(1)} \boldsymbol{W}_{h h}^{(1)}+\boldsymbol{b}_{h}^{(1)}\right) Ht(1)=ϕ(XtWxh(1)+Ht−1(1)Whh(1)+bh(1))
其中权重 W x h ( 1 ) ∈ R d × h , W h h ( 1 ) ∈ R h × h \boldsymbol{W}_{x h}^{(1)} \in \mathbb{R}^{d \times h}, \boldsymbol{W}_{h h}^{(1)} \in \mathbb{R}^{h \times h} Wxh(1)∈Rd×h,Whh(1)∈Rh×h 和偏差 b h ( 1 ) ∈ R 1 × h \boldsymbol{b}_{h}^{(1)} \in \mathbb{R}^{1 \times h} bh(1)∈R1×h 分别为第1隐藏层的模型参数。
当 1 < ℓ ≤ L 1<\ell \leq L 1<ℓ≤L 时,第 ℓ \ell ℓ 隐藏层的隐藏状态的表达式为
H t ( ℓ ) = ϕ ( H t ( ℓ − 1 ) W x h ( ℓ ) + H t − 1 ( ℓ ) W h h ( ℓ ) + b h ( ℓ ) ) \boldsymbol{H}_{t}^{(\ell)}=\phi\left(\boldsymbol{H}_{t}^{(\ell-1)} \boldsymbol{W}_{x h}^{(\ell)}+\boldsymbol{H}_{t-1}^{(\ell)} \boldsymbol{W}_{h h}^{(\ell)}+\boldsymbol{b}_{h}^{(\ell)}\right) Ht(ℓ)=ϕ(Ht(ℓ−1)Wxh(ℓ)+Ht−1(ℓ)Whh(ℓ)+bh(ℓ))
最终,输出层的输出只需基于第 L L L 隐藏层的隐藏状态:
O t = H t ( L ) W h q + b q \boldsymbol{O}_{t}=\boldsymbol{H}_{t}^{(L)} \boldsymbol{W}_{h q}+\boldsymbol{b}_{q} Ot=Ht(L)Whq+bq
其中权重 W h q ∈ R h × q \boldsymbol{W}_{h q} \in \mathbb{R}^{h \times q} Whq∈Rh×q 和偏差 b q ∈ R 1 × q \boldsymbol{b}_{q} \in \mathbb{R}^{1 \times q} bq∈R1×q 为输出层的模型参数。
同多层感知机一样,隐藏层个数 L L L 和隐藏单元个数 h h h 都是超参数。此外,如果将隐藏状态的计算换成门控循环单元或者长短期记忆的计算,我们可以得到深度门控循环神经网络。
小结
在深度循环神经网络中,隐藏状态的信息不断传递至当前层的下一时间步和当前时间步的下一层。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)