zoukankan      html  css  js  c++  java
  • 简单理解LSTM

    一、RNN

    循环神经网络是一种用来处理序列数据的神经网络。相比于一般的神经网络来说,它能够处理序列变化的数据。比如某个单词的意思会因为上文提到的内容而有不同的含义,RNN就能很好的解决这类问题。

    (x^{(t)})(t)状态下数据的输入,(y^{(t)})(t)状态下的输出,(h^{(t-1)})为接收到(t-1)的输入,(h^{(t)})为传递到(t+1)状态的输出,则有:

    [h^{(t)} = 激活函数(W_1h^{(t-1)}+W_2x^{t} + b_1) ]

    [y^{(t)}=激活函数(W_0h^{t}+b_0) ]

    二、LSTM

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

    设设(x^{(t)})(t)状态下数据的输入,,(y^{(t)})(t)状态下的输出,(c^{t-1})(h^{(t-1)})为接收到(t-1)的状态输入,(c^t)(h^{(t)})为传递到(t+1)状态的输出,则有:

    忘记门门控信号:

    [f_{forget}^t = sigmoid(W_{forget}[h^{t-1},x^t]+b_{forget}) ]

    输入门门控信号:

    [f_{input-contral}^t = sigmoid(W_{input-contral}[h^{t-1},x^t]+b_{input-contral}) ]

    输入数据:

    [f_{input-data}^t = tanh(W_{input-data}[h^{t-1},x^t]+b_{input-data}) ]

    忘记门控制(c^{t-1})输入的数据加上输入门控制的输入数据构成新的(c^t)

    [c^t = f_{fortget}otimes c^{t-1} +f_{input-contral}otimes f_{input-data} ]

    输出门门控信号

    [f_{output}^t=sigmoid(W_{output}[h^{t-1},x^{t}]+b_{output}) ]

    输出门控制(c^t)后的输出

    [h^t=f_{output}^totimes tanh(c^t) ]

    最终使用激活函数输出:

    [y^t=sigmoid(Wh^t) ]

    注意:此处(otimes)为哈达玛积。

  • 相关阅读:
    与众不同 windows phone (39)
    与众不同 windows phone (38)
    与众不同 windows phone (37)
    与众不同 windows phone (36)
    与众不同 windows phone (35)
    与众不同 windows phone (34)
    重新想象 Windows 8 Store Apps 系列文章索引
    重新想象 Windows 8 Store Apps (71)
    重新想象 Windows 8 Store Apps (70)
    重新想象 Windows 8 Store Apps (69)
  • 原文地址:https://www.cnblogs.com/DslBlogs/p/13020488.html
Copyright © 2011-2022 走看看