LSTM是RNN的变形,也就是循环神经网络的形式之一,主要解决传统RNN记忆不了太长时间数据问题(像是一个容易遗忘的老人,记不住太久远之前的信息,所以就出现了LSTM,让他只记住有用的信息)
传统RNN的问题分析:比如输入文本是我今天要做红烧排骨,首先要准备排骨,然后…,最后一道美味的菜就出锅了.这个时候我们要让RNN来判断我们到底做了什么菜,RNN可能给出辣子鸡这个答案,然后就反向的去推导误差,如果每一步误差都小于1,那么等到连乘反向到t1,误差就消失了,这叫梯度消失,如果每一步的误差都大于1,那么反向到t1的时候,误差就变成了一个无穷大的数,就把RNN撑死了,这叫梯度爆炸(虽然可以用剪裁来解决)
梯度消失:
梯度爆炸:
为了解决上面出现的梯度消失和梯度爆炸的问题,就出现了LSTM(长短期记忆)
具体LSTM模型是怎么实现的呢?
相对于传统的RNN,LSTM的输入有x(t),a(t-1),x(t)变成了x(t),a(t-1),c(t-1),不仅仅是参数数量上的变化,还有就是
a(t-1)的求法也不一样,下面是LSTM一个cell的计算过程
来源:https://blog.csdn.net/weixin_43027596/article/details/101022774