论文解读A Critical Review od Recurrent Neural Networks for Sequence Learning
解读A Critical Review of Recurrent Neural Networks for Sequence Learning
整体内容一览
现有的关于RNN这一类网络的综述很少,并且论文之间的符号不匹配,这篇文献是为了RNN而做的综述。作者从最简单的前馈神经网络讲起,依次介绍了RNN的历史及发展,LSTM的结构以及现代RNN的应用。
前馈神经网络
传统的前馈神经网络,信息只能从输入层流向隐藏层,再流向输出层,虽然能够进行分类和回归,但是这些都是假设数据之间是iid(独立同分布的),因为无法胜任那些数据之间是依赖的序列问题,所以无法解决带有时序性的问题。
RNN的早期历史及发展
RNN并不是第一个捕捉时间依赖的模型,隐马尔可夫模型(HMM)的出现,使得解决的问题应满足两个条件:(1)问题是基于序列的,比如时间序列或状态序列;(2)问题包含两类数据,一类序列数据是可以观测到的,即观测序列;而另一类数据是不能观察到的,即隐藏状态序列,简称状态序列。
下图为RNN的发展历程,Jordan网络和Elman网络为LSTM的出现做了铺垫,因为它们开始将隐藏层作为输入。Jordan网络和Elman网络的区别就在于究竟在那一层进行循环,Jordan选择了在输出层,而Elman选择了在隐藏层。
现代RNN——LSTM的结构
原始RNN的隐藏层只有表示短期记忆的状态h,对于短期输入非常敏感;LSTM增加了一个单元状态c,用来保存长期记忆。如下图所示:
单元状态c顺着整个链条从头到尾运行,中间只有少许线性的交互,信息顺着它不断向前流动。如下图所示:
下图为LSTM的结构图,其中g为单元的输入**,i为输入门**,f为遗忘门**,o为输出门**,s为单元状态记忆,h为输出。
在数学上的描述:状态s可以理解为旧状态s_t-1与f_t相乘,丢弃掉确定要丢弃的信息,加上i_t*g_t,作为新的候选值来更新状态,是一个memorizing和forgetting的过程。
LSTM结构详解
**LSTM的输入:**当前t时刻网络的输入值x_t,上一时刻网络的输出值h_t-1以及上一时刻的单元状态c_t-1;
**输出:**当前t时刻网络的输出值h_t以及当前t时刻的单元状态c_t.
**遗忘门:**由当前的输入x_t和上一时刻的输出h_t-1得到,决定上一时刻的单元状态c_t-1有多少可以保存到当前时刻,控制信息的遗忘程度;
输入门:往单元状态中添加新的信息,决定当前网络的输入x_t有多少可以保存到 c_t ;
输出门:控制单元状态有多少可以输出为h_t.
结论
循环神经网络克服了传统机器学习方法对数据施加的极端限制,连续实例之间的独立性假设被打破。当使用LSTM等网络的时候,我们会发现进步来自于新的架构而不是根本上新的算法,比如说从RNN到LSTM,为了解决RNN的梯度消失问题,在其原来的架构基础上增加了门的结构,形成了LSTM。
而现在解决序列问题已经出现了新的方法,比如说Attention机制和Transformer等。