Linear Probing
Beim linearen Probing wird ein linearer Klassifikator auf den Merkmalen eines eingefrorenen Modells trainiert, um zu prüfen, was dessen Repräsentationen codieren. So funktioniert es, mit Code und im Vergleich zur Feinabstimmung.
Lineares Probing ist eine Methode, mit der sich messen lässt, wie viele nützliche Informationen die Repräsentationen eines vortrainierten Modells enthalten. Dazu wird auf den eingefrorenen Merkmalen lediglich ein linearer Klassifikator, der sogenannte Probe-Klassifikator, trainiert. Die Gewichte des Encoders bleiben unverändert: Bilder oder Texte werden einmal durch ihn geleitet, die resultierenden Embeddings dienen als feste Eingaben, und eine logistische Regression oder eine einzelne dichte Schicht lernt, daraus Klassen vorherzusagen. Eine hohe Genauigkeit des Probe-Klassifikators bedeutet, dass der Encoder die Beispiele bereits so anordnet, dass eine gerade Grenze die Klassen voneinander trennt. In der Datenstruktur bezeichnet derselbe Begriff eine unabhängige Methode zur Kollisionsauflösung in Hash-Tabellen, bei der das nächste Feld geprüft wird.
So funktioniert lineares Probing#
Bei einem Probe-Experiment wird ein vortrainierter Encoder geladen und eingefroren, eine Merkmalsextraktion auf einem beschrifteten Datensatz durchgeführt und ein linearer Klassifikator auf den gespeicherten Merkmalen trainiert. Die Ergebnisse werden anhand eines zurückgehaltenen Testdatensatzes ausgewertet. Der Probe-Klassifikator hat für jedes Merkmal und jede Klasse ein Gewicht sowie einen Bias. Er kann daher nur lineare Entscheidungsgrenzen ziehen und keine eigenen neuen Merkmale bilden. Die erzielte Genauigkeit spiegelt wider, was der Encoder gelernt hat. Die logistische Regression wendet auf ihre Werte eine Softmax-Funktion oder Sigmoidfunktion an, die Entscheidungsgrenzen bleiben jedoch in den Merkmalen linear. Da nur der Probe-Klassifikator trainiert wird, lassen sich die Merkmale einmal berechnen und wiederverwenden. Das macht Probing deutlich günstiger als die Feinabstimmung.
Die Klassifikationsmodelle von Ultralytics YOLO26 stellen eingefrorene Merkmale über model.embed() bereit. Standardmäßig wird dabei die Ausgabe der Schicht vor dem Klassifikationskopf zu einem Vektor pro Bild zusammengefasst; beim Nano-Modell sind das 256 Zahlen. Das folgende Beispiel testet diese Merkmale mit Katzen- und Hundebildern aus CIFAR-10. Diese Bilder haben eine niedrige Auflösung und waren dem mit ImageNet trainierten Modell unbekannt. Zum Vergleich wird derselbe Probe-Klassifikator auch auf Rohpixeln trainiert:
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}")Auf Rohpixeln erreicht der Probe-Klassifikator einen Wert von 0,573, also nur knapp mehr als 0,5 beim Raten. Auf YOLO26-Merkmalen erzielt er 0,833. Diese Differenz misst, wie viele Klasseninformationen der eingefrorene YOLO26-Encoder linear zugänglich macht.
Was ein Probe-Klassifikator zeigt#
Ein linearer Probe-Klassifikator prüft, ob Informationen sowohl vorhanden als auch leicht auslesbar sind. Guillaume Alain und Yoshua Bengio schlugen lineare Probe-Klassifikatoren in „Understanding Intermediate Layers Using Linear Classifier Probes“ als Diagnoseverfahren vor und stellten fest, dass die lineare Trennbarkeit der Merkmale in den von ihnen untersuchten Netzwerken mit zunehmender Tiefe monoton anstieg. Durch das Probing jeder Schicht lässt sich erkennen, an welcher Stelle ein Netzwerk die für eine Aufgabe benötigten Konzepte bildet. Beim selbstüberwachten Lernen wurde die Genauigkeit linearer Probe-Klassifikatoren auf ImageNet zum Standardvergleich für Encoder, die ohne Labels trainiert wurden, da der Probe-Klassifikator kaum etwas hinzufügt, worauf sich eine schwache Repräsentation stützen könnte. In der Verarbeitung natürlicher Sprache prüfen Probe-Klassifikatoren, die auf den verborgenen Zuständen eines Sprachmodells trainiert wurden, ob es Eigenschaften wie Wortart, Syntax oder den Wahrheitsgehalt einer Aussage kodiert.
Die Ergebnisse des Probing hängen von der gewählten Schicht, der Eingabeauflösung und der Vorverarbeitung, der Menge der beschrifteten Daten, der Regularisierung des Probe-Klassifikators und der Aufteilung der Bilder in Trainings- und Auswertungssatz ab. Encoder lassen sich daher nur vergleichen, wenn all diese Faktoren gleich bleiben. Wenn ein linearer Probe-Klassifikator versagt, kann ein kleiner nichtlinearer manchmal erfolgreich sein. Das zeigt, dass die Information vorhanden, aber nichtlinear kodiert ist.
Lineares Probing und verwandte Methoden#
- Feinabstimmung: Aktualisiert einige oder alle Gewichte des Encoders zusammen mit dem Kopf, was auf den Zieldaten normalerweise zu höherer Genauigkeit führt. In „Feinabstimmung kann vortrainierte Merkmale verzerren“ erzielte die Feinabstimmung über 10 Datensätze hinweg eine durchschnittlich um 2 % höhere Genauigkeit innerhalb der Verteilung als lineares Probing, unter Verteilungsverschiebung jedoch eine um 7 % niedrigere Genauigkeit. LP-FT, bei dem zuerst lineares Probing und anschließend eine Feinabstimmung ausgehend von diesem Kopf durchgeführt wird, übertraf die vollständige Feinabstimmung um 1 % innerhalb der Verteilung und um 10 % unter Verteilungsverschiebung.
- Auswertung mit k nächsten Nachbarn: Klassifiziert jedes Test-Embedding anhand der Klassen der nächstgelegenen Trainings-Embeddings, ganz ohne Training. Dies ist ein weiteres gängiges Verfahren für selbstüberwachte Encoder.
- Merkmalsextraktion und Transferlernen: Die Merkmalsextraktion erzeugt die Embeddings, die ein Probe-Klassifikator verarbeitet. Einen linearen Kopf auf einem eingefrorenen Backbone zu trainieren, ist die kostengünstigste Form des Transferlernens. Im Transfer-Learning-Tutorial von PyTorch wird dies als Nutzung des Netzwerks zur festen Merkmalsextraktion bezeichnet.
Grenzen des linearen Probings#
Lineares Probing misst, wie linear zugänglich Informationen sind. Das unterscheidet sich davon, wie nützlich eine Repräsentation nach einer Anpassung ist. Die Autorinnen und Autoren von Masked Autoencoders (MAE) stellten fest, dass die Ergebnisse beim linearen Probing und bei der Feinabstimmung weitgehend unkorreliert waren: Ihr ViT-L-Encoder erreichte beim linearen Probing auf ImageNet eine Genauigkeit von 73,5 %. Durch die Feinabstimmung nur des letzten Transformer-Blocks stieg dieser Wert auf 81,0 %. MoCo v3 erzielte beim Probing bessere Werte als MAE, lag jedoch bei jeder Einstellung mit teilweiser Feinabstimmung zurück.










