LSTM解析

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ZHANG2012LIANG/article/details/78956483

LSTM 学习笔记
Long Short-Term Memory(LSTM) 是一种循环神经网络(Recurrent Neural Network, RNN)
Sepp Hochreiter和Jürgen Schmidhuber早在1997年就在论文“Long Short-Term Memory”提出了LSTM。

LSTM 的关键就是细胞状态,水平线在图上方贯穿运行。
LSTM 通过精心设计的称作为“门”的结构来去除或者增加信息到细胞状态的能力。门是一种让信息选择式通过的方法。他们包含一个 sigmoid 神经网络层和一个 pointwise 乘法操作。

  1. 完美概述LSTM的到来:进化史博客
    (1) rnn结构的BPTT学习算法存在的问题
    (2) 增加forget gate
    (3)Gers & Schmidhuber (2000) 提出的,增加Peephole的LSTM结构:我们让 门层 也会接受细胞状态的输入,另一个改动较大的变体是 Gated Recurrent Unit (GRU),这是由 Cho, et al. (2014) 提出。它将忘记门和输入门合成了一个单一的 更新门。同样还混合了细胞状态和隐藏状态,和其他一些改动。最终的模型比标准的 LSTM 模型要简单,也是非常流行的变体。

  2. LSTM模型理论总结(产生、发展和性能等)
    讲得很好,完美的解释了原文如何提出CEC(constant error carrousel)博客

    但是这篇文章没有怎么解释原始论文为何在CEC基础上添加了inputgate和outputgate,因为存在输入输出处权值更新(原文作者的原话,本段末尾后面进行一些解释)的冲突,所以加上了两道控制门,分别是input gate, output gate,来解决这个矛盾,CEC实在是太 naive 了,它其实就是个线性的模型,学习能力太弱,大意就是对于神经元的权重w ,不同的数据x所带来的更新是不同的,这样可能会引起冲突(比如有些输入想让权重变小,有些想让它变大)。网络可能需要选择性地“忘记”某些输入,以及“屏蔽”某些输出以免影响下一层的权重更新。为了解决这些问题就提出了“门”。
    CEC+输入+输出门也就是原始的LSTM

    图中,3表示输入门(input gate);6表示输出门(output gate);4是CEC单元,可以看到它有一条到自己的权值为1的边。(这大概就是最初的 LSTM 了。
    总结一下就是,LSTM把原本RNN的单元改造成一个叫做CEC的部件,这个部件保证了误差将以常数的形式在网络中流动 ,并在此基础上添加输入门和输出门使得模型变成非线性的,并可以调整不同时序的输出对模型后续动作的影响。

  3. 从公式的角度逆向解析CEC反向传播可以保证梯度误差可以常数传递知乎文章
    也解释的遗忘门的作用,也就是替代原先隐含层到隐含层的权重。遗忘门f,这个在最初的lstm中是没有的,就像第一张图那样;后来加上了遗忘门就可以更好的协调输入+历史隐层 和 历史记忆单元中的信息分配。从直观上看也就是计算sc(t)时sc(t-1)的系数由原本的1变成了遗忘门,取值区间[0,1](离散)。

  4. LSTM为什么可以解决长期依赖(Long-Term Dependencies)问题
    LSTM把原本RNN的单元改造成一个叫做CEC的部件,这个部件保证了误差将以常数的形式在网络中流动 ,并在此基础上添加输入门和输出门使得模型变成非线性的,并可以调整不同时序的输出对模型后续动作的影响。

    LSTM 的关键就是细胞状态,水平线在图上方贯穿运行(保证了Long term memory);LSTM 有通过精心设计的称作为“门”的结构来去除或者增加信息到细胞状态的能力,通过一系列non-linear 操作, 负责short term memory

猜你喜欢

转载自blog.csdn.net/ZHANG2012LIANG/article/details/78956483