循环神经网络RNN专题(01/6)

news2024/11/26 14:36:53

一、说明

        RNN用于处理序列数据。在传统的神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,每层之间的节点是无连接的。但是这种普通的神经网络对于很多问题却无能无力。例如,你要预测句子的下一个单词是什么,一般需要用到前面的单词,因为一个句子中前后单词并不是独立的。RNN之所以称为循环神经网路,即一个序列当前的输出与前面的输出也有关。本文将解释这种结构。

二、什么是 RNN?

        循环神经网络(RNN)是一种深度学习模型,经过训练后可以处理顺序数据输入并将其转换为特定的顺序数据输出。顺序数据是指单词、句子或时间序列数据之类的数据,其中的顺序分量根据复杂的语义和语法规则相互关联。RNN 是一种由许多相互连接的组件组成的软件系统,这些组件模仿人类进行顺序数据转换的方式,例如将文本从一种语言翻译成另一种语言。RNN 在很大程度上正在被基于转换器的人工智能(AI)和大型语言模型(LLM)所取代,后者在顺序数据处理中的效率要高得多。

三、循环神经网络如何运作?

下图为 RNN 示意图。

        RNN 由神经元组成,神经元是协同工作以执行复杂任务的数据处理节点。神经元分为输入层、输出层和隐藏层。输入层接收要处理的信息,输出层提供结果。数据处理、分析和预测在隐藏层中进行。 

3.1 隐藏层

        RNN 的工作原理是将接收到的顺序数据逐步传递给隐藏层。但是,RNN 还有一个自循环或循环的工作流程:隐藏层可以在短期记忆组件中记住之前的输入并使用这些输入进行未来的预测。它使用当前输入和存储的记忆来预测下一个序列。 

        例如,考虑以下序列:Apple is red。您想让 RNN 在接收输入序列 Apple is 时预测 red。当隐藏层处理 Apple 一词时,会在记忆中存储一份副本。随后,当接收到 is 一词时,它会从记忆中调取 Apple,并根据上下文理解完整序列:Apple is。然后,它可以预测 red 以提高准确性。这使得 RNN 在语音识别、机器翻译和其他语言建模任务中颇为有用。

3.2 训练

        机器学习(ML)工程师通过向模型提供训练数据并优化其性能来训练 RNN 等深度神经网络。在机器学习中,神经元的权重是确定训练期间学到的信息在预测输出时影响力的信号。RNN 中每一层权重相同。 

        机器学习工程师可调整权重以提高预测准确性。他们使用一种称为随时间反向传播(BPTT)的技术来计算模型误差并相应地调整其权重。BPTT 将输出回滚到前一个时间步长并重新计算错误率。这样,它便可以识别序列中哪个隐藏状态导致了重大错误,并重新调整权重以减少误差幅度。

四、循环神经网络有哪些类型?

        RNN 通常以一对一架构为特征:一个输入序列与一个输出关联。但是,您可以根据特定目的灵活将其调整为各种配置。以下是几种常见的 RNN 类型。

  • 一对多

        这种 RNN 类型将一个输入传送到多个输出。它通过使用单个关键字生成句子来支持图片说明文字之类的语言应用程序。

  • 多对多

        此模型使用多个输入来预测多个输出。例如,您可以使用 RNN 创建语言翻译器,该翻译器可以分析句子并正确用不同语言组织词句。 

  • 多对一

        多个输入映射到一个输出。这在情绪分析之类的应用程序中非常有用,在情绪分析中,此模型可以根据输入的评价预测客户的正面、负面中立情绪。

五、循环神经网络与其他深度学习网络相比如何?

RNN 是多种不同神经网络架构中的一种。

5.1 循环神经网络与前馈神经网络

        与 RNN 一样,前馈神经网络是将信息从架构的一端传递到另一端的人工神经网络。前馈神经网络可以执行简单的分类、回归或识别任务,但无法记住之前处理的输入。例如,其神经元在处理 is 这个词时,它会忘记 Apple。RNN 通过在神经元中加入隐藏内存状态克服了这种内存限制。

5.2 循环神经网络与卷积神经网络

卷积神经网络是用于处理时序数据的人工神经网络。使用卷积神经网络,您可以通过神经网络中的一系列卷积层和池化层,从视频和图像中提取空间信息。RNN 旨在捕获顺序数据中的长期依赖关系

六、循环神经网络的局限性是什么?

        自 RNN 推出以来,机器学习工程师在使用 RNN 及其变体的自然语言处理(NLP)应用程序方面取得了重大进展。但是,RNN 模型系列有一些限制。

6.1 梯度爆炸

        在初始训练中,RNN 可能会错误地预测输出。您需要进行多次迭代来调整模型的参数,以降低错误率。您可以将与模型参数对应的误差率的灵敏度描述为梯度。您可以将梯度想象成下山时的斜坡。陡峭的梯度使模型能够更快地学习,而平缓的梯度则会降低学习速度。

        当梯度呈指数增长直至 RNN 变得不稳定时,就会发生梯度爆炸。当梯度变得无限大时,RNN 的行为会不稳定,从而导致性能问题,例如过拟合。过拟合是一种现象,即模型可以使用训练数据进行准确预测,但无法对现实世界数据进行同样准确的预测。 

6.2 梯度消失

        梯度消失问题是训练中模型的梯度接近于零的情况。梯度消失时,RNN 无法有效地从训练数据中学习,从而导致欠拟合。欠拟合模型在现实应用中表现不佳,因为其权重没有进行适当调整。RNN 在处理长数据序列时存在面临梯度消失和梯度爆炸问题的风险。 

6.3 训练速度缓慢

        RNN 按顺序处理数据,这使其高效处理大量文本的能力受到限制。例如,RNN 模型可以从几句话中分析买家的情绪。但是,总结一页文章需要耗费大量的计算能力、内存空间和时间。 

七、循环神经网络架构有哪些变体?

        RNN 架构为机器学习模型获得语言处理能力奠定了基础。目前,已经出现了多种变体,它们共享 RNN 内存保留原则并对其原始功能进行了改进。以下是一些示例。

7.1 双向循环神经网络

        双向循环神经网络(BRNN)处理具有向前和向后隐藏节点层的数据序列。向前层的工作原理与 RNN 类似,后者将之前的输入存储在隐藏状态中并使用它来预测后续输出。同时,后向层的工作方向相反,采用当前输入和将来的隐藏状态来更新当前的隐藏状态。将这两个层组合起来使 BRNN 能够通过同时考虑过去和未来的上下文来提高预测的准确性。例如,您可以使用 BRNN 来预测“Apple trees are tall”这句话中的“trees”一词。 

7.2 长短期记忆网络

        长短期记忆网络(LSTM)是一种 RNN 变体,使模型能够扩展其内存容量,适应更长的时间线需要。RNN 只能记住近期输入。无法使用来自前几个序列的输入来改善其预测。 

        请考虑以下句子:Tom is a cat Tom’s favorite food is fish。使用 RNN 时,模型无法记住“Tom is a cat”。在预测最后一个词时,可能会产生各种各样的食物。LSTM 网络在隐藏层添加了一个名为单元的特殊内存块。每个单元都由输入门、输出门和遗忘门控制,使层能够记住有用的信息。例如,单元会记住 Tom 和 cat 这两个词,从而使模型能够预测 fish 这个词。 

7.3 门控循环单元

        门控循环单元(GRU)是支持选择性内存保留的 RNN。该模型添加了更新,并遗忘了其隐藏层的门,隐藏层可以在内存中存储或删除信息。 

八、转换器如何克服循环神经网络的局限性?

        转换器是在编码器-解码器前馈神经网络中使用自注意力机制的深度学习模型。它们可以像 RNN 一样处理顺序数据。 

8.1 自注意力

        转换器不使用隐藏状态来捕获数据序列的相互依赖性。相反,它们使用自注意力头来并行处理数据序列。这使转换器能够使用比 RNN 更短的时间训练和处理更长的序列。借助自注意力机制,转换器可克服 RNN 面临的内存限制和序列相互依赖性。转换器可以并行处理数据序列,并使用位置编码来记住每个输入与其他输入的关系。 

8.2 并行性

        转换器通过在训练期间启用并行性来解决 RNN 面临的梯度问题。通过同时处理所有输入序列,转换器不受反向传播限制,因为梯度可以自由流向所有权重。它们还针对并行计算进行了优化,图形处理单元(GPU)为生成式人工智能开发提供了这种优化。并行性使转换器能够通过构建更大的模型来大规模扩展和处理复杂的 NLP 任务。 

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

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

相关文章

Netty如何解决粘包以及半包问题,以及目前最常用的LengthFieldBasedFrameDecoder

粘包(Sticky Packets)和半包(Half Packets) 粘包(Sticky Packets)和半包(Half Packets)是在网络通信中常见的两种问题,特别是在基于流的传输协议(如TCP&…

基于tidevice实现iOS app自动化使用详解

目录 1、IOS自动化工具概述 2、tidevice工具的原理和使用 2.1、tidevice的原理 2.2、tidevice实现的功能 2.3、tidevice的安装 2.4、tidevice的使用 2.4.1、设备管理 1、查看已连接的设备的列表 2、检测设备连接状态 3、等待设备连接,只要有就连接就结束监…

《区块链简易速速上手小册》第9章:区块链的法律与监管(2024 最新版)

文章目录 9.1 法律框架和挑战9.1.1 基础知识9.1.2 主要案例:加密货币的监管9.1.3 拓展案例 1:跨国数据隐私和合规性9.1.4 拓展案例 2:智能合约的法律挑战 9.2 区块链的合规性问题9.2.1 基础知识9.2.2 主要案例:加密货币交易所的合…

【读点论文】A Survey of Deep Learning Approaches for OCR and Document Understanding

A Survey of Deep Learning Approaches for OCR and Document Understanding Abstract 文档是许多领域(如法律、金融和技术等)中许多业务的核心部分。自动理解发票、合同和简历等文件是有利可图的,开辟了许多新的商业途径。通过深度学习的发展,自然语言…

cesium-场景出图场景截屏导出图片或pdf

cesium把当前的场景截图,下载图片或pdf 安装 npm install canvas2image --save npm i jspdf -S 如果安装的插件Canvas2Image不好用,可自建js Canvas2Image.js /*** covert canvas to image* and save the image file*/ const Canvas2Image (function…

elementUI中分开的时间日期选择组件,控制日期的禁用

<el-date-picker v-model"query.startTime" type"datetime" :picker-options"startPickerOptions" format"yyyy-MM-dd HH时" popper-class"date-picker" placeholder"选择日期时间"></el-date-picker>…

【Mysql】数据库架构学习合集

目录 1. Mysql整体架构1-1. 连接层1-2. 服务层1-3. 存储引擎层1-4. 文件系统层 2. 一条sql语句的执行过程2-1. 数据库连接池的作用2-2. 查询sql的执行过程2-1. 写sql的执行过程 1. Mysql整体架构 客户端&#xff1a; 由各种语言编写的程序&#xff0c;负责与Mysql服务端进行网…

[C#][opencvsharp]opencvsharp sift和surf特征点匹配

SIFT特征和SURF特征比较 SIFT特征基本介绍 SIFT(Scale-Invariant Feature Transform)特征检测关键特征&#xff1a; 建立尺度空间&#xff0c;寻找极值关键点定位&#xff08;寻找关键点准确位置与删除弱边缘&#xff09;关键点方向指定关键点描述子 建立尺度空间&#xff0…

python爬虫实战——获取酷我音乐数据

嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 开发环境: 版 本&#xff1a; python 3.8 编辑器&#xff1a;pycharm 2022.3.2 模块使用: requests >>> pip install requests 如何安装python第三方模块: win R 输入 cmd 点击确定, 输入安装命令 pip install…

【数据分享】1929-2023年全球站点的逐日最低气温数据(Shp\Excel\免费获取)

气象数据是在各项研究中都经常使用的数据&#xff0c;气象指标包括气温、风速、降水、湿度等指标&#xff0c;其中又以气温指标最为常用&#xff01;说到气温数据&#xff0c;最详细的气温数据是具体到气象监测站点的气温数据&#xff01; 之前我们分享过1929-2023年全球气象站…

【云原生之kubernetes系列】--污点与容忍

污点与容忍 污点&#xff08;taints)&#xff1a;用于node节点排斥Pod调度&#xff0c;与亲和效果相反&#xff0c;即taint的node排斥Pod的创建容忍&#xff08;toleration)&#xff1a;用于Pod容忍Node节点的污点信息&#xff0c;即node节点有污点&#xff0c;也将新的pod创建…

GM8775C——DSI 转双通道 LVDS 发送器

1 产品概述 GM8775C 型 DSI 转双通道 LVDS 发送器产品主要实现将 MIPI DSI 转单 / 双通道 LVDS 功能&#xff0c; MIPI 支持 1/2/3/4 通道可选&#xff0c;每通道最高支持 1Gbps 速率&#xff0c;最大支持 4Gbps 速率。 LVDS 时钟频率高达 154MHz &#xff…

数据解构+算法(第07篇):动态编程!黄袍加身!

作者简介&#xff1a;大家好&#xff0c;我是smart哥&#xff0c;前中兴通讯、美团架构师&#xff0c;现某互联网公司CTO 联系qq&#xff1a;184480602&#xff0c;加我进群&#xff0c;大家一起学习&#xff0c;一起进步&#xff0c;一起对抗互联网寒冬 学习必须往深处挖&…

【数据分享】1929-2023年全球站点的逐月最高气温数据(Shp\Excel\无需转发)

气象数据是在各项研究中都经常使用的数据&#xff0c;气象指标包括气温、风速、降水、湿度等指标&#xff0c;其中又以气温指标最为常用&#xff01;说到气温数据&#xff0c;最详细的气温数据是具体到气象监测站点的气温数据&#xff01; 之前我们分享过1929-2023年全球气象站…

vue如何使用vuedraggable实现不同面板之间的拖拽排序,拖拽复制功能?【vuedraggable】

vuedraggable官方文档链接使用说明https://www.itxst.com/vue-draggable/re7vfyfe.htmlhttps://www.itxst.com/vue-draggable/re7vfyfe.html 效果图&#xff1a; 使用vuedraggable拖动左边的字段和逻辑到右边形成不同的规则校验 <!-- ****--date 2024-02-01 11:34****-…

私募证券基金动态-23年12月报

成交量&#xff1a;12月日均7,696.93亿元 2023年12月A股两市日均成交7,696.93亿元&#xff0c;环比下降12.39%、同比下降2.26%。12月整体21个交易日&#xff0c;无单日交易日成交金额过万亿&#xff0c;单日交易日最低成交金额为6,122.84亿元&#xff08;12月25日&#xff09;…

GPT-4 Vision调试任何应用,即使缺少文本日志 升级Streamlit七

GPT-4 Vision 系列: 翻译: GPT-4 with Vision 升级 Streamlit 应用程序的 7 种方式一翻译: GPT-4 with Vision 升级 Streamlit 应用程序的 7 种方式二翻译: GPT-4 Vision静态图表转换为动态数据可视化 升级Streamlit 三翻译: GPT-4 Vision从图像转换为完全可编辑的表格 升级St…

【C/Python】GtkApplicationWindow

一、C语言 GtkApplicationWindow 是 GTK 库中用于创建应用程序主窗口的一个控件。 首先&#xff0c;需要确保环境安装了GTK开发库。然后&#xff0c;以下是一个简单的使用 GtkApplicationWindow 创建一个 GTK 应用程序的示例&#xff1a; #include <gtk/gtk.h>static …

前端JavaScript篇之let、const、var的区别

目录 let、const、var的区别 let、const、var的区别 let、const和var是JavaScript中用于声明变量的关键字&#xff0c;它们之间有一些区别。 首先&#xff0c;var是在ES5中引入的关键字&#xff0c;而let和const是在ES6中引入的。在ES6之前&#xff0c;我们只能使用var来声明…

Thinkphp5.0.23远程代码执行漏洞复现

★★免责声明★★ 文章中涉及的程序(方法)可能带有攻击性&#xff0c;仅供安全研究与学习之用&#xff0c;读者将信息做其他用途&#xff0c;由Ta承担全部法律及连带责任&#xff0c;文章作者不承担任何法律及连带责任。 1、漏洞介绍 使用Thinkphp5.x远程代码执行漏洞&#xf…