8. 深度循环神经网络
本章目前为止介绍的循环神经网络,仅有一个单向的隐藏层。而在深度学习应用中,通常会涉及含有多个隐藏层的循环神经网络,也称作深度循环神经网络。
对于一个有 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 d 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 \boldsymbol{O}_t \in \mathbb{R}^{n \times q} Ot∈Rn×q(输出个数为 q q q),且隐藏层的激活函数为 ϕ \phi ϕ。
(1) 那么,有第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(\boldsymbol{X}_t \boldsymbol{W}_{xh}^{(1)} + \boldsymbol{H}_{t-1}^{(1)} \boldsymbol{W}_{hh}^{(1)} + \boldsymbol{b}_h^{(1)}) Ht(1)=ϕ(XtWxh(1)+Ht−1(1)Whh(1)+bh(1))
其中,权重 W x h ( 1 ) ∈ R d × h \boldsymbol{W}_{xh}^{(1)} \in \mathbb{R}^{d \times h} Wxh(1)∈Rd×h、 W h h ( 1 ) ∈ R h × h \boldsymbol{W}_{hh}^{(1)} \in \mathbb{R}^{h \times 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隐藏层的模型参数。
(2) 当 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(\boldsymbol{H}_t^{(\ell-1)} \boldsymbol{W}_{xh}^{(\ell)} + \boldsymbol{H}_{t-1}^{(\ell)} \boldsymbol{W}_{hh}^{(\ell)} + \boldsymbol{b}_h^{(\ell)}) Ht(ℓ)=ϕ(Ht(ℓ−1)Wxh(ℓ)+Ht−1(ℓ)Whh(ℓ)+bh(ℓ))
其中,权重 W x h ( ℓ ) ∈ R h × h \boldsymbol{W}_{xh}^{(\ell)} \in \mathbb{R}^{h \times h} Wxh(ℓ)∈Rh×h、 W h h ( ℓ ) ∈ R h × h \boldsymbol{W}_{hh}^{(\ell)} \in \mathbb{R}^{h \times h} Whh(ℓ)∈Rh×h和偏差 b h ( ℓ ) ∈ R 1 × h \boldsymbol{b}_h^{(\ell)} \in \mathbb{R}^{1 \times h} bh(ℓ)∈R1×h分别为第 ℓ \ell ℓ隐藏层的模型参数。
(3) 最终,输出层的输出只需基于第 L L L隐藏层的隐藏状态:
O t = H t ( L ) W h q + b q \boldsymbol{O}_t = \boldsymbol{H}_t^{(L)} \boldsymbol{W}_{hq} + \boldsymbol{b}_q Ot=Ht(L)Whq+bq
其中,权重 W h q ∈ R h × q \boldsymbol{W}_{hq} \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都为超参数。
此外,若将隐藏状态的计算换成门控循环单元或者长短期记忆的计算,可以得到深度门控循环神经网络。