Linear Probing
Descubre cómo el sondeo lineal evalúa representaciones de IA congeladas mediante regresión logística, extracción de características y embeddings de Ultralytics YOLO26 para el aprendizaje por transferencia.
El sondeo lineal es una técnica de evaluación y adaptación que mide la utilidad de las representaciones aprendidas por un modelo mediante el entrenamiento de un predictor lineal simple sobre características congeladas. El codificador preentrenado permanece sin cambios, mientras que solo se ajusta una capa lineal —a menudo una regresión logística para la clasificación— con datos etiquetados. Un rendimiento sólido de la sonda sugiere que las incrustaciones del codificador ya organizan los conceptos relevantes de forma que pueden separarse mediante fronteras de decisión simples.
En el aprendizaje automático, el término no está relacionado con el sondeo lineal en tablas hash, donde se comprueban las posiciones de almacenamiento adyacentes después de una colisión. En IA y aprendizaje profundo, se refiere específicamente al sondeo de una representación con un modelo lineal.
Cómo funciona el sondeo lineal#
Una red neuronal típica contiene un codificador o backbone que transforma la entrada sin procesar en un vector de características, seguido de una cabeza de predicción específica para la tarea. El sondeo lineal sigue cuatro pasos:
- Preentrena o carga un codificador.
- Congela sus parámetros para que el entrenamiento no pueda actualizarlos.
- Realiza la extracción de características en ejemplos etiquetados.
- Entrena un clasificador lineal utilizando esas características fijas.
Para la clasificación multiclase, la sonda suele ser una única capa densa con salida softmax o un clasificador de regresión logística de scikit-learn. Aunque la regresión logística incluye una transformación de probabilidad no lineal, sus puntuaciones de clase y fronteras de decisión son funciones lineales de las características de entrada.
El sondeo lineal es especialmente habitual en el aprendizaje autosupervisado, donde un codificador aprende a partir de datos sin etiquetar. El ejemplo de NNCLR en Keras lo demuestra entrenando un clasificador denso sobre las características de un codificador congelado. Como la sonda tiene una capacidad limitada, no puede compensar fácilmente unas representaciones débiles aprendiendo transformaciones no lineales complejas.
Qué revela el rendimiento de una sonda lineal#
Una sonda lineal comprueba si la información está presente y es fácilmente accesible en una representación. Si las imágenes de gatos y perros forman grupos separables en el espacio de incrustaciones, un clasificador lineal puede distinguirlas con pocos parámetros entrenables. Si la información está codificada mediante una disposición más compleja, un clasificador no lineal puede funcionar incluso cuando la sonda lineal obtiene un rendimiento deficiente.
Por tanto, la precisión de la sonda debe considerarse una herramienta de diagnóstico y no una medida completa de la calidad del modelo. Puede verse afectada por:
- La capa del codificador seleccionada y la dimensión de la incrustación.
- La resolución de entrada y el preprocesamiento.
- La cantidad y el equilibrio de los datos de entrenamiento etiquetados.
- La regularización aplicada al modelo lineal.
- La fuga de datos entre los conjuntos de entrenamiento y evaluación.
Usa un conjunto de datos de validación reservado, creado preferiblemente mediante un procedimiento reproducible y estratificado, como la utilidad de división de datos de entrenamiento y prueba de scikit-learn. Además de la precisión, un informe de métricas de clasificación puede revelar las clases que la representación no separa de forma coherente.
Sondeo lineal frente a métodos relacionados#
El sondeo lineal pertenece a la familia más amplia de métodos de transferencia y evaluación de representaciones, pero es importante tener en cuenta varias diferencias:
- Sondeo lineal frente a ajuste fino: Una sonda solo actualiza la cabeza lineal. El ajuste fino actualiza algunos o todos los pesos del codificador, lo que proporciona al modelo más flexibilidad, pero requiere recursos computacionales adicionales y aumenta el riesgo de sobreajuste. La guía de aprendizaje por transferencia de TensorFlow describe cómo congelar un modelo base antes de descongelarlo opcionalmente para realizar un ajuste fino.
- Sondeo lineal frente a extracción de características: La extracción de características produce las incrustaciones; el sondeo lineal entrena y evalúa un predictor sobre esas incrustaciones.
- Sondeo lineal frente a regresión lineal: La regresión lineal predice valores continuos. Las sondas de clasificación suelen predecir clases discretas mediante regresión logística o una capa softmax.
- Sondeo lineal frente a evaluación mediante vecinos más cercanos: Una sonda lineal aprende fronteras de clase. Los métodos de vecinos más cercanos clasifican las muestras según las incrustaciones almacenadas más próximas, sin aprender esas fronteras. El tutorial de aprendizaje por transferencia de PyTorch denomina extractor de características fijo al flujo de trabajo estrechamente relacionado con un codificador congelado.
Sondeo lineal con Ultralytics YOLO#
Un modelo de clasificación Ultralytics YOLO26 preentrenado puede generar incrustaciones de imágenes mediante la API model.embed() documentada. El siguiente ejemplo congela implícitamente el codificador al precalcular las características y, a continuación, ajusta una sonda lineal para distinguir gatos de perros de CIFAR-10:
import numpy as np
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score
from sklearn.model_selection import train_test_split
from torchvision.datasets import CIFAR10
from ultralytics import YOLO
dataset = CIFAR10(root="data", train=False, download=True)
samples = [(image, label) for image, label in dataset if label in (3, 5)][:400]
images, labels = zip(*samples, strict=True)
encoder = YOLO("yolo26n-cls.pt")
embeddings = encoder.embed(list(images), verbose=False)
features = np.stack([embedding.cpu().numpy() for embedding in embeddings])
x_train, x_test, y_train, y_test = train_test_split(features, labels, test_size=0.25, random_state=42, stratify=labels)
probe = LogisticRegression(max_iter=1000)
probe.fit(x_train, y_train)
predictions = probe.predict(x_test)
print(accuracy_score(y_test, predictions))Solo el modelo de regresión logística aprende a partir de las etiquetas de gatos y perros; los pesos del codificador YOLO26 permanecen fijos. Esto permite aislar la utilidad de su representación visual en lugar de medir su capacidad de adaptación mediante un entrenamiento de extremo a extremo.
Aplicaciones en el mundo real y recomendaciones prácticas#
-
Evaluación del preentrenamiento sin etiquetar: Un equipo de robótica puede preentrenar un codificador con grandes volúmenes de vídeo de almacenes sin etiquetar y, a continuación, sondear sus características utilizando un pequeño conjunto de datos etiquetado de carretillas elevadoras, trabajadores y palés. Una precisión elevada de la sonda indica que la representación puede ser adecuada para la clasificación de imágenes o la detección posteriores con una anotación limitada.
-
Comparación de la idoneidad para un dominio: Un equipo de imagen médica puede congelar varios codificadores candidatos y entrenar sondas lineales idénticas para distintas categorías de tejidos. Si un codificador obtiene un rendimiento considerablemente mejor con la misma división y el mismo preprocesamiento, su representación constituye un punto de partida más sólido para un ajuste fino posterior.
Para realizar comparaciones justas, mantén constantes la división del conjunto de datos, la capa de características, el preprocesamiento, el clasificador y los ajustes de optimización. Siempre que sea posible, evalúa tanto el sondeo lineal como el ajuste fino completo: la sonda mide la información accesible en las características fijas, mientras que el ajuste fino mide la eficacia con la que el modelo completo puede adaptarse.









