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

Linear Probing

线性探测会在冻结模型的特征上训练线性分类器,以检验其表示编码了什么。内容涵盖工作原理、代码,以及与微调的比较。

线性探测是一种评估预训练模型表征中包含多少有用信息的技术:它只在冻结特征之上训练一个线性分类器,也就是探测器。编码器权重始终不变:图像或文本只通过编码器一次,生成的嵌入成为固定输入,然后由逻辑回归或单个全连接层学习据此预测标签。探测器的准确率越高,说明编码器已经将样本排列得足够好,能用一条直线边界区分类别。在数据结构中,同一名称还指一种无关的方法:通过检查下一个槽位来解决哈希表中的冲突。

线性探测的工作原理#

探测实验会加载一个预训练编码器并将其冻结,在带标签的数据集上执行特征提取,然后基于存储的特征训练线性分类器,并在留出的测试集上报告结果。探测器为每个特征和类别设置一个权重,另加一个偏置,因此只能绘制线性决策边界,无法自行构建新特征;它达到的任何准确率都反映了编码器学到的内容。逻辑回归会对分数应用 softmax 或 sigmoid 函数,但决策边界在特征空间中仍是线性的。由于只有探测器参与训练,特征可以只计算一次并重复使用,因此探测的成本远低于微调。

Ultralytics YOLO26分类模型通过 model.embed() 暴露冻结特征;默认情况下,它会将分类头前一层的输出池化成每张图像一个向量,nano 模型的向量包含 256 个数字。下面的示例使用 CIFAR-10 中的猫和狗图像对这些特征进行探测。模型从未见过这些低分辨率图像,且曾在 ImageNet 上训练;示例还会对原始像素使用相同的探测器进行拟合以作比较:

from pathlib import Path

import numpy as np
from PIL import Image
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from torchvision.datasets.utils import download_and_extract_archive
from ultralytics import YOLO

# 500 cat and 500 dog images from the CIFAR-10 test split
download_and_extract_archive("https://github.com/ultralytics/assets/releases/download/v0.0.0/cifar10.zip", "data")
cats = sorted(Path("data/cifar10/test/cat").glob("*.png"))[:500]
dogs = sorted(Path("data/cifar10/test/dog").glob("*.png"))[:500]
paths, labels = cats + dogs, [0] * 500 + [1] * 500

# Frozen YOLO26 classifier features, and raw pixels as a baseline representation
encoder = YOLO("yolo26n-cls.pt")
features = np.stack([encoder.embed(path, verbose=False)[0].cpu().numpy() for path in paths])
pixels = np.stack([np.asarray(Image.open(path)).ravel() / 255 for path in paths])

# Train the same linear probe on each representation and score it on held-out images
for name, x in [("raw pixels", pixels), ("YOLO26 features", features)]:
    x_train, x_test, y_train, y_test = train_test_split(x, labels, test_size=0.3, random_state=0, stratify=labels)
    probe = LogisticRegression(max_iter=5000)
    probe.fit(x_train, y_train)
    print(f"{name}: {probe.score(x_test, y_test):.3f}")

探测器在原始像素上的得分为 0.573,仅略高于猜测的 0.5;在 YOLO26 特征上的得分则为 0.833。这一差距衡量了冻结的 YOLO26 编码器所包含、且可通过线性方式获取的类别信息。

探测能揭示什么#

线性探测用于检验信息是否存在,以及是否容易读取。Guillaume Alain 和 Yoshua Bengio 在《使用线性分类器探测理解中间层》中提出将线性分类器探测作为诊断方法,并发现他们所研究网络中的特征可线性分离程度会随深度单调增加。以这种方式探测每一层,可以看出网络在哪一层形成了任务所需的概念。在自监督学习中,ImageNet 上的线性探测准确率成为比较无标签训练编码器的标准方法,因为探测器几乎无法为较弱的表征提供额外助力。在自然语言处理中,对语言模型隐藏状态进行训练的探测器会检验模型是否编码了词性、句法或陈述真假等属性。

探测结果取决于所选层、输入分辨率和预处理、带标签数据量、探测器的正则化,以及训练图像与评估图像的划分。因此,只有这些条件全部保持一致时,编码器之间的比较才有意义。线性探测失败时,小型非线性探测器有时能够成功,这说明信息确实存在,只是以非线性方式编码。

  • 微调:同时更新部分或全部编码器权重与预测头,通常能在目标数据上获得更高准确率。《微调可能扭曲预训练特征》报告称,在 10 个数据集上,微调的同分布准确率平均比线性探测高 2%,但在分布偏移时低 7%;LP-FT 即先进行线性探测、再从该预测头开始微调的方法,同分布时比完整微调高 1%,分布偏移时高 10%。
  • K 近邻评估:根据最近训练嵌入的标签对每个测试嵌入进行分类,无需训练,是自监督编码器的另一种常见评估方案。
  • 特征提取与迁移学习:特征提取会生成探测器使用的嵌入;在冻结的骨干网络上训练线性预测头,是成本最低的迁移学习形式。PyTorch 的迁移学习教程将其称为把网络用作固定特征提取器。

线性探测的局限#

线性探测衡量信息以线性方式获取的难易程度,这与表征经过适配后的实用性不同。掩码自编码器(MAE)的作者发现,线性探测与微调结果基本不相关:其 ViT-L 编码器在线性探测下的 ImageNet 准确率为 73.5%,只微调最后一个 Transformer 块后,准确率升至 81.0%;而 MoCo v3 的探测得分高于 MAE,却在每种部分微调设置下都不及 MAE。

探索解决方案

体育领域的计算机视觉

体育领域的计算机视觉

了解 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 的未来!

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