循环神经网络(Recurrent Neural Network, RNN)
是一类以序列(sequence)数据为输入,在序列的演进方向进行递归(recursion)且所有节点(循环单元)按链式连接的递归神经网络(recursive neural network),循环神经网络具有短期记忆能力
RNN的结构
一个典型的RNN网络包含一个输入 x x x,一个输出 h h h和一个神经网络单元 A A A,与普通网络不同的是,RNN网络的神经网络单元 A A A不仅仅与输入和输出存在联系,其与自身也存在一个回路;这种网络结构就揭示了RNN的实质:上一个时刻的网络状态信息将会作用于下一个网络时刻的网络状态。
将RNN的自循环结构展开,像是将同一个网络复制并连成一条线的结构,将自身提取的信息传递给下一个继承者;这种链式的结构揭示了RNN与序列和列表类型的数据密切相关。
下图是一个RNN神经网络结构的时序展开模型,中间t时刻的网络模型揭示了RNN的结构,原始的RNN网络的内部结构非常简单。神经元A在t时刻的状态仅仅是t-1时刻神经元状态与t时刻网络输入的双曲正切函数的值,这个值不仅仅作为该时刻网络的输出,也作为该时刻网络被传入到下一个时刻的网络状态中,这个过程叫做RNN的正向传播
RNN的类别
- 一对一:最基本的单层网络,输入是 x x x,经过变换 W x + b Wx+b Wx+b和激活函数 f f f得到输出