深度学习学习笔记(6)循环神经网络(RNN)

序列模型

如果说卷积神经网络可以有效地处理空间信息, 那么循环神经网络则可以更好地处理序列信息。我们不仅仅可以接收一个序列作为输入,而是还可能期望继续猜测这个序列的后续,比如文本生成、音乐生成、股价预测等。

循环神经网络和隐变量

以文本生成为例,我们要预测的 xtx_t 取决于此前全部 xt1x_{t-1} 个词元,然而我们不可能将不定长的历史数据简单地构建成参数,所以我们引入隐状态 H\mathbf{H}

在第 tt 步隐藏层的计算表示为:

Ht=ϕ(XtWxh+Ht1Whh+bh)\mathbf{H}_t = \phi(\mathbf{X}_t \mathbf{W}_{xh} + \mathbf{H}_{t-1} \mathbf{W}_{hh} + \mathbf{b}_h)

其中 Xt\mathbf{X}_t 为当前输入,Ht1\mathbf{H}_{t-1} 为上一时刻的隐状态,Wxh\mathbf{W}_{xh}Whh\mathbf{W}_{hh} 为模型权重。

而输出层的计算:

Ot=HtWhq+bq\mathbf{O}_t = \mathbf{H}_t \mathbf{W}_{hq} + \mathbf{b}_q