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)为哈达玛积。

  • 相关阅读:
    BZOJ 5418: [Noi2018]屠龙勇士 EXCRT+multiset
    CF1033D Divisors Pollard-rho
    BZOJ 3782: 上学路 Lucas+ExCRT+容斥+dp
    BZOJ 1951: [Sdoi2010]古代猪文 ExCRT+欧拉定理+Lucas
    Activiti介绍(一)
    Centos7卸载FastDFS6.1卸载(六)
    FastDFS整合SpringBoot(五)
    FastDFS整合nginx模块报错
    SpringBoot怎么访问html文件
    FastDFS整合普通Maven项目(四)
  • 原文地址:https://www.cnblogs.com/DslBlogs/p/13020488.html
Copyright © 2011-2022 走看看