RNN:Recurrent Neural Network(上)

目录

1  为什么提出 RNN

1.1  什么是 Slot Filling

1.2  为什么 FFN 做不好 Slot Filling

1.3  为什么 RNN 能做好 Slot Filling

2  RNN 的整体结构

3  更高级的 RNN 结构

3.1  Deep RNN

3.2  Elman Network & Jordan Network

3.3  Bidirectional RNN


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

1  为什么提出 RNN

李宏毅老师用了一个槽填充(Slot Filling)问题进行了解释。

1.1  什么是 Slot Filling

考虑以下场景:

这里有两个坑位(Slot),分别是目的地(Destination)和到达时间(Time of arrival)。槽填充(Slot Filling)要做的事情,就是从原始句子中提取有用信息,把这两个坑位(Slot)填上。

比如:Taipei 填目的地(Destination)这个坑位,November 2nd 填到达时间(Time of arrival)这个坑位。

1.2  为什么 FFN 做不好 Slot Filling

考虑 FFN 处理到 Taipei 时:

其中,输出(output)是 Taipei 分属于目的地(Destination)和到达时间(Time of arrival)这两个坑位的概率。根据原始句子,当然是 Taipei 属于目的地(Destination)的概率更高。

然而,当存在两个都包含 Taipei 的句子,但是句意完全不同时:

上图右侧是我按照自己的理解画的,不一定对

在第一句话中,Taipei 属于目的地(Destination);在第二句话中,Taipei 属于出发地(Place of departure)。然而,FFN 在处理 Taipei 时只能看到 Taipei 一词,不能看到前面的 arrive 或者 leave 。又因为模型输入(input)都是一模一样的 Taipei,所以输出结果(output)也会是一样的,即要么永远是目的地(Destination)的概率最高,要么永远是出发地(Place of departure)的概率最高。换句话说,FFN 不能根据句子的不同,灵活地判定 Taipei 是目的地(Destination)还是出发地(Place of departure)。

1.3  为什么 RNN 能做好 Slot Filling

根据上述分析可以看出,FFN 最大的问题就是看不见 Taipei 前面的单词。那我们让模型能够看见前文不就行了吗?这就引出了 RNN 模型以及 “记忆” 的概念。

“记忆” 就是指,让模型记住自己之前的处理结果,这样在处理当前输入时能够进行参考。比如,让模型记住它之前处理的是 arrive 或者 leave,那么在它处理 Taipei 时它就知道这是目的地(Destination)还是出发地(Place of departure)了。

那么 RNN 具体是怎么实现 “记忆” 的呢?如下图所示:

  • The output of hidden layer are stored in the memory.
  • Memory can be considered as another input.

这是 RNN 的两个特点。第一是,隐层的输出会被存储到 memory 中;第二是,memory 中的内容将会和下一时刻的输入(input)一起被送入到模型中。

我们再来看看 RNN 具体是如何处理输入(input)的:

上图只画了处理第一个输入 [1, 1] 的过程,后面的处理过程请自行脑补。

从这个例子中我们可以看出,即使第一个输入和第二个输入均为 [1, 1],但是输出结果竟然不同(前者是 [4, 4],后者是 [12, 12])。这是因为 RNN 不仅存储了 “记忆”(memory),还让这个 “记忆”(memory)一起作为输入(input)。

换句话说,实际的输入并不单单是一个 [1, 1],还有 “记忆”(memory)中的内容。不同时刻 “记忆”(memory)中的内容不同,那输出当然就不同了。

也正是因为 RNN 存储了 “记忆”(memory),它就不会认为 arrive 后的 Taipei 和 leave 后的 Taipei 是同一个东西啦!

为了简化例子,李宏毅老师假设每个神经元的激活函数均为线性函数,并且权重均为 1,同时没有偏置项。

2  RNN 的整体结构

事实上,1.3 节的图已经说明了 RNN 的整体结构,我们这里只是把循环给展开了:

说明:在第一个时间步输入 arrive 和 memory 的内容(初始为 0),隐层的处理结果存入 memory 中;在第二个时间步输入 Taipei 和 memory 的内容,隐层的处理结果存入 memory 中;在第三个时间步输入 on 和 memory 的内容,隐层的处理结果存入 memory 中;以此类推。

每个时间步的输出(output)均为 xxx 词属于各个坑位的概率。

虽然在 1.3 节已经讲了,但我们还是再来看看 RNN 是如何辨析 Taipei 的:

话说 values 不应该用 are 吗?不过我八百年没学英语了。。。

3  更高级的 RNN 结构

第 2 节讲的是最基础的 RNN,实际上 RNN 还有很多变形。

3.1  Deep RNN

这个名字是我随便取的,意思就是 RNN 的隐藏层可以叠加很多个:

3.2  Elman Network & Jordan Network

Elman Network 是我们在第 2 节中讲的那种 RNN,Jordan Network 的区别在于,它的 memory 存储的是输出(output)而不是隐层的输出:

传说 Jordan Network 的表现更好。因为在训练模型的时候,针对输出(output)是有目标(target)的,我们知道它学到的是什么信息;而针对隐层的输出是没有目标(target)的,我们不知道它学到的是什么信息。所以人们认为输出(output)是可知的、可控的,让它作为 memory 的内容,我们就能知道 memory 的内容是什么了。

3.3  Bidirectional RNN

双向 RNN 如下图所示:

若是单向 RNN,则每个时刻的输入只能关注到前面的内容;若是双向 RNN,则正方向让每个时刻的输入关注它前面的内容,反方向让每个时刻的输入关注它后面的内容。

双向 RNN 帮助我们关注上下文的信息。比如,在做完形填空的时候,我们既要关注前文,又要关注后文。


介于篇幅长度以及 LSTM 模型的地位,将在下一篇博客介绍 LSTM 模型。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Blender——将模型及其所有纹理与材质导入unity

前期准备 参考视频:7分钟教会你如何将Blender的模型材质导入unity_哔哩哔哩_bilibili 实验模型官网下载地址:Hoi An Ancient House Model free VR / AR / low-poly 3D model CSDN下载链接: 【免费】Blender三维模型-古代房屋模型&#xff…

Ceph分布式存储部署

目录 一、存储 1、存储基础 2、NAS(网络附加存储,是通过网络附加到当前主机文件系统之上的存储) 3、SAN(存储区域网络) 4、单机存储的问题 5、商业存储解决方案 6、分布式存储(软件定义的存储 SDS&a…

【Redis】更改redis中的value值

今天继续进步一点点~~ 背景:今天有个前端的同事问我,能不能在Redis中他本人登录公众号的 sessionID 加上一列openID 于是我上网查了一堆在Redis里面的命令,以及不同的客户端怎么输入命令,但是后来问了下同事,他就给我…

2024-01-16(SpringCloudMybati)

1.前后端分离:前后端分离开发的理解以及和前后端不分离的区别_前后端交互和前后端分离的区别-CSDN博客 2.resultMap是用于sql语句得到的结果集与实体类之间进行关系映射的。 要求:结果集中的列名和实体类的中属性名要一一对应,并且个数保持…

Linux Shell脚本入门

目录 介绍 编写格式与执行方式 Shell脚本文件编写规范 脚本文件后缀名规范 首行格式规范 注释格式 shell脚本HelloWord入门案例 需求 效果 实现步骤 脚本文件的常用执行三种方式 介绍 3种方式的区别 小结 多命令处理 Shell变量 环境变量 目标 Shell变量的介绍 变量类型 系统环境…

Java:token自动续期,使用Gateway过滤器—GlobalFilter

文章目录 前言一、使用步骤1.实体user2.登录AuthController3.网关GatewayFilter4.续约TokenService 总结 前言 在系统中,在 token 的有效期内,可以登录使用,并且要求如果一直使用系统,一直保持登录状态,而不是 token …

MySQL存储函数与存储过程习题

创建表并插入数据: 字段名 数据类型 主键 外键 非空 唯一 自增 id INT 是 否 是 是 否 name VARCHAR(50) 否 否 是 否 否 glass VARCHAR(50) 否 否 是 否 否 ​ ​ sch 表内容 id name glass 1 xiaommg glass 1 2 xiaojun glass 2 1、创建一个可以统计表格内记录…

pytest文档35-Hooks函数之统计测试结果(pytest_terminal_summary)

前言 用例执行完成后,我们希望能获取到执行的结果,这样方便我们快速统计用例的执行情况。 也可以把获取到的结果当成总结报告,发邮件的时候可以先统计测试结果,再加上html的报告。 pytest_terminal_summary 关于TerminalReport…

Kubernetes(K8S)拉取本地镜像部署Pod 实现类似函数/微服务功能(可设置参数并实时调用)

以两数相加求和为例,在kubernetes集群拉取本地的镜像,实现如下效果: 1.实现两数相加求和 2.可以通过curl实时调用,参数以GET方式提供,并得到结果。(类似调用函数) 一、实现思路 需要准备如下的…

绑定class,条件渲染,列表过滤,列表排序

目录​​​​​​​ 绑定class 条件渲染 列表过滤 列表排序 绑定class <div class"normal" :class"mood" click"changename">111{{name}}</div><div class"normal" :class"arr">111{{name}}</div…

AI嵌入式K210项目(15)-安全散列算法加速器

文章目录 前言一、什么是SHA256&#xff1f;实验原理 二、K210的安全散列算法加速器三、实验过程总结 前言 K210内置了丰富的加速器&#xff0c;包括神经网络处理器 (KPU)&#xff0c;AES(高级加密加速器)&#xff0c;APU 麦克风阵列语音数据加速计算处理器&#xff0c;现场可…

计算机网络-ACL访问控制列表

上一篇介绍NAT时候就看到了ACL这个东西了&#xff0c;这个是什么意思&#xff1f;有什么作用呢&#xff1f; 一、ACL访问控制列表 访问控制列表 (ACL, Access Control List)是由一系列permit或deny语句组成的、有序规则的列表。ACL是一个匹配工具&#xff0c;能够对报文进行匹配…

前端学习路线图和一些经验

关于前端目前个人建议的一个路线,也是自己之前前端学习时候的一个大致路线,给想要学习前端的小白一个参考,以前自己刚开始接触前端的时候就是不知道该按照什么路线学习 eg-前端是做什么的&#xff1f; 就是开发网站,移动端&#xff0c;小程序之类的页面 调调接口完成页面的渲…

异步非阻塞事件驱动架构的具体流程解析

异步非阻塞事件驱动架构是一种高效的编程和系统设计模式&#xff0c;特别适用于需要处理大量并发连接和请求的应用&#xff0c;如Web服务器。 1. 初始化和启动 启动过程&#xff1a;当Nginx启动时&#xff0c;它的主进程初始化配置并启动多个工作进程。工作进程创建&#xff1…

虚拟线程探索与实践

优质博文&#xff1a;IT-BLOG-CN 一、简介 虚拟线程是轻量级线程&#xff0c;极大地减少了编写、维护和观察高吞吐量并发应用的工作量。虚拟线程是由JEP 425提出的预览功能&#xff0c;并在JDK 19中发布&#xff0c;JDK 21中最终确定虚拟线程&#xff0c;以下是根据开发者反馈…

杂记 | 在Linux上使用Docker-compose安装单机版Milvus向量数据库并配置访问控制和可视化面板(Attu)

文章目录 01 Milvus向量数据库简介02 安装前的准备03 安装3.1 创建milvus工作目录3.2 下载并编辑docker-compose.yml3.3 下载milvus.yml文件3.4 启动milvus 04 访问可视化面板并修改密码 01 Milvus向量数据库简介 Milvus是一款开源的向量数据库&#xff0c;它专为AI应用设计&a…

移动端 h5-table react版本支持虚拟列表

介绍 适用于 react ts 的 h5 移动端项目 table 组件 github 链接 &#xff1a;https://github.com/duKD/react-h5-table 有帮助的话 给个小星星 有两种表格组件 常规的&#xff1a; 支持 左侧固定 滑动 每行点击回调 支持 指定列排序 支持滚动加载更多 效果和之前写的vue…

聚类模型评估指标

聚类模型评估指标-轮廓系数 计算样本i到同簇其它样本到平均距离ai&#xff0c;ai越小&#xff0c;说明样本i越应该被聚类到该簇&#xff08;将ai称为样本i到簇内不相似度&#xff09;&#xff1b;计算样本i到其它某簇Cj的所有样本的平均距离bij&#xff0c;称为样本i与簇Cj的…

鉴源实验室|自动驾驶仿真测试技术分析

01 引言 随着科技的不断发展&#xff0c;自动驾驶技术逐渐成为汽车行业的热门话题。然而&#xff0c;要将自动驾驶车辆投放到真实道路上之前&#xff0c;必须进行广泛的测试&#xff0c;以确保其在各种情况下都能安全可靠地运行。自动驾驶车辆的测试是一个复杂而昂贵的过程。…

AQY212S光耦合器:特性和应用揭秘

在不断发展的电子元件领域&#xff0c;AQY212S光耦合器作为适合众多应用的多功能且可靠的解决方案脱颖而出。作为光耦合器技术专家&#xff0c;让我们深入研究AQY212S的功能和应用&#xff0c;揭开这款令人印象深刻的器件的神秘面纱。 AQY212S是一款固态继电器(SSR)光耦合器&a…