1.概述
1.1定义
循环神经网络(Recurrent Neural Network, RNN) 是一类以序列(sequence)数据为输入,在序列的演进方向进行递归(recursion)且所有节点(循环单元)按链式连接的递归神经网络(recursive neural network)
1.2分类
对循环神经网络的研究始于二十世纪80-90年代,并在二十一世纪初发展为深度学习(deep learning)算法之一 [2] ,其中双向循环神经网络(Bidirectional RNN, Bi-RNN)和长短期记忆网络(Long Short-Term Memory networks,LSTM)是常见的循环神经网络 [3] 。
视频中主要介绍了三种比较常用的循环神经网络:
1.LSTM
2.GRU
3.Simple RNN
2.Simple RNN
Simple RNN也成为slot filling,是循环神经网络中最简单的版本。
例子:订票系统,智能客服

在这个例子中,如果我们有碰到两种情况,arrive Taipei和leave Taipei,那么就无法判断Taipei在订票系统的语境中是属于destination slot还是time of departure slot了。

因此,我们希望他有记忆力,根据上下文产生不同的output。
Memory can be considered as another input.
input之间的关系不是独立的,需要考虑前后的次序。同一个network在三个不同的时间点被使用了三次,并且,the value stored in the memory is different.

几个常用的类型:
1.Elman Network
2.Jordan Network (performance 较高)
3.Bidirectional RNN (可以是双向的)


3.LSTM
目前,当我们提起循环神经网络时,通常指的就是LSTM(Long short-term Memory),可以把它理解成比较长的short-term memory。

他和simple RNN的区别是,他的记忆可以长一些,可以通过forget gate将值存起来。
理解LSTM的重点在于,他有4个input,1个output。
4个input分别是,input、input gate、output gate、forget gate。
input通过gate的activation function后的值我们可以简化理解为0或1,即门的开或关。
计算方法:

例子:

输入是一个向量,向量中的每个纬度都有相应的权重,绿色的是他的bias,通过计算得到activation的值,对最下面的是输出一个具体的值,对gate是输出0/1,即开/关,具体公式详见上一张图。

因此,LSTM有一个缺点,就是四倍的参数量(4 times of parameters)。因为他需要额外三个参数来控制三个gate。



总之,LSTM在真实的情境中是一个非常复杂的东西,并且,This is quite standard now。不过好在,Keras can handle it。
4.GRU
GRU(Gated Recurrent Unit) 是LSTM的简化版,比LSTM少了一个gate,但是该循环神经网络的性能和LSTM差不多,所以在一些情况中是一个比较好的选择。
本文介绍了循环神经网络(RNN)的基础知识,包括SimpleRNN、LSTM和GRU。LSTM因其能处理长期依赖问题而成为RNN的主流,其工作原理涉及input、output、forget gates,而GRU作为LSTM的简化版,性能接近但参数更少。文章还提及了在实际应用中如何选择合适的RNN变体。
420

被折叠的 条评论
为什么被折叠?



