RNN 循环神经网络

目录


RNN

RNN:Recurrent Neural Network,循环神经网络,或 递归神经网络


来源

全连接神经网络和卷积神经网络 都只能单独的取处理一个个的输入,前一个输入和后一个输入是完全没有关系的。
但是,某些任务需要能够更好的处理序列的信息,即前面的输入和后面的输入是有关系的。
比如,当我们在理解一句话意思时,孤立的理解这句话的每个词是不够的,我们需要处理这些词连接起来的整个序列;当我们处理视频的时候,我们也不能只单独的去分析每一帧,而要分析这些帧连接起来的整个序列。
这时,就需要用到RNN。

最早用于 自然语言处理领域。


基本 RNN

由输入层、一个隐藏层和一个输出层组成:

RNN 循环神经网络

  • 把上面有W的那个带箭头的圈去掉,它就变成了最普通的全连接神经网络。
  • x是一个向量,它表示输入层的值(这里面没有画出来表示神经元节点的圆圈);
  • s是一个向量,它表示隐藏层的值(这里隐藏层面画了一个节点,你也可以想象这一层其实是多个节点,节点数与向量s的维度相同);
  • U是输入层到隐藏层的权重矩阵
  • o,向量,它表示输出层的值
  • V是隐藏层到输出层的权重矩阵

将上图展开,RNN 也可以画成下面的样子:
RNN 循环神经网络

RNN 计算方法:
输出层的计算公式:\(o_t = g(C_{S_t})\)
输出层是一个全连接层,也就是它的每个节点都和隐藏层的每个节点相连。
V是输出层的权重矩阵,g是激活函数。


隐藏层的计算公式:\(s_t = f(U_{X_t} + W_{S_{t-1}})\)

隐藏层是循环层。

  • U:输入x的权重矩阵
  • W:上一次的值作为这一次的输入的权重矩阵;
  • f:激活函数。

由此可见,循环层和全连接层的区别就是循环层多了一个权重矩阵 W。


参考资料

上一篇:RNN对于变长序列的处理方法, 为什么RNN需要mask


下一篇:RNN的训练模式