循环神经网络(Recurrent Neural Networks ):想象有一组序列数据,Data0,Data1,Data2,Data3,在预测Result0的时候,我们会基于Data0,然后使用神经网络NN得到结果(Result),同样在预测Resulti时也会基于Datai,(i=1,2,3)使用同一个NN得到预测结果。如果Datai(i=0,1,2,3)之间是有一定关联的,那么,普通的神经网络结构将不能让NN了解这些数据之间的关联,为了让数据之间的关联也可以让NN加以分析,我们可以想想人类是怎样分析各种事务之间的关联的,最基本的方式就是记住这些发生的事情。我们让神经网络(NN)也具备记住这些发生事情的能力,在分析Data0的时候,将分析结果存入记忆,然后,当分析Data1的时候,NN会产生新的记忆,但是新的记忆和老的记忆并没有什么关联,我们将老的记忆调用过来一起分析,如果继续分析新的数据,NN就会把之前的记忆都累积起来一起分析,我们再重复一遍刚才的流程,现在的NN变成RNN,每次RNN计算完成之后都会产生一个对当前状态的描述S(t),S(t)由RNN根据x(t)产生,得到的结果为Y(t),在t+1的时刻,RNN就会根据x(t+1)产生S(t+1),但是这时Y(t+1)则由S(t)和S(t+1)一起产生,而不是只由S(t+1)产生。
RNN的应用:使用RNN来描述一张图片;使用RNN来写学术论文和程序脚本;使用RNN来作曲等。