(九)深度学习之循环神经网络

1. 序列模型

在本质上,音乐、语音、文本和视频都是连续的。如果它们的序列被我们重排,那么就会失去原有的意义。就比如 “你不爱我” 和 “你爱我不” 是两种意思,虽然他们的组成元素一模一样。

处理序列数据需要统计工具和新的深度神经网络架构 —— 循环神经网络

2. 循环神经网络

循环神经网络(Recurrent Neural Network, RNN) 是一类以序列数据为输入,在序列的演进方向进行递归,且所有循环单元按链式连接的 递归神经网络(recursive neural network)

在循环神经网络中,一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐藏层之间产生连接,并且隐藏层的输入不仅包括输入层的输出还包括上一时刻隐藏层的输出。

一个简单的循环神经网络结构如图所示,它由输入层,一个隐藏层,一个循环层和一个输出层组成:

图2-1

不过这张图过于简单,让人摸不着头脑,现在我们将其展开:

图2-2

在 RNN 中,每一部分到下一部分的权值是相同的。也就是说输入层到隐藏层,隐藏层到输出层,上一步隐藏层到本隐藏层,这三部分的权重分别相等。

接下来我们就可以来推导推导 RNN 的递推公式了。

给出前向传播的递推公式:

3. RNN 的反向传播(按下不表)

RNN 的反向传播有时也叫做 BPTT(back-propagation through time)

4. RNN 的不足

  1. 计算复杂度高,训练时间长:RNN的计算过程是顺序的,导致在训练和权重更新阶段计算复杂度较高,训练时间较长。这限制了RNN在处理长序列或大规模任务时的可扩展性。
  2. 梯度消失和梯度爆炸:在训练过程中,RNN容易遇到梯度消失和梯度爆炸问题。。
  3. 对超参数敏感:RNN模型通常对超参数(如学习率和隐藏层大小)较为敏感。选择不合适的超参数可能会导致性能下降,而找到合适的超参数组合需要进行大量实验。
  4. 可解释性较差:与其他神经网络一样,RNN的可解释性较差。这意味着很难理解模型在做出预测时的决策过程,从而在实际应用中带来一定的挑战。
  5. 长期记忆效果差: 是当输入和相应的教师信号之间的最小时间滞后很长时,RNN 会花费很多时间甚至无法计算。

为了减少 RNN 的不足带来的影响,诞生了许多 RNN 的变体: 长短时记忆网络(LSTM)门控循环单元(GRU)双向RNN(BiRNN)等。这些变体通过不同的门控机制和结构改进,得到更好的训练效果。

下篇文章将详细介绍 LSTM 的内容。