赛博土木A-深度学习10:现代循环神经网络
1 门控循环单元(GRU)
门控循环单元引入了对因状态的门控,意味着有专门的机制来控制新状态更新与重置的时机
重置门和更新门
重置门($\mathbf{R}_t$)和更新门($\mathbf{Z}_t$)的结构如下:
其中$\mathbf{W}_{xr}, \mathbf{W}_{xz} \in \mathbb{R}^{d \times h}$和$\mathbf{W}_{hr}, \mathbf{W}_{hz} \in \mathbb{R}^{h \times h}$是权重参数,$\mathbf{b}_r, \mathbf{b}_z \in \mathbb{R}^{1 \times h}$是偏置参数。
候选隐状态
时间步$t$的候选隐状态$\tilde{\mathbf{H}}_t \in \mathbb{R}^{n \times h}$:
其中$\mathbf{W}_{xh} \in \mathbb{R}^{d \times h}$和$\mathbf{W}_{hh} \in \mathbb{R}^{h \times h}$是权重参数,$\mathbf{b}_h \in \mathbb{R}^{1 \times h}$是偏置项,符号$\odot$是Hadamard积(按元素乘积)运算符。在这里,我们使用tanh非线性激活函数来确保候选隐状态中的值保持在区间(-1, 1)中。
隐状态
隐状态如下
总结
更新门: 决定了多少过去的信息应该被传递到未来。
重置门: 决定了如何将新的输入信息与先前的记忆结合。
2 长短期记忆网络(LSTM)
LSTM 结构如下:
假设有$h$个隐藏单元,批量大小为$n$,输入数为$d$。因此,输入为$\mathbf{X}_t \in \mathbb{R}^{n \times d}$,前一时间步的隐状态为$\mathbf{H}_{t-1} \in \mathbb{R}^{n \times h}$。相应地,时间步t的门被定义如下:输入门是$\mathbf{I}_t \in \mathbb{R}^{n \times h}$,遗忘门是$\mathbf{F}_t \in \mathbb{R}^{n \times h}$,输出门是$\mathbf{O}_t \in \mathbb{R}^{n \times h}$。它们的计算方法如下:
其中$\mathbf{W}_{xi}, \mathbf{W}_{xf}, \mathbf{W}_{xo} \in \mathbb{R}^{d \times h}$和$\mathbf{W}_{hi}$, $\mathbf{W}_{hf}$, $\mathbf{W}_{ho} \in \mathbb{R}^{h \times h}$是权重参数,$\mathbf{b}_i,$ $\mathbf{b}_f, \mathbf{b}_o \in \mathbb{R}^{1 \times h}$是偏置参数。
候选记忆单元$\tilde{\mathbf{C}}_t \in \mathbb{R}^{n \times h}$:
记忆元$\mathbf{C}_t \in \mathbb{R}^{n \times h}$:
隐状态$\mathbf{H}_t \in \mathbb{R}^{n \times h}$:
3 深度循环网络
对于$L$个隐藏层的深度循环神经网络每一个隐藏层表示如下:
最后的输出只与最后一层隐藏层有关
4 双向模型
对于任意时间步$t$,给定一个小批量的输入数据
$\mathbf{X}_t \in \mathbb{R}^{n \times d}$(样本数$n$,每个示例中的输入数$d$),并且令隐藏层激活函数为$\phi$。在双向架构中,设该时间步的前向和反向隐状态分别为$\overrightarrow{\mathbf{H}}_t \in \mathbb{R}^{n \times h}$和$\overleftarrow{\mathbf{H}}_t \in \mathbb{R}^{n \times h}$,其中$h$是隐藏单元的数目。
前向和反向隐状态的更新如下:
其中,权重$\mathbf{W}_{xh}^{(f)} \in \mathbb{R}^{d \times h}, \mathbf{W}_{hh}^{(f)} \in \mathbb{R}^{h \times h}, \mathbf{W}_{xh}^{(b)} \in \mathbb{R}^{d \times h}, \mathbf{W}_{hh}^{(b)} \in \mathbb{R}^{h \times h}$和偏置$\mathbf{b}_h^{(f)} \in \mathbb{R}^{1 \times h}, \mathbf{b}_h^{(b)} \in \mathbb{R}^{1 \times h}$都是模型参数。
5 序列到序列学习
机器翻译是一种常用的应用场景,即将输入序列转换为输出序列。输入序列与输出序列均是可变序列。
为此引入编码器与解码器架构:
编码器(encoder):接受一个长度可变的序列作为输入,并将其转换为具有固定形状的编码状态。
解码器(decoder):它将固定形状的编码状态映射到长度可变的序列。
“
嵌入层的权重是一个矩阵,其行数等于输入词表的大小(vocab_size),其列数等于特征向量的维度(embed_size)。对于任意输入词元的索引i,嵌入层获取权重矩阵的第i行(从0开始)以返回其特征向量。
参考文献
[1] 《动手学深度学习》 — 动手学深度学习 2.0.0 documentation[EB/OL]. [2024-12-21]. https://zh.d2l.ai/.