先给出一些结论:

GRU和LSTM的性能在很多任务上不分伯仲。
GRU 参数更少因此更容易收敛,但是数据集很大的情况下,LSTM表达性能更好。
从结构上来说,GRU只有两个门(update和reset),LSTM有三个门(forget,input,output),GRU直接将hidden state 传给下一个单元,而LSTM则用memory cell 把hidden state 包装起来。

  1. 基本结构
    1.1 GRU

GRU的设计是为了更好的捕捉long-term dependencies。我们先来看看输入ht−1ht−1和x(t)x(t), GRU怎么通过计算输出h(t)h(t):

Reset gate

r(t)r(t) 负责决定h(t−1)h(t−1) 对new memory h(t)h(t) 的重要性有多大, 如果r(t)r(t) 约等于0 的话,h(t−1)h(t−1) 就不会传递给new memory h(t)h(t)

new memory

h(t)h(t) 是对新的输入x(t)x(t) 和上一时刻的hidden state h(t−1)h(t−1) 的总结。计算总结出的新的向量h(t)h(t) 包含上文信息和新的输入x(t)x(t).

Update gate

z(t)z(t) 负责决定传递多少ht−1ht−1给htht 。 如果z(t)z(t) 约等于1的话,ht−1ht−1 几乎会直接复制给htht ,相反,如果z(t)z(t) 约等于0, new memory h(t)h(t) 直接传递给htht.

Hidden state:

h(t)h(t) 由 h(t−1)h(t−1) 和h(t)h(t) 相加得到,两者的权重由update gate z(t)z(t) 控制。

1.2 LSTM


LSTM 的设计也是为了更好的捕捉long-term dependencies,但是结构上有一些不同,更复杂一些,我们想来看看计算过程:

new memory cell

这一步和GRU中的new memory类似,输出的向量c(t)c(t)都是对新的输入x(t)x(t) 和上一时刻的hidden state h(t−1)h(t−1) 的总结。

Input gate

i(t)i(t)负责决定输入的x(t)x(t) 信息是否值得保存。

Forget gate

f(t)f(t)负责决定past memory cell c(t−1)c(t−1)对c(t)c(t) 的重要性。

final memory cell

c(t)c(t) 由c(t−1)c(t−1) 和c(t)c(t) 相加得到,权重分别由 Forget gate 和Input gate 决定

Output gate

这个门是GRU没有的。它负责决定c(t)c(t) 中的哪些部分应该传递给hidden state h(t)h(t)

  1. 区别
  2. 对memory 的控制
    LSTM: 用output gate 控制,传输给下一个unit

GRU:直接传递给下一个unit,不做任何控制

  1. input gate 和reset gate 作用位置不同
    LSTM: 计算new memory c(t)c(t)时 不对上一时刻的信息做任何控制,而是用forget gate 独立的实现这一点

GRU: 计算new memory h(t)h(t) 时利用reset gate 对上一时刻的信息 进行控制。

  1. 相似
    最大的相似之处就是, 在从t 到 t-1 的更新时都引入了加法。

这个加法的好处在于能防止梯度弥散,因此LSTM和GRU都比一般的RNN效果更好。

Reference:

  1. https://cs224d.stanford.edu/lecture_notes/LectureNotes4.pdf
  2. Empirical Evaluation of Gated Recurrent Neural Networks on Sequence Modeling
  3. https://feature.engineering/difference-between-lstm-and-gru-for-rnns/

LSTM和GRU的对比和分析相关推荐

  1. RNN、LSTM、GRU实战——imdb情感分析

    Day40 RNN.LSTM.GRU实战--imdb情感分析 RNN Cell模式 Layer模式 LSTM Cell模式 Layer模式 GRU Cell模式 Layer模式 RNN.LSTM.GR ...

  2. 循环神经网络_漫谈循环神经网络:LSTM、GRU

    知乎视频​www.zhihu.com 简单循环神经网络的局限性 循环神经网络横向结构也是借助激活函数进行传递的: 上图是循环神经网络按时间步展开,而如果一次处理的时间步过长,即从左到右的层数很深,那么 ...

  3. 属性级情感分析(于restaurant14和laptop14数据集上使用LSTM和GRU、 MemNet和IAN以及CNN等)的对比分析

    随着人们的社交活动.消费习惯.工作内容也逐渐由线下转移到线上,从互联网上海量文本中自动挖掘出人们对各类事务的需求.喜好.观点.态度等,具有广阔的应用场景和很高的商业价值. 在自然语言处理领域,情感分析 ...

  4. Pytorch:RNN、LSTM、GRU 构建人名分类器(one-hot版本、Embedding嵌入层版本)

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) 2. RNN经典案例 2.1 使用RNN模型构建人名分类器 学 ...

  5. 基于神经网络的黄金、外汇价格预测(RNN、LSTM、GRU、CNN+LSTM、BP)

    价格预测研究分析 价格预测作为一种复杂的回归问题,可以使用神经网络模拟其复杂的函数表示来解决,对黄金和外汇而言,它们在未来某一时间节点的价格与历史数据存在着紧密的联系,具备极强的时间关联性,对这种与时 ...

  6. 记忆网络RNN、LSTM与GRU

    RNN 结构 训练 应用 RNN Variants LSTM 结构 梯度消失及梯度爆炸 GRU 结构 一般的神经网络输入和输出的维度大小都是固定的,针对序列类型(尤其是变长的序列)的输入或输出数据束手 ...

  7. 了解LSTM和GRU

    lstm和gru 深度学习 , 自然语言处理 (Deep Learning, Natural Language Processing) In my last article, I have intro ...

  8. 【数值预测案例】(6) LSTM、GRU 时间序列股票数据预测,附TensorFlow完整代码

    大家好,今天和各位分享一下如何使用循环神经网络 LSTM 和 GRU 完成对股票数据的预测.GRU 是在 LSTM 基础上的简化,将 LSTM 内部的三个闸门简化成两个,往往 GRU 的计算效果会优于 ...

  9. 循环神经网络RNN、LSTM、GRU原理详解

    一.写在前面 这部分内容应该算是近几年发展中最基础的部分了,但是发现自己忘得差不多了,很多细节记得不是很清楚了,故写这篇博客,也希望能够用更简单清晰的思路来把这部分内容说清楚,以此能够帮助更多的朋友, ...

最新文章

  1. 2.最详细的WSDD配置文件注释
  2. Docker 和 Kubernetes 从听过到略懂:给程序员的旋风教程
  3. Linux配置脚本导出运行,linux服务器部署jar包以及shell脚本的书写
  4. Spring和SpringMVC的总结
  5. 搞大了,修改一个参数后重启数据库服务器出错CRS-0184
  6. competitor product could not be downloaded
  7. Optical_Flow(3)
  8. nginx虚拟主机配置实例
  9. GUI编程(一)-----概述
  10. javaweb中servlet中使用poi
  11. win10安装solidworks 注册机闪退的问题,转自知乎
  12. duxcms在phpnow环境 做301重定向跳转(将junbaike.com域名301重定向到www.junbaike.com域名)
  13. 亚马逊 Alexa skill开发
  14. 石头剪子布(字符串)c语言,石头、剪刀、布程序,C语言模拟
  15. java.lang.NoClassDefFoundError: com/huaban/analysis/jieba/JiebaSegmenter
  16. zbrush常用笔刷_zbrush笔刷大合集
  17. layui查档页面_首页--layui后台管理模板 2.0
  18. 超越大典汽车维修系统
  19. (附源码)ssm高校志愿者服务系统 毕业设计 011648
  20. 树莓派开发系列教程2——树莓派上手使用

热门文章

  1. mysql ndb 关闭_MySQL NDB Cluster环境启动与关闭
  2. 百度蜘蛛爬行日志分析
  3. 在vue项目中使用echarts 阿星小栈
  4. mac 邮箱客户端之腾讯企业邮箱设置 无法验证账号或密码
  5. 奈雪的茶“快跑”,喜茶“慢行”
  6. 9flash:个人网站商业化之蜕
  7. 2021年全网最详细的计算机二级备考攻略,看完都会过~
  8. “躲不开”的科技革命,第一季:远离舒适区!
  9. C++编译错误与运行时错误
  10. mysql中工资表,( 13 ) 数据库中有工资表 , 包括 “ 姓名 ” 、 “ 工资 ” 和 “ 职称 ” 等字段 , 现要对不同职称的职 - 赏学吧...