在 RNN(循环神经网络中写道),RNN实际上是把(x1,x2,x3,x4,转为(h1,h2,h3,h4,再转为 Y,如下图所示:

Image 2 of 8

实际上,该网络存在一些问题:

  • 对各个状态没有取舍,h1,h2,h3,h4 我都要,影响了预测效果的同时,还存在梯度爆炸(梯度太大)、梯度消失(梯度太小)的问题(因为神经网络更新是根据梯度更新,梯度是根据计算图反向传播,不断相乘得出,要的越多,乘的越多,出现越乘越大或者越乘越小的问题)

  • LSTM 实际上只是 RNN 的一个改良,不会直接利用每个 h ,而是先对 h 进行处理,选出更有价值的部分,举个例子,普通RNN就像一个乞丐,路边捡的,别人丢的,什么东西他都想要,什么东西他都不嫌弃,LSTM就像一个贵族,没有身份的东西他不要,他会精心挑选符合自己身份的物品

如上图所示:st-1 即 t - 1时刻的输入,通过一系列复杂的计算得到 ht,RNN实际上是很直接的计算出 ht,具体而言:

  • it:也称输入门,值为 0 到 1之间一个数值,代表是否需要记忆现在的某些信息

  • ft:也称遗忘门,值为 0 或 1之间一个数值,代表是否需要忘记过去的某些信息

  • ct:将过去与现在的记忆进行合并

  • ot:也称输出,值为 0 或 1之间一个数值,代表需要输出多少合并后的记忆

换句话来说,RNN 到 LSTM 的转变,只是将原本 ht = f(U xt + W ht-1 + b) 的公式,换为了上述更复杂的计算