来自 | 知乎

地址 |

https://zhuanlan.zhihu.com/p/83496936

作者 | 陈楠

编辑 | 机器学习算法与自然语言处理公众号

本文仅作学术分享,若侵权,请联系后台删文处理

1.长短期记忆网络LSTM

LSTM(Long short-term memory)通过刻意的设计来避免长期依赖问题,是一种特殊的RNN。长时间记住信息实际上是 LSTM 的默认行为,而不是需要努力学习的东西!

所有递归神经网络都具有神经网络的链式重复模块。在标准的RNN中,这个重复模块具有非常简单的结构,例如只有单个tanh层,如下图所示。

LSTM具有同样的结构,但是重复的模块拥有不同的结构,如下图所示。与RNN的单一神经网络层不同,这里有四个网络层,并且以一种非常特殊的方式进行交互。

1.1 LSTM--遗忘门

1.2 LSTM--输入门

1.3 LSTM--细胞状态更新

1.4 LSTM--输出门

最后,我们需要确定输出值。输出依赖于我们的细胞状态,但会是一个“过滤的”版本。首先我们运行 S 形网络层,用来确定细胞状态中的哪些部分可以输出。然后,我们把细胞状态输入 tanh(把数值调整到 −1 和 1 之间)再和 S 形网络层的输出值相乘,部这样我们就可以输出想要输出的分。

2. LSTM的变种以及前向、反向传播

目前所描述的还只是一个相当一般化的 LSTM 网络。但并非所有 LSTM 网络都和之前描述的一样。事实上,几乎所有文章都会改进 LSTM 网络得到一个特定版本。差别是次要的,但有必要认识一下这些变种。

2.1 带有"窥视孔连接"的LSTM

一个流行的 LSTM 变种由 Gers 和 Schmidhuber 提出,在 LSTM 的基础上添加了一个“窥视孔连接”,这意味着我们可以让门网络层输入细胞状态。

上图中我们为所有门添加窥视孔,但许多论文只为部分门添加。为了更直观的推导反向传播算法,将上图转化为下图:

前向传播:在t时刻的前向传播公式为:

2.2 GRU

为了更加直观的推导反向传播公式,将上图转化为如下形式:

GRU的前向传播:在t时刻的前向传播公式为:

GRU的反向传播:t时刻其它节点的梯度:

对参数的梯度:

2.3 遗忘门与输入门相结合的LSTM

另一个变种把遗忘和输入门结合起来。同时确定要遗忘的信息和要添加的新信息,而不再是分开确定。当输入的时候才会遗忘,当遗忘旧信息的时候才会输入新数据。

前向与反向算法与上述变种相同,这里不再做过多推导。

参考资料:【翻译】理解 LSTM 网络 - xuruilong100 - 博客园

java lstm_人人都能看懂的LSTM介绍及反向传播算法推导(非常详细)相关推荐

  1. 收藏 | 人人都能看懂的LSTM介绍及反向传播算法推导

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:作者:陈楠 来源:知乎 链接:https://zhuanla ...

  2. 人人都能看懂的LSTM

    来自 : 知乎  作者 : 陈诚 链接 :https://zhuanlan.zhihu.com/p/32085405 编辑 : 深度学习这件小事公众号 本文仅作学术交流,如有侵权,请联系后台删除 这是 ...

  3. 人人都能看懂的 LSTM

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:来自 | 知乎  作者 | 陈诚 链接 | https:// ...

  4. 【干货】人人都能看懂的LSTM

    推荐阅读时间:8min~13min 推荐理由:这是在看了台大李宏毅教授的深度学习视频之后的一点总结和感想.看完介绍的第一部分RNN尤其LSTM的介绍之后,整个人醍醐灌顶. 1 0. 从RNN说起 循环 ...

  5. 人人都能看懂的LSTMGRU

    看过的讲的最简单明了的: LSTM:人人都能看懂的LSTM GRU:人人都能看懂的GRU 自己对LSTM的理解与代码解释:https://blog.csdn.net/Strive_For_Future ...

  6. 人人都能看懂LSTM

    这是在看了台大李宏毅教授的深度学习视频之后的一点总结和感想.看完介绍的第一部分RNN尤其LSTM的介绍之后,整个人醍醐灌顶.本篇博客就是对视频的一些记录加上了一些个人的思考. 0. 从RNN说起 循环 ...

  7. 人人都能看懂的Spring源码解析,Spring如何解决循环依赖

    人人都能看懂的Spring源码解析,Spring如何解决循环依赖 原理解析 什么是循环依赖 循环依赖会有什么问题? 如何解决循环依赖 问题的根本原因 如何解决 为什么需要三级缓存? Spring的三级 ...

  8. 人人都能看懂的Spring底层原理,看完绝对不会懵逼

    人人都能看懂的Spring原理,绝对不会懵逼 为什么要使用Spring? Spring的核心组件 Spring是如何实现IOC和DI的? 定义了BeanDefinition 扫描加载BeanDefin ...

  9. 人人都能看懂的EM算法推导

    作者丨August@知乎(已授权) 来源丨https://zhuanlan.zhihu.com/p/36331115 编辑丨极市平台 估计有很多入门机器学习的同学在看到EM算法的时候会有种种疑惑:EM ...

最新文章

  1. ubuntu mysql 改密码_tpcc-mysql 压力测试
  2. 北京智源研究院招募社区编辑:我在国内AI研究者密度最大的办公室等你
  3. TIOBE 11 月编程语言:Java 首次跌出前二,Python 势不可挡
  4. 【Java并发编程】20、DelayQueue实现订单的定时取消
  5. python 最小二乘法三维坐标拟合平面_matlab三维曲面进行平面拟合,利用最小二乘法...
  6. AIX 添加开机启动项
  7. C++语法细节注意集锦
  8. React Native开发指南-在原生和React Native间通信
  9. android从一个活动到另一个活动,Android应用程序在将一个活动打开到另一个活动时崩溃...
  10. LeetCode 240. Search a 2D Matrix II
  11. sublime 3 前端神器详细 安装教程
  12. HttpGet请求数据乱码的原因
  13. excel自动换行快捷键_Excel中Alt键的10大应用技巧解读
  14. 计算机组成原理- 旋转跳跃的指令实现
  15. 决策树- 随机森林/GBDT/XGBoost
  16. C++如何开发验证码短信接口API
  17. 计算机网络——虚拟机网络的三种模式介绍-桥接模式-NAT模式-仅主机模式
  18. 解决Windows 7下IE11无法卸载、无法重新安装,提示安装了更新的IE版本
  19. 谈谈mysql locate函数
  20. 高通 android笔记本电脑,联想将推高端安卓平板 搭载高通骁龙870处理器

热门文章

  1. nodejs 实践项目_NodeJS:最佳生产实践
  2. 我五年来都没来过 我的意志力飞涨。
  3. des加密的c语言程序,C++中四种加密算法之DES源代码
  4. oracle怎么判断地址相似,如何查看oracle数据文件的地址
  5. ubuntu安装c/c++编译环境
  6. Python使用pyexecjs代码案例解析
  7. Shell脚本语法2
  8. 列表,元组,集合,字典常用方法
  9. HBase 架构详解
  10. 【转】freetextbox的ToolBarLayout属性设置