前言
深度学习2 2023.5.9
一、LSTM是什么?
一种特殊的RNN网络,该网络设计出来是为了解决长依赖问题。
二、原理解释
1.介绍
LSTM输入为前状态和当前输入。这些LSTM的单元会决定哪些之前的信息和状态需要保留/记住,而哪些要被抹去。实际的应用中发现,这种方式可以有效地保存很长时间之前的关联信息。
举个例子:
当你浏览评论时,你的大脑下意识地只会记住重要的关键词,比如具有感情色彩的词汇,而不太会关心代词等。如果第二天回忆起来,那你可能不会一字不漏地记住它,而是会说出但大脑里记得的主要观点,比如“这个东西很好”,那其他一些无关紧要的内容自然会从记忆中逐渐消失。
LSTM结构框图:
2.公式
2.1 忘记门
LSTM网络能通过一种被称为门的结构对细胞状态进行删除或者添加信息。门能够有选择性的决定让哪些信息通过。其实门的结构很简单,就是一个sigmoid层和一个点乘操作的组合。主要由于激活函数,0表示完全忘记,1表示完全记住。
2.2 输入门
下一步是确定什么样的新信息被存放在细胞状态中。这里包含两个部分:
第一,sigmoid层称“输入门层”决定什么值我们将要更新;
第二,一个tanh层创建一个新的候选值向量,会被加入到状态中。
下一步,我们会讲这两个信息来产生对状态的更新。
这一步决定了给细胞状态添加哪些新的信息。
2.3更新细胞状态
更新状态,首先通过忘记门来决定哪些信息忘记哪些信息保留。然后通过输入门选择添加候选细胞信息的一部分得到新的细胞信息。
2.4 输出门
最终,我们需要确定输出什么值。这个输出将会基于我们的细胞状态,但是也是一个过滤后的版本。
首先,我们运行一个sigmoid层来确定细胞状态的哪个部分将输出出去。接着,我们把细胞状态通过tanh进行处理(得到一个在-1到1之间的值)并将它和sigmoid门的输出相乘,最终我们仅仅会输出我们确定输出的那部分。