7.1 LSTM长短期记忆网络
Last updated
Last updated
LSTM是RNN(循环神经网络)的衍生,LSTM的提出是为了解决RNN无法适用于长序列的不足,梯度消失或梯度爆炸的现象会导致RNN应用于长时间序列上无法收敛。
LSTM的改进是在RNN的基础上修改了重复单元部分,下图是LSTM的网络结构,每个重复单元都由多个门共同控制,从左至右分别是
forget gate layer,决定哪些信息要选择性遗忘
input gate layer,决定要更新哪些信息
tanh layer,决定要如何更新信息
output layer,决定如何输入信息
关于LSTM更详细的介绍,可以参考这篇文章,将概念讲的很清楚。
http://colah.github.io/posts/2015-08-Understanding-LSTMs/
下面直接进入代码实战部分,LSTM的实现会包括两种方式,使用pytorch搭建(需要自己构建神经网络结构,灵活性强,但同时要写更多代码量)和使用第三方库实现(直接调包,代码量少,虽然Darts包已经将LSTM封装好可以直接使用,但仍然建议使用者对LSTM的原理有一定了解后再尝试,否则不知道怎么调参)