第三部分:
1、序列数据
序列数据是常见的数据类型,前后通常具有关联性
比如说:猴子喜欢吃苹果。其中猴子和苹果就是关联数据,出现了苹果,就能关联想到猴子。再比如说,一张乐谱,一般是由许多音符构成,但是人么所接受的是某一些音符的组合,并不是随意什么组合就能构成音乐,而这些音符的固定组合也是有关联性的。
2、语言模型
NLP当中常把文本看作离散时间序列。一段长度为T的文本词依次为w1 w2 w3...wt其中wt是时间步(Time Step)t的输出或标签,语言模型会计算序列的概率P。
比如说:
通过前后数据的关联,厨房和石油概率小于食油。
3、RNN循环神经网络
RNN是针对序列数据而生的神经网络结构,核心在于循环使用网络层参数,避免时间步增大而带来的参数激增,并引入隐藏状态(Hidden State)用于记录历史信息,有效的处理数据前后的关联性。
相较于卷积神经网络,循环神经网络的计算中多了一项Ht-1,这一项的含义就是历史数据,激活函数采用了Tanh,将输出限定在(-1,1),防止数值呈指数型变化。
下面通过一个例子来了解RNN前向传播的过程:
想要实现:输入“想”,根据时间步,输出“要”,然后依次输出
第一个时间步是想,当输入想时,并没有H0这个隐藏层,就输入0,然后输入要,还是使用上一个权重矩阵。
RNN特性:
1、循环神经网络的隐藏状态可以捕捉截至当前的时间步的序列的历史信息。
2、循环神经网络模型参数的数量不随时间步的增加而增长。
RNN的 通过时间反向传播(backpropagation through time):(比多层感知机更复杂一点)
上图中,用矩形框代表节点,就是具体的数据,用圆圈代表边,就是具体的操作。(这里有点难)打字讲不清楚,只能给大家看个公式,可以找个视频再学学。
循环神经网络的梯度随时间t呈指数变化,易引发梯度消失或梯度爆炸。
4、GRU门控循环单元
缓解RNN梯度消失到来的问题,引入门的概念,来控制信息流动,使模型更好的记住长远时期的信息,并且缓解梯度消失。
引入以下两个门:
重置门:哪些信息需要遗忘
更新门:哪些信息需要注意
所使用的激活函数为Sigmoid函数,值域为(0,1),0表示遗忘,1表示保留。
候选隐藏状态时用来辅助计算最终的隐藏状态,输入与上一时间步隐藏状态共同计算得到候选隐藏状态,通过重置门,对上一时间步隐藏状态进行选择性遗忘,对历史信息更好的选择
5、LSTM长短期记忆网络
引入三个门和记忆细胞,控制信息传递。
遗忘门:哪些信息需要遗忘
输入门:哪些信息需要流入当前记忆细胞
输出门:哪些记忆信息流入隐藏状态
记忆细胞:特殊的隐藏状态,记忆历史信息
记忆细胞由候选记忆细胞及上一时间步记忆细胞组合的来