本站原创文章,转载请说明来自《老饼讲解-深度学习》www.bbbdata.com
基础RNN循环神经网络是最简单的RNN神经网络,也是最经典的RNN神经网络
RNN许多研究都是基于基础RNN循环神经网络进一步拓展与讨论的,它是RNN入门的必学模型
本文讲解基础RNN的模型结构、运算以及如何理解基础RNN的模型的意义
本节介绍基础RNN循环神经网络的结构与计算公式,从本节可以了解RNN模型是什么
基础RNN神经网络-前言
除了Jordan、Elman神经网络,后续又基于Elman神经网络提出了许多不同的循环神经网络
为了与其它RNN模型区分,又称Elman为"经典RNN模型"或者"基础RNN模型"
在本节开始,我们讲述"基础RNN神经网络",而不是"Elman神经网络",尽管它们拥有相同的结构
为什么非要称为"基础RNN呢"?这是因为我们所讲的是"所有RNN神经网络的基础与总结",而不是"RNN的开始"
因此,我们是从"后视"的角度来讲解"基础RNN神经网络",而不是从"启始"的角度来描述"Elman模型"
这样,讲述"基础RNN模型"比讲述"Elman模型"将会更深远与更具意义
但不管怎么说,目前所说的基础RNN神经网络模型,就是Elman神经网络模型~只是看待的角度不同而已
基础RNN神经网络的结构
RNN主要用于序列数据,因此RNN每一个时刻的输入都引入了前一时刻的数据作为变量
RNN神经网络的拓扑图一般以时序形式来展示
一个包含3个时刻的RNN神经网络(即Elman神经网络)的拓扑结构图如下:
可以看到,RNN每个时刻都相当于一个三层的BP神经网络,只是同时接受了上一时刻的隐层传给本时刻的隐层作为延迟输入
因此,一个RNN模型共有三个权重和两个阈值:
👉RNN的权重:隐层权重W、D与输出权重
👉RNN的阈值:隐层阈值B与输出层阈值
每个时刻先计算当前时刻的隐层与输出,并保留隐层的值,作为下一时刻的延迟输入
基础RNN模型的计算公式
RNN神经网络在t时刻的输出的计算公式如下:
其中:
:隐层的激活函数,一般取为tanh或ReLu函数
:网络(实时)输入层到隐层的权重
:网络延迟输入(即上一时刻的隐层)到隐层的权重
:网络隐层的阈值
:网络隐层到输出层的权重
:网络隐层到输出层的阈值
按上述公式循环计算,就可以得到每一时刻的输出
关于延迟输入的初始值
由于第一个时刻并没有"上一时刻",所以第一个时刻的延迟输入需要自行初始化,
一般将初始时刻的延迟输入初始化为0,即
本节讲解如何理解RNN循环神经网络,进一步加深对RNN的理解
RNN循环神经网络的两种理解
如上文所述,RNN在t时刻接收、上一时刻的隐层输出作为实时、延时输入,用于预测t时刻的输出
为什么RNN要设计成这样呢?一般可以从以下两方面理解RNN模型的意义:
👉理解角度一:从输入信息的角度理解RNN
由RNN的提出初衷(参见Elman神经网络),RNN的意义如下:
由于是预测序列,所以RNN在预测的时候,不仅参考当前输入,还需要参考上一时刻的输出信息
而上一时刻的信息不直接使用输出 ,而是用"生成"的隐节点,这样能使信息更加原始
这种理解是相对原始、相对直接的,它直指RNN每时刻所考虑的输入因素
👉理解角度二:从隐信息的角度理解RNN
随着RNN的发展,人们又产生了如下的方式去理解RNN模型的意义:
RNN假设有一组可构成的隐信息(以隐节点来表示)
先初始化隐信息,然后每一个时刻,都用当前时刻的输入信息来更新隐节点
由于每个时刻都用输入来更新隐节点,因此隐节点承载了过去所有时刻的信息,再用隐节点预测
这样一来,的计算公式也就代表着隐节点的更新规则
与的权重的意义就可以解释为"最新信息与历史信息相结合时的权重"
End