循环神经网络_漫谈循环神经网络:RNN

循环神经网络_漫谈循环神经网络:RNN_第1张图片
知乎视频​www.zhihu.com

普通神经网络的局限性:

学习循环神经网络,首先得有普通神经网络的基础,而普通神经网络的结构图如下:

循环神经网络_漫谈循环神经网络:RNN_第2张图片
普通神经网络

神经网络可以理解为拟合器,通过大量数据训练去拟合模型,当然这也会存在许多问题,因此也没有一个神经网络结构能够用于所有领域。

虽然可以证明有隐藏层的神经网络理论上可以逼近任何函数,但是普通神经网络的结构在处理时序数据时有着它的局限性:

  • 输入,输出需要为固定长度的数据
  • 不能识别同一个词汇在文本中的不同位置

所谓时序数据,即数据的先后之间按时间步展开是有相互影响的,如果我们要用神经网络处理时序数据,将一段文本作为特征喂入神经网络,那么这些特征之间也应该是有相互关系的。

普通神经网络单层结构之间并不存在联系,这就导致普通神经网络不能有效地处理时序数据,比如文本,再比如音频等。而这种局限性是由它自身的结构造成的。

循环神经网络_漫谈循环神经网络:RNN_第3张图片
单层神经网络结构特征之间没有关联

循环神经网络

所以我们很自然地想给单层神经网络结构的输入特征之间也加上相互关系,借鉴了横向传递激活函数的方法,纵向也设置激活函数进行传递。假如仅考虑输入特征层,网络结构改变如下:

循环神经网络_漫谈循环神经网络:RNN_第4张图片
单层输入特征改善

循环神经网络_漫谈循环神经网络:RNN_第5张图片
单层输入特征横向放置

其中

cd0751f264f0f1819a62ebbd23279bf7.png

a为纵向传播(按时间步进行传递),y为横向传播,输出结果。x是一系列时序数据,所以上图也被称为“按时间步展开图”。

这就是循环神经网络的基本结构,它使得输入的时序数据之间也能够相互影响,虽然这种影响是单向的,即传递顺序是从左到右而不能从右到左。

上述是前向传播的具体过程,相应的反向传播亦借鉴了普通结构的神经网络:

循环神经网络_漫谈循环神经网络:RNN_第6张图片

需要注意的是,其中训练的参数是w和b,而不是a和y,因此最终的循环神经网络模型也是由循环神经网络的结构以及参数w和b组成的。

通过大量数据的训练,神经网络会根据之前时刻的所有数据来预测下一时刻的数据,比如词语“蓝天__",神经网络会很容易得出应填入”白云“。

你可能感兴趣的:(循环神经网络)