lstm也是一种递归神经神经网络,那么要了解lstm之前先看看什么是RNN
从上可以看出rnn有两个输入x1,h0;两个输出h1,y1.h1,x2作为下一时刻的输入,通过f函数,输出h2,y2;依次下去。。。。不管输入的序列有多长,只有一个f函数,那么自然减少了参数的数量;从上图也可看出为什么rnn可以作为时间序列的预测,
下面是 深层的RNN,只是多了一层,然后下一层的输出是上衣一层的输入
深层的RNN模型的另一种
RNN里面的函数实现
下面是LSTM的算法,先将输入的h(t-1)与xt并在一起作为一个较长的向量,分别和不同的权重相乘,再通过不同的**函数 得到如下的zf,zi,z,z0
加上c(t-1)之后,和上面一样求法相同zf,zi,z,z0
lstm的内部算法结构图 :
下面是一个单元的
lstm是两个单元的
博客中大部分的lstm图解,可以
下图左边是GRU与LSTM的整体图,从中可以看出GRU比LSTM少了c(t-1)与ct,
从图中可以 看出GRU比LSTM参数少,较粗的黄绿浅蓝,蓝等都表示 不同的权重矩阵,那么GRU比LSTM很显然少一个,而且GRU没有细胞状态存储ct。