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%。










