你知道的时序建模模块
作者:13472722199 链接:https://zhuanlan.zhihu.com/p/77466700 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
卷积神经网络是在空间上挖掘特征,例如对象检测大多数使用卷积神经网络,一个对象在图像中移动,对象里相邻点像素具有一定固有特征。循环神经网络是在时序的数据中挖掘特征,例如语言模型中经常使用LSTM,GRU来处理文字序列特征。如果不谈训练准确率,时空是可以变换的,在卷积神经网络能使用的地方,常常也能使用循环神经网络来训练。1D的卷积可以训练语言模型。图像也可以使用循环神经网络来训练。
1.RNN
1.1 RNN网络结构
下图是RNN图示,简单说明是:有三个参数矩阵 ,三层网络结构(输入层,隐藏层,输出层),隐藏输出带入下次输入。


设t时刻输入 ,输入矩阵
,隐藏层矩阵为:
,隐藏层输入
,
,
,输出矩阵为
, 输出为:
当然经常写成
称 为隐藏层。
通常使用softmax进行输出。
1.2. RNN的梯度反向传播(BP)
1.2.1不带时间序列的神经网络计算梯度
下图是一个神经网络的一部分。
计算需要假定每层的
已知。数据通过网络后,根据loss,来更新每层的
来减少loss。因此每层的输出
是由网络的forward计算的,
是由误差向后BP计算的。


根据链式求导法则,有下式成立。
....(1)
...........(2)
.......... (3)
1.2.2 带时间序列的神经网络梯度
假设一个RNN网络如下图。


loss函数:求


根据链式法则对
=
梯度是t的指数函数,如果 ,连续乘积后会出现梯度爆炸,反之当
会出现梯度消失问题。
梯度爆炸现在已不是很严重的问题,可以通过梯度修剪(Gradient clipping)来避免。梯度消失问题是RNN的通过LSTM来解决梯度消失问题。
2. LSTM神经网络
2.1 LSTM神经网络结构


三个门 分别是遗忘门,输入门和输出门:
三个输入: ,
,
输入,上次隐藏层输出以及上次记忆细胞值。
候选记忆细胞
记忆细胞输出
的值分布在[0,1]之间,当前记忆细胞组合了当前输入和前次记忆细胞状态。如果遗忘 ⻔⼀直近似1且输⼊⻔⼀直近似0,过去的记忆细胞将⼀直通过时间保存并传递⾄当前时间步。这 个设计可以应对循环神经⽹络中的梯度衰减问题,并更好地捕捉时间序列中时间步距离较⼤的依 赖关系。
隐藏层输出为
输出
3. 门控循环单元GRU
3.1 门控循环单元GRU神经网络结构


两个门重置门,更新门: 。
候选隐藏层:
隐藏层:
输出层:
Last updated