背景:
RNN中存在梯度爆炸和梯度消失问题,梯度消失问题严重
设计思路:
RNN希望将所有的信息记住,不论是有效信息还是无效信息
LSTM设计一个记忆细胞,具备选择性记忆的功能,可以选择记忆重要信息,过滤掉噪声信息,减轻记忆负担
前向传播:
与RNN对比:
RNN串联的通过一个箭头串联
LSTM通过两个箭头将每个时间步相连接,称为记忆细胞
门:
:代表门控单元,输出在[0,1]之间
遗忘门:将值向0减少;尽可能将无关记忆遗忘,通过对应元素相乘将中对应位置所记忆的内容调整,为“0”的记忆遗忘,为“1”的记忆保留
更新门/输入门:决定不是忽略掉输入数据;对新记忆作用,但中不是所有内容都有效,更新门将无用的信息过滤掉,记住相关内容
输出门:决定是不是使用隐藏状态;作用于,拿归一化评分系统乘现在的记忆,去评价现在的记忆学的好不好,决定输出哪些
候选记忆单元:
计算C类似于RNN中计算H,没有用到gate
记忆单元:
上一时刻的记忆单元会作为状态放入,LSTM与RNN、GRU不同的地方在于其状态里有C和H
若变为“0”,则尽量不要去记住
若为“1”,则尽量使用;若为“0”,尽量把现在的记忆单元丢掉
使用两个独立的状态量,既可以用前状态,又可以使用当前状态,两者相互独立
隐状态:
记忆细胞:
在LSTM的每个时间步里,都有一个记忆cell,记忆cell给予了LSTM选择记忆的功能,使得LSTM有能力自由选择每个时间步里面记忆的内容
对候选记忆单元再做一个原因:
可以把值变到正一和负一之间
和的值域为[0,1],和的值域在[0,1],但根据公式:
的值域为[-2,2]
所以需要将的值域位于[-1,1],用来控制是否要使用