Recurrent Neural Network
RNN神经网络结构

由上图可以看出:一个典型的RNN网络包含一个输入x,一个输出h和一个神经网络单元A。和普通的神经网络不同的是,RNN网络的神经网络单元A与自身也存在一个回路。这种网络结构就揭示RNN的实质:上一个时刻的网络状态信息将会作用于下一个时刻的网络状态。RNN网络以时间序列展开成如下形式:

如上图所示:{T0,T1,…,Tt}代表时间序列,{X0,X1,…,Xn}代表每个时间点输入的数据,{h0,h1,…,h(t-1)}代表时间点为(t-1)的状态。
下面是在一个循环神经元中的步骤:
- 在一个时间点输入数据$X_t$;
根据上一个时间点状态$h_{(t-1)}$和当前输入数据$X_t$计算$h_{(t)}=f(h_{(t-1),X_t})$,详细计算公式如下:
- 当前时间点的输出状态$h_{(t)}$作为(t+1)时刻的一个输入;
- 对于一个问题,我们可以通过许多时间步来将前面的状态信息联系起来;
- 所有的时间步走完后,我们用最终的输出状态来计算输出$y_t=W_{(o)}h_{(t)}$;
- 对神经元输出和真实值做差值,通过反向传播算法训练权重参数$W_{(h)}$和$W_{(x)}$
- 本文作者: 程序猪-渔枫
- 本文链接: https://over-shine.github.io/2020/08/21/Recurrent-Neural-Network/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!