【深度学习】循环神经网络(RNN)的tensorflow实现
循环神经网络又被成为时间递归神经网络(Recurrent Neural Networks),传统神经网络,每一个时间步隐含层神经元之间没有连接。但RNN中每一个时间步的隐含层输入由当前时间步的输入和上一时间步的隐含层输出共同决定,因此历史数据的影响不会消失,而是会继续存活。
一、循环神经网络原理
1.1、RNN的网络结构
RNN网络结构如下图所示
每一个RNN cell都包括输入部分,隐含层部分和输出部分。RNN cell的数量等于时间步数量,前一个RNN cell的隐含层部分连接到下一个RNN cell的隐含层。RNN cell的输出连接到CTC层,然后输出预测数据。
每一时间步的RNN cell的具体结构图如下所示:
如图所示,第 t t t时间步对应的RNN cell的网络结构。
输入层:输入层节点数为输入样本特征维度。输入为 X t = { x t 1 , x t 2 , ⋯   , x t n } {X_t} = \left\{ {x_t^1,x_t^2, \cdots ,x_t^n} \right\} Xt={
xt1,xt2,⋯,xtn},就是说输入层节点数为 n n n。
隐含层:隐含层节点数可以自己设定,上图中隐含层节点数为 n n n。隐含层输入数据为:
S t = X t ⋅ U + S t − 1 ⋅ W {S_t} = {X_t} \cdot U + {S_{t - 1}} \cdot W St=Xt