↓ 跳过正文
  1. Posts/

Long Short-Term Memory (LSTM) 网络 学习笔记

·761 字·2 分钟

参考资料:
#

维基百科_长短期记忆(LSTM)

Understanding LSTM Networks

[译] 理解 LSTM 网络

LSTM笔记

翻译的比较一般,建议看原文….比如cell还是不要翻译成【细胞】比较好吧…让人以为和生物学的【细胞】有什么关系呢orz

说下我自己的理解:

LSTM是一种特殊的RNN,所谓RNN,也就是循环神经网络,对之前的信息存在“记忆”,可以解决带有时序性的问题。

所谓时序性的问题,简单理解就是,当前的结果依赖于之前的信息。

比如“我来自内蒙古,我能讲一口流利的____” 横线处大概率填写“蒙语”,这是因为前面的信息“内蒙古”

LSTM的全称是long short term memory, LSTM默认就可以记住长期信息,从而实现信息的持久化。

LSTM的本质是一种构造法,通过特定的设计完成信息的持久化。

LSTM有如下结构:

1、cell单元
#

最基本的单元,从上一个时间节点到当前时间节点是线性控制的。LSTM能够通过门结构增加或者减少信息。

门结构上有sigmoid层(输出 0 到 1)作用,信息通过乘上一个 0 到 1 的系数来决定能够通过多少信息。

LSTM 核心神经元与状态传送带

2、forget门
#

forget门决定有多少历史信息能够通过,这一层通过 \( h_{t-1} \) 和 \( x_t \) 决定,作用到 \( C_{t-1} \) 上:

$$ f_t = \sigma(W_f x_t + U_f h_{t-1} + b_f) \in [0, 1] $$

3、input门和新的cell
#

input门是一个sigmoid层决定需要更新多少信息,新的cell是一个tanh层决定要添加多少信息进入记忆单元cell:

$$ i_t = \sigma(W_i x_t + U_i h_{t-1} + b_i) $$

$$ \tilde{C}_t = \tanh(W_c x_t + U_c h_{t-1} + b_c) $$
LSTM 门控系统计算详情

4、更新记忆单元
#

forget门作用在 \( C_{t-1} \) 上,input门和新的候选状态结合加入组合成新的记忆单元:

$$ C_t = f_t \odot C_{t-1} + i_t \odot \tilde{C}_t $$

5、output门
#

添加sigmoid的output门决定cell单元的信息有多少输出,而cell上套一个tanh使输出在 -1 到 1 之间:

$$ o_t = \sigma(W_o x_t + U_o h_{t-1} + b_o) $$

$$ h_t = o_t \odot \tanh(C_t) $$
LSTM 状态更新与隐藏状态输出

相关文章

stanford cs 231n:常用激活函数

·2596 字·6 分钟
其实我觉得这部分可以直接黑箱。。。直接无脑上Leaky ReLU或者Maxout?不过对这些激活函数的特点有个high-level的了解应该总是没坏处的,只要别太纠结细节就好了吧。。 # 每个激活函数(或非线性函数)的输入都是一个数字,然后对其进行某种固定的数学操作。下面是在实践中可能遇到的几种激活函数: