Recurrent Neural Network
相比于一般的神经网络,比如MLP(Full-connection Neural Network),RNN是一种用于处理序列数据的神经网络,它能处理序列变化的数据。比如一个单词在上下文中的会有的不同含义。它能很好地处理这类问题。
RNN简介
Naive RNNx为当前的输入状态
h为接收的上一节点的输入数据
y为当前节点状态下的输出
h'为传递到下一节点的输出
LSTM简介
长短期记忆(LSTM)是一种特殊的RNN, 主要是为了 解决长序列训练过程中的梯度消失和梯度爆炸的问题。相比普通的RNN,LSTM能够在更长的序列里有更好的表现。
普通RNN和LSTM结构对比相比RNN只有一个传递状态,LSTM有两个,一个(cell,state),一个(hidden state)。(RNN中的对应于LSTM中的)
其中对于要传递的,状态改变很慢,通常输出的是上一个状态传过来的加上一些数值。而则在不同节点下往往会有很大的区别。
深入LSTM的结构
首先,使用LSTM的当前输入和上一个状态传递下来的拼接训练得到四个状态。
四个状态、、都是拼接向量乘以权重矩阵后,通过一个sigmoid激活函数转换成0到1之间的数值,来作为一种门控状态。
而z是将结果通过tanh激活函数转换成0到1之间的数值。
进一步介绍这四个状态在LSTM中的使用
是Hadamard Product, 也就是操作矩阵中对应的元素相乘,两个相乘矩阵是同型的。则代表着矩阵相加。
LSTM内部主要有三个阶段:
1、忘记阶段,对上一个节点传进来的输入进行选择性忘记。
具体来说,通过计算得到的(forget),来作为忘记门控,来控制上一个状态哪些需要留,哪些需要忘记。
2、选择记忆阶段,这个阶段对这个阶段的输入进行选择性记忆。主要是对进行选择记忆。哪些重要着重记忆。
当前的输入内容有前面计算得到的z得到。
选择的门控信号是由(information)来控制。
将上面两步得到的结果相加,即可得到传输给下一个状态的也就是上图中的第一个公式。
3、输出阶段。这个阶段将决定哪些会被当成当前状态的输出。主要通过(output)来控制。
与普通RNN类似,输出往往最终也是通过变化得到。
网友评论