什么是循环神经网络(RNN)?
什么是循环神经网络(RNN)?
循环神经网络(RNN)是一种学习模型,经过训练后可以处理顺序数据输入并将其转换为特定的顺序数据输出。顺序数据是指顺序分量根据复杂的语义和语法规则相互关联的数据,例如句子或时间序列数据。RNN 是由许多互连的组件组成的软件系统,这些组件模仿人类处理顺序数据的方式,例如将文本从一种语言翻译成另一种语言时。
RNN 主要属于遗留架构,已经被基于转换器的人工智能(AI)和大语言模型(LLM)取代,后者在处理顺序数据方面表现更好。
循环神经网络如何运作?
下图为 RNN 示意图。
RNN 由神经元组成,神经元是协同工作以执行复杂任务的数据处理节点。神经元分为输入层、输出层和隐藏层。输入层接收要处理的信息,输出层提供结果。数据处理、分析和预测在隐藏层中进行。
循环神经元和隐藏层
RNN 的工作原理是将接收到的顺序数据逐步传递给隐藏层。但是,RNN 还有一个自循环或循环的工作流程,这意味着隐藏层可以记住之前的输入并将其用于未来的预测,类似于短期记忆组件。它使用当前输入和存储的记忆来预测下一个序列。
例如,考虑以下序列:“Apple is red。” 您想让 RNN 在接收输入序列 Apple is 时预测 red。当隐藏层处理 Apple 一词时,会在记忆中存储一份副本。随后,当接收到 is 一词时,它会从记忆中调取 Apple,并根据上下文理解完整序列:“Apple is”。然后,它可以预测“red”以提高准确性。这使得 RNN 在语音识别、机器翻译和其他语言建模任务中颇为有用。
训练
机器学习(ML)工程师训练神经网络(例如 RNN)的方法是,通过向神经网络提供训练数据和调整权重来改善其性能。在机器学习中,权重是可学习的参数,有助于将输入转换为输出。RNN 通过网络在一系列时间步长之间共享权重矩阵。
机器学习工程师调整这些权重矩阵以提高预测准确性。他们使用一种称为随时间反向传播(BPTT)的技术来计算模型误差并相应地更新模型权重。BPTT 在之前的所有时间步长中展开网络,计算每个权重的梯度,显示每个权重对损失函数的贡献程度。然后重新调整权重以最大限度地减少损失。
循环神经网络有哪些类型?
以下是一些常见的 RNN 类型。
一对多
这种 RNN 类型将单个输入对应到多个输出。通过从单个图像生成句子来支持图像说明文字之类的语言应用程序。
虽然 RNN 可以配置为一对一架构,即一个输入序列与一个输出相关联,但这种情况更适合由前馈神经网络来处理。
多对多
此模型使用多个输入来预测多个输出。例如,您可以使用 RNN 创建机器翻译或语音识别代理,该代理可以分析句子并正确用不同语言组织词句。
多对一
多个输入映射到一个输出。这在情绪分析之类的应用程序中非常有用,在情绪分析中,此模型可以根据输入的评价预测客户的正面、负面和中立情绪。
循环神经网络与其他深度学习网络相比如何?
RNN 是多种不同神经网络架构中的一种。
循环神经网络与前馈神经网络
与 RNN 一样,前馈神经网络是将信息从一端传递到另一端的人工神经网络。前馈神经网络可以执行分类、回归或识别任务,但无法记住之前处理的输入。例如,其神经元在处理 is 这个词时,它会忘记 Apple。RNN 通过加入隐藏记忆状态来保留之前的输入,从而克服了这种记忆限制。
循环神经网络与卷积神经网络
卷积神经网络是人工神经网络,旨在通过对人眼功能进行建模来处理空间数据。您可以使用卷积神经网络,通过神经网络中的一系列卷积层和池化层,从视频和图像中提取空间信息,这些层可以检测边缘和图案等元素。然后,一个完全连接的层对图像中的一个或多个对象进行分类。
循环神经网络架构有哪些变体?
RNN 架构为更广泛的机器学习模型奠定了基础,以支持语言处理。已经出现了多种 RNN 变体,它们具有相同的记忆保留核心原则,但以不同的方式改进了其功能。
堆叠式 RNN
堆叠式 RNN 是通过将多个循环神经网络叠加在一起构建的。每个层都作为一个独立的单元运行。每个层生成的输出成为下一个层的输入。这种“堆叠”使组合网络能够学习和预测更复杂的序列。
双向循环神经网络
双向循环神经网络(BRNN)使用前向和后向隐藏节点层处理数据。前向层的运行方式就像标准 RNN 一样。从序列的开头开始,以隐藏状态存储输入,并在向前推进时利用这些信息预测下一个输出。
后向层执行相同的操作,但从数据序列的末尾开始。它同时使用当前输入和未来输入来更新当前的隐藏状态。通过组合两个方向层,BRNN 可以考虑过去和未来的情况,进而提高预测准确性。
例如,考虑以下两句话中的“lead”一词:
- “The lead singer performed well.”
- “The lead pipe was heavy.”
仅向前推进的标准 RNN 无法对“lead”进行分类,因为它还没有看到句子的其余部分。
在 BRNN 中,前向层处理了“The”,而且已经学习了接下来将出现主语的模式。同时,后向层从句子的末尾读取,并沿序列反向推进。在第一句话中,它看到“singer”和“performed”,这表明“lead”可能指一个人。在第二句话中,它看到“pipe”和“heavy”,这表明“lead”可能指的是金属。通过结合这些见解,向后和向前推进,BRNN 可以更准确地预测上下文输入的正确含义。
长短期记忆网络
长短期记忆网络(LSTM)是一种 RNN 变体,使模型能够扩展其记忆容量,以适应更长的时间跨度。基本 RNN 只能记住最近一次输入。不能使用先前多个时间步长的输入来改善其预测。
请考虑以下句子:“Tom is a cat.Tom's favorite food is fish.” 当您使用 RNN 时,它在尝试预测最后一个词时,可能会生成各种食物,比如“cake”或“pizza”。非常基础的 RNN 可能不记得 Tom is a cat。
LSTM 网络向隐藏层添加了名为单元的特殊记忆块。单元状态是序列的长期记忆。每个单元都由输入门、输出门和遗忘门控制,使层能够记住有用的信息。例如,单元会记住“Tom”和“cat”这两个词,从而使模型能够更好地预测“fish”这个词。
门控循环单元
门控循环单元(GRU)是一种专为选择性记忆保留而设计的 RNN。这些单元是作为 LSTM 的简化版本开发的。该模型将更新门和重置门集成到其隐藏层中。这些门控制信息流,决定存储在内存中或从内存中移除的内容。GRU 不包括输出门。
循环神经网络有哪些限制?
自最初开发 RNN 及其变体以来,机器学习工程师在自然语言处理(NLP)应用程序方面取得了重大进展。但是,RNN 模型存在一些限制。
梯度爆炸
在初始训练期间,RNN 通常会错误地预测输出。您需要对反向传播进行多次迭代,以便调整模型的参数以降低错误率。请记住,每个权重的梯度显示了权重如何影响损失函数。
当梯度在反向传播过程中不断相乘并呈指数级增长时,就会发生梯度爆炸,从而导致 RNN 变得不稳定。随后,模型会过度、过快地更新其权重。然后,训练过程分歧太大,无法找到解决方案。
梯度消失
梯度消失问题是在反向传播中模型的梯度接近于零的情况。发生这种情况时,RNN 无法有效地从训练数据中学习,也无法在实际应用中表现良好,因为其权重从未得到适当调整。
RNN 在处理长数据序列时最容易面临梯度消失和梯度爆炸问题。
训练速度缓慢
RNN 按顺序处理数据,这限制了其高效处理大量文本的能力。由于每个步骤都取决于之前的步骤,因此 RNN 无法对序列进行并行处理。例如,RNN 模型可以从几句话中分析买家的情绪。但是,总结一页文章所需要的时间要长得多。
转换器如何克服循环神经网络的局限性?
转换器是深度学习模型,在神经网络架构中使用自注意力机制。这些模型可以像 RNN 一样执行顺序数据处理,但可以并行处理。
自注意力
转换器没有像 RNN 那样依赖隐藏状态来存储过去的信息,而是使用一种叫做自注意力的机制。这种技术允许模型同时查看序列中的每个单词,并计算出每个单词与其他单词的关联程度。通过同时分析所有这些关系,即使在很长的输入序列中,模型也可以更有效地理解上下文信息。
并行性
转换器通过在训练期间启用并行性来解决 RNN 面临的梯度问题。通过同时处理序列中的所有位置,转换器可以避免梯度消失,因为梯度可以自由流向所有位置,而无需经过其他步骤。它们还针对图形处理单元(GPU)可以提供的并行计算基础设施进行了优化。并行性使转换器能够通过构建更大的模型来大规模扩展和处理复杂的 NLP 任务。
AWS 如何支持您的 RNN 需求?
Amazon Web Services(AWS)上的生成式人工智能提供各种服务、工具和资源,您可以使用这些服务、工具和资源,通过基于高级转换器的技术来构建、管理和扩展传统人工智能应用程序。例如:
Amazon Bedrock 支持安全高效地自定义和部署行业领先的基础模型(FM),从而简化生成式人工智能开发。
Amazon SageMaker 让您能够统一访问所有数据,为您提供分析和人工智能集成体验。使用熟悉的 AWS 工具(包括用于模型开发、生成式人工智能、数据处理和 SQL 分析的工具),在统一的工作室中更快地进行协作和构建。无论数据存储在数据湖、数据仓库,还是第三方或联合身份验证的数据来源中,均可访问所有数据,同时内置治理功能可满足企业安全需求。
AWS Trainium 是一款机器学习加速器,您可以使用它在云端经济实惠地训练和扩展深度学习模型。
立即注册免费账户,开始在 AWS 上使用生成式人工智能。
Browse all cloud computing concepts
Browse all cloud computing concepts content here:
Did you find what you were looking for today?
Let us know so we can improve the quality of the content on our pages