【Deep Learning】LSTM(Long Short-Term Memory)及变体
2017-07-18 10:26
232 查看
通过对RNN理解的基础上(具体可见:【Deep Learning】循环神经网络推导和实现),可以进一步了解LSTM(LongShort-Term Memory,其出现的原因是为了解决RNN对长依赖的句子上表现不好的情况。其本质是通过合理的激活一些信息,避免距离成为信息强度的决定性因素,目前LSTM除了原来的结构外,还衍生出了很多变体。
一、RNN与LSTM结构图
通过前一节我们知道RNN的结构图如下:
LSTM的一般结构:
可以观察到, LSTM和普通的RNN相比,多了几个门。在上图中,各个节点的具体说明如下所示:
二、设计思想
LSTM引入了一个门的概念,设计LSTM的目的就是要通过“门”来控制信息的传递,从而能够实现激活long-term的信息。其中一种简单的方式就是通过两个矩阵的点乘,即将两个大小完全一致的矩阵,对应位置相乘,那么如果存在一个矩阵的数值范围是[0,1],点乘我们就可以理解为0是抑制对信息不放行,1是激活对信息放行。cell信息的位置就是水平的那条线,如下图所示:
对于上图中的每一个x表示的就是点乘,我们可以将其视为LSTM中的一个门,所以门的存在是为了阻止/放过信息的。
三、门介绍
①遗忘门,其控制cell的信息传递的,而控制cell的信息可以通过上一轮隐藏层的输出 ht−1和这一轮的输入xt决定,从名字上可以知道这个一个遗忘门,决定信息是否被记住或者是遗忘掉,所以激活函数为sigmoid,保证输出值为[0,1],如下图:
②输入门,其功能是用来控制在输入信息中( ht−1,xt )有哪些信息可以加到cell中,可以看到通过输入信息通过sigmoid函数来设置遗忘门,以及输入信息通过tanh函数,最终它们进行点乘,达到可以保留相应信息的目的,如下图:
通过上面的操作,cell的信息更新就完成了,即把上面获取的信息通过下图的方式进行操作,如下图:
③输出门,到目前为止,我们已经得到了更新后的cell的信息,输出门是决定cell中n哪些信息可以得到输出,同样先让输入信息通过sigmoid函数来设置遗忘门,然后让cell通过tanh函数,最后进行点乘决定哪些信息可以输出,如下图:
至此,纯种的LSTM就完成了,可以发现真的不难,下面是一些LSTM的变体。
四、LSTM变体
①允许三个门都能看到cell的信息,即cell中的信息参与到每一个门的创建中,如下图:
②在信息传递的过程中对于cell信息遗忘和保持是相对的,即如果了遗忘一些信息,那么就相对的另外一部分信息,在逻辑上为:输入门 = 1 - 遗忘门,如下图:
③GRU(Gated RecurrentUnit),这个结构是将cell去掉了,使用 ht−1替代了cell的功能,即cell与输出ht-1是一样的,如下图:
参考:
①Understanding LSTM Networks
一、RNN与LSTM结构图
通过前一节我们知道RNN的结构图如下:
LSTM的一般结构:
可以观察到, LSTM和普通的RNN相比,多了几个门。在上图中,各个节点的具体说明如下所示:
二、设计思想
LSTM引入了一个门的概念,设计LSTM的目的就是要通过“门”来控制信息的传递,从而能够实现激活long-term的信息。其中一种简单的方式就是通过两个矩阵的点乘,即将两个大小完全一致的矩阵,对应位置相乘,那么如果存在一个矩阵的数值范围是[0,1],点乘我们就可以理解为0是抑制对信息不放行,1是激活对信息放行。cell信息的位置就是水平的那条线,如下图所示:
对于上图中的每一个x表示的就是点乘,我们可以将其视为LSTM中的一个门,所以门的存在是为了阻止/放过信息的。
三、门介绍
①遗忘门,其控制cell的信息传递的,而控制cell的信息可以通过上一轮隐藏层的输出 ht−1和这一轮的输入xt决定,从名字上可以知道这个一个遗忘门,决定信息是否被记住或者是遗忘掉,所以激活函数为sigmoid,保证输出值为[0,1],如下图:
②输入门,其功能是用来控制在输入信息中( ht−1,xt )有哪些信息可以加到cell中,可以看到通过输入信息通过sigmoid函数来设置遗忘门,以及输入信息通过tanh函数,最终它们进行点乘,达到可以保留相应信息的目的,如下图:
通过上面的操作,cell的信息更新就完成了,即把上面获取的信息通过下图的方式进行操作,如下图:
③输出门,到目前为止,我们已经得到了更新后的cell的信息,输出门是决定cell中n哪些信息可以得到输出,同样先让输入信息通过sigmoid函数来设置遗忘门,然后让cell通过tanh函数,最后进行点乘决定哪些信息可以输出,如下图:
至此,纯种的LSTM就完成了,可以发现真的不难,下面是一些LSTM的变体。
四、LSTM变体
①允许三个门都能看到cell的信息,即cell中的信息参与到每一个门的创建中,如下图:
②在信息传递的过程中对于cell信息遗忘和保持是相对的,即如果了遗忘一些信息,那么就相对的另外一部分信息,在逻辑上为:输入门 = 1 - 遗忘门,如下图:
③GRU(Gated RecurrentUnit),这个结构是将cell去掉了,使用 ht−1替代了cell的功能,即cell与输出ht-1是一样的,如下图:
参考:
①Understanding LSTM Networks
相关文章推荐
- LSTM(Long Short-Term Memory)长短期记忆网络
- [译] 理解 LSTM(Long Short-Term Memory, LSTM) 网络
- 『RNN 监督序列标注』笔记-第四章 LSTM(Long Short-Term Memory)
- LSTM(Long Short-Term Memory)和LSTM例子理解
- 循环神经网络(RNN)之LSTM(Long Short Term Memory networks)
- 从 RNN 到 LSTM (Short-Term Memory)
- 有哪些LSTM(Long Short Term Memory)和RNN(Recurrent)网络的教程?
- Python写出LSTM-RNN(Long-Short Term Memory Recurrent Neural Networks )的代码
- LSTM(Long-Short Term Memory)
- Long-Short-Term-Memories(LSTM)
- 时间递归神经网络LSTM(Long-Short Term Memory)
- 【Deep Learning】Long short-term memory units, LSTMs
- LSTM(Long Short Term Memory)和RNN(Recurrent)教程收集 (知乎)
- 有哪些LSTM(Long Short Term Memory)和RNN(Recurrent)网络的教程?
- 论文笔记:Learning to Detect Violent Videos using Convolutional Long Short-Term Memory
- LSTM网络(Long Short-Term Memory )
- 理解长短期记忆(Long Short Term Memory, LSTM)模型(colah 原文翻译)
- 一个关于LSTM的high-level介绍(但是很好):A Gentle Introduction to Long Short-Term Memory Networks by the Experts
- Long short-term memory 论文小记
- YJango的循环神经网络——实现LSTM YJango的循环神经网络——实现LSTM YJango YJango 7 个月前 介绍 描述最常用的RNN实现方式:Long-Short Term Me