GRU神经网络

前面已经详细讲了LSTM神经网络(文末有链接回去),接着往下讲讲LSTM的一个很流行的变体。

GRU是什么

GRU即Gated Recurrent Unit。前面说到为了克服RNN无法很好处理远距离依赖而提出了LSTM,而GRU则是LSTM的一个变体,当然LSTM还有有很多其他的变体。GRU保持了LSTM的效果同时又使结构更加简单,所以它也非常流行。

GRU模型

回顾一下LSTM的模型,LSTM的重复网络模块的结构很复杂,它实现了三个门计算,即遗忘门、输入门和输出门。

而GRU模型如下,它只有两个门了,分别为更新门和重置门,即图中的zt和rt。更新门用于控制前一时刻的状态信息被带入到当前状态中的程度,更新门的值越大说明前一时刻的状态信息带入越多。重置门用于控制忽略前一时刻的状态信息的程度,重置门的值越小说明忽略得越多。

GRU向前传播

根据前面GRU模型图来一步步看他是怎么向前传播的,根据图不难得到以下式子:

rt=σ(Wr⋅[ht−1,xt])

zt=σ(Wz⋅[ht−1,xt])

h~t=tanh(Wh~⋅[rt∗ht−1,xt])

ht=(1−zt)∗ht−1+zt∗h~t

yt=σ(Wo⋅ht)

其中[]表示两个向量相连接,*表示矩阵元素相乘。

GRU的训练

从前面的公式中可以看到需要学习的参数就是WrWzWhWo那些权重参数,其中前三个权重都是拼接的,所以在学习时需要分割出来,即

Wr=Wrx+Wrh

Wz=Wzx+Wzh

Wh~=Wh~x+Wh~h

输出层的输入yit=Woh,输出为yot=σ(yit)。

设某时刻的损失函数为Et=12(yd−yot)2,则某样本的损失为

E=∑Tt=1Et

与前面LSTM网络类似,最终可以推出

∂E∂Wo=δy,tht

∂E∂Wzx=δz,txt

∂E∂Wzh=δz,tht−1

∂E∂Wh~x=δtxt

∂E∂Wh~h=δt(rt⋅ht−1)

∂E∂Wrx=δr,txt

∂E∂Wrh=δr,tht−1

δy,t=(yd−yot)⋅σ′

δh,t=δy,tWo+δz,t+1Wzh+δt+1Wh~h⋅rt+1+δh,t+1Wrh+δh,t+1⋅(1−zt+1)

δz,t=δt,h⋅(h~t−ht−1)⋅σ′

δt=δh,t⋅zt⋅ϕ′

δr,t=ht−1⋅[(δh,t⋅zt⋅ϕ′)Wh~h]⋅σ′

以下是广告相关阅读

========广告时间========

鄙人的新书《Tomcat内核设计剖析》已经在京东销售了,有需要的朋友可以到 https://item.jd.com/12185360.html 进行预定。感谢各位朋友。

为什么写《Tomcat内核设计剖析》

=========================

相关阅读:

LSTM神经网络

循环神经网络

卷积神经网络

机器学习之神经网络

机器学习之感知器

欢迎关注:

时间: 2024-09-19 15:06:25

GRU神经网络的相关文章

深度学习的seq2seq模型

从rnn结构说起 根据输出和输入序列不同数量rnn可以有多种不同的结构,不同结构自然就有不同的引用场合.如下图, one to one 结构,仅仅只是简单的给一个输入得到一个输出,此处并未体现序列的特征,例如图像分类场景. one to many 结构,给一个输入得到一系列输出,这种结构可用于生产图片描述的场景. many to one 结构,给一系列输入得到一个输出,这种结构可用于文本情感分析,对一些列的文本输入进行分类,看是消极还是积极情感. many to many 结构,给一些列输入得到

如何用TensorFlow训练聊天机器人(附github)

前言 实际工程中很少有直接用深度学习实现端对端的聊天机器人,但这里我们来看看怎么用深度学习的seq2seq模型来实现一个简易的聊天机器人.这篇文章将尝试使用TensorFlow来训练一个基于seq2seq的聊天机器人,实现根据语料库的训练让机器人回答问题. seq2seq 关于seq2seq的机制原理可看之前的文章<深度学习的seq2seq模型>. 循环神经网络 在seq2seq模型中会使用到循环神经网络,目前流行的几种循环神经网络包括RNN.LSTM和GRU.这三种循环神经网络的机制原理可看

“小会话,大学问” - 如何让聊天机器人读懂对话历史?| 论文访谈间 #03

人工智能现在的火热程度大家有目共睹,凯文凯利在<必然>中预测未来时代的人工智能可能会重新定义人类的意义,但时下的人工智能发展水平显然还没有大家想象得那么美好,仍然需要我们不断地探索.目前众多研究人员正深耕其中,作为其中代表的聊天机器人(Chatbot),已然成为科研界研究的热点. 通常来说聊天机器人实现方式有两种:一种是基于生成式,即机器人"自己说话",一个字一个字创作出回复语句来.另外一种是基于检索式,即机器人"转发"别人的话.从互联网大家的话语中寻找

我的2017年文章汇总——深度学习篇

2017快过完了,大家过去一年收获如何?不管怎样,保持好心态,未来不迎,当下不杂,既过不恋. 近期准备把过去一年写的文章按照分类重新整理推送一遍,包括:"分布式"."机器学习"."深度学习"."NLP"."Java深度"."Java并发核心"."JDK源码"."Tomcat内核". 本篇推送深度学习相关文章. LSTM神经网络 GRU神经网络 循环

[译] RNN 循环神经网络系列 2:文本分类

本文讲的是[译] RNN 循环神经网络系列 2:文本分类, 原文地址:RECURRENT NEURAL NETWORKS (RNN) – PART 2: TEXT CLASSIFICATION 原文作者:GokuMohandas 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m- 译者:Changkun Ou 校对者:yanqiangmiffy, TobiasLee 本系列文章汇总 RNN 循环神经网络系列 1:基本 RNN 与 CHAR-RNN RNN 循环神

[译] RNN 循环神经网络系列 1:基本 RNN 与 CHAR-RNN

本文讲的是[译] RNN 循环神经网络系列 1:基本 RNN 与 CHAR-RNN, 原文地址:RECURRENT NEURAL NETWORKS (RNN) – PART 1: BASIC RNN / CHAR-RNN 原文作者:GokuMohandas 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m- 译者:Changkun Ou 校对者:CACppuccino, TobiasLee 本系列文章汇总 RNN 循环神经网络系列 1:基本 RNN 与 CHAR

想了解递归神经网络?这里有一份入门教程

递归神经网络入门教程 引言 递归神经网络是一类人工神经网络,可用于识别诸如文本.基因组.手写字迹.语音等序列数据的模式,也可用于识别传感器.股票市场.政府机构产生的数值型时间序列数据.递归网络可以说是最强大的神经网络,甚至可以将图像分解为一系列图像块,作为序列加以处理.由于递归网络拥有一种特定的记忆模式,而记忆也是人类的基本能力之一,所以下文会时常将递归网络与人脑的记忆活动进行类比. 前馈网络回顾 要理解递归网络,首先需要了解前馈网络的基础知识.这两种网络的名字都来自于它们通过一系列网络节点数学

神经网络基础:七种网络单元,四种层连接方式

2016 年 9 月,Fjodor Van Veen 写了一篇名为<The Neural Network Zoo>的文章(详见图文并茂的神经网络架构大盘点:从基本原理到衍生关系 ),全面盘点了神经网络的大量框架,并绘制了直观示意图进行说明.近日,他又发表了一篇题为<The Neural Network Zoo Prequel:Cells and Layers>文章,该文是其上篇文章的前篇,对于文中涉及但没有深入展开的神经网络的单元与层的部分再次做了一个图文并茂的介绍. Cell(单

25张图让你读懂神经网络架构

由于新的神经网络架构无时无刻不在涌现,想要记录所有的神经网络是很困难的事情.要把所有这些缩略语指代的网络(DCIGN,IiLSTM,DCGAN等)都弄清,一开始估计还无从下手. 下表包含了大部分常用的模型(大部分是神经网络还有一些其他的模型).虽然这些架构都是新奇独特的,但当我开始把它们的结果画下来的时候,每种架构的底层关系就会清晰. 显然这些节点图并不能显示各个模型的内部工作过程.例如变分自动编码器(VAE)和自动编码器(AE)节点图看起来一样,但是二者的训练过程实际上是完全不同的,训练后模型