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

一、说明

        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.mzph.cn/news/662272.shtml

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

相关文章

【演讲比赛流程管理系统(C++版)】

一、演讲比赛程序需求 1.1、比赛规则 学校举行一场演讲比赛,共有12个人参加。比赛共两轮,第一轮为淘汰赛,第二轮为决赛 每名选手都有对应的编号,如10001~10012 比赛方式:分组比赛,每组6个人 第一轮分为两个小组&a…

【深度测试】如何分析脚本以及对脚本进行测试

线上会存在一种任务,定时或者手动出发,我们称之为“脚本”,也可以称之为“job” 一、脚本的特性 无过程:只有开始和结束,过程迅速且黑盒。无交互:脚本处理的业务场景都几乎没有交互,只有数据被…

算法篇之二分

二分算法简介 特点 最简单的一种算法,也是最恶心,细节最多,最容易写出死循环的算法时间复杂度O(logN) 如何学习 明白其中的算法原理,二分并不是只有数组有序的的时候使用,而是看是否具有二段性。模板 朴素的二分模…

TCP TIME_WAIT 过多怎么处理

文章目录 1.什么是 TCP TIME_WAIT?2.为什么要 TIME_WAIT?3.TIME_WAIT 过多的影响4.解决办法4.1 调整短连接为长连接4.2 调整系统内核参数 5.小结参考文献 1.什么是 TCP TIME_WAIT? TCP 断开连接四次挥手过程中,主动断开连接的一方&#xff…

BeanFactory创建过程(基于Servlet)

BeanFactory创建过程(基于Servlet) 1. 概述1.2 那么问题就来了1.2.1 谁负责AnnotationConfigServletWebServerApplicationContext实例呢?1.2.2 ApplicationContextFactory初始化过程又是怎么样的? 1.3 总结 2. 最后 1. 概述 Anno…

什么可以用手机蓝牙控制LED???#串口通信【下】

什么可以用手机蓝牙控制LED???#串口通信【下】 前言预备知识1.小白玩串口控制的ASSII避坑1.1问题引入1.2解决问题 2.串口支持单词型指令控制2.1实现串口支持单词型指令控制的核心思路2.2利用字符数组来承接单词型指令2.3利用strstr函数来查找…

【Time Series】LSTM代码实战

一、简介 还是那句话,"时间序列金融"是一个很有"钱"景的话题,还是想尝试采用Stock时间序列预测任务DeepLearning。本文提供了LSTM预测股票的源代码。 二、算法原理 长短期记忆网络(LSTM)是一种特殊的循环神经…

如何衡量代码的复杂度

圈复杂度概要 最近的培训中了解到了一个概念,叫做圈复杂度。 圈复杂度(Cyclomatic Complexity)是一种衡量程序复杂度的度量方法。它由美国计算机科学家 Thomas J. McCabe 在 1976 年提出。圈复杂度通过统计程序的控制流图中的决策结构&…

linux有关安全的几个基本配置,禁止root登录,新建root权限账号

一、不安装多余的软件,能最小化安装就不要安装图形化界面,然后根据需求安装需要的软件。 二、防火墙要启用,如果您的这台服务器对外有服务只要放开服务就好了,就是说白了白名单,切忌一上来第一件事儿就是关闭防火墙&a…

Mobileye CES 2024 自动驾驶新技术新方向

Mobileye亮相2024年国际消费类电子产品展览会推出什么自动驾驶新技术? Mobileye再次亮相CES,展示了我们的最新技术,并推出了Mobileye DXP--我们全新的驾驶体验平台。 与往年一样,Mobileye是拉斯维加斯展会现场的一大亮点,让参观…

一文读懂Prodigal教程

2.prodigal教程 2.1 介绍 Prodigal 由橡树岭国家实验室和田纳西大学诺克斯维尔分校于2007年在能源部联合基因组研究所的主持下联合开发,是一种用于细菌和古细菌基因组的蛋白质编码基因预测软件工具,Prodigal 已成为世界上最受欢迎的微生物基因预测算法…

day28 节点操作——克隆节点、删除节点

目录 克隆节点删除节点 克隆节点 特殊情况下新增节点按以下操作: 复制一个原有的节点把复制的节点放入到指定的元素内部 克隆节点 元素.cloneNode(布尔值) cloneNode会克隆出一个跟原标签一样的元素,括号内传入布尔值 若为true,则代表克隆时…

Vue3批量异步更新是如何实现

文章目录 一、什么是调度执行二、如何实现可调度?三、批量更新 & 异步更新四、Vue原理五、最后 一、什么是调度执行 多次修改数据(例如自身num10次),只进行一次页面渲染(页面只会渲染最后一次num10) 指的是响应式数据发生变化…

C++ copy()函数详细介绍

copy() 是一个标准库函数,位于 头文件中。它用于将一个容器中的元素复制到另一个容器中,或者将一个范围内的元素复制到另一个范围中。 函数参数介绍 copy( first, last, d_first );first 和 last:表示输入范围的迭代器。 first 指向要复制的…

centos7 安装 java17 安装 idea

删除旧版本的java或者说是自带的,免得干扰 查找java [wanglcentos7 java]$ rpm -qa|grep javajava-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64 javapackages-tools-3.4.1-11.el7.noarch tzdata-java-2020a-1.el7.noarch python-javapackages-3.4.1-11.el7.noarch …

展台设计搭建中6个关键元素

一、哪种风格的会展展台设计更显示设计感 从已有的展台布置局面可以看出,不同展台设计有着不同的标准与选择原则,现有的一系列展台设计标识会随着现代化会展的提升重新进入更新诉求阶段。 二、展台设计一般会有那种可以选择的类别 从出现在展台设计优化阶…

React实现组件扩展机制

在java中,SPI机制是Java中提供的一种服务发现机制。同样,前端也很需要这种机制,这样可以做到组件可插拔,可替换,减少相互冗余。 快速使用 1.扩展点使用 通过使用Extension组件定义扩展点,通过name标记扩展…

2023爱分析·知识库问答市场厂商评估报告:爱数

01 研究范围定义 研究范围: 大模型是指通过在海量数据上依托强大算力资源进行训练后能完成大量不同下游任务的模型。2023年以来,ChatGPT引爆全球大模型市场。国内众多大模型先后公测,众多互联网领军者投身大模型事业,使得大模型…

C++ //练习 3.39 编写一段程序,比较两个string对象。再编写一段程序,比较两个C风格字符串的内容。

C Primer(第5版) 练习 3.39 练习 3.39 编写一段程序,比较两个string对象。再编写一段程序,比较两个C风格字符串的内容。 环境:Linux Ubuntu(云服务器) 工具:vim 代码块 /*******…

每日一道Java面试题:说一说Java中的异常

写在开头 任何一个程序都无法保证100%的正常运行,程序发生故障的场景,我们称之为:异常,在Java中对于异常的处理有一套完善的体系,今天我们就来一起学习一下。老样子,用一段简单的代码开始今天的学习。 我&a…