Ultralytics YOLO27: 加入候补名单。
获取 YOLO 许可
返回 Ultralytics 术语表

Neural Network (NN)

神经网络 (NN) 由相互连接的人工神经元层组成,其权重从数据中学习得到。内容涵盖神经元如何计算、训练过程和主要类型。

神经网络(NN),也称人工神经网络(ANN),是一种机器学习(ML)模型,由称为神经元的简单连接单元组成,并按层组织。每个神经元将输入乘以权重、加上偏置,再将结果传递给非线性激活函数。网络通过调整权重和偏置来学习,直到输出与训练数据中的样本相符,因此其行为是从数据中学得的。这种设计只是在宽泛意义上受生物神经元启发;理解现代网络的最佳方式,是将它们视为大型、可训练的数学函数。许多层组成的网络属于深度学习(DL)研究范畴,并推动了计算机视觉、语音识别和大型语言模型(LLM)的发展。

神经网络如何进行计算#

神经元按层组织。输入层接收数据,例如像素值或传感器读数;一个或多个隐藏层对数据进行变换;输出层则生成预测,例如类别分数或预测值。在全连接层中,每个神经元都会接收前一层的所有输出,因此整个层的运算就是一次矩阵乘法,随后进行逐元素激活。按顺序将数据传过所有层,就是前向传播。激活函数使网络的深度发挥作用:没有它,堆叠的层会合并成一个线性函数。加入激活函数后,即使只有一个足够宽的隐藏层,网络也能以任意精度逼近任何连续函数;这就是通用逼近定理。

下面的 PyTorch 代码片段先手动计算一个神经元,再一次性计算包含四个神经元的整层:

import torch
from torch import nn

torch.manual_seed(1)
x = torch.tensor([0.5, -1.0, 2.0])  # one example with three input features

# A layer of four neurons: each has three weights and one bias
layer = nn.Linear(in_features=3, out_features=4)

# Neuron 0 by hand: weighted sum of inputs plus bias, then a ReLU activation
z = (layer.weight[0] * x).sum() + layer.bias[0]
print(f"Neuron 0 by hand: {torch.relu(z).item():.4f}")

# The layer computes all four neurons at once as one matrix multiplication
outputs = torch.relu(layer(x))
print(f"All four neurons: {[round(v, 4) for v in outputs.tolist()]}")

它会输出 Neuron 0 by hand: 0.3906 和 All four neurons: [0.3906, 1.1465, 0.0, 0.0]。手动计算结果与层中第一个神经元的结果一致;ReLU 激活函数会将加权和为负的两个神经元置零。该层包含 16 个可学习数值,即 12 个权重和 4 个偏置;实际网络会将这样的层堆叠起来,形成数百万或数十亿个参数。

神经网络如何学习#

训练从随机权重开始,并重复一个简单循环。一批带标签样本经过网络进行前向传播,损失函数衡量预测与标签相差多远,反向传播应用链式法则,计算每个权重对误差的贡献;随后,随机梯度下降(SGD)或 Adam 等优化器会调整每个权重,使损失降低。完整遍历一次训练集称为一个轮次。当留出的验证数据上的损失不再改善时,通常就会停止训练,因为网络若在此之后继续拟合训练集,就会开始过拟合。

从头训练通常需要大型标注数据集;迁移学习则从在大型数据集上预训练得到的权重开始训练,从而降低数据需求。模型学到的数百万个权重也很难解释,这推动了可解释人工智能(XAI)领域的研究。

神经网络的主要类型#

神经元的连接方式称为架构,它决定了网络适合处理哪种数据:

  • 前馈网络:由全连接层组成,数据沿单一方向传递,也称为多层感知机(MLPs)。这类网络适合处理表格数据,也常作为构建模块用于更大型的模型中。
  • 卷积神经网络(CNNs):通过卷积在图像上滑动小型共享滤波器,这是视觉领域的标准设计。残差连接让网络可以扩展到数百层。
  • 循环神经网络(RNNs):逐步处理序列,同时传递隐藏状态;带门控的变体(如 LSTM 和GRU)则能保留更长时间的信息。
  • Transformer:通过自注意力并行关联序列中的每个元素与其他所有元素。LLM 和视觉 Transformer 都以此为基础。
  • 脉冲神经网络(SNNs):通过随时间变化的离散脉冲进行通信,比标准网络更接近生物神经元,并能在神经形态芯片上高效运行。

如今的大多数模型都结合了这些设计。YOLO26是一个卷积网络,在最低分辨率的特征图上使用自注意力模块;其 nano 检测模型约有 240 万个参数,可在 640×640 图像中通过单次前向传播来定位和分类物体。

  • 深度学习:具有一两个隐藏层的神经网络属于浅层网络;深度学习则是训练具有许多层的网络,让网络从原始数据中学习自身的特征层次结构。所有深度学习模型都是神经网络。
  • 机器学习:神经网络是机器学习模型中的一个类别,与决策树、支持向量机和梯度提升树并列;后几种模型在表格数据上仍有很强的竞争力。
  • 生物神经网络:真实神经元通过定时的电脉冲进行通信,并通过人工神经元无法建模的化学过程进行适应。与标准网络相比,脉冲神经网络复现了更多这类行为。

简史#

1943 年,Warren McCulloch 和 Walter Pitts 描述了神经元的数学模型:当二进制输入之和超过阈值时,神经元就会激活。Frank Rosenblatt 于 1958 年提出的感知机能够从示例中学习这类单元的权重,但 1969 年 Marvin Minsky 和 Seymour Papert 证明,单层感知机甚至无法计算 XOR 函数,此后人们对它的兴趣逐渐减退。多层网络可以解决 XOR 问题;1986 年,David Rumelhart、Geoffrey Hinton 和 Ronald Williams 展示了反向传播如何训练隐藏层来学习有用的内部表示。2012 年,深度网络在计算机视觉领域占据主导地位:AlexNet 使用两块GPU训练,在ImageNet挑战赛中以 15.3% 的 top-5 错误率夺冠,而次优参赛模型的错误率为 26.2%。

探索解决方案

体育领域的计算机视觉

体育领域的计算机视觉

了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉

航空影像计算机视觉

使用 Ultralytics YOLO 将无人机和航空影像转化为农业、水产养殖、保护工作和地理空间分析的实时洞察。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 将计算机视觉应用于航空航天领域,包括飞机检查、跑道 FOD 检测、机场地面作业和复合材料缺陷检测。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉

机器人领域的计算机视觉

使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉

物流中的计算机视觉

借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉

零售中的计算机视觉

借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉

医疗领域的计算机视觉

借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉

制造业中的计算机视觉

利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉

汽车领域的计算机视觉

利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉

农业中的计算机视觉

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情

让我们携手构建 AI 的未来!

开启你的旅程,迎接机器学习的未来