RNN:Long Short-term Memory(中)

目录

1  LSTM 的简图

2  LSTM 的整体结构

2.1  结构图

2.2  流程图

3  举个例子

3.1  简单看看

3.2  代入 LSTM

4  Original Network v.s. LSTM

5  细看 LSTM


原视频:李宏毅 2020:Recurrent Neural Network (Part I)

1  LSTM 的简图

LSTM 实际上就是一种特殊的神经元,只是长得比较复杂罢了。可以看出,它就是在 memory 的基础上加了三个门:输入门(Input Gate)、遗忘门(Forget Gate)和输出门(Output Gate),四者关系如下图所示:

LSTM 三个门的作用:

  • 输入门(Input Gate):控制 LSTM 是否接收当前的输入
  • 遗忘门(Forget Gate):控制 LSTM 是否丢掉 memory 中的内容
  • 输出门(Output Gate):控制 LSTM 是否允许对处理结果进行输出

三个门的开或闭均由信号(signal)控制,这些信号均来自网络的其他部分。

LSTM 的特点是:

  • 四个输入,图中用红线表示,输入均来自网络的其他部分
  • 一个输出,图中用绿线表示,输出也将送往网络的其他部分

如何理解 Long Short-term Memory 这个名称?它的意思就是 Long 的 Short-term 的 Memory,即虽然长但毕竟还是短期的记忆。在 RNN 中,一旦计算出当前时刻隐层的输出,那么 memory 中的内容会立马被冲掉或者说是被替换掉。而在 LSTM 中,有了输入门(Input Gate)和遗忘门(Forget Gate)的控制,memory 中的内容可能不变,也可能只变一部分。因此在一定程度上,LSTM 延长了对某些信息的记忆时间,所以是 Long 的。

2  LSTM 的整体结构

这一节来看 LSTM 具体长啥样。

2.1  结构图

下图就是把 LSTM 中的内容细化了,没有想象的那么复杂:

图中的黑色虚线指明了输入门(Input Gate)、遗忘门(Forget Gate)和输出门(Output Gate)其实就是激活函数的输出。这里的激活函数用的是 Sigmod,输出的值在 0 到 1 之间,用于表示开门的程度。

门不是想象中的要么开要么闭,而是可以半开半闭。

2.2  流程图

下图使用各种变量符号标注了 LSTM 的处理流程:

可以看出,LSTM 门控的方式就是 “乘法”(multiply)。乘的数字越接近于 1,输入、记住、或输出的越多;乘的数字越接近于 0,输入、记住、或输出的越少。

遗忘门(Forget Gate)是反着来的,越接近于 1 遗忘的越少,越接近于 0 遗忘的越多。

3  举个例子

李宏毅老师先是直接让我们感受各个门的作用,然后才是代入 LSTM 中进行说明。

3.1  简单看看

下图中,x_1、x_2 和 x_3 是一个输入向量的不同维度,并不是三个输入。这里没有让我们通过激活函数算各个门的值,而是用底部的三句话指明了处理规则:

三句话的含义:

  • 若 x_2 = 1,则把 x_1 的值送入 memory 中与其内容相加
  • 若 x_2 = -1,则把 memory 中的内容清空,即进行遗忘
  • 若 x_3 = 1,则输出处理结果,否则不输出

根据这三条规则,我们便画出了上图。

3.2  代入 LSTM

假设这是我们训练好的 LSTM,黑色箭头上的数字表示这条线权重:

我们可以先来看看。对于左上角的那组权重,如果 x_3 较大,那么经 Sigmoid 处理的结果就会接近于 1,表示输出门(Output Gate)打开。反之,如果 x_3 较小,那么经 Sigmoid 处理的结果就会接近于 0,表示输出门(Output Gate)关闭。

由于画图过于痛苦,所以这里只演示一组处理过程:

为了简化例子,李宏毅老师还是假设除 Sigmoid 以外的激活函数均为线性函数,并且权重均为 1 。

4  Original Network v.s. LSTM

或许我们会认为 LSTM 这么复杂,看起来和 FFN 没有什么关系啊?事实上,LSTM 只是把 FFN 中的神经元替换为了 LSTM 单元罢了,并且 LSTM 单元也就是个特殊的神经元。

在 FFN 中,一个神经元只要求 x_1 和 x_2 输入一次。而在 LSTM 中,一个 LSTM 单元要求 x_1 和 x_2 输入四次:

同样地,x_1 和 x_2 是一个输入向量的不同维度,而不是两个输入。此外,图中相同颜色的连线,只表示 x_1 和 x_2 使用的是同一组权重,而不代表它们各自乘的权值相同。

5  细看 LSTM

t 时刻的输入 x_t 是一个输入向量,而不是一个维度。x_t 与不同的权值矩阵相乘后得到 z_f、z_i、z、z_o,z_f、z_i、z、z_o 也是一个向量而不是一个维度。最后分别把 z_f、z_i、z、z_o 的各个维度送入到各个 LSTM 单元的不同门处:

c_{t-1} 也是一个向量而不是一个维度,它是 t-1 时刻所有 memory 内容的集合。

有请神图 1 号登场:

通过这张图可以看出,从输入 x_t 到输出 y_t 都是用的矩阵运算。即每次处理的对象都是整个矩阵,而不是挨个输入 x_t 的每个维度,再挨个计算。

有请神图 2 号登场:

这张图完美诠释了 LSTM 是怎么将不同时刻的输入关联起来的。

图中的红色虚线是指,在高级的 LSTM 中,memory 的内容 c_t 和隐层输出 h_t 也会被拉来和 x_{t+1} 一起当输入。


写完这篇再也不想画图了(bushi)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/635303.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【全】OpenSSL创建生成CA证书、服务器、客户端证书及密钥说明

本文章对应的文档:使用OpenSSL创建生成CA证书服务器客户端证书及密钥资源-CSDN文库 https://download.csdn.net/download/weixin_41885845/88746920 对于SSL单向认证 服务器需要CA证书、server证书、server私钥,客户端需要CA证。 对于SSL双向认证 服务器需要CA证书、serv…

zabbix监控扩展

目录 一、zabbix自动发现与自动注册 (一)理论定义 1.自动发现 2.自动注册 (二)实操部署 1.自动发现 (1)新增一台客户端命名为zbx-agent02 ① 配置时间同步 ② 在服务端和客户端上配置 hosts 解析 …

Swagger + Knife4j 接口文档的整合

Swagger 接口文档的整合: 引入依赖(Swagger 或 Knife4j)。自定义 Swagger 配置类。定义需要生成接口文档的代码位置(Controller)。注意:线上环境不要把接口暴露出去!!!可…

C#操作pdf之使用itext实现01-生成一个简单的table

创建.net 8控制台项目 安装itext <PackageReference Include"itext" Version"8.0.2" /><PackageReference Include"itext.bouncy-castle-adapter" Version"8.0.2" /><PackageReference Include"itext.bouncy-cast…

企业级大数据安全架构(四)Ranger安装

作者&#xff1a;楼高 Ranger是支持审计功能的&#xff0c;安装时可以选择审计数据保存的位置&#xff0c;默认支持Solr和HDFS。HDFS的配置比较简单&#xff0c;这里就不赘述了&#xff0c;我们这里使用Ambari默认自带的Solr保存审计日志&#xff0c;下面部署Solr&#xff1a; …

MySQL基础笔记(8)多表查询

一.多表关系介绍 项目开发中&#xff0c;在进行数据库表结构设计时&#xff0c;会根据业务需求及业务模块之间的关系&#xff0c;分析并设计表结构&#xff0c;由于业务之间相互关联&#xff0c;所以各个表结构之间也会存在着各种联系&#xff0c;分为如下3类&#xff1a; 一对…

探索设计模式的魅力:一篇文章让你彻底搞懂建造者模式

建造者模式&#xff08;Builder Pattern&#xff09;是一种创建型设计模式&#xff0c;旨在将一个复杂对象的创建过程与其表示分离&#xff0c;使得同样的构建过程可以创建不同的表示形式。 主要角色&#xff1a; 产品&#xff08;Product&#xff09;&#xff1a;表示正在构建…

论rtp协议的重要性

rtp ps流工具 rtp 协议&#xff0c;实时传输协议&#xff0c;为什么这么重要&#xff0c;可以这么说&#xff0c;几乎所有的标准协议都是国外创造的&#xff0c;感叹一下&#xff0c;例如rtsp协议&#xff0c;sip协议&#xff0c;webrtc&#xff0c;都是以rtp协议为基础&#…

springboot知识04

1、集成swaggershiro放行 &#xff08;1&#xff09;导包 &#xff08;2&#xff09;SwaggerConfig&#xff08;公共&#xff09; package com.smart.community.common.swagger.config;import io.swagger.annotations.ApiOperation; import org.springframework.beans.facto…

开发实践8_REST

一、Django REST Framework, Django View & APIView MTV模式实现前后端分离。Representational State Transfer 表现层状态转化。Representation 资源&#xff08;Resource a specific info. on net.&#xff09;具体呈现形式。ST 修改服务端的数据。修改数据 POST请求。…

java使用AES加密数据库解密

目录 前言代码加密&#xff08;AES&#xff09;sql解密 前言 在一些项目中&#xff0c;客户要求一方面把一些敏感信息进行加密存储到数据库中&#xff0c;另一方面又需要通过加密的信息进行查询&#xff0c;这时就需要在sql对加密的字段进行解密后再进行查询。 代码加密&#x…

数据结构与算法教程,数据结构C语言版教程!(第五部分、数组和广义表详解)二

第五部分、数组和广义表详解 数组和广义表&#xff0c;都用于存储逻辑关系为“一对一”的数据。 数组存储结构&#xff0c;99% 的编程语言都包含的存储结构&#xff0c;用于存储不可再分的单一数据&#xff1b;而广义表不同&#xff0c;它还可以存储子广义表。 本章重点从矩阵…

对多种股权激励方式进行分析,明确按照业绩贡献确定激励对象

一、背景 某生物创新材料有限公司创立于1990年&#xff0c;坐落于成都某高新技术产业开发区&#xff0c;是一家以研发、生产和销售医疗器械、医用高分子材料、生物技术等生物、能源方面的产品为主的大型企业&#xff0c;该公司与美国某科技研究所结成合作伙伴&#xff0c;研发出…

[python语言]数据类型

目录 知识结构​编辑 复数类型 整数类型、浮点数类型 1、整型 2、浮点型 字符与字符串 1、转义字符 2、字符串的截取 3、字符串的拼接级连 4、字符串的格式化 1、format格式化 2、字符格式化 3、f标志位格式化--(推荐) 5、字符串的常用属性 1、对字符串做出判断…

电脑上怎么进行pdf合并?这几招分分钟解决

电脑上怎么进行pdf合并&#xff1f;在现代办公中&#xff0c;PDF文件已经成为了我们处理文档的常用格式之一。有时候&#xff0c;我们需要将多个PDF文件合并成一个文件&#xff0c;以方便阅读或打印。那么&#xff0c;如何在电脑上进行PDF合并呢&#xff1f;下面就给大家介绍几…

知识图谱的演进

目录 前言1 Memex&#xff1a;信息存储的雏形2 超文本和Web&#xff1a;链接的崛起3 Semantic Web&#xff1a;从文本链接到数据链接4 Linked Big Data&#xff1a;规范化的语义表示5 谷歌的知识图谱搜索引擎6 多种语义网/知识图谱项目结语 前言 随着人工智能和互联网的飞速发…

Keil下载芯片包(DFP)时找不到根目录的解决办法

目录 1 发现的问题 2 想到的可能解决问题的措施 1 发现的问题 打开Keil时Pack Installer 自动打开下载芯片包&#xff0c;但弹出如下提示&#xff0c;无法下载&#xff1a; Refresh Pack description E: the specified CMsls Pack Root directorydoes NoT exist! Please tak…

go语言(一)----声明变量

package mainimport ("fmt""time" )func main() {fmt.Print("hello go!")time.Sleep(1 * time.Second)}运行后&#xff0c;结果如下&#xff1a; 1、golang表达式中&#xff0c;加&#xff1b;和不加&#xff1b;都可以 2、函数的{和函数名一…

眼镜用超声波清洗机洗会有损坏吗?超声波清洗机有必要买吗

相信很多朋友都十分清楚超声波清洗机&#xff0c;虽然知道但是迟迟不敢下手入一款属于自己超声波清洗机&#xff01;会担心超声波清洗机会不会把自己的眼镜给清洗坏了呢&#xff1f;什么样的超声波清洗机比较适合我呢&#xff1f;买一台超声波清洗机回来真的有必要吗&#xff1…

小程序系列--9.生命周期

1. 什么是生命周期&#xff1f; 2. 生命周期的分类 3. 什么是生命周期函数 4. 生命周期函数的分类 5. 应用的生命周期函数 6. 页面的生命周期函数