深度学习(2)---循环神经网络(RNN)
文章目录
- 一、序列数据和语言模型
- 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个门和记忆细胞,控制信息传递。
相关文章:
深度学习(2)---循环神经网络(RNN)
文章目录 一、序列数据和语言模型1.1 序列数据1.2 语言模型 二、循环神经网络(RNN)2.1 概述2.2 门控循环单元(GRU)2.3 长短期记忆网络(LSTM) 一、序列数据和语言模型 1.1 序列数据 1. 在深度学习中,序列数据(Sequence data)是指具有前后顺序…...
[NOIP2010 提高组] 机器翻译
[NOIP2010 提高组] 机器翻译 题目背景 小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章。 题目描述 这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换。对于每个英文单词…...
配置文件生成器-秒杀SSM的xml整合
配置文件生成器-秒杀SSM的xml整合 思路: 通过简单的配置,直接生成对应配置文件。 maven坐标 <dependencies><!-- 配置文件生成 --><dependency><groupId>org.freemarker</groupId><artifactId>freemarker<…...
小黑开始了拉歌训练,第一次进入部室馆,被通知要去当主持人心里有些紧张的leetcode之旅:337. 打家劫舍 III
小黑代码(小黑卡在了bug中,上午一步步探索做出,非常NB!!!) # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left lef…...
flutter开发实战-inappwebview实现flutter与Javascript方法调用
flutter开发实战-inappwebview实现flutter与Javascript方法调用 在使用inappwebview时候,需要flutter端与JS进行交互,调用相应的方法,在inappwebview中的JavaScript Handlers。 一、JavaScript Handlers 要添加JavaScript Handlers&#…...
alsa pcm设备之硬件参数
硬件参数包含了stream描述比如格式,采样率,通道数,和ringbuffer 圆形缓存区大小等. 使用snd_pcm_hw_params_t ,ALSA pcm设备使用了参数重定义系统相关的硬件参数,应用程序首先选择全范围的配置, 然后应用程序设置单个参数,直到所有参数都是基本的(确定的). 格式 量化位數&#…...
websocket拦截
python实现websocket拦截 前言一、拦截的优缺点优点缺点二、实现方法1.环境配置2.代码三、总结现在的直播间都是走的websocket通信,想要获取websocket通信的内容就需要使用websocket拦截,大多数是使用中间人代理进行拦截,这里将会使用更简单的方式进行拦截。 前言 开发者工…...
深度强化学习之 PPO 算法
深度强化学习之 PPO 算法 强化学习原理学习策略 基于行为价值 & 基于行为概率策略梯度算法:计算状态下所有行为的概率演员 - 评论家算法:一半基于行为价值,一半基于行为概率DQN 算法(深度Q网络)Q-Learning&#x…...
iPhone升级iOS17出现无法连接互联网的错误提示怎么办?
最新的iOS 17系统已经发布了快一个月了,很多人都已升级体验更多全新功能,但有部分用户却在升级过程中遇到一些问题:如无法验证更新,iOS17验证失败,因为您不再连接到互联网、 iPhone无法检查更新等错误问题。明明网络稳…...
Spring:处理@Autowired和@Value注解的BeanPostProcessor
AutowiredAnnotationBeanPostProcessor,它实现了MergedBeanDefinitionPostProcessor,因此会调用postProcessMergedBeanDefinition方法。 它实现了InstantiationAwareBeanPostProcessor,因此在属性注入时会调用postProcessPropertyValues方法 如果Autowired注解按类型找到了大…...
极坐标系下的交换积分次序
极坐标系下的交换积分次序 我把极坐标系下的交换积分次序总结为动静与静动之间的转换,下面通过一个例子感受一下 ρ 1 、 ρ 1 cos θ \rho1、\rho1\cos\theta ρ1、ρ1cosθ ∫ 0 π / 2 d θ ∫ 1 1 cos θ f ( ρ cos θ , ρ sin θ ) ρ d…...
MySQL命令行中文乱码问题
MySQL命令行中文乱码问题: 命令行界面默认字符集是gbk,若字符集不匹配会中文乱码或无法插入中文。 解决办法:执行set names gbk; 验证: 执行命令show variables like ‘char%’;查看默认字符集。 创建数据库设置字符集utf8&…...
图论---图的遍历
在图论中,图的遍历一般有两种,分别为DFS(深度优先遍历)、BFS(广度优先遍历),以下是这两种遍历方式的模板: DFS(深度优先搜索) 代码框架: void …...
AM@无穷小和无穷大
文章目录 abstract本文符号说明无穷小无穷小和自变量变化过程无穷小和函数极限的关系定理👺证明 无穷大无穷大不是数极限无穷大的说法证明函数极限为无穷大 无穷大和无穷小见的关系定理无穷小无穷大的运算法则 abstract 无穷小和无穷大的概念和相关性质 本文符号说…...
玄子Share- IDEA 2023 SpringBoot 热部署
玄子Share- IDEA 2023 SpringBoot 热部署 修改 IDEA 部署设置 IDEA 勾选如下选项 新建 SpringBoot 项目 项目构建慢的将 Spring Initializr 服务器 URL 改为阿里云:https://start.aliyun.com/ 在这里直接勾选Spring Boot Devtools插件即可 测试 切出 IDEA 项目文…...
kafka集群工作机制
一、kafka在zookeeper上的元数据解释 kafka中的broker要选举Controller角色来管理整个kafka集群中的分区和副本状态。一个Topic下多个partition要选举Leader角色和客户端进行交互数据 Zookeeper客户端工具: prettyZoo。 下载地址:https://github.com/vr…...
JVM上篇之虚拟机与java虚拟机介绍
目录 虚拟机 java虚拟机 简介 特点 作用 位置 整体结构 类装载子系统 运行时数据区 java执行引擎 Java代码执行流程 jvm架构模型 基于栈式架构 基于寄存器架构 总结 jvm的生命周期 1.启动 2.执行 3.退出 JVM的发展历程 虚拟机 所谓虚拟机,指的…...
在公众号上怎么创建微信付费课程功能呢
微信付费课程功能是一项比较受欢迎的在线教育服务,可以帮助教育机构或个人更好地管理和销售课程资源,提高知识分享和变现的效率。下面将介绍如何创建微信付费课程功能。 一、了解微信付费课程功能 在创建微信付费课程功能之前,需要先了解微信…...
HTML5使用html2canvas转化为图片,然后再转为base64.
介绍 场景:今天同事提了个协助,将HTML5文件中的元素转为图片,并且最终转为base64格式传给后端。感觉还挺有意思就记录下。(试例如下) 步骤一:引入html2canvas 的js源码 html2canvas.min.js 下载地址 htt…...
【C++设计模式之原型模式:创建型】分析及示例
简介 原型模式(Prototype Pattern)是一种创建型设计模式,它允许通过复制已有对象来生成新的对象,而无需再次使用构造函数。 描述 原型模式通过复制现有对象来创建新的对象,而无需显式地调用构造函数或暴露对象的创建…...
TDengine OSS 与 qStudio 实现无缝协同,革新数据分析和管理方式
在数字化转型如火如荼的当下,海量爆发的时序数据处理成为转型成功的关键因素之一。为了帮助社区用户更好地进行数据分析和管理,丰富可视化解决方案的多样性,我们将开源的时序数据库(Time Series Database) TDengine OS…...
css的gap设置元素之间的间隔
在felx布局中可以使用gap来设置元素之间的间隔; .box{width: 800px;height: auto;border: 1px solid green;display: flex;flex-wrap: wrap;gap: 100px; } .inner{width: 200px;height: 200px;background-color: skyblue; } <div class"box"><…...
Flask-[项目]-搭建短网址系统:flask实现短网址系统,短网址系统,构建短网址系统
一、项目下载地址 https://gitee.com/liuhaizhang/short-url-systemhttps://gitee.com/liuhaizhang/short-url-system 二、项目搭建 2.1、基本环境安装 1、安装好mysql数据库 2、安装好redis数据 3、安装好python解释器 2.2、项目依赖安装 1、切换到python解释器环境中 …...
【从0开始配置前后端项目】——Docker环境配置
1. 准备一台纯净的服务器 镜像:CentOS 7.9 64位 CPU & 内存:2核2G 系统盘:60GB 峰值带宽:30Mbps 流量包:600GB / 600GB 2. 安装Docker 2.1 卸载旧的版本 $ sudo yum remove docker \docker-client \docker-cl…...
R语言 一种功能强大的数据分析、统计建模 可视化 免费、开源且跨平台 的编程语言
R语言是一种广泛应用于数据分析、统计建模和可视化的编程语言。它由新西兰奥克兰大学的罗斯伊哈卡和罗伯特杰特曼开发,并于1993年首次发布。R语言是一个免费、开源且跨平台的语言,它在统计学和数据科学领域得到了广泛的应用。 R语言具有丰富的数据处理、…...
springmvc-JSR303进行服务端校验分组验证SpringMVC定义Restfull接口异常处理流程RestController异常处理
目录& 1. JSR303 2. JSR303中含有的注解 3. spring中使用JSR303进行服务端校验 3.1 导入依赖包 3.2 添加验证规则 3.3 执行校验 4. 分组验证 4.1 定义分组验证规则 4.2 验证时通过参数指定验证规则 4.3 验证信息的显示 5. SpringMVC定义Restfull接口 5.1 增加s…...
证件照换底色详细教程
说到证件照的底色更改,我想对大部分朋友来说是蛮头疼的事情,由于我们不论是在生活还是学习中,有时候总会要上传一些证件照,而当你手上有证件照准备上传时,发现底色不对,是不是很抓狂,现在&#…...
【ringbuff share mem】
ringbuff 和share mem 结合实现PV操作 参考链接 https://juejin.cn/post/7113550346835722276 https://zhuanlan.zhihu.com/p/147826545 代码如下: #include "rb.h"int g_shmid 0;shm_buff * create_shm(int *smid) {int id;shm_buff *share_mem NU…...
【Zookeeper专题】Zookeeper经典应用场景实战(一)
目录 前置知识课程内容一、Zookeeper Java客户端实战1.1 Zookeeper 原生Java客户端使用1.2 Curator开源客户端使用快速开始使用示例 二、Zookeeper在分布式命名服务中的实战2.1 分布式API目录2.2 分布式节点的命名2.3 分布式的ID生成器 三、zookeeper实现分布式队列3.1 设计思路…...
【数据库——MySQL】(15)存储过程、存储函数和事务处理习题及讲解
目录 1. 题目1.1 存储过程1.2 存储函数1.3 事务处理 2. 解答2.1 存储过程2.2 存储函数2.3 事务处理 1. 题目 1.1 存储过程 创建表 RandNumber :字段:id 自增长, data int; 创建存储过程向表中插入指定个数的随机数(1-…...
网站基础优化/站外推广方式有哪些
批注[……] 表示他人、自己、网络批注参考资料来源于* 书中批注* CSDN* GitHub* Google* 维基百科* YouTube* MDN Web Docs由于编写过程中无法记录所有的URL所以如需原文,请自行查询{……} 重点内容*……* 表示先前提到的内容,不赘述外增其余Web攻击详解…...
做电商网站/网络营销企业培训
在jar上设置/右键properties/Javadoc Location/Struts-2.3.12/docs下面找到对应的文档 转载于:https://www.cnblogs.com/SpringSmallGrass/archive/2013/04/05/3001715.html...
石碣做网站/长沙网络推广
圆盘扭转传递矩阵法 三圆盘系统的自由扭振 1.边界条件 边界条件: 即第1个圆盘左侧的扭矩与第3个圆盘右侧的扭矩为0 2.通过传递矩阵计算出每个圆盘的状态变量 第i个圆盘左端与右端的传递关系为:点传递矩阵 第i个轴左端与右端的传递关系为:场…...
微网站费用/泰安百度推广公司
喜欢文章内容可以点个赞❤支持一下,更多内容请关注老毕浏览器如果你想了解更多好用的浏览器可以参考下面的这篇文章毕达哥拉斯:2020你值得拥有的浏览器zhuanlan.zhihu.com今天介绍的七款浏览器有Google Chrome、Mozilla Firefox、Cent Browser…...
超低价网站维护网站托管/口碑营销案例分析
一个网络(有向带权图)中节点u的PageRank的计算公式: PR(u)表示节点u的PageRank值,d为衰减因子(damping factor)或阻尼系数,一般取d0.85,N为网络中的节点总数,nb(u)表示节点u的所有邻居节点的集合,d(v)表示节点v的出度(如果是无向图…...
福州做网站哪家最好/广告宣传网站
这周五,就是昨天,部门走了3个人。他们是“被离职”的,从被通知到走人,只过了一周左右。一开始经理和他们谈的时候,说有没有赔偿不能确定,然后到周四左右,上面的人可能是等急了,才说年…...