基于序列的模型-扩展
基于序列的主要模型
一、简单循环神经网络RNN
和一个普通神经网络相比,一个RNN神经网络单元的特点是会将上一个时间步的激活函数值传递给下一个时间步作为输入的一部分。
激活函数(Activation Function),是一种添加到人工神经网络中的函数,旨在帮助网络学习数据中的复杂模式。类似于人类大脑中基于神经元的模型,激活函数最终决定了要发射给下一个神经元的内容。 在人工神经网络中,一个节点的激活函数定义了该节点在给定的输入或输入集合下的输出。
图1
如图1所示,a<0>是循环神经网络的初始激活函数,一般会设置为0。
循环神经网络中模型输入X按照x<1>,x<2>,x<3>,……,x<n>的顺序依次进行运算,由x<1>得到预测结果y‘<1>,此时的激活函数a<1>会传递到下一步x<2>,作为下一步输入的一部分得到y’<2>,依次类推,可以得到所有预测值。
二、长短期记忆模型LSTM(Long Short Term Memory)
由于简单RNN在处理长序列问题时,久远的输入信息差异无法被记忆,会导致梯度消失问题。例如以下一个简单的例子:
The cat, which already ate ………..,was full;
The cats, which already ate ………..,were full.
第一个句子主语是cat所以要用was,第二个主语是cats, 所以要用were,但由于中间还有很多单词,所以模型可能会忘记前置信息导致输出出错。
长短期记忆模型在简单RNN的基础上做了改进,使得LSTM单元拥有了细胞状态,细胞状态取值负责记忆长期信息,而激活函数值负责记忆短期信息。
简单来说,LSTM通过一条主线(图2LSTM中上面的那条连通的带箭头的有向线,即图3中的Ct),三个门来处理序列信息;每个时刻主线上都会加入新时刻的数据,然后将主线上的上的数据输出并传递给下时刻。如图2所示。
图2
门(Gate)可以让信息有选择的通过:
(1)遗忘门(Forget Gate),下图3中红色框为遗忘门,遗忘门的作用就是决定当前单元需要丢弃哪些信息;
(2)输入门(Input Gate),下图3中蓝色框为输入门,输入门的作用就是决定当前单元需要添加哪些信息;在输入门、遗忘门之后, 需要更新单元状态, 如上图中的黄色框;
(3)输出门 (Output Gate),下图3中绿色框为输出门,输出门的作用就是决定当前单元需要输出哪些特征信息。
经过LSTM的三个门以及更新单元状态,实现了长期记忆功能,同时解决了RNN的梯度弥散和梯度爆炸现象。
图3
三、编码-解码模型(encoder-decoder)
上篇文章《基于序列的模型》中详细解释了,此处不再赘述。