了解模型权重在机器学习中的重要性、它们在预测中的作用,以及Ultralytics YOLO 如何简化它们在人工智能任务中的使用。
模型权重是机器学习模型中可学习的参数,用于将输入数据转换为预测输出。在神经网络中,这些权重代表不同层神经元之间连接的强度。模型初始化时,这些权重通常被设置为随机的小数值,意味着模型"一无所知"。 通过称为训练的过程,模型会根据产生的误差迭代调整权重,逐步学会识别数据中的模式、特征及关联关系。可将模型权重视为人工智能的"记忆"或"知识"——它们存储着系统从训练数据中习得的经验。
训练神经网络的主要目标是找到一组最优模型权重,使其将模型预测与实际真实值之间的误差最小化。 该过程涉及将数据通过网络传递——这一步骤称为前向传播——然后使用特定损失函数计算损失值。若预测结果不正确,则采用随机梯度下降(SGD)等优化算法(或YOLO26中采用的新型Muon优化器)计算每个权重对误差的贡献程度。
通过一种称为反向传播的技术, 算法会微调权重以减少下一次训练的误差。这个循环会重复数千甚至数百万次, 直到模型权重趋于稳定且系统达到高精度。训练完成后, 权重会被"冻结"并保存, 使模型能够部署到新数据上进行推理。
区分weights and biases至关重要,二者协同工作但功能各异。模型权重决定神经元连接的强度与方向(控制激活函数的斜率),而偏置则使激活函数能够向左或向右偏移。 这种偏移机制确保模型即使在所有输入特征为零时仍能更好地拟合数据。权重与偏置共同构成可学习参数,定义了卷积神经网络(CNN)等架构的行为特性。
模型权重是使人工智能系统能够在不同行业中运作的核心组件。以下是两个具体的应用实例:
在实际操作中,处理模型权重需要将训练好的参数保存到文件中,以便后续加载用于预测或 微调在UltralUltralytics
生态系统中,这些数据通常存储为 .pt (PyTorch) 文件。
以下是一个简单的示例,演示如何将预训练权重YOLO 并运行预测:
from ultralytics import YOLO
# Load a model with pre-trained weights (e.g., YOLO26n)
model = YOLO("yolo26n.pt")
# Run inference on an image using the loaded weights
results = model("https://ultralytics.com/images/bus.jpg")
# Print the number of detected objects
print(f"Detected {len(results[0].boxes)} objects.")
模型权重的强大之处在于其可移植性。开发者无需从头训练模型——这需要海量数据集和强大计算能力——而是常采用迁移学习。该方法涉及将模型权重预先训练于大型数据集(如 COCO 或 ImageNet 等大型数据集上预训练的权重模型,并将其适应于特定任务。
例如,您可以从通用物体检测器中提取权重,并在较小的太阳能电池板数据集上进行微调。由于预训练权重已具备边缘、形状和纹理的识别能力,模型收敛速度显著加快,所需标注数据量也大幅减少。Ultralytics 工具可简化这一流程,支持团队管理数据集、在云端训练模型,并将优化后的权重无缝部署至边缘设备。
现代人工智能研究常致力于在不牺牲性能的前提下缩减模型权重文件体积,这一过程被称为模型量化。通过降低权重精度(例如从32位浮点数降至8位整数),开发者可显著减少内存占用并提升推理速度。 这对在资源受限的硬件(如手机或树莓派设备)上部署模型至关重要。此外,通过剪枝等技术可移除对输出贡献甚微的权重,进一步优化模型以适应实时应用场景。