非监督特征学习与深度学习(十五)--------长短记忆(Long Short Term Memory,LSTM)

2023-11-05

注:本文转载自https://github.com/exacity/simplified-deeplearning/blob/master/%E5%BE%AA%E7%8E%AF%E9%80%92%E5%BD%92%E7%BD%91%E7%BB%9C/LSTM.md
因为github上的makedown格式显示的不够完全,看的非常不方便,因此放到CSDN上比较好查阅学习。

LSTM

LSTM概述

  长短记忆(Long Short Term Memory,LSTM)是一种 RNN 特殊的类型,可以学习长期依赖信息,它引入了自循环的巧妙构思,以产生梯度长时间持续流动的路径,解决RNN梯度消失或爆炸的问题。在手写识别、机器翻译、语音识别等应用上,LSTM 都取得相当巨大的成功,并得到了广泛的使用。

  LSTM循环网络除了外部的RNN循环外,还具有内部的“LSTM细胞”自循环,和RNN相比LSTM每个单元有相同的输入和输出参数,但也有更多的参数和控制信息流流动的门控单元系统,门控单元包括输入门、输出门、遗忘门。模型图如下:
rnn
  如上图所示,查看 Xt X t 时刻的细胞状态,细胞彼此循环连接,代替一般循环网络中的普通的隐藏单元。这里使用人工的神经元计算输入特征,如果sigmoid输入门允许,它的值可以累加到状态。状态单元具有线性自循环,其权重由遗忘门控制。细胞的输出可以被输出门关闭。所有的门控单元都具有sigmoid非线性,而输入单元具有任意的压缩非线性。状态单元也可以作为门空单元的额外输入。

LSTM核心思想

LSTM的主要思想是采用一个叫做“细胞状态(state)”的通道来贯穿整个时间序列。

rnn

  通过精心设计“门”的结构来去除或增加信息到细胞状态的能力。门是一种让信息选择式通过的方法。它们包含一个 sigmoid 神经网络层和一个逐元乘法操作。

                   rnn

  Sigmoid 层输出 0 到 1 之间的数值,描述每个部分有多少量可以通过。0 代表“不许任何量通过”,1 就指“允许任意量通过”。LSTM 拥有三个门,来保护和控制细胞状态。下面详细介绍LSTM三个门控。

遗忘门

  • “遗忘门”决定之前状态中的信息有多少应该舍弃。它会读取 ht1 h t − 1 xt x t 的内容, σ σ 符号代表Sigmoid函数,它会输出一个0到1之间的值。其中0代表舍弃之前细胞状态 Ct1 C t − 1 中的内容,1代表完全保留之前细胞状态 Ct1 C t − 1 中的内容。0、1之间的值代表部分保留之前细胞状态 Ct1 C t − 1 中的内容。

rnn

在我们 LSTM 中的第一步是决定我们会从细胞状态中丢弃什么信息。这个决定通过一个称为忘记门层完成。该门会读取 ht1 h t − 1 xt x t ,输出一个在 0 到 1 之间的数值给每个在细胞状态 Ct1 C t − 1 中的数字。1 表示“完全保留”,0 表示“完全舍弃”。

输入门

  • “输入门”决定什么样的信息保留在细胞状态 Ct C t 中,它会读取 ht1 h t − 1 xt x t 的内容, σ σ 符号代表Sigmoid函数,它会输出一个0到1之间的值。
  • 和“输入门”配合的还有另外一部分,即下图中计算tanh层的部分,这部分输入也是 ht1 h t − 1 xt x t ,不过采用tanh激活函数,将这部分标记为 c~(t) c ~ ( t ) ,称作为“候选状态”。
    rnn

细胞状态更新

  • Ct1 C t − 1 计算得到 Ct C t
  • 旧“细胞状态” Ct1 C t − 1 和“遗忘门”的结果进行计算,决定旧的“细胞状态”保留多少,忘记多少。接着“输入门” i(t) i ( t ) 和候选状态 c~(t) c ~ ( t ) 进行计算,将所得到的结果加入到“细胞状态”中,这表示新的输入信息有多少加入到“细胞状态中”。
    rnn

输出门

  • 和其他门计算一样,它会读取 ht1 h t − 1 xt x t 的内容,然后计算Sigmoid函数,得到“输出门”的值。接着把“细胞状态”通过tanh进行处理(得到一个在-1到1之间的值),并将它和输出门的结果相乘,最终得到确定输出的部分。
    rnn

参考

Understanding LSTM Networks

The Unreasonable Effectiveness of Recurrent Neural Networks

Sequence prediction using recurrent neural networks(LSTM) with TensorFlow

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

非监督特征学习与深度学习(十五)--------长短记忆(Long Short Term Memory,LSTM) 的相关文章

  • 居中

    水平居中 1 HTML div class test img src images mlbtag jpg alt class test2 div CSS test width 100 test2 margin 0 auto display
  • Maximum Diameter Graph 【CodeForces - 1082D】【搜索+构造】

    题目链接 一开始忘记输出有多少条边 WA了好几发都跑不过第一组测试样例 开始怀疑自己是不是读了道假题 然后在大佬们的帮助下 终于AC 好伤心 读假样例 一定是我太弱了 我的思想是采用了树链剖分的dfs 构造思想 可能是因为最近少用了树链剖分
  • 从PFX文件中获取私钥、公钥证书、公钥

    https blog csdn net ZuoYanYouYan article details 77868584 该类具体功能 根据pfx证书得到私钥 根据私钥字节数组获取私钥对象 根据公钥字节数组获取公钥 根据pfx证书获取证书对象 根

随机推荐

  • iOS 史上最全App上架流程分享

    大概是19年写的文章吧 当时给Android 同事分享了下iOSApp上架的流程 就是几个人在会议室坐在一起讲课那种类型 并写了个文档保存在公司的内部网站上 今天翻出来了我感觉对新手还是挺有帮助的 就写这一篇blog吧 流程步骤 1 通过新
  • “实践与理论相结合”是开发人员的学习之道

    实践与理论相结合 这句话最常见的是一些官方的报导中 一听到这种教条主义就会嗤之以鼻 太空泛 无任何实际意义 今天就借射雕英雄传中郭靖学习武功 领悟九阴真经的过程来讲一讲 实践与理论相结合 与开发人员的关系 射雕英雄传第十七回 经中所述句句含
  • 大数据技术原理

    大数据技术原理 大数据技术原理与应用 大数据作为继云计算 物联网之后IT行业又一颠覆性的技术 备受关注 大数据无处不在 包括金融 汽车 零售 餐饮 电信 能源 政务 医疗 体育 娱乐等在内的社会各行各业 都融入了大数据的印迹 大数据对人类的
  • 【OpenCV】广告屏换图 文稿矫正 透视变换 C++ 案例实现

    目录 前言 一 透视变换的概念 二 透视变换工作原理 三 相关函数 1 findHomography函数 2 warpPerspective函数 3 getPerspectiveTransform函数 四 透视变换案例 案例1 文稿矫正 案
  • C语言学习-开发工具VS2022的选择与使用

    1 选择VS2022的理由 下载安装即可使用 无需复杂的环境配置等操作 适合初学者 2 使用过程中的遇到的问题 2 1在使用scanf函数时发生如下错误 2 2解决办法有两个 lt 1 gt 方法一 在源代码第一行添加 define CRT
  • Dockerfile中的cmd和entrypoint

    很早之前大致看了下Dockerfile中的entrypoint和cmd的区别 当时主要的感觉是 entrypoint不会被docker run后面跟的参数覆盖 而cmd则会 却一直有一个误解 认为如果在Dockerfile中同时写了entr
  • float数据在内存中是怎么存储的

    float类型数字在计算机中用4个字节存储 遵循IEEE 754格式标准 一个浮点数有2部分组成 底数m和指数e 底数部分 使用二进制数来表示此浮点数的实际值 指数部分 占用8bit的二进制数 可表示数值范围为0 255 但是指数可正可负
  • 雷军写的代码上热搜了!

    就在昨天 雷军写的代码 相关话题先后上了一波热搜和热榜 出于好奇 第一时间点进去围观了一波 原来雷总马上要在8月14日举办他的2023年度演讲了 并且也放出了对应的演讲海报 这个海报可以说暗藏玄机 放大后仔细一看 好家伙 密密麻麻全都是代码
  • jsp人事管理系统(源码+数据库)

    实例简介 实现普通用户以及管理员用户的登录 人员的管理 部门的管理 日志等信息的发布 文件 590m com f 25127180 488929552 972443 访问密码 551685 实例截图 以下内容无关 分割线 第一个想法 读取每
  • Android APK安装完成自动删除安装包

    Android APK安装完成自动删除安装包 需要实现此功能 一般实际开发是在自动版本更新上 当更新完开始自动安装完毕后 删除内存卡里的安装包 实现方式很简单 监听应用广播 获取内存卡下的文件 删除 1 监听广播 package com e
  • 深度学习GPU环境安装(Windows、WSL)

    目录 1 概述 2 windows环境安装 2 1 电脑配置 2 2 安装PyTorch 2 3 安装CUDA和cuDNN 2 4 环境变量配置 2 5 测试 3 WSL Linux环境安装 ubuntu 3 1 安装 ubuntu 3 2
  • Vue+Echarts实现饼图统计通过率

    Vue Echarts实现一个饼状图 1 在项目里面安装echarts 2 在需要用图表的地方引入 1 在项目里面安装echarts 在项目中安装echarts 插件 cnpm install echarts save 2 在需要用图表的地
  • 【分治算法】有重复元素的排列问题

    算法实现题 2 8 有重复元素的排列问题 问题描述 设 R r1 r2 rn 是要进行排列的 n 个元素 其中元素r1 r2 rn 可能相同 试设计 一个算法 列出 R 的所有不同排列 编程任务 给定 n 以及待排列的 n 个元素 计算出这
  • 浪潮英信NF5245M3服务器系统安装手册

    安装前 1 准备工作 准备软件 rhel server 6 2 x86 64 dvd ISO镜像 点我下载 RedHat 6 2 EM64T Raid驱动程序 点我下载 UltraISO工具 准备硬件 16GU盘一枚 2 制作U盘启动 Ul
  • os.environ[“CUDA_VISIBLE_DEVICES“] = args.device不起作用

    问题描述 在代码中这样写 if name main os environ CUDA VISIBLE DEVICES args device main 不起作用 原因是os environ CUDA VISIBLE DEVICES args
  • Android使用不可滑动RecyclerView条目显示不全问题(只显示两个item)

    文章目录 前言 二 解决步骤 1 xml布局 2 java代码示例 总结 前言 在写一个ScrollView包裹RecyclerView的功能时 要求RecyclerView包裹数据长度且不可滑动 设置不可滑动后发现item只展示了两条数据
  • svn中出现各种感叹号说明

    黄色感叹号 有冲突 这是有冲突了 冲突就是说你对某个文件进行了修改 别人也对这个文件进行了修改 别人抢在你提交之前先提交了 这时你再提交就会被提示发生冲突 而不允许你提交 防止你的提交覆盖了别人的修改 要解决冲突 如果你确认你的修改是无效的
  • 实现一个计算输入的两数的和与差的简单函数。

    实现一个计算输入的两数的和与差的简单函数 首先 我们知道一般从子函数只能向主函数中返回一个值 可是本题却要求我们返回和与差 这样我们就无法通过返回值来进行完成 于是我相信很多初学者都会犯如下错误 在子函数中通过值传递的方式计算出加减的结果
  • 算法---LeetCode 200. 岛屿数量

    1 题目 原题链接 给你一个由 1 陆地 和 0 水 组成的的二维网格 请你计算网格中岛屿的数量 岛屿总是被水包围 并且每座岛屿只能由水平方向和 或竖直方向上相邻的陆地连接形成 此外 你可以假设该网格的四条边均被水包围 示例 1 输入 gr
  • 非监督特征学习与深度学习(十五)--------长短记忆(Long Short Term Memory,LSTM)

    注 本文转载自https github com exacity simplified deeplearning blob master E5 BE AA E7 8E AF E9 80 92 E5 BD 92 E7 BD 91 E7 BB 9