了解循环神经网络 (RNN) 在从 NLP 到时间序列分析的序列数据中的强大功能。 立即了解关键概念和应用!
递归神经网络(RNN)是一类特殊的 神经网络(NN),专门用于处理顺序数据。 在这种网络中,输入的顺序决定了整体的意义。与传统的前馈 网络不同,RNN 拥有内部记忆状态,可以保留序列中前几个步骤的信息。 序列中先前步骤的信息。这种独特的架构使其成为 深度学习 (DL)应用的基础。 或顺序模式的深度学习(DL)应用的基础,例如 自然语言处理(NLP) 语音合成和时间序列分析。通过 在处理新数据时,RNN 会保持一个不断变化的 "隐藏状态",从而掌握上下文,使其能够预测句子中的下一个单词或股票价格的未来价值。 预测句子中的下一个单词或股票价格的未来价值。
RNN 的决定性特征是其循环机制。在标准的神经网络中,数据是单向流动的:从输入到输出。 输入到输出。而在 RNN 中,神经元的输出会反馈到自身,作为下一个时间步骤的输入。这个 在 RNN 中,神经元的输出会反馈到自身,作为下一个时间步的输入。 网络将其内部状态--包含迄今为止所见信息--传递给序列中的下一步。
在训练过程中,RNN 利用一种名为 时间反向传播(BPTT)算法。这是标准 反向传播计算梯度的扩展。 通过在序列的时间步长内展开网络来计算梯度。BPTT 允许网络学习早期输入如何影响后期输出。 如何影响后面的输出,从而有效地调整 模型权重,使误差最小化。关于这一过程的 关于这一过程的详细解释,可参见斯坦福大学 CS224n 语言学课程等教育资源。 斯坦福 CS224n NLP 课程。
在需要根据上下文正确解释数据的情况下,RNN 尤其有效。
标准 RNN 虽然功能强大,但却存在梯度消失问题。 梯度消失问题,即网络 网络难以在长时间序列中保留信息。随着梯度在许多时间步中向后传播,它们会变得无限小,导致网络 "遗忘 "早期的输入。 变得无限小,从而导致网络 "遗忘 "早期输入。
为此,研究人员开发了先进的变体:
同样重要的是,要将 RNN 与 卷积神经网络 (CNN).RNN 擅长时间(基于时间的)序列,而 CNN 则专为空间(基于网格的)数据(如图像)而设计。 例如 Ultralytics YOLO11利用基于 CNN 的 架构进行实时物体检测、 而 RNN 更适合为YOLO 处理的视频帧添加字幕。
现代框架,如 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 仍然是高效的。