学习台湾大学李宏毅教授的课程做的相关笔记,课程链接
一、RNN(循环神经网络)
Recurrent Neural Networks(RNN)用于处理序列模型的问题,是一种对序列数据建模的神经网络。
1.RNN与一般NN的不同
传统NN每个样本输入、输出之间相互独立,不能处理很多情况。比如预测句子的下一个单词是什么,需要用到之前的信息。
上图是一个NN识别两个不同句子中相同单词的含义的例子。可以看到本身两个不同意思的句子中相同的单词是有不一样的意思的,第一个句子中的Taipei代表目的地,第二个句子中的Taipei代表出发地。原因是他们之前的信息不一样,一个是arrive,一个是leave。但是NN不能分辨这个差别,会将两个单词分为同一类。所以神经网络需要记忆来存储之前的信息。
用RNN处理相同的信息:
每个step读入一个input,加上之前的memory,作为当前的输入,产生output。同时将当前step的信息存入memory cell,供下一个step使用。Memory Cell是RNN隐含层的核心部分,即图中的蓝色框部分,用于存储之前的信息,传递给后续的step。
结合之前的信息