RNN是什么
循环神经网络即recurrent neural network,它的提出主要是为了处理序列数据,序列数据是什么?就是前面的输入和后面的输入是有关联的,比如一句话,前后的词都是有关系的,“我肚子饿了,准备去xx”,根据前面的输入判断“xx”很大可能就是“吃饭”。这个就是序列数据。
循环神经网络有很多变种,比如LSTM、GRU等,这里搞清楚基础的循环神经网络的思想,对于理解其他变种就比较容易了。
与传统神经网络区别
下图是我们经典的全连接网络,从输入层到两个隐含层再到输出层,四层之间都是全连接的,而且层内之间的节点不相连。这种网络模型对于序列数据的预测就基本无能为力,比如某句话的下一个单词是什么就很难处理。
循环神经网络则擅长处理序列数据,它会对前面的信息进行记忆并且参与当前输出的计算,理论上循环神经网络能处理任意长度的序列数据。
<