LSTM(Long Short-Term Memory)简介
由于RNN存在梯度消失的问题,很难处理长序列的数据。
为了解决RNN存在问题,后续人们对RNN做了改进,得到了RNN的特例LSTM,它可以避免常规RNN的梯度消失,因此在工业界得到了广泛的应用。
LSTM模型是RNN的变体,它能够学习长期依赖,允许信息长期存在。
举个例子来讲:比如人们读文章的时候,人们会根据已经阅读过的内容来对后面的内容进行理解,不会把之前的东西都丢掉从头进行思考,对内容的理解是贯穿的。
传统的神经网络即RNN做不到这一点,LSTM是具有循环的网络,解决了信息无法长期存在的问题,在工业界普遍使用有良好的效果。
带循环的递归神经网络如下
RNN与LSTM之间联系
RNN具有如下的结构,每个序列索引位置t都有一个隐藏状态h(t)。
如果略去每层都有的o(t),L(t),y(t),则RNN的模型可以简化成如下图的形式:
图中可以很清晰看出在隐藏状态h(t)由x(t)和h(t−1)得到。得到h(t)后一方面用于当前层的模型损失计算,另一方面用于计算下一层的h(t+1)。
为了避免RNN的梯度消失,LSTM将tanh激活函数转为更为复杂的结构
LSTM的结构如下图:
可以看到LSTM的结构要比RNN的复杂的多,真佩服牛人们怎么想出来这样的结构,然后这样居然就可以解决RNN梯度消失的问题?由于LSTM怎么可以解决梯度消失是一个比较难讲的问题,我也不是很熟悉,这里就不多说,重点回到LSTM的模型本身。