这里写目录标题
- 学习其他模型链接
- 一、引言
- 二、RNN本质
- 三、RNN模型
- 四、RNN的应用
- 五、RNN训练的算法
- (一)随时间反向传播(backpropagation through time,BPTT)
- (二)实时循环学习(real-time recurrent learning,RTRL)
- (一)产生原因
- (二)梯度消失
- (一)不同点
- (二)相同点
本人刚入门神经网络,学习了各个大佬们的博客,按照自己的学习思路整理出来的笔记,边学习边完善,供入门的同学学习,其中可能有错误的地方,望指出
学习其他模型链接
- [神经网络学习笔记]卷积神经网络CNN(Convolutional Neural Networks, CNN) 综述
- [神经网络学习笔记]长短期记忆模型(Long-Short Term Memory,LSTM)综述
一、引言
- 现实问题中存在着很多序列型的数据,例如文本、语音以及视频等。这些序列型的数据往往都是具有时序上的关联性的,既某一时刻网络的输出除了与当前时刻的输入相关之外,还与之前某一时刻或某几个时刻的输出相关。
- 而前馈神经网络并不能处理好这种关联性,因为它没有记忆能力,所以前面时刻的输出不能传递到后面的时刻。
二、RNN本质
- 本质:用于处理和预测序列数据的神经网络模型
- 特点:神经元在某时刻的输出可以作为输入再次输入到神经元
- RNN通常难以训练,循环多次之后,大多数情况下哎梯度往往倾向于消失,也有较少情况会发生梯度爆炸问题,针对此问题,提出长短期记忆LSTM网络。能够保持信息的长期存储。
三、RNN模型
循环神经网络的记忆单元会保存时刻时循环层(图中隐藏层)的状态,并在t+1时刻,将记忆单元的内容和t+1时刻的输入一起给到循环层。引导信息从输出单元返回隐藏单元.
四、RNN的应用
对NLP是非常成功的。如词向量表达、语句合法性检查、词性标注等
- 情感分析
- 提取关键词
- 语音识别
- 机器翻译
五、RNN训练的算法
(一)随时间反向传播(backpropagation through time,BPTT)
参考学习:浅谈循环神经网络(RNN)
(二)实时循环学习(real-time recurrent learning,RTRL)
- 两种算法都是基于梯度下降,不同的是BPTT算法是通过反向传播的方式来更新梯度,而RTRL算法则是使用前向传播的方式来更新梯度。目前,在RNN的训练中,BPTT是最常用的参数更新的算法。
六、RNN的梯度消失和梯度爆炸
- 详细讲解梯度消失和梯度爆炸
(一)产生原因
其实就是矩阵的高次幂导致的。在多层神经网络中,影响因素主要是权值和激活函数的偏导数。
(二)梯度消失
前馈神经网络图1
求梯度公式图2该前馈网络图,若要对于w1求梯度。根据图2求导法则。如果我们使用标准化初始w,那么各个层次的相乘都是0-1之间的小数,而激活函数f的导数也是0-1之间的数,其连乘后,结果会变的很小,导致梯度消失。### (三)梯度爆炸若我们初始化的w是很大的数,w大到乘以激活函数的导数都大于1,那么连乘后,可能会导致求导的结果很大,形成梯度爆炸。
七、RNN和CNN的同异
参考学习:RNN–综述
(一)不同点
- 普通卷积神经网络(CNN)处理的是 “静态” 数据,样本数据之间独立,没有关系。
- 循环神经网络(RNN)处理的数据是 “序列化” 数据。 训练的样本前后是有关联的,即一个序列的当前的输出与前面的输出也有关。比如语音识别,一段语音是有时间序列的,说的话前后是有关系的。
- 在空间或局部上有关联图像数据适合卷积神经网络来处理,在时间序列上有关联的数据适合用循环时间网络处理。
(二)相同点
- 从硬件相关的算子角度来看,CNN和RNN没有特殊的算子。
八、学习汇报PPT
- 汇报CNN+RNN+LSTM神经网络模型介绍PPT