关于RNN的小结

一、RNN简介
RNN的目的使用来处理序列数据。在传统的神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,每层之间的节点是无连接的。但是这种普通的神经网络对于很多问题却无能无力。例如,你要预测句子的下一个单词是什么,一般需要用到前面的单词,因为一个句子中前后单词并不是独立的。RNNs之所以称为循环神经网路,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐藏层之间的节点不再无连接而是有连接的,并且隐藏层的输入不仅包括输入层的输出还包括上一时刻隐藏层的输出。理论上,RNNs能够对任何长度的序列数据进行处理。但是在实践中,为了降低复杂性往往假设当前的状态只与前面的几个状态相关,下图便是一个典型的RNNs:
  关于RNN的小结_第1张图片

二、RNN神经元原理表述:
  关于RNN的小结_第2张图片                           

三、分类:

   关于RNN的小结_第3张图片                       


 
四、主要算法
1. 遗传算法
2. DBP(Dynamic Backpropagation)算法
3. 最小二乘法(梯度下降法)
五、训练
两种模式:在线和离线
六、RNN的应用
RNN是对时间序列上的变化进行建模,强调了时间顺序的重要性,主要用在:
1、 语言模型与文本生成
语言模型中,典型的输入是单词序列中每个单词的词向量(如 One-hot vector),输出时预测的单词序列。
另一种应用便是使用生成模型预测下一个单词的概率,从而生成新的文本根据输出概率的采样。
2、机器翻译
机器翻译是将一种源语言语句变成意思相同的另一种源语言语句,如将英语语句变成同样意思的中文语句。与语言模型关键的区别在于,需要将源语言语句序列输入后,才进行输出,即输出第一个单词时,便需要从完整的输入序列中进行获取。
3. 可以和限制波尔兹曼机联合使用,应用于语音识别研究,这样做可以克服递归神经网络的两个问题:
○1较难取得更长距离的信息
○2远距离信息通过概率相乘的结果趋于零
在此基础上可以通过加入关联信息的方式改进RNN-RBM模型。



你可能感兴趣的:(机器学习)