深圳Yolo 视觉
深圳
立即加入
词汇表

循环神经网络 (RNN)

了解循环神经网络 (RNN) 在从 NLP 到时间序列分析的序列数据中的强大功能。 立即了解关键概念和应用!

递归神经网络(RNN)是一类特殊的 神经网络(NN),专门用于处理顺序数据。 在这种网络中,输入的顺序决定了整体的意义。与传统的前馈 网络不同,RNN 拥有内部记忆状态,可以保留序列中前几个步骤的信息。 序列中先前步骤的信息。这种独特的架构使其成为 深度学习 (DL)应用的基础。 或顺序模式的深度学习(DL)应用的基础,例如 自然语言处理(NLP) 语音合成和时间序列分析。通过 在处理新数据时,RNN 会保持一个不断变化的 "隐藏状态",从而掌握上下文,使其能够预测句子中的下一个单词或股票价格的未来价值。 预测句子中的下一个单词或股票价格的未来价值。

循环神经网络的工作原理

RNN 的决定性特征是其循环机制。在标准的神经网络中,数据是单向流动的:从输入到输出。 输入到输出。而在 RNN 中,神经元的输出会反馈到自身,作为下一个时间步骤的输入。这个 在 RNN 中,神经元的输出会反馈到自身,作为下一个时间步的输入。 网络将其内部状态--包含迄今为止所见信息--传递给序列中的下一步。

训练过程中,RNN 利用一种名为 时间反向传播(BPTT)算法。这是标准 反向传播计算梯度的扩展。 通过在序列的时间步长内展开网络来计算梯度。BPTT 允许网络学习早期输入如何影响后期输出。 如何影响后面的输出,从而有效地调整 模型权重,使误差最小化。关于这一过程的 关于这一过程的详细解释,可参见斯坦福大学 CS224n 语言学课程等教育资源。 斯坦福 CS224n NLP 课程

实际应用

在需要根据上下文正确解释数据的情况下,RNN 尤其有效。

  1. 语言建模与翻译在机器翻译中 机器翻译中,一个词的含义 往往取决于前面的词语。RNN 可用于接收一种语言(如English)的句子,并生成另一种语言(如西班牙语)的相应句子。 生成另一种语言(如西班牙语)的相应句子。早期版本的 Google 翻译的早期版本在很大程度上依赖于这些序列到序列 架构来实现流畅性。
  2. 预测性维护:在工业环境中,RNN 分析来自机械传感器的 来自机械传感器的时间序列数据。通过 通过学习振动或温度读数的连续模式,这些模型可以预测异常情况,并在故障发生前 预测故障。这一应用与 制造业中的人工智能重叠,有助于优化 运营效率。

挑战与相关架构

标准 RNN 虽然功能强大,但却存在梯度消失问题。 梯度消失问题,即网络 网络难以在长时间序列中保留信息。随着梯度在许多时间步中向后传播,它们会变得无限小,导致网络 "遗忘 "早期的输入。 变得无限小,从而导致网络 "遗忘 "早期输入。

为此,研究人员开发了先进的变体:

同样重要的是,要将 RNN 与 卷积神经网络 (CNN).RNN 擅长时间(基于时间的)序列,而 CNN 则专为空间(基于网格的)数据(如图像)而设计。 例如 Ultralytics YOLO11利用基于 CNN 的 架构进行实时物体检测、 而 RNN 更适合为YOLO 处理的视频帧添加字幕。

用PyTorch实现 RNN

现代框架,如 PyTorch等现代框架可以直接 实现递归层。而Ultralytics 模型,如 YOLO11等 Ultralytics 模型主要基于 CNN,但利用即将推出的 即将推出的Ultralytics 平台定制解决方案的用户在处理多模式数据时,可能会遇到 RNNs 数据时,可能会遇到 RNN。

下面是一个在PyTorch 中定义基本 RNN 层的简明示例:

import torch
import torch.nn as nn

# Define an RNN layer: Input size 10, Hidden state size 20, 2 stacked layers
rnn = nn.RNN(input_size=10, hidden_size=20, num_layers=2)

# Create a dummy input sequence: (sequence_length=5, batch_size=1, input_features=10)
input_seq = torch.randn(5, 1, 10)

# Forward pass: Returns the output for each step and the final hidden state
output, hidden = rnn(input_seq)

print(f"Output shape: {output.shape}")  # torch.Size([5, 1, 20])

对于更高级的序列建模,许多现代应用程序正在过渡到 Transformer架构。 利用注意力机制进行并行处理。然而,RNN 仍然是理解人工智能(AI)演进的一个重要概念 人工智能(AI)演进的重要概念,而且对于特定的低延迟流任务 对于特定的低延迟流式任务来说,RNN 仍然是高效的。

加入Ultralytics 社区

加入人工智能的未来。与全球创新者联系、协作和共同成长

立即加入