LSTM是RNN的一种变体,它拥有着解决长期依赖问题的能力。

       与RNN相比,LSTM用cell取代了内部存储,它将数据维护在这个cell中,被称为cell state。这个cell state贯穿整个LSTM架构,仅仅只有少量的线性交互,这就使得信息可以在传递的过程中保持不变。

                                                             

       此外,相比于RNN仅有1个网络层,LSTM拥有着4个,它们以特别的方式进行交互。一个标准的LSTM单元由以下4个部分构成。

                                                 

       Forget Gate
       首先,在新数据传入LSTM时,我们要决定哪些旧数据需要从cell state中扔掉。这个就是由forget gate决定的,它是一个sigmoid函数层。

                                          

      Input Gate

      第二步是决定哪些新的信息需要被存储进cell state,分为两个步骤。首先,一个sigmoid函数层,即inpu gate会决定哪些值需要被更新;然后,一个tanh函数层会创建一个向量,作为加入到cell state的候选值。

                                          

       Cell
       现在我们可以更新cell state了,这同样分为两步。首先,我们从cell state移除掉我们在forget gate决定的信息;然后,我们以决定对每一个状态值更新的比例来加入input gate计算出的候选值。

                                             

        Output Gate
        最后,我们决定将要输出的部分。输出是基于新的cell state,同时进行适当的处理。首先,我们通过一个sigmoid函数层来决定cell state中有哪些部分需要被更新,然后,我们将cell state经过一个tanh函数处理(其目的是使得数值落在(-1,1)区间内),并将其余sigmoid层的输出相乘,从而决定输出的部分。

                                         

 

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐