【机器学习300问】125、什么是双向循环神经网络(BRNN)?什么是深度循环神经网络(DRNN)?

一、双向循环神经网络

(1)诞生背景

        双向循环神经网络(Bidirectional Recurrenct Neural Network, BRNN)是在深度学习领域发展起来的一种特殊类型的循环神经网络(RNN),它诞生的背景是为了解决传统RNN只能单向处理序列信息的缺点。

命令实体识别为例

        上图例子中,“teddy”之前信息(上文)无法帮助模型判断“teddy”是不是人名,只有在得知后续的信息(下文)才能做出准确的判断。

        传统RNN在处理序列数据时,存在这信息流动限制,只能从前向后或者从后向前传播信息。这意味着在给定时间点,模型的决策仅基于到目前为止的过去信息。这对于那些需要同时理解序列前后上下文的任务来说是个限制。

(2)BRNN的网络结构

        双向循环神经网络(BRNN)的基本结构包含两个并行的循环神经网络层,一个负责正向传播信息(从过去到未来),另一个负责逆向传播信息(从未来到过去)。这两个方向的RNN共享同一个隐藏层的维度,但它们的权重通常不共享。

对上面图中BRNN典型架构进行说明,建议看的时候对照数学符号解释:

① 输入层(Input Layer):接收序列数据,每个时间步有一个输入向量。

② 正向循环层(Forward RNN Layer):这个层中的单元从序列的第一个元素开始,逐个时间步向前传播信息。每个时间步,它会根据当前输入和前一时间步的隐藏状态计算新的隐藏状态。

\overrightarrow{h_t} = \overrightarrow{f}(W_{x\overrightarrow{h}} x_t + W_{\overrightarrow{h}\overrightarrow{h}} \overrightarrow{h}_{t-1} + b_{\overrightarrow{h}})

x_t表示时间步t 的输入。

③ 逆向循环层(Backward RNN Layer):与正向层平行运行,但方向相反,从序列的最后一个元素开始,向序列的起始处传播信息。同样,每个时间步,它根据当前输入(实际上是序列中的倒数第几个元素)和前一时间步(未来时间步的逆向看)的隐藏状态更新隐藏状态。

\overleftarrow{h_t} = \overleftarrow{f}(W_{x\overleftarrow{h}} x_t + W_{\overleftarrow{h}\overleftarrow{h}} \overleftarrow{h}_{t+1} + b_{\overleftarrow{h}})

④ 合并层(Merge Layer):在每个时间步,正向和逆向隐藏状态会被合并,常见的合并方式有拼接、求和或乘积等,以形成一个综合的上下文向量。这个向量包含了当前位置基于整个序列上下文的信息。

⑤ 输出层(Output Layer):基于合并后的上下文向量,输出层负责生成最终的预测或分类结果。这可以通过全连接层加上适当的激活函数(如softmax用于多分类问题)来实现。

y_t = g(W_{\overrightarrow{h}y} \overrightarrow{h_t} + W_{\overleftarrow{h}y} \overleftarrow{h_t} + b_y)

        其中g是输出层的激活函数,它常常是 softmax 函数用于分类任务。W_{\overrightarrow{h}y}W_{\overleftarrow{h}y}是隐藏状态到输出的权重矩阵,b_y是输出层的偏置项。

数学符号解释
符号解释
x_t时间步t的输入
\overrightarrow{h_t}时间步t的正向 RNN 隐藏状态
\overleftarrow{h_t}时间步t的反向 RNN 隐藏状态
\overrightarrow{f}正向 RNN 的激活函数
\overleftarrow{f}反向 RNN 的激活函数
W_{x\overrightarrow{h}}输入到正向隐藏层权重
W_{\overrightarrow{h}\overrightarrow{h}}正向隐藏层自身循环权重
W_{x\overleftarrow{h}}输入到反向隐藏层权重
W_{\overleftarrow{h}\overleftarrow{h}}反向隐藏层自身循环权重
b_{\overrightarrow{h}}正向隐藏层偏置项
b_{\overleftarrow{h}}反向隐藏层偏置项
y_t时间步t的输出
W_{\overrightarrow{h}y}从正向隐藏状态到输出的权重矩阵
W_{\overleftarrow{h}y}从反向隐藏状态到输出的权重矩阵
b_y输出层偏置项
g输出层激活函数,通常为 softmax

(3)使用领域

        双向循环神经网络的提出,是为了更有效地捕获和利用序列数据中的上下文信息,BRNN多使用在诸如一下场景中:

  1. 自然语言处理:在理解一句话的语义时,往往需要同时考虑前面的词(前向上下文)和后面的词(后向上下文)。比如情感分析任务中,“昨天晚上我吃了一顿美味的火锅,今天早上就拉肚子了。”在“火锅”的上文中我们得知,火锅是“美味的”,情感是正向的。在下文中我们得知“拉肚子”,情感是负向的。如果我们仅仅考上文,就无法准确的判断。

  2. 语音识别:在语音信号处理中,一个音素的准确识别可能依赖于其前后相邻的音素特征,双向结构有助于提高识别精度。

  3. 机器翻译:翻译任务要求模型理解源语言句子的整体含义,这通常需要综合考虑句子开头和结尾的信息。BRNN能够提供更为全面的上下文理解能力。

二、深度循环神经网络

(1)DRNN的定义

        深度循环神经网络(Deep Recurrent Neural Network,简称DRNN)是一种扩展了传统循环神经网络(RNN)结构的深度学习模型,特别适合处理长序列数据和复杂的时序依赖问题。在DRNN中,通过堆叠多个循环层,使得模型能够捕捉到更高层次的抽象特征和更长距离的时间依赖关系。

(2)DRNN的网络结构

        在深度RNN中,每个时间步的输入会首先通过第一层循环网络,其输出会成为第二层循环网络的输入,这一过程会持续到达最顶层的循环网络。每一层都可以学习到不同程度的序列抽象,更底层的网络可能会学习到一些局部模式或特征,而更高层的网络则可能会捕捉到更加全局或抽象的信息。

深度循环神经网络结构

(3)DRNN的优缺点

        优点:这种架构允许模型捕获数据在不同时间尺度上的复杂性,因为每一层都可以捕捉到序列数据在不同时间尺度上的特征,这使得深度RNN在处理复杂的序列任务(如机器翻译、语音识别或长文本生成)时,比单层RNN具有更强的表示能力。

        缺点:然而,深度RNN也引入了更多的复杂性和训练难度,例如更容易出现梯度消失或梯度爆炸的问题,因此通常需要采用一些高级技术(如梯度裁剪、层归一化、残差连接或使用LSTM、GRU等门控循环单元)来稳定训练过程。

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

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

相关文章

烧结刚玉砂轮片 CBN砂轮 氮化硼砂轮 磨具用晶谷低温陶瓷结合剂玻璃粉

晶谷烧结刚玉砂轮低温陶瓷结合剂玻璃粉具有以下特点: - 软化点:软化点在450至650度之间。 - 热膨胀系数:热膨胀系数为(50至120)10-7。 - 粒径:粒径为300至3000目,可按要求订做。 - 外观颜色&a…

sudo 权限之危险的 bash 命令

文章目录 [toc]事出有因干就完事了创建用户配置 sudo 权限sudo 验证使用 bash 命令执行 chmod 命令使用 bash 命令执行删根 事出有因 使用普通用户安装 tidb 时,发现报错了,报错内容如下: ERROR SSHCommand {"host": "…

硕思闪客精灵软件安装包下载+详细安装教程

​有目共睹的是闪客精灵专业版的优势:能够安装一台电脑,终身免费升级。根据大数据结果显示闪客精灵支持将不带脚本的Flex生成的SWF导出为Flex文件。从大部分从业者反应来看它能反编译Flash的所有元素,并且支持动作脚本 AS3.0,使用闪客精灵专业…

python rename报错怎么解决

刚接触python,写了一段简单的代码,功能就是重命名一个文件,代码如下: list_1os.listdir(".") for files in list_1:fopen(files)if f.name"01.txt":os.rename(01.txt,001.txt)elif f.name"05.txt":…

AI 大模型应用开发实战(04)-AI生态产业拆解

1 行业全景图 2 结构拆解AI GC 生成式AI这个产业。分成上中下游三大块。 2.1 上游基础层 主要包括: 算力:包括AI芯片和云服务等,例如像英伟达、AMD以及华为等厂商提供的算力基础设施。大型模型基于Transformer架构,对算力的需…

【Sklearn驯化-环境配置】一文搞懂sklearn建模的最优环境搭建用法

【Sklearn驯化-环境配置】一文搞懂sklearn建模的最优环境搭建用法 本次修炼方法请往下查看 🌈 欢迎莅临我的个人主页 👈这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合,智慧小天地! 🎇 相关内容文档获取 微信…

CARLA自动驾驶模拟器基础

CARLA 使用服务器-客户端架构运行,其中 CARLA 服务器运行模拟并由客户端向其发送指令。客户端代码使用 API 与服务器进行通信。要使用 Python API,您必须通过 PIP 安装该模块: pip3 install carla-simulator # Python 3World and client 客…

【职场人】如何与同事有效沟通

在职场中,沟通如同桥梁,连接着每一位职场人士的心灵与智慧。有效的沟通不仅能让工作更加顺畅,还能让团队关系更加和谐。那么,如何与同事进行有效沟通呢?下面,我将结合个人经验和一些幽默的比喻,…

Python的pip切换国内源

📚目录 起因:pip切换国内源:操作永久修改pip配置文件测试永久源配置是否成功 pip其他环境的配置永久源配置 起因: pyCharm安装模块的手出现ModuleNotFoundError: No module named distutils 由于使用pip install distutils下载不了…

绘制口罩maskTheFace数据源是300w_lp

官网下载mask the face 代码,增加代码draw_face.py import argparse import cv2 import scipy.io from tqdm import tqdm from utils.aux_functions_2 import *# 设置命令行输入参数 parser argparse.ArgumentParser(description"MaskTheFace - Python code…

用腾讯云语音合成(TTS)批量生成英语绘本的朗读音频

孩子进行英语启蒙,需要看很多英语绘本,而且要听配套的音频来练听力。但有些英语绘本是没有对应音频的,下面简单几步,就可以将任意英语绘本制作出对应的英语朗读音频。 先到电子书资源网站搜索这个绘本名称,如果有电子…

C++学习合集

#整理到一块,方便查东西,顺便补充一些之前没有学习到的东西# 变量 char--1字节 short--2字节 int-4字节 long--4字节 long long(int)--8字节;准确来说变量的大小取决于编译器,1字节8个二进制位,其中最高位为符号位…

不需要new关键字创建实例?jQuery是如何做到的

这篇文章是jQuery源码专栏的开篇文章了,有人会问为什么都2024年了, 还要研究一个已经过时的框架呢,其实,jQuery对比vue和react这种响应式框架,其在使用上算是过时的,毕竟直接操作DOM远不如操作虚拟DOM来的方…

头歌资源库(16)分苹果

一、 问题描述 二、算法思想 首先,我们可以初始化一个数组apple来记录每个孩子分配的苹果数量,将所有元素初始化为1,表示每个孩子至少分配到一个苹果。 然后,从左到右遍历评分数组ratings,判断当前孩子的评分与前一个…

Docker 简介【虚拟化、容器化】

Docker 简介 Docker 简介什么是虚拟化、容器化案例 为什么要虚拟化、容器化?- 资源利用率高- 环境标准化- 资源弹性伸缩- 差异化环境提供- 沙箱安全- 容器对比虚拟机更轻量,启动更快- 维护和扩展容易 虚拟化实现方式应用程序执行环境分层- 硬件层&#x…

SpringBoot-注解@ImportResource引入自定义spring的配置xml文件和配置类

1、注解ImportResource 我们知道Spring的配置文件是可以有很多个的,我们在web.xml中如下配置就可以引入它们: SprongBoot默认已经给我们配置好了Spring,它的内部相当于已经有一个配置文件,那么我们想要添加新的配置文件怎么办&am…

数据仓库和数据库有什么区别?

一、什么是数据仓库二、什么是数据库三、数据仓库和数据库有什么区别 一、什么是数据仓库 数据仓库(Data Warehouse)是一种专门用于存储和管理大量结构化数据的信息系统。它通过整合来自不同来源的数据,为企业提供统一、一致的数据视图&…

示例:推荐一个自定义的Ribbon皮肤

一、目的:WPF自带的Ribbon控件功能很强大,但使用过程中感觉显示的样式不是很好,或者不适合自己的项目,下面介绍一个基于自带Ribbon控件样式的修改,主要修改了些高度,间距,背景色,前景…

es的检索-DSL语法和Java-RestClient实现

基本语法: GET /索引库名/_search {"query": {"查询类型": {"查询条件"}} }RestClient的导入在RestClient操作索引库和文档有介绍 查询所有: # 查询所有 GET /test/_search {"query": {"match_all"…

Go 三色标记法:一种高效的垃圾回收策略

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…