1.单层神经网络
这是普通的神经网络,其输出y只与输入x有关,通过一个映射函数,y=f(wx+b)得到。但是实际中,我们会经常遇到序列型的数据(与时间有关的),这样我们通过普通的神经网络就无法准确的预测,因为其输出不仅与输入x有关,还和其上一时刻的状态有关。因此,循环神经网络RNN应运而生。
2.经典的RNN循环神经网络
这是RNN的结构,其输出不仅与当前输入xt有关,还取决与其上一层的隐藏状态ht-1,输出y=f(w(xt,ht-1)+b)。这里读者可能会疑惑,多出了一条线,怎么就循环了呢?让我们把这个二维空间拉伸到三维空间中。
将三维空间在二维空间投影,是不是很容易将对应连线对上了。
RNN神经网络在处理序列型数据时表现出了很好的性能,但是RNN也存在很多缺点,比如梯度消失和梯度爆炸。梯度消失是指当距离不断增大时,RNN会丧失学习能力。而后为了解决这个问题,LSTM、GRU等RNN的变体逐渐出现。