目录
RNN
Recurrent Neural Network,循环神经网络。
要解决的问题:
训练样本输入是连续的序列,相关性很强,且序列的长短不一,比如基于时间的序列:一段段连续的语音,一段段连续的手写文字。
解决问题得原理:
图中左边是RNN模型没有按时间展开的图,如果按时间序列展开,则是上图中的右边部分。
通过预测输出o(t)和训练序列真实输出y(t),以及损失函数L(t),可以用DNN类似的方法来训练模型,接着用来预测测试序列中的一些位置的输出。
RNN前向传播算法
简化一下,如下图:
o:输出层的值,一个向量;
V:权重矩阵,是隐藏层到输出层的。
W:权重矩阵 ,就是隐藏层上一次的值作为这一次的输入的权重。 循环神经网络的隐藏层的值s不仅仅取决于当前这次的输入x,还取决于上一次隐藏层的值s。
t时刻得输出:
RNN反向传播算法推导
RNN反向传播算法的思路和DNN是一样的,即通过梯度下降法一轮轮的迭代,得到合适的RNN模型参数U,W,V,b,c。由于我们是基于时间反向传播,所以RNN的反向传播有时也叫做BPTT(back-propagation through time)。
BPTT和DNN也有很大的不同点,即这里所有的U,W,V,b,c在序列的各个位置是共享的,反向传播时我们更新的是相同的参数。