主页

topics

什么是循环神经网络 (RNN)?

什么是循环神经网络 (RNN)?
了解循环神经网络 (RNN) 如何使用序列数据来解决语言翻译和语音识别中常见的时间问题。
黑色和蓝色背景
什么是 RNN?

循环神经网络 (RNN) 是一种深度神经网络,基于顺序或时间序列数据进行训练,以创建机器学习模型,可以根据序列输入做出序列预测或结论。

RNN 可用于根据过往的每日洪水、潮汐和气象数据预测每日洪水水位。但 RNN 也可用于解决序数或时间问题,例如语言翻译、自然语言处理 (NLP)、语音识别和图像字幕。RNN 已整合到 Siri、语音搜索和 Google Translate 等流行应用程序中。

如何选择合适的 AI 基础模型

使用此模型选择框架选择最合适的模型,同时平衡性能要求与成本、风险和部署需求。

RNN 的工作原理

与前馈和卷积神经网络 (CNN) 一样,循环神经网络利用训练数据进行学习。区别在于它们的“记忆”,因为它们从先前的输入中获取信息,用于影响当前的输入和输出。传统的深度神经网络假设输入和输出相互独立,而循环神经网络的输出则取决于序列中的先验元素。虽然未来的事件也有助于确定给定序列的输出,但单向递归神经网络无法在其预测中解释这些事件。

我们用一个俗语来辅助解释 RNN,例如 “feeling under the weather” 通常用来形容某人生病了。为了赋予这个俗语意义,需要以特定的顺序来进行表达。因此,循环网络需要考虑俗语中每个单词的位置,并利用这些信息来预测序列中的下一个单词。

循环网络的另一个显著特征是它们在网络的每一层共享参数。前馈网络在每个节点上具有不同的权重,而循环神经网络在网络的每一层内共享相同的权重参数。也就是说,这些权重仍然在反向传播和梯度下降过程中进行调整,以促进强化学习。

循环神经网络使用通过时间的反向传播 (BPTT) 算法来确定梯度,专门针对序列数据,因此与传统的反向传播略有不同。BPTT 的原理与传统的反向传播相同,即模型通过计算从输出层到输入层的误差进行自我训练。这些计算可支持我们适当调整和拟合模型的参数。BPTT 与传统方法的不同之处在于,BPTT 对每个时间步长的误差进行求和,而前馈网络不需要对误差进行求和,因为它们不会在每一层共享参数。

在此过程中,RNN 往往会遇到两个问题,称为梯度爆炸和梯度消失。这些问题由梯度的大小决定,梯度是沿误差曲线的损失函数的斜率。当梯度过小时,它会继续变小,更新权重参数,直到它们变得微不足道,即零 (0)。出现这种情况时,算法将不再学习。梯度爆炸:梯度太大时会发生这种情况,并创建不稳定的模型。这种情况下,模型权重会变得过大,最终表示为 NaN。针对此类问题的一种解决方案是减少神经网络中的隐藏层数量,从而消除 RNN 模型中的复杂性。

相关内容 阅读数据领导者指南
循环神经网络 (RNN) 的类型

前馈网络将一个输入映射到一个输出,我们在上面的示意图中以这种方式展示了循环神经网络,但实际上它们并没有这种约束。 相反,它们的输入和输出的长度可变,不同类型的循环神经网络 (RNN) 有着不同的用例,例如音乐生成、观点分类和机器翻译。

循环神经网络 (RNN) 常用激活函数

正如在神经网络学习文章中所讨论的,激活函数决定是否应该激活神经元。非线性函数通常将给定神经元的输出转换为 0 到 1 或 -1 到 1 之间的值。

RNN 架构变体

热门的 RNN 架构版本包括

  • 双向循环神经网络 (BRRN)
  • 长短期记忆 (LSTM)
  • 门控循环单元 (GRU)

双向循环神经网络 (BRNN)
 

单向 RNN 只能从先前输入中抽取数据,做出有关当前状态的预测;而双向循环神经网络 (BRNN) 还可以拉取未来的数据,从而提高预测的准确性。回到前面“feeling under the weather”的示例,如果基于 BRNN 的模型知道序列中的最后一词是“weather”,它就更有可能预测词组中的第二个词是“under”。

长短期记忆 (LSTM)

LSTM 是一款热门的 RNN 架构,由 Sepp Hochreiter 和 Juergen Schmidhuber 提出,作为梯度消失问题的解决方案。在他们的文章(链接位于 ibm.com 站外)中,他们致力于解决长期依赖问题。也就是说,如果影响当前预测的先前状态不是最近的状态,则 RNN 模型可能无法准确预测当前状态。

例如,假设我们想要预测这句话中的斜体单词,“Alice 对坚果过敏。她不能吃花生酱。”坚果过敏的背景可以帮助我们预测不能吃的食物含有坚果。但是,如果这个背景来自再之前的几句话,那么 RNN 将难以甚至不可能连接信息。

为了解决这个问题,LSTM 在神经网络的隐藏层中设有“单元”,其中有三个门,即输入门、输出门和遗忘门。这些门控制着预测网络输出所需的信息流。例如,如果第三人称代词(例如“她”)在前面的句子中多次重复出现,则可以将其从单元状态中排除。

门控循环单元 (GRU)


门控循环单元 (GRU) 类似于 LSTM,也可以解决 RNN 模型的短期记忆问题。但是它不使用“元胞状态”调节信息,而是使用隐藏状态;它使用两个门(而非三个门):一个重置门和一个更新门。类似于 LSTM 中的门,重置门和更新门控制要保留哪些信息以及保留多少信息。

循环神经网络 (RNN) 与 IBM Cloud

几十年来,IBM 已成为人工智能技术和神经网络开发的先驱,而 IBM Watson 的开发和演进更添一臂之力。 如果企业希望使用经过验证的分层 AI 采用和实施方法,将高级自然语言处理和深度学习技术运用于系统,那么 Watson 现在就是值得信赖的解决方案。

包括 IBM Watson Machine Learning 在内的 IBM 产品还支持热门的 Python 库,如 TensorFlow、Keras 和 PyTorch,这些库常用于循环神经网络 (RNN)。 通过使用像 IBM Watson StudioWatson Machine Learning 这样的工具,企业可以无缝地将开源 AI 项目整合到生产环境,同时在任何云中部署和运行自己的模型。

有关如何开始使用人工智能技术的更多信息,请探索 IBM Watson Studio

注册 IBMid 并创建 IBM Cloud 帐户
相关解决方案
IBM watsonx

IBM watsonx 集业务工具、应用程序和解决方案于一体,旨在降低 AI 使用成本和障碍,同时优化 AI 结果和使用可靠性。

深入了解 IBM® watsonx
IBM watsonx Assistant - AI 聊天机器人

IBM watsonx Assistant 是一款商用 AI 聊天机器人。凭借这项企业人工智能技术,用户可构建会话式 AI 解决方案。

深入了解 watsonx Assistant
IBM Watson® Studio

构建、运行和管理 AI 模型。使用 PyTorch、TensorFlow 和 scikit-learn 等开源框架,Jupyter Notebook、JupyterLab 和 CLI 等工具,或 Python、R 和 Scala 等语言,在任何云端准备数据并构建模型。

深入了解 Watson Studio
资源 生成式 AI 技术的免费实践学习

了解 AI 和生成式 AI 的基本概念,包括提示工程、大型语言模型和最佳开源项目。

了解 IBM 的 Granite LLM

Granite 是 IBM 基于仅解码器转换器架构的 LLM 基础模型旗舰系列。Granite 语言模型经过互联网、学术、代码、法律和金融等领域的可信企业数据训练而成。

深度学习简介

探索机器学习的这一分支。该分支经过大量数据训练,并处理协同工作,以执行预测的计算单元。

采取后续步骤

使用面向 AI 构建器的新一代企业级开发平台 IBM watsonx.ai,可以训练、验证、调整和部署生成式 AI、基础模型和机器学习功能。使用一小部分数据,即可在很短的时间内构建 AI 应用程序。

深入了解 watsonx.ai 预约实时演示