作者 | Che_Hongshu

来源 | AI蜗牛车 (ID: AI_For_Car)

因为自己LSTM和GRU学的时间相隔很远,并且当时学的也有点小小的蒙圈,也因为最近一直在用lstm,gru等等,所以今天没事好好缕了一下,接下来跟着我一起区分并且每个单元全都非常深刻的记一下把。

一、LSTM

这里我们只看内部结构


公式为



看内部结构的话为


接下来是我的理解和记忆方法以及区分。自己对上面的图片进行了编辑,单元和公式一一对应颜色,方便自己和他人观看。


一张图清晰地搞定LSTM。

个人理解简短的说明这张图。

  1. 首先输入为三个值,一个是此刻的输入值x,另一个是上一时刻的状态值c,最后一个是上一个单元的输出h

  2. 最终输出为两个值,一个是此刻产生的状态值c和输出h

  3. 首先是输入值x和上一个单元的输出h,分别两个输入都有对应的权重,在经过sigmoid激活作用下得到0-1的值,也就是三个门值

  4. 和3差不多,依然还是 输入值x和上一个单元的输出h,两个值有对应的权重和3中的描述一模一样,唯一的区别在于有一个tanh激活函数,最后相当于得到此时输入得到的当前state,也就是new memory。这里可以理解为输入其实是近似的x和h的concatenate操作,经过正常的神经网络的权重,最后经过tanh激活函数得到此时输入的当前的state,x相当于此刻的输入,h为前面历史的输入,合在一起就是整个序列的信息,也就是此时的new memory。

  5. 最后输出的state,也就是final memory的计算利用了input gate和forget gate,output gate只与输出有关。final memory的计算自然而然和上一步算得此时的记忆state相关并且和上一个输出的final memory相关,故为忘记门和Ct-1的乘积加上上一步算出来的此时单元的C和输入门的乘积为最终的state(故 c)

  6. 输出门只与输出相关,最终的输出h为输出门乘以tanh(c)

致此这里LSTM 梳理完毕

二、GRU

内部结构和公式



自己对上面的图片进行了编辑,单元和公式一一对应颜色,方便自己和他人观看。
.


  1. 这里GRU只有两个gate,一个是reset gate, 一个是update gate, update gate的作用类似于input gate和forget gate,(1-z)相当于input gate, z相当于forget gate。

  2. 输入为两个值,输出也为一个值,输入为输入此时时刻值x和上一个时刻的输出ht-1, 输出这个时刻的输出值ht

  3. 首先依然是利用xt和ht-1经过权重相乘通过sigmoid,得到两个0-1的值,即两个门值。

  4. 接下来这里有一些不同,并且经常容易搞混淆。对于LSTM来说依然还是xt与ht-1分别权重相乘相加,之后经过tanh函数为此时的new memory,而GRU为在这个计算过程中,在ht-1与权重乘积之后和reset gate相乘,之后最终得到new memory,这里的reset gate的作用为让这个new memory包括之前的ht-1的信息的多少。

  5. 接下来和lstm得到final memory其实一样,只是GRU只有两个输入,一个输出,其实这里h即输出也是state,就是说GRU的输出和state是一个值,所以4步骤得到的是new h,这步骤得到的是final h,通过update gate得到。

三、细数LSTM与GRU之间的不同

3.1 结构上


  1. lstm为三个输入xt,ht-1, ct-1,两个输出。gru为两个输入xt, ht-1,一个输出ht,输出即state。

  2. lstm有三个门,输入输出忘记门。gru有两个门,reset,update 门。

  3. update 类似于 input gate和forget gate

3.2 功能上


  1. GRU参数更少,训练速度更快,相比之下需要的数据量更少

  2. 如果有足够的数据,LSTM的效果可能好于GRU

Reference


https://blog.csdn.net/sinat_33741547/article/details/82821782
https://towardsdatascience.com/understanding-gru-networks-2ef37df6c9be
https://medium.com/mlrecipies/deep-learning-basics-gated-recurrent-unit-gru-1d8e9fae7280

(*本文为 AI 科技大本营转载文章,转载请联系原作者)

福利时刻

入群参与每周抽奖~

扫码添加小助手,回复:大会,加入福利群,参与抽奖送礼!

大会优惠票限时抢购中!此外,伯克利大学名师精髓课程移师北京。《动手学深度学习》作者、亚马逊首席科学家李沐线下亲授「深度学习实训营」,免费GPU资源,现场还将限量赠送价值85元的配套书籍一本,先到先得。原价1099元,限时专享CSDN 独家福利价199元识别海报二维码,即刻购票~

推荐阅读

  • 字节跳动李航:自学机器学习,研究AI三十载,他说AI发展或进入平缓期

  • 2019 AI ProCon日程出炉:Amazon首席科学家李沐亲授「深度学习

  • 读完ACL 2019录取的30篇知识图谱论文,我发现了这5点趋势

  • 如何用知识图谱挖掘商业数据背后的宝藏?

  • 腾讯AI开源框架Angel 3.0重磅发布:超50万行代码,打造全栈机器学习平台

  • 教你阅读CPython的源码

  • 安装Python/PyCharm,入门级爬虫案例 | Mac下玩转Python

  • Python冷知识,不一样的技巧带给你不一样的乐趣

  • 互联网人职业发展之路:三年升高工,七年做架构,十年送外卖

  • IT公司老板落水,各部门员工怎么救?

你点的每个“在看”,我都认真当成了喜欢

图解LSTM与GRU单元的各个公式和区别相关推荐

  1. 【串讲总结】RNN、LSTM、GRU、ConvLSTM、ConvGRU、ST-LSTM

    前言 平时很少写总结性的文章,感觉还是需要阶段性总结一些可以串在一起的知识点,所以这次写了下.因为我写的内容主要在时序.时空预测这个方向,所以主要还是把rnn,lstm,gru,convlstm,co ...

  2. 【图文并茂】RNN、LSTM、GRU、ConvLSTM、ConvGRU、ST-LSTM的总结

    前言 平时很少写总结性的文章,感觉还是需要阶段性总结一些可以串在一起的知识点,所以这次写了下.因为我写的内容主要在时序.时空预测这个方向,所以主要还是把rnn,lstm,gru,convlstm,co ...

  3. RNN、LSTM、GRU的原理和实现

    个人博客:http://www.chenjianqu.com/ 原文链接:http://www.chenjianqu.com/show-41.html 用python实现了经典的RNN,LSTM和GR ...

  4. lstm数学推导_手推公式:LSTM单元梯度的详细的数学推导

    长短期记忆是复杂和先进的神经网络结构的重要组成部分.本文的主要思想是解释其背后的数学原理,所以阅读本文之前,建议首先对LSTM有一些了解. 介绍 上面是单个LSTM单元的图表.我知道它看起来可怕,但我 ...

  5. 【深度学习系列(六)】:RNN系列(2):RNN的基础单元之LSTM、GRU以及SRU

    目录 一.LSTM网络 1.1.遗忘门 1.2.输入门 1.3.输出门 二.GRU网络 2.1.重置门 2.2.更新门 三.SRU网络 3.1.SRU网络结构 3.2.SRU并行优化 四.总结 人对一 ...

  6. 1.9 GRU 单元-深度学习第五课《序列模型》-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 1.8 带有神经网络的梯度消失 回到目录 1.10 长短期机器 (LSTM) GRU 单元 (Gated Recurrent Unit (GRU)) 你已经了解了基础的RNN ...

  7. 【强烈推荐】最好理解的LSTM与GRU教程

    AI识别你的语音.回答你的问题.帮你翻译外语,都离不开一种特殊的循环神经网络(RNN):长短期记忆网络(Long short-term memory,LSTM). 最近,国外有一份关于LSTM及其变种 ...

  8. 了解LSTM和GRU

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

  9. 深度学习 《LSTM和GRU模型》

    前言: 前面我们学习了标准的单向单层和单向多层的RNN,这一博文我来介绍RNN的改进版本LSTM和GRU,至于为什么有这个改进的方案,以及如何理解它们,我会尽量用最通俗的语言俩表达. 学习自博客htt ...

最新文章

  1. 如何成为一个合格的项目经理?
  2. linux 树莓派查看ip,树莓派 常用Linux命令
  3. KMeans和KMedoid 的Matlab实现
  4. 七大排序算法的个人总结(三)
  5. oracle中的merge into用法解析
  6. ssh远程连接(ubuntu、windows)
  7. liferay 去掉 portlet:actionUrl 跳转时的message
  8. php 苹果支付验证,PHP实现Apple应用内购服务端验证
  9. 静态路由的配置(以华为eNSP为例)
  10. 对接谷歌翻译接口的WordPressSEO插件
  11. PPT幻灯片放映时不显示视频(旁白)
  12. 广发证券:积极推行投资者教育
  13. mysql如何存储非结构化数据_数据库-数据存储-非结构化数据的存储方式
  14. 论文笔记——Thompson Sampling for Contextual Bandits with Linear Payoffs(线性收益)
  15. 进击的海姆达尔Heimdallr,2021年链游最后一趟财富专列
  16. Civil 3d 数据快捷方式的使用
  17. 低学历者生存困难 程序员尤其明显
  18. 一个比较牛逼人的博客
  19. 线上连锁线下整合 连锁店电商解决方案
  20. [笔记分享] [Display] MIPI屏调试及举例

热门文章

  1. Mybatis缓存机制理解及配置
  2. 启动Genymotion时报错Failed to initialize backend EGL display
  3. 不说12306你会Die啊?当然不会,但会憋死
  4. UITableView 添加长按手势UILongPressGestureRecognizer
  5. Java面试题大全带答案 110道(持续更新)
  6. BaaS, IaaS, PaaS, SaaS介绍
  7. 暑期集训3:几何基础 练习题B: HDU - 2001
  8. 【转载】标准输入输出、错误输出、重定向标准输出
  9. 数据导出Excel表格
  10. 谜题59:什么是差?