您的位置:首页 > 理论基础 > 计算机网络

【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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息