跟着教程已经学到了RNN部分,就是Recurrent Neural Network。
RNN和CNN的主要区别就在于,前一时间点的结果会影响下一时间点的输出,从上图右半部分可以看到,xt-1情况下的输入,得到st-1的状态,xt的输入,则会结合st-1的输入,共同得到最后st+1的结果。
但是根据神经网络反向传播,更新梯度的方式,每一步如若权重小于1,则通过多个节点传播回起点,则有可能会影响非常小,会导致起点的数据对最终输出几乎无影响,这称之为梯度消失;反之,当每一步的权重如果大于1,则传播回起点的时候,就会影响巨大,从而导致梯度爆炸的问题。
因此我们在解决RNN这类问题的时候,需要适当调整当前节点对于后置节点的影响,因此产生了LSTM的cell,去解决RNN中的这个问题。