深度学习模型1:理解LSTM和BiLSTM
因为最近科研复现论文中需要了解单向LSTM和双向LSTM,所以就学习了一下LSTM的基本原理,下面孬孬带着大家一起学习一下,感谢大家的一键三连
一、RNN
因为谈到LSTM,就必不可少的会考虑RNN,对应的这是一个脉络传承下来的,循环神经网络。
对于RNN如上图所示,对应的输入的时不同的时间段,对应输出得到的也是对应的不同的时间段,因为他们神经网络是相连的,所以会捕获对应的时间关系,对应举例比如输出 “h1” 就会受到输入x0和x1的共同影响的。但是RNN会有长期以来的问题,简单来说长期依赖的问题就是在每一个时间的间隔不断增大时,RNN会丧失到连接到远处信息的能力,比如对应ht+1的输出受到x0/x1这种远处输入影响。
二、LSTM
因此,LSTM就是为了解决长期依赖问题而生的,LSTM通过刻意的设计来避免长期依赖问题。记住长期的信息在实践中是 LSTM的默认行为,而非需要付出很大代价才能获得的能力!
对应的LSTM图如上,相比前面的RNN的图,LSTM增加了很多设置,也就是很多"阈值",下面带着大家介绍一下:包括细胞状态(Ct)、遗忘门、输入门和输出门。
1.细胞状态(Ct)
t时刻的记忆信息,用来保存重要信息。就好像我们的笔记本一样,保存了我们以前学过的知识点。如下图的水平线从图上方贯穿运行,直接在整个链上运行,使得信息在上面流传保持不变会很容易。
2.遗忘门
控制遗忘上一层细胞状态的内容,根据上一序列的ht-1和本序列的Xt为输入,通过sigmoid激活函数,得到上一层细胞状态内容哪些需要去除,那些需要保留。值得注意的是,该输入是以向量的形式,我们希望遗忘门输出的值大多为0或1,即对向量中的每个值是完全忘记或者完全记住,因此我们使用的是sigmoid函数作为激活函数,因为该函数在许多取值范围内的值都接近于0或1(这里不能用阶跃函数作为激活函数,因为它在所有位置的梯度都为0,无法作为激活函数)。其他门使用sigmoid函数同理。因此,虽然在其他神经网络可以变换激活函数,但并不建议变换LSTM的激活函数。
以一个例子来说明遗忘门的作用:在语言模型中,细胞状态可能保存着这样的重要信息:当前主语为单数或者复数等。如当前的主语为“小明”,当输入为“同学们”,此时遗传门就要开始“干活”了,将“小明”遗忘,主语为单数形式遗忘。
3.输入门
处理当前序列位置的输入,确定需要更新的信息,去更新细胞状态。此过程分为两部分,一部分是使用包含sigmoid层的输入门决定哪些新信息该被加入到细胞状态;确定了哪些新信息要加入后,需要将新信息转换成能够加入到细胞状态的形式。所以另一部分是使用tanh函数产生一个新的候选向量。(可以这么理解,LSTM的做法是对信息都转为能加入细胞状态的形式,然后再通过第一部分得到的结果确定其中哪些新信息加入到细胞状态。)
有了遗忘门和输入门,现在我们就能把细胞状态Ct−1更新为Ct了。如下图所示,其中ft×Ct−1表示希望删除的信息,it×Ct表示新增的信息。
4.输出门
最后要基于细胞状态保存的内容来确定输出什么内容。即选择性的输出细胞状态保存的内容。类似于输入门两部分实现更新一样,输出门也是需要使用sigmoid激活函数确定哪个部分的内容需要输出,然后再使用tanh激活函数对细胞状态的内容进行处理(因为通过上面计算得到的Ct每个值不是在tanh的取值范围-1~1中,需要调整),将这两部分相乘就得到了我们希望输出的那部分。
举个例子,同样在语言模型中,细胞状态中此时包含很多重要信息,比如:主语为单数形式,时态为过去时态,主语的性别为男性等,此时输入为一个主语,可能需要输出与动词相关的信息,这个时候只需要输出是单数形式和时态为过程,而不需要输出主语性别就可确定动词词性的变化。
三、双向LSTM(Bi-directional LSTM)
为什么会有双向的这种考虑,其实也很容易理解,因为之前的LSTM都只能依据之前时刻的时序信息来预测下一时刻的输出,但在有些问题中,当前时刻的输出不仅和之前的状态有关,还可能和未来的状态有关系。比如预测一句话中缺失的单词不仅需要根据前文来判断,还需要考虑它后面的内容,真正做到基于上下文判断。因此就是和前后都有关系,所以就是需要两个方向相反的LSTM拼在一起,来实现.
前向的LSTM与后向的LSTM结合成BiLSTM。比如,我们对“我爱中国”这句话进行编码,模型如图所示。
参考文献
https://zhuanlan.zhihu.com/p/47802053
https://blog.csdn.net/v_JULY_v/article/details/89894058
https://blog.csdn.net/qq_36696494/article/details/89028956
https://www.cnblogs.com/Allen-rg/p/11712703.html