美文网首页
深度学习(3)Long short term memory-LS

深度学习(3)Long short term memory-LS

作者: WallE瓦力狗 | 来源:发表于2019-03-16 16:02 被阅读0次

Recurrent Neural Network

相比于一般的神经网络,比如MLP(Full-connection Neural Network),RNN是一种用于处理序列数据的神经网络,它能处理序列变化的数据。比如一个单词在上下文中的会有的不同含义。它能很好地处理这类问题。

RNN简介

Naive RNN

x为当前的输入状态
h为接收的上一节点的输入数据
y为当前节点状态下的输出
h'为传递到下一节点的输出

RNN

LSTM简介

长短期记忆(LSTM)是一种特殊的RNN, 主要是为了 解决长序列训练过程中的梯度消失和梯度爆炸的问题。相比普通的RNN,LSTM能够在更长的序列里有更好的表现。

普通RNN和LSTM结构对比

相比RNN只有一个传递状态,LSTM有两个,一个c^t(cell,state),一个h^t(hidden state)。(RNN中的h^t对应于LSTM中的c^t

其中对于要传递的c^t,状态改变很慢,通常输出的c^t是上一个状态传过来的c^t-1加上一些数值。而h^t则在不同节点下往往会有很大的区别。

深入LSTM的结构

首先,使用LSTM的当前输入x^t和上一个状态传递下来的h^t-1拼接训练得到四个状态。

四个状态

z^fz^iz^o都是拼接向量乘以权重矩阵后,通过一个sigmoid激活函数转换成0到1之间的数值,来作为一种门控状态。

而z是将结果通过tanh激活函数转换成0到1之间的数值。

进一步介绍这四个状态在LSTM中的使用

\odot是Hadamard Product, 也就是操作矩阵中对应的元素相乘,两个相乘矩阵是同型的。\oplus则代表着矩阵相加。

LSTM内部主要有三个阶段:

1、忘记阶段,对上一个节点传进来的输入进行选择性忘记。
具体来说,通过计算得到的z^f(forget),来作为忘记门控,来控制上一个状态c^t-1哪些需要留,哪些需要忘记。

2、选择记忆阶段,这个阶段对这个阶段的输入进行选择性记忆。主要是对x^t进行选择记忆。哪些重要着重记忆。
当前的输入内容有前面计算得到的z得到。
选择的门控信号是由z^i(information)来控制。

将上面两步得到的结果相加,即可得到传输给下一个状态的c^t也就是上图中的第一个公式。

3、输出阶段。这个阶段将决定哪些会被当成当前状态的输出。主要通过z^o(output)来控制。

与普通RNN类似,输出y^t往往最终也是通过h^t变化得到。

相关文章

网友评论

      本文标题:深度学习(3)Long short term memory-LS

      本文链接:https://www.haomeiwen.com/subject/gymlmqtx.html