视频字幕
传统的前馈神经网络只能处理固定长度的输入,无法处理序列数据。而循环神经网络RNN的核心思想是引入记忆机制,通过隐藏状态在时间步之间传递信息,使网络能够处理变长的序列数据。RNN中的循环连接使得网络具有了时间维度上的记忆能力。
RNN的核心数学公式包括两个部分。首先是隐藏状态的更新公式,h_t等于tanh激活函数作用于三项的和:隐藏状态权重矩阵W_hh乘以前一时刻的隐藏状态h_{t-1},加上输入权重矩阵W_xh乘以当前输入x_t,再加上偏置项b_h。然后是输出计算公式,y_t等于输出权重矩阵W_hy乘以当前隐藏状态h_t加上输出偏置b_y。tanh激活函数确保隐藏状态值在负1到正1之间。
将RNN在时间维度上完全展开,我们可以看到网络如何处理序列数据。每个时间步都有相同的网络结构,使用相同的权重参数,这就是参数共享机制。输入序列x1、x2、x3依次进入网络,隐藏状态h在各时间步之间传递信息,每个时间步都产生对应的输出y。这种展开形式清楚地展示了RNN如何将当前输入与历史信息结合起来进行计算。
RNN的训练使用时间反向传播算法BPTT。首先计算每个时间步的损失函数,然后梯度从输出层反向传播到隐藏层,再沿着时间轴反向传播到之前的时间步。在这个过程中,梯度需要经过多次矩阵乘法,导致梯度在长序列中逐渐衰减,这就是著名的梯度消失问题,使得RNN难以学习长期依赖关系。
通过一个文本生成的具体例子来理解RNN的工作过程。以"机器学习"为输入,RNN逐个字符处理。首先将"机"字编码为向量输入,计算隐藏状态,然后预测下一个字符"器"。接着"器"字作为输入,结合前面的隐藏状态,预测"学"字。这个过程持续进行,每一步都利用了之前的信息来预测下一个字符,体现了RNN处理序列数据的能力。