莫烦python|Tensorflow笔记--什么是循环神经网络RNN

我们在想象现在有一组数据序列,Data0,Data1,Data2,Data3,预测Results0的时候基于Data0,同意在预测其他结果的时候也是基于其他的数字。每次使用的神经网络都是同一个NN。如果这些数据是有关联顺序的,那么就要遵从它们之间的顺序,否则就串位了。但是普通的神经网络结构并不能让NN了解这些数据之间的关联。

莫烦python|Tensorflow笔记--什么是循环神经网络RNN

那么我们如何让数据间的关联也被NN加以分析呢?想想人类是怎么样分析各种事物的关联吧。最基本的方式就是记住之前发生的事情,那我们也让神经网络具备记住这些之前发生事情的能力。在分析Data0的时候,我们把分析结果存入记忆,然后当分析Data1的时候NN会产生新的记忆,但是新的记忆和老的记忆并没有关联,我们就简单的把老的记忆调用过来一起分析,如果继续分析更多的数据,NN就会把之前的记忆都累计起来一起分析。

莫烦python|Tensorflow笔记--什么是循环神经网络RNN

我们再重复一遍刚才的流程,不过这一次加了一些数学方面的东西。现在的NN变成了我们所说的RNN循环神经网络,每次RNN运算完以后都会产生一个对当前状态的描述state,用简写S(t)来表示。然后RNN开始分析x在t+1的时刻,它们会根据x(t+1)产生s(t+1),不过此时Y(t+1)是由s(t)和s(t+1)共同创造的。所以我们通常看到的RNN也就可以表达成图中看到的样子。

莫烦python|Tensorflow笔记--什么是循环神经网络RNN

RNN的形式不单单只有这样一种,它的结构形态很自由。如果用于分类的问题,如果说有个人说了一句话,这句话带有的感情色彩是积极的还是消极的。那我们就可以用只有最后一个时间点输出判断结果的RNN,又或者这是用于图片描述的RNN,我们只需要一个X来代替输入的图片,然后生成对图片描述的一段话或者是语言翻译的RNN,给出一段英文然后将其翻译成中文。有了这些不同形式的RNN,RNN就变成了越来越强大,已经有很多有趣的RNN应用。比如说之前提到的让RNN来描述照片,让RNN来写学术论文,让RNN来写程序脚本,让RNN来作曲,我们一般人甚至不能分辨这到底是不是机器写出来的。