LSTM
隐变量模型,隐藏变量存在一个问题,就是长期信息的保存,和短期输入的缺失。
长期信息的保存可以理解,一系列的序列预测后,最开始的序列信息早已经在模型里失去了。短期信息的输入缺失,这倒是难以理解了。
设计灵感来自计算机的逻辑门,逻辑门。
对于信息的保存,lstm可能引入了记忆单元一样的小组件,然后对于这个记忆单元的使用,则设计了3个门来控制这个记忆单元。
这三个门分别是,输出门,控制记忆单元输出,输入门,控制记忆单元的输入,遗忘门,重置单元的内容。
这三个门的公式和GRU的差不都都是
公式1:
Ot = activate(XtWxo + Ht-1Who + Bo)
It = activate(XtWxi + Ht-1Whi + Bi)
F = activate(XtWxf + Ht-1Whf + Bf)
也就是Xt和Ht-1的输入,作为门的输入控制。
还有候选记忆单元C
公式2
Ct-=tanh(XtWxc + Ht-1Whc + Bc)
对于新的记忆实体
公式3
Ct = Ft O Ct-1 + It O Ct-
其中这里的遗忘门控制着需要忘记多少过去的记忆,It则控制要接受多少新的记忆。
公式4
Ht = Ot O Ct
这里输出门发挥作用,就i是将有效的记忆传递给预测部分的隐状态,但是!
输出门这里可以为0,或者接近0,这样的可以保留记忆信息,但是不需要更新隐状态。
图
后面则是实现的部分。not gonna implement it