LSTM理论学习

  • 理论参考链接:Understanding LSTM Networks:简明易懂,网友翻译版

    LSTM最关键的就是实现cell state的传输,而gate的存在决定传输过程中,以前的cell state信息多少需要抛弃,多少输入信息需要加入新的cell state,多少信息需要输出。(所以有forget, input, output三个gate)

    1. 忘记多少cell state:forget gate 观察上一个时刻的hidden state和此刻的输入x,决定需要忘记上一个时刻的cell state多少信息(0表示全忘记,1表示全记住)
    2. 增加多少输入信息:input gate观察上一个时刻的hidden state和此刻的输入x,决定需要将多少信息增加到此刻的cell state
    3. 候选cell state:观察输入的上一个时刻的hidden state和此刻的输入x,用tanh激励函数转换
    4. 如何更新cell state:将forget gate乘以上一刻的cell state,将input gate乘以此刻的候选cell state,得到新的cell state
    5. 输出多少cell state:output gate观察上一个时刻的hidden state和此刻的输入x,决定需要将多少cell state输出
    6. 输出信息:将forget gate乘以此刻的tanh(cell state)

    input的大小是

    1x
    ,hidden state和cell state的大小是
    1d
    , weight matrix的大小是
    Rn+dRd
    , 其中d就是num_lstm_units。

    ​ 关于以上size的参考stackoverflowquora Dan Elton的回答

    LSTM的参数数量,参考stackoverflow:4d*(n+d),d是num_lstm_units,n是input的维度。

  • 讲述LSTM的Forward和Backward的过程:Arun 的github博客

  • 一百多行代码用python实现Lstm的8位加法器,每行代码都有详细讲解,并辅以gif:https://iamtrask.github.io/2015/11/15/anyone-can-code-lstm/

  • 一百多行实现原始的RNN 网络,用于处理character-level language来自karpathy github: min-char-cnn

  • LSTM的python实现讲解

  • tensorflow RNN cell的源码

  • Visualizing and Understanding Recurrent Networks

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值