标签:desc die bottom com 过程 量化 矩阵 nbsp string
RNN网络考虑到了具有时间数列的样本数据,但是RNN仍存在着一些问题,比如随着时间的推移,RNN单元就失去了对很久之前信息的保存和处理的能力,而且存在着gradient vanishing问题。
所以有些特殊类型的RNN网络相继被提出,比如LSTM(long short term memory)和GRU(gated recurrent unit)(Chao,et al. 2014).这里我主要推导一下GRU参数的迭代过程
GRU单元结构如下图所示
数据流过程如下
其中表示Hadamard积,即对应元素乘积;下标表示节点的index,上标表示时刻;表示隐层到输出层的参数矩阵,分别是隐层和输出层的节点个数;分别表示输入和上一时刻隐层到更新门z的连接矩阵,表示输入数据的维度;分别表示输入和上一时刻隐层到重置门r的连接矩阵;分别表示输入和上一时刻的隐层到待选状态的连接矩阵。
针对于时刻t,使用链式求导法则,计算参数矩阵的梯度,其中E是代价函数,首先计算对隐层输出的梯度,因为隐层输出牵涉到多个时刻
所以
其中分别是对应激活函数的线性和部分
现在对参数计算梯度
令
则
将上面的式子矢量化(行向量)表示:
那接下来使用matlab来实现一个小例子,看看GRU的效果,同样是二进制相加的问题
部分实验结果
GRU(Gated Recurrent Unit) 更新过程推导及简单代码实现
标签:desc die bottom com 过程 量化 矩阵 nbsp string
原文地址:http://www.cnblogs.com/YiXiaoZhou/p/6075777.html