网站首页 > 技术文章 正文
现在目前用的最多的三种神经网络是CNN,LSTM,GRU。其中,后两者都是RNN的变种,去年又给RNN发明了个SRU(优点是train RNN as fast as CNN),SRU以后再讲,目前先消化了这个GRU再说。
名词解释
GRU(Gate Recurrent Unit门控循环单元)是循环神经网络(Recurrent Neural Network, RNN)的一种。GRU是新一代RNN,与LSTM非常相似,意思大概理解就是在RNN上多加了几个门,目的和LSTM(Long-Short Term Memory)基本一样,为了加强RNN神经网络的记忆能力,解决长期记忆和反向传播中的梯度等问题而提出来的。
GRU和LSTM在很多情况下实际表现上相差无几,那么为什么我们要使用新人GRU(2014年提出)而不是相对经受了更多考验的LSTM(1997提出)呢。
下图引用论文中的一段话来说明GRU的优势所在。
简单译文:我们在我们的实验中选择GRU是因为它的实验效果与LSTM相似,但是更易于计算。
相比LSTM,使用GRU能够达到相当的效果,并且相比之下更容易进行训练,能够很大程度上提高训练效率,因此很多时候会更倾向于使用GRU。
GRU是如何工作的?
GRU不使用单元状态,而是使用隐藏状态来传输信息。它也只有两个门,一个重置门和一个更新门(reset gate and update gate)。
更新门update gate
更新门的作用类似于LSTM的遗忘和输入门。它决定要丢弃哪些信息和要添加哪些新信息。
重置门reset gate
重置门是另一个用来决定要忘记多少过去的信息的门。
这就是GRU。GRU的张量操作较少;因此,他们的训练速度要比LSTM快一些。但还说不清哪个更好。研究人员和工程师通常都会尝试,以确定哪一个更适合他们的用例。
GRU输入输出的结构与普通的RNN相似,其中的内部思想与LSTM相似。
与LSTM相比,GRU内部少了一个”门控“,参数比LSTM少,但是却也能够达到与LSTM相当的功能。考虑到硬件的计算能力和时间成本,因而很多时候我们也就会选择更加”实用“的GRU啦。
参考文献
- Chung J, Gulcehre C, Cho K, et al. Empirical evaluation of gated recurrent neural networks on sequence modeling[J]. arXiv: Neural and Evolutionary Computing, 2014.
- https://en.wikipedia.org/wiki/Gated_recurrent_unit#References
猜你喜欢
- 2024-11-01 假期学习必备:机器学习知识体系汇总,弄懂面试横着走
- 2024-11-01 循环神经网络的使用RNN和LSTM rnn循环神经网络的原理
- 2024-11-01 #一天一个AI知识点# 什么是LSTM? #lstm有什么用
- 2024-11-01 NLP中应用最广泛的特征抽取模型-LSTM,虽老生常谈,却不乏新意
- 2024-11-01 TensorFlow 1.9更新,侧重对tf.keras文档,GRU和LSTM实现的改进
- 2024-11-01 人工智能基础:LSTM及其变种介绍,方便针对实际问题取舍
- 2024-11-01 别再用RNN和LSTM了!注意力模型才是王道
- 2024-11-01 深度学习——动画版RNN、LSTM和GRU计算过程
- 2024-11-01 首次大规模神经机器翻译架构分析结果出炉,LSTM 优于GRU
你 发表评论:
欢迎- 最近发表
-
- 在 Spring Boot 项目中使用 activiti
- 开箱即用-activiti流程引擎(active 流程引擎)
- 在springBoot项目中整合使用activiti
- activiti中的网关是干什么的?(activiti包含网关)
- SpringBoot集成工作流Activiti(完整源码和配套文档)
- Activiti工作流介绍及使用(activiti工作流会签)
- SpringBoot集成工作流Activiti(实际项目演示)
- activiti工作流引擎(activiti工作流引擎怎么用)
- 工作流Activiti初体验及在数据库中生成的表
- Activiti工作流浅析(activiti6.0工作流引擎深度解析)
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)