深度学习(2)---循环神经网络(RNN)

news2024/11/27 21:47:04

文章目录

  • 一、序列数据和语言模型
    • 1.1 序列数据
    • 1.2 语言模型
  • 二、循环神经网络(RNN)
    • 2.1 概述
    • 2.2 门控循环单元(GRU)
    • 2.3 长短期记忆网络(LSTM)


一、序列数据和语言模型

1.1 序列数据

 1. 在深度学习中,序列数据(Sequence data)是指具有前后顺序关联的数据。常见的时间序列数据、文本数据(单词序列或字符序列)、语音数据等。这种数据不仅十分常见,而且往往具有很高的应用价值,比如我们可以通过过去的天气数据来预测未来的天气状况,通过以往的股票波动数据来推测股票的涨跌等。

比如:Cats average 15 hours of sleep a day.
其中第一个元素 “Cats” 和第三个元素 “15” 就具有关联性。

 2. 序列数据的特点主要有以下两点:

  • 时序关系:序列数据中的元素之间存在着时间上的依赖关系,每个元素都与其前面或后面的元素有关联。
  • 变长性:序列数据的长度是可变的,不同序列可能包含不同数量的元素。

1.2 语言模型

 1. 在自然语言处理中,语言模型是一种重要的技术,它的主要任务是估测一些词的序列的概率,即预测给定一个词的序列后,接下来可能出现的词的概率。

 2. 自然语言处理中最常见的数据是文本数据。我们可以把一段自然语言文本看做一段离散的时间序列。假设一段长度为T的文本中的词依次为w1, w2, …, wT,那么在离散的时间序列中,wt(1 ≤ t ≤ T)可看做在时间步t的输出或者标签。

 3. 给定一个长度为T的词的序列w1, w2, …, wT,语言模型将计算该序列的概率,即P(w1, w2, …, wT)。这个概率可以用来评估该词序列出现的可能性,从而在语言识别和机器翻译等任务中起到重要作用。

比如说一句话:“ chu fang li de shi you yong wan le ”。
那这句话是 “ 厨房里的石油用完了 ”还是 “ 厨房里的食油用完了 ”?
那语言模型要做的事是计算这两句序列的概率大小,比较并输出。即:P ( 厨 , 房 , 里 , 的 , 石 , 油 , 用 , 完 , 了 ) < P ( 厨 , 房 , 里 , 的 , 食 , 油 , 用 , 完 , 了)。

 4. 语言模型计算序列概率的公式:

在这里插入图片描述
 例如,一段含有4个词的文本序列的概率:

在这里插入图片描述

例如:P (我 , 在 , 听 , 课) = P (我) * P (在 | 我) * P (听 | 我 , 在) * P (课 | 我 , 在 , 听)

 5. 语言模型缺点:时间步 t 的词需要考虑 t - 1步的词,其计算量随 t 呈指数增长。那我们可以利用循环神经网络来解决这一缺点。

二、循环神经网络(RNN)

2.1 概述

 1. 循环神经网络(Recurrent neural networks,简称RNN)是针对序列数据而生的神经网络结构,核心在于循环使用网络层参数,避免时间步增大带来的参数激增,并引入隐藏状态(Hidden State)用于记录历史信息,有效的处理数据的前后关联性。

考虑这样一个问题,如果要预测句子的下一个单词是什么,一般需要用到当前单词以及前面的单词,因为句子中前后单词并不是独立的。比如,当前单词是“很”,前一个单词是“天空”,那么下一个单词很大概率是“蓝”。
循环神经网络的来源就是为了刻画一个序列当前的输出与之前信息的关系。从网络结构上,循环神经网络会记忆之前的信息,并利用之前的信息影响后面结点的输出。也就是说,循环神经网络的隐藏层之间的结点是有连接的,隐藏层的输入不仅包括输入层的输出,还包括上时刻隐藏层的输出。

 2. 一个简单的循环神经网络如下所示,它由输入层、一个隐藏层和一个输出层组成:

在这里插入图片描述
 3. 如果我们把上面的图展开,循环神经网络也可以画成下面这个样子:

在这里插入图片描述
 现在看上去就比较清楚了,这个网络在t时刻接收到输入Xt之后,隐藏层的值是St,输出值是Ot。关键一点是,St的值不仅仅取决于Xt,还取决于St-1。

 4. 我们可以用下面的公式来表示循环神经网络的计算方法:

在这里插入图片描述
 这里的激活函数通常选择Tanh函数,Tanh函数公式和图像如下所示,它解决了Sigmoid函数的不以0为中心输出问题。

在这里插入图片描述
在这里插入图片描述

 5. 用一个具体案例来看看RNN如何工作:
 (1)用户说了一句“what time is it?”,我们的神经网络会先将这句话分为五个基本单元(四个单词+一个问号),如下所示:

在这里插入图片描述
 (2)然后,按照顺序将五个基本单元输入RNN网络,先将 “what”作为RNN的输入,得到输出01:

在这里插入图片描述
 (3)随后,按照顺序将“time”输入到RNN网络,得到输出02:

在这里插入图片描述
 (4)以此类推,我们可以看到,前面所有的输入产生的结果都对后续的输出产生了影响(可以看到圆形中包含了前面所有的颜色):

在这里插入图片描述
 (5)当神经网络判断意图的时候,只需要最后一层的输出05,如下图所示:

在这里插入图片描述

2.2 门控循环单元(GRU)

 1. 门控循环单元(Gate Recurrent Unit)是引入门的循环网络,用来缓解RNN梯度消失带来的问题。引入门的概念,来控制信息流动,使模型更好的记住长远时期的信息,并缓解梯度消失。

  • 重置门:哪些信息需要遗忘,用于遗忘上一时间步隐藏状态。
  • 更新门:哪些信息需要注意,用于更新当前时间步隐藏状态。
  • 激活函数为:Sigmoid,值域为( 0 , 1 ),0表示遗忘,1表示保留。

在这里插入图片描述
 2. 候选隐藏状态:输入与上一时间步隐藏状态共同计算得到候选隐藏状态,用于隐藏状态计算。通过重置门,对上一时间步隐藏状态进行选择性遗忘,可以对历史信息更好地选择。

在这里插入图片描述
在这里插入图片描述

圆圈里加一点符号这里表示逐个元素相乘。

 3. 隐藏状态由候选隐藏状态及上一时间步隐藏状态组合得来。

在这里插入图片描述

在这里插入图片描述
 4. GRU特点:(1)门机制采用Sigmoid激活函数,使门值为(0,1),0表示遗忘,1表示保留。(2)若更新门自第一个时间步到t-1时间过程中,一直保持为1,则信息可有效传递到当前时间步。

2.3 长短期记忆网络(LSTM)

 1. 长短期记忆网络(Longshort-termmemory,简称LSTM)引入3个门和记忆细胞,控制信息传递。

  • 遗忘门:哪些信息需要遗忘。
  • 输入门:哪些信息需要流入当前记忆细胞。
  • 输出门:哪些记忆信息流入隐藏状态。
  • 记忆细胞:特殊的隐藏状态,记忆历史信息。

在这里插入图片描述
 2. 候选记忆细胞:可理解为特殊隐藏状态,存储历史时刻信息。

在这里插入图片描述

在这里插入图片描述
 3. 记忆细胞由候选记忆细胞及上一时间步记忆细胞组合得来。输出门控制记忆细胞信息流入隐藏状态。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
 4. 总结:LSTM引入3个门和记忆细胞,控制信息传递。

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

华为:数据治理方法论

导读 本文先概要介绍了数据治理框架、数据治理组织架构和数据治理度量评估体系&#xff0c;然后结合华为数据治理案例和新冠疫情简单描述了数据治理的应用&#xff0c;最后描述了DAYU方法论在DataArts Studio产品上的落地以及详细的落地指导文档。 加gzh“大数据食铁兽”&am…

[题]欧拉函数 #欧拉函数

目录 欧拉函数一、用公式求代码 二、线性筛法求欧拉函数扩展欧拉定理 欧拉函数 AcWing 873. 欧拉函数 一、用公式求 定义&#xff1a;1 ~ N 中与 N 互质的数的个数被称为欧拉函数&#xff0c;记为ϕ(N)。 怎么求呢&#xff1f;&#xff1f; 有一个公式&#xff1a; N p1a1 X…

《Vue.js+Spring Boot全栈开发实战》简介

大家好&#xff0c;我是老卫。 恰逢中秋国庆双节&#xff0c;不想出门看人山&#xff0c;惟愿宅家阅书海&#xff01; 今天开箱的这本书是《Vue.jsSpring Boot全栈开发实战》。 外观 从书名故名思议&#xff0c;就是基于Vue.jsSpring Boot来实现企业级应用全栈开发。 该书由…

(2023,ControlNet,CFGRW,diffusion,控制组合)向文本到图像扩散模型添加条件控制

Adding Conditional Control to Text-to-Image Diffusion Models 公众号&#xff1a;EDPJ&#xff08;添加 VX&#xff1a;CV_EDPJ 或直接进 Q 交流群&#xff1a;922230617 获取资料&#xff09; 目录 0. 摘要 1. 简介 2.相关工作 2.1. 微调神经网络 2.2. 图像扩散 …

基于electron25+vite4创建多窗口|vue3+electron25新开模态窗体

在写这篇文章的时候&#xff0c;查看了下electron最新稳定版本由几天前24.4.0升级到了25了&#xff0c;不得不说electron团队迭代速度之快&#xff01; 前几天有分享一篇electron24整合vite4全家桶技术构建桌面端vue3应用示例程序。 https://www.cnblogs.com/xiaoyan2017/p/17…

【C++哈希应用】位图、布隆过滤器

【C哈希应用】位图、布隆过滤器 目录 【C哈希应用】位图、布隆过滤器位图概念位图的实现位图改造位图应用总结布隆过滤器布隆过滤器的提出布隆过滤器的概念布隆过滤器的查找布隆过滤器删除布隆过滤器优点布隆过滤器缺陷 作者&#xff1a;爱写代码的刚子 时间&#xff1a;2023.9…

【人物】知识就是金钱,程序员搞副业年入200万,各行各业的你也可以效仿

优秀的普通人 大家好&#xff0c;我是老李。一个专注于收集互联网有用信息的博主。 今天我们这一期要讲的是人物。讲什么人物呢&#xff1f; 首先我们不会讲一些特别知名和特别牛逼的人物&#xff0c;比如马云&#xff0c;雷军。刘强东。这些人固然很厉害很成功&#xff0c;…

【【萌新的RiscV学习之流水线控制-9】】

萌新的RiscV学习之流水线控制-9 我们按照在之前的单周期设计加入控制单元 那么我们能够在后续的设计中提供方便 我们也在流水线中加入一个control单元 我们先按照书上的指令op码值介绍一遍基本功能 接下来我们讲述control 的 控制效果 关于这些串口判别的使用 由于控制线从…

状态压缩dp,291. 蒙德里安的梦想

291. 蒙德里安的梦想 - AcWing题库 求把 NM 的棋盘分割成若干个 12 的长方形&#xff0c;有多少种方案。 例如当 N2&#xff0c;M4 时&#xff0c;共有 5 种方案。当 N2&#xff0c;M3 时&#xff0c;共有 3 种方案。 如下图所示&#xff1a; 输入格式 输入包含多组测试用例…

【yolov5】原理详解

一.模型框架 二.对Yolov5的描述 Yolov5的模型主要由 输入、Backbone、Neck、Head、输出 五部分组成。2.1 输入 输入 640x640x32.2 backbone Backbone&#xff1a;负责提取输入图像的特征。 在Yolov5中&#xff0c;常见的Backbone网络包括CSPDarknet53或ResNet。这些网络都是…

uniapp使用scroll-into-view实现锚点定位和滚动监听功能【楼层效果 / 侧边导航联动效果】

大佬网址&#xff1a; https://blog.csdn.net/weixin_47136265/article/details/132303570 效果 代码 <template><!-- 这里面有2个bug&#xff0c;已经解决&#xff0c;需要知道的地方1.methods里的scrollEvt(e)方法里面的 this.tabIndex index ! -1 ? index :…

python -m pip install --upgrade pip失败

显示这样的报错&#xff1a; You are using pip version 9.0.1, however version 23.2.1 is available. You should consider upgrading via the python -m pip install --upgrade pip command. 换源安装 python -m pip install --upgrade pip -i https://pypi.douban.com/s…

2023-9-30 JZ34 二叉树中和为某一值的路径

题目链接&#xff1a;二叉树中和为某一值的路径 import java.util.*;/** public class TreeNode {* int val 0;* TreeNode left null;* TreeNode right null;* public TreeNode(int val) {* this.val val;* }* }*/public class Solution {/*** 代码中的类名、…

1.物联网射频识别,RFID概念、组成、中间件、标准,全球物品编码——EPC码

1.RFID概念 RFID是Radio Frequency Identification的缩写&#xff0c;又称无线射频识别&#xff0c;是一种通信技术&#xff0c;可通过无线电讯号识别特定目标并读写相关数据&#xff0c;而无需与被识别物体建立机械或光学接触。 RFID&#xff08;Radio Frequency Identificati…

MyBatis的一级缓存和二级缓存:原理和作用

MyBatis的一级缓存和二级缓存&#xff1a;原理和作用 引言 在数据库访问中&#xff0c;缓存是一种重要的性能优化手段&#xff0c;它可以减少数据库查询的次数&#xff0c;加快数据访问速度。MyBatis作为一款流行的Java持久层框架&#xff0c;提供了一级缓存和二级缓存来帮助…

机器学习之广义增量规则(Generalized Delta Rule)

文章目录 广义增量规则的公式s型函数的增量规则 广义增量规则的公式 对于单层神经网络的增量规则&#xff0c;已经过时啦&#xff0c;现在存在一种更广义的增量规则形式。对于任意激活函数&#xff0c;增量规则表示如下式它与前一节的delta规则相同&#xff0c;只是ei被替换为…

案例突破——再探策略模式

再探设计模式 一、背景介绍二、 思路方案三、过程1. 策略模式基本概念2. 策略模式类图3. 策略模式基本代码策略类抽象策略类Context类客户端 4. 策略模式还可以进行优化的地方5. 对策略模式的优化&#xff08;配置文件反射&#xff09; 四、总结五、升华 一、背景介绍 在做项目…

ccf_csp第一题汇总

ccf_csp第一题汇总 printf()输出格式大全&#xff08;附 - 示例代码&#xff09;现值计算AcWing 4699. 如此编码AcWing 4509. 归一化处理(小数位数根号函数)AcWing 4454. 未初始化警告AcWing 4280. 序列查询AcWing 4006. 数组推导(小陷阱)AcWing 3292. 称检测点查询AcWing 3287…

git你学“废”了吗?——git本地仓库的创建

git你学“废”了吗&#xff1f;——git本地仓库的创建&#x1f60e; 前言&#x1f64c;初识gitgit 本地仓库的创建1、基于centos7环境下 git的下载2、设置自己的用户名和邮箱 查看.git中的结构区分清楚版本库和工作区 查看git中的相关内容查看仓库的状态 总结撒花&#x1f49e;…