LSTM 为什么能保存长期记忆呢?想不明白呀 :-(

求解释!


提问人:舟 3332,2018-4-17 11:02:52

参考《deep learning》中文版,“循环和递归网络” 一章。基本原理是这样的。
LSTM 是一种 RNN。循环神经网络是一种专门用于处理序列的神经网络。

他的计算图的两种形式

  • 回路原理图(循环图)
    • h (t) = f ( h (t-1), x (t), 参数组)
      h (t) 作为过去序列的有损摘要,可能比较简单(例如统计语言建模中,根据上一个词预测下一个词);也可能比较丰富,能大致恢复输入序列(例如自编码器)
  • 展开计算图
    • h (t) = g (t) (x (t), x (t-1), … x (2), x (1))
      能够明确描述其中的计算流程
      通过显示的信息流动路径,说明信息在时间上向前(计算损失和输出)和向后(计算梯度)的思想

long short-term memory (LSTM) 内部有一个类似渗漏单元的状态变量,用于记忆信息

  • h (t) = q (t) * atanh (s (t))
  • s (t) = f (t) * s (t-1) + g (t) * input (t)

input (t) 是类似 RNN 的输入,包含 x 和 h (t-1) 注意这里的 h (t-1)

f (t) 是遗忘门, g (t) 是输入门, q (t) 是输出门,它们的形式都是 sigmoid ( 偏置 + x (t)*权重 + h (t-1)*权重))
输入和各种门都是 仿射变换 和 一个非线性映射的形式


心有猛虎,发表于 2018-4-17 11:49:02

請上 youtube 搜尋: Sequence-to-sequence Learning 尋找李宏毅的視頻 前半部分有很好的解釋


isly831130,发表于 2018-4-17 14:48:34

搞清楚 3 个门的作用,根据流程过一遍就好了,推荐吴恩达的视频,网易课堂有,如果一遍不行多过几遍。


2764,发表于 2018-4-17 17:54:07

推荐你去看吴恩达的课,讲的很详细


M 丶 Sulayman,发表于 2018-4-17 18:06:58

国内的网易云课堂就有带中文翻译的视频,很不错。


李双峰,发表于 2018-4-17 18:30:39

主要是 3 个门的作用,他们会自动学习到哪些应该遗忘哪些应该记忆。


zhanys_7,发表于 2018-7-3 17:51:11

搜一下回路原理图,重点看看三个门的流动,你会明白的


neverchange,发表于 2018-7-3 18:09:39

其实我觉得你可以看一下简书的那个 rnn 的介绍,解释的很详细,当然感觉像是人的猜测哈哈哈,这就是为何 gru 我有点看不懂


ViolinSolo,发表于 2018-7-3 20:42:13