LSTMs的核心思想
理解LSTMs的关键就是下面的矩形方框,被称为memory block(记忆块),主要包含了三个门(forget gate、input gate、output gate)与一个记忆单元(cell)。方框内上方的那条水平线,被称为cell state(单元状态),它就像一个传送带,可以控制信息传递给下一时刻。
逐步解析LSTM
LSTM第一步是用来决定什么信息可以通过cell state。这个决定由“forget gate”层通过sigmoid来控制,它会根据上一时刻的输出ht−1和当前输入xt来产生一个0到1 的ft值,来决定是否让上一时刻学到的信息Ct−1通过或部分通过。如下:
举个例子来说就是,我们在之前的句子中学到了很多东西,一些东西对当前来讲是没用的,可以对它进行选择性地过滤。
第二步是产生我们需要更新的新信息。这一步包含两部分,第一个是一个“input gate”层通过sigmoid来决定哪些值用来更新,第二个是一个tanh层用来生成新的候选值C~t,它作为当前层产生的候选值可能会添加到cell state中。我们会把这两部分产生的值结合来进行更新。
现在我们对老的cell state进行更新,首先,我们将老的cell state乘以ft来忘掉我们不需要的信息,然后再与it∗C~t相加,得到了候选值。一二步结合起来就是丢掉不需要的信息,添加新信息的过程:
举个例子就是,在前面的句子中我们保存的是张三的信息,现在有了新的李四信息,我们需要把张三的信息丢弃掉,然后把李四的信息保存下来
最后一步是决定模型的输出,首先是通过sigmoid层来得到一个初始输出,然后使用tanh将Ct值缩放到-1到1间,再与sigmoid得到的输出逐对相乘,从而得到模型的输出。
这显然可以理解,首先sigmoid函数的输出是不考虑先前时刻学到的信息的输出,tanh函数是对先前学到信息的压缩处理,起到稳定数值的作用,两者的结合学习就是递归神经网络的学习思想。至于模型是如何学习的,那就是后向传播误差学习权重的一个过程了。
LSTM解析
最新推荐文章于 2022-11-24 21:35:16 发布