递归神经网络(RNN)是一组特殊的神经网络,旨在按时间顺序处理数据,例如一组文本信息(文本情感分析和随后的文本内容预测)或股票市场价格。 RNN保留状态变量,这些状态变量用于捕获时间序列数据中存在的某些连接,因此可以对序列数据进行建模。除非对原始序列执行特征提取以获取一些重要信息,否则传统前馈神经网络不具有此功能。然而,提取这样的特征表达非常困难。如果使用前馈模型对顺序数据进行建模,则可以使用替代方案在序列中的每个位置设置唯一的参数级别。它旨在在特定位置指定参数,分配可以学习在该位置发生的模式,但这样做会大大增加模型的内存需求。这样的模型可能非常耗时,并且会消耗计算机资源。
RNN能够学习序列每一刻的主要原因是它们随时间共享参数,并且序列的每个输入处的状态变量随时间更新。 给定先前观察到的序列值,可以将随时间共享的这些参数与状态变量进行组合后以预测序列中的下一个值。
然后,接下来将讨论RNN的详细信息,RNN的基本功能,RNN输出的计算,参数更新的规则以及RNN的一些局限性。
如前所述,RNN维护状态变量,状态变量会随着时间而变化。当RNN接触更多数据并允许对序列数据进行建模时,就会发生这种情况。特别是,一组循环连接会随时间更新此状态变量。循环连接是RNN与前馈网络之间的主要结构差异。循环连接可以理解为RNN过去已获悉的一组保存状态之间的链接,并且已连接到RNN的当前状态变量。也就是说,循环连接根据RNN的过去存储状态更新当前状态变量,并允许RNN根据当前和先前的输入进行预测。如图5-5所示为循环连接的RNN结构图。
![](https://img-blog.csdnimg.cn/20200719201031196.png)
假定一个数据序列:
![](https://img-blog.csdnimg.cn/20200719201406585.png)
这里的x为输入值,y为输出值,可以建立它们之间的联系关系如下:
![](https://img-blog.csdnimg.cn/20200719201240267.png)
g1和g2为某种函数,意味着当前的输出y取决于产生x和y输出的模型的某个状态所呈现的状态,
是通过当前输入的
和先前状态的
计算得到的。
使用一个参数为的函数逼近器