专栏首页AI科技大本营的专栏图解LSTM与GRU单元的各个公式和区别

图解LSTM与GRU单元的各个公式和区别

作者 | 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 科技大本营转载文章,转载请联系原作者)

本文分享自微信公众号 - AI科技大本营(rgznai100),作者:Che_Hongshu

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-08-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 《图像处理综合实例》今晚直播还送书,向送书势力低头...

    同学们好! 《计算机视觉原理及实战》已经开播三节拉! 内容新颖有趣,范例源自生活 好奇宝宝们请戳下面的节选see see~ ▼ ? (直播课 节选)

    AI科技大本营
  • 直接上手!不容错过的Visual Studio Code十大扩展组件

    各大平台与各种语言的开发人员都在使用Visual Studio Code,我对此感到惊讶。Stack Overflow发布的2019年开发者调查结果显示,VS ...

    AI科技大本营
  • AI 一分钟 | 法拉第未来称年底前交付首量FF91,你还相信贾跃亭吗?

    一分钟AI 景驰在广州开启无人车试运营 王劲:市民可预约试乘 利用人工智能技术 Google Flights能预测航班延误 用区块链共享人工智能服务 ATN及A...

    AI科技大本营
  • 详细解读LSTM与GRU单元的各个公式和区别

    因为自己LSTM和GRU学的时间相隔很远,并且当时学的也有点小小的蒙圈,也因为最近一直在用lstm,gru等等,所以今天没事好好缕了一下,接下来跟着我一起区分并...

    石晓文
  • 微信小程序根据状态换图

    若本号内容有做得不到位的地方(比如:涉及版权或其他问题),请及时联系我们进行整改即可,会在第一时间进行处理。----

    达达前端
  • python3[爬虫实战] 使用selenium,xpath爬取京东手机

    这里使用的Chrome 浏览器,方便能看到信息是否录入正确, 这里,我们首先找到输入框,然后填上 zuk z2 手机 然后再找到 搜索按钮,选中点击后...

    周小董
  • 谷歌大脑:只要网络足够宽,激活函数皆可抛!

    基于深度神经网络的机器学习模型在很多任务上达到了前所未有的性能。这些模型一般被视为复杂的系统,很难进行理论分析。此外,由于主导最优化过程的通常是高维非凸损失曲面...

    小小詹同学
  • 滴滴大数据算法大赛Di-Tech2016参赛总结

    ---- 写在前面 题目描述 建模方法 特征工程 我的几次提升方法 从其他队伍那里学习到的提升方法 总结和感想 神经网络方法的一点思考 大数据量与分布式计算...

    机器学习AI算法工程
  • Flutter与Native通信 - PlatformChannel源码分析

    Flutter是一个跨平台的方案,在UI、触控及基本的网络请求上已经基本做到平台无关,但是在某些平台特性的功能上,还是必须要对不同的平台做处理。这就涉及到与Na...

    DSoon
  • 1.2.1计算机网络分层结构

    两个系统中实体间的通信是一个很复杂的过程,为了降低协议设计和调试过程的复杂性,也为了便于对网络进行研究、实现和维护,促进标准化工作,通常对计算机网络的体系结构以...

    week

扫码关注云+社区

领取腾讯云代金券