递归神经网络有两种类型:Jordan network和Elman network,现在常用的RNN(包括LSTM、GRU等等)都是用Elman network。
它们都是很久以前的奠基性工作了,所以都是基于最浅的三层网络结构定义的。
背景
简单循环网络(simple recurrent networks,简称SRN)又称为Elman network,是由Jeff Elman在1990年提出来的。Elman在Jordan network(1986)的基础上进行了创新,并且简化了它的结构,最终提出了Elman network。Jordan network和Elman network的网络结构如下图所示。
它们的区别是:
- Elman network的一个recurrent层的输出经过时延后作为下一时刻这一层的输入的一部分,然后recurrent层的输出同时送到网络后续的层,比如最终的输入层。
- 而Jordan network则直接把整个网络最终的输出(i.e. 输出层的输出)经过时延后反馈回网络的输入层。
现在一般说的RNN(包括LSTM、GRU等等)都是用Elman network,如下图。
图中a1、a2就是recurrent层的输出(作为下一时刻这一层的输入的一部分),而y1、y2是最终的输出。
图中h就是LSTM单元的输出hidden state(作为下一时刻这一层的输入的一部分)。
Elman network相比Jordan network的优势:
Jordan network和Elman network都可以扩展应用到深度学习中来,但由于Elman network的结构更易于扩展(Elman network的每一个循环层都是相互独立的,因此网络结构的设计可以更加灵活。另外,当Jordan network的输出层与循环层的维度不一致时还需要额外的调整,而Elmannetwork则不存在该问题。),因此当前主流的循环神经网络都是基于Elman network的,所以,通常我们所说的循环神经网络(RNN),默认指的就是Elman network结构的循环神经网络。