RNN理论推导

  RNN内容整理
RNN简介
  RNN:循环神经网络(Recurrent Neural Network, RNN)是一类以序列(sequence)数据为输入,在序列的演进方向进行递归(recursion)且所有节点(循环单元)按链式连接的递归神经网络(recursive neural network)。
RNN之所以称为循环神经网路,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐藏层之间的节点不再无连接而是有连接的,并且隐藏层的输入不仅包括输入层的输出还包括上一时刻隐藏层的输出。
对于BP算法,CNN(卷积神经网络)我们会发现, 他们的输出都是只考虑前一个输入的影响而不考虑其它时刻输入的影响。而RNN它不仅考虑前一时刻的输入,而且赋予了网络对前面的内容的一种’记忆’功能.
RNN结构
RNN理论推导_第1张图片可以看到RNN层级结构较之于CNN来说比较简单, 它主要有输入层,Hidden Layer, 输出层组成.并且会发现在Hidden Layer 有一个箭头表示数据的循环更新, 这个就是实现时间记忆功能的方法.
接着,将隐藏层的具体结构展开。
RNN理论推导_第2张图片如图2所示为Hidden Layer的层级展开图. t-1, t, t+1表示时间序列. X表示输入的样本. St表示样本在时间t处的的记忆。
在这里插入图片描述
W表示输入的权重, U表示此刻输入的样本的权重, V表示输出的样本权重.在t =1时刻, 一般初始化输入S0=0, 随机初始化W,U,V, 进行下面的公式计算:
RNN理论推导_第3张图片
其中,f和g均为激活函数. 其中f可以是tanh,relu,sigmoid等激活函数,g通常是softmax也可以是其他。可以推出最终的公式。
RNN理论推导_第4张图片
注意: 1. 这里的W,U,V在每个时刻都是相等的(权重共享).
2. 隐藏状态可以理解为: S=f(现有的输入+过去记忆总结)
RNN前向传播
RNN理论推导_第5张图片
RNN理论推导_第6张图片
RNN反向传播
仍然利用梯度下降法更新参数的值,我们的目的是寻找合适的U,W,V,b,c。以使得代价函数的值最小。因为RNN的输入数据是序列数据。因此代价函数与时间有关。即
RNN理论推导_第7张图片
RNN理论推导_第8张图片RNN理论推导_第9张图片

你可能感兴趣的:(神经网络,python,深度学习,算法)