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

4567a614850d4b08fba8a67e16a83559.png
知乎视频​www.zhihu.com

普通神经网络的局限性:

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

46eaff342b39fdf3f14b6d8ca8193afa.png
普通神经网络

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

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

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

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

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

19840f62f3e64280bd3d6ed91c419ea9.png
单层神经网络结构特征之间没有关联

循环神经网络

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

6ece438377ce54ece68a90bff8fd5ef1.png
单层输入特征改善

218b25e3a4beae75667dd87c75821282.png
单层输入特征横向放置

其中

cd0751f264f0f1819a62ebbd23279bf7.png

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

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

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

131e4d6599a6f2573740e07cc89d981f.png

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值