美文网首页
深度学习(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