LSTM 怎样决定「遗忘」

由于提到了LSTM及其变种, 所以遗忘的根据会来自不同的考虑因素,但是基本思想是一样的,只根据两部分数据来决定(因为只有这两个信息可用了,如果出现了其他更加复杂的变种,有其他的信息可以用,也可以加入进来):
1. 当前step下的新的输入。
2. 历史记录积攒下的记忆信息。
所以,就是根据历史+新的信息两部分来确定forget gate的。
gate的参数可以根据自己想法设计成各种形式,重要的目的是需要识别出历史和新信息的特定模式,以决定遗忘哪些东西。所以这个gate的参数W可以认为是一个抽象的表示,本身可以认为是任何一个具有模式识别能力的模型,比如CNN、SVM。
误差依然来自back-prop的偏导,假设不考虑其他gate:
LSTM 怎样决定「遗忘」
当然也有变种类似于
LSTM 怎样决定「遗忘」
式子都是可以对W求偏导的。有偏导,就可以做修正。

■网友
这个forget gate本身就是一个单层的神经网络,输入是X(t)和H(t-1),输出I和H与C维度相同。接下来和C(t-1)进行elementwise的乘法。激活函数是sigmoid,所以值是在0~1,你看,这就可以用来表示留住信息的比例。比如Ii=0,那么新的C(t)i就遗忘了上一时刻的所有信息。不知道有没有讲清楚。 % db_f(t) = db_c(t) .* c(t-1) layer.dmb(r_f,t,:)=layer.dsc(:,t,:).*layer.sc(:,t-1,:);
■网友
遗忘门的公式为LSTM 怎样决定「遗忘」
,它与输入LSTM 怎样决定「遗忘」
和上一步的状态LSTM 怎样决定「遗忘」
都有关。进一步由公式LSTM 怎样决定「遗忘」
可以看出,遗忘门的作用在于评估上一步的记忆单元LSTM 怎样决定「遗忘」
对当前步记忆单元的计算有多大的贡献,LSTM 怎样决定「遗忘」
取值为(0,1),代表贡献的权重。 最后隐藏层状态为LSTM 怎样决定「遗忘」
,因此模型的损失函数必然与LSTM 怎样决定「遗忘」
相关,根据链式法则,误差可以回传,LSTM 怎样决定「遗忘」
等参数就可以被更新了。

■网友
补充一点,其实不只是LSTM,任何模型都可以在数据上遗忘:
【LSTM 怎样决定「遗忘」】 模型”遗忘”的启迪:Machine Unlearning(Forgetting),“主动遗忘”和“彻底遗忘”,长时记忆与短时记忆,多伦多大学向量学院,SISA


    推荐阅读