RNN-循环神经网络

【原理】基础RNN循环神经网络

作者 : 老饼 发表日期 : 2024-04-05 00:16:51 更新日期 : 2024-04-12 19:51:16
本站原创文章,转载请说明来自《老饼讲解-深度学习》www.bbbdata.com




基础RNN循环神经网络是最简单的RNN神经网络,也是最经典的RNN神经网络

RNN许多研究都是基于基础RNN循环神经网络进一步拓展与讨论的,它是RNN入门的必学模型

本文讲解基础RNN的模型结构、运算以及如何理解基础RNN的模型的意义




    01.基础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,








    02.如何理解RNN循环神经网络的意义   




本节讲解如何理解RNN循环神经网络,进一步加深对RNN的理解




     RNN循环神经网络的两种理解     


如上文所述,RNN在t时刻接收、上一时刻的隐层输出作为实时、延时输入,用于预测t时刻的输出
    
  为什么RNN要设计成这样呢?一般可以从以下两方面理解RNN模型的意义:
 👉理解角度一:从输入信息的角度理解RNN                                                                                                      
 由RNN的提出初衷(参见Elman神经网络),RNN的意义如下:                                             
 由于是预测序列,所以RNN在预测的时候,不仅参考当前输入,还需要参考上一时刻的输出信息     
      而上一时刻的信息不直接使用输出 ,而是用"生成"的隐节点,这样能使信息更加原始          
 这种理解是相对原始、相对直接的,它直指RNN每时刻所考虑的输入因素                               
 👉理解角度二:从隐信息的角度理解RNN                                                                                                         
 随着RNN的发展,人们又产生了如下的方式去理解RNN模型的意义:                                    
RNN假设有一组可构成的隐信息(以隐节点来表示)                                                                               
先初始化隐信息,然后每一个时刻,都用当前时刻的输入信息来更新隐节点                                          
  由于每个时刻都用输入来更新隐节点,因此隐节点承载了过去所有时刻的信息,再用隐节点预测              
 
这样一来,的计算公式也就代表着隐节点的更新规则                   
 的权重的意义就可以解释为"最新信息与历史信息相结合时的权重"                                           









 End 









联系老饼