循环神经网络 RNN (Recurrent Neural Network)

序列数据

image.png
  • 我们想象现在有一组序列数据 data 0,1,2,3. 在当预测 result0 的时候,我们基于的是 data0,
  • 同样在预测其他数据的时候, 我们也都只单单基于单个的数据. 每次使用的神经网络都是同一个 NN
  • 不过这些数据是有关联 顺序的 , 就像在厨房做菜, 酱料 A要比酱料 B 早放, 不然味了. 所以普通的神经网络结构并不能让 NN 了解这些数据之间的关联.

处理序列数据的神经网络

image.png
  • 如果继续分析更多的有序数据 , RNN就会把之前的记忆都累积起来,
  • 第二个RNN的分析结果,是在第一个分析结果(s(t))+第二个当前的分析结果(S(t+1))

RNN 的应用

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

Python相关教程

本文来自:莫烦的机器学习

推荐阅读更多精彩内容