Linear Probing
Aprende cómo el sondeo lineal evalúa representaciones de IA congeladas con 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 de un modelo entrenando un predictor lineal simple sobre características congeladas. El codificador preentrenado permanece sin cambios, mientras que solo se ajusta una capa lineal —a menudo regresión logística para clasificación— a los datos etiquetados. Un rendimiento sólido del sondeo sugiere que los embeddings del codificador ya organizan conceptos relevantes para que puedan separarse con límites de decisión simples.
En machine learning, este término no está relacionado con el sondeo lineal en tablas hash, donde se comprueban ubicaciones de almacenamiento vecinas tras una colisión. En inteligencia artificial y deep learning, se refiere específicamente a sondear 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 cabecera de predicción específica para la tarea. El sondeo lineal sigue cuatro pasos:
- Preentrenar o cargar un codificador.
- Congelar sus parámetros para que el entrenamiento no pueda actualizarlos.
- Realizar la extracción de características en ejemplos etiquetados.
- Entrenar un clasificador lineal utilizando esas características fijas.
Para la clasificación multiclase, el sondeo 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 límites de decisión son funciones lineales de las características de entrada.
El sondeo lineal es especialmente común en el aprendizaje autosupervisado, donde un codificador aprende a partir de datos no etiquetados. El ejemplo de Keras NNCLR demuestra esto entrenando un clasificador denso sobre las características de un codificador congelado. Debido a que el sondeo tiene una capacidad limitada, no puede compensar fácilmente las representaciones débiles mediante el aprendizaje de transformaciones no lineales complejas.
Qué revela el rendimiento del sondeo lineal#
Un sondeo 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 embeddings, un clasificador lineal puede distinguirlos con pocos parámetros entrenables. Si la información se codifica mediante una disposición más complicada, un clasificador no lineal puede tener éxito incluso cuando el sondeo lineal rinde mal.
Por lo tanto, la precisión del sondeo debe tratarse como un diagnóstico en lugar de como una medida completa de la calidad del modelo. Puede verse afectada por:
- La capa de codificador seleccionada y la dimensión de los embeddings.
- 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.
Utiliza un conjunto de datos de validación reservado, preferiblemente creado con un procedimiento reproducible y estratificado como la utilidad de división de tren-prueba de scikit-learn. Más allá de la precisión, un informe de métricas de clasificación puede exponer las clases que la representación no separa de manera consistente.
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 importan varias distinciones:
- Sondeo lineal frente a fine-tuning: Un sondeo actualiza solo la cabecera lineal. El fine-tuning actualiza algunos o todos los pesos del codificador, lo que otorga al modelo más flexibilidad pero requiere cómputo adicional y aumenta el riesgo de overfitting. La guía de aprendizaje por transferencia de TensorFlow describe cómo congelar un modelo base antes de descongelarlo opcionalmente para el fine-tuning.
- Sondeo lineal frente a extracción de características: La extracción de características produce los embeddings; el sondeo lineal entrena y evalúa un predictor sobre esos embeddings.
- Sondeo lineal frente a regresión lineal: La regresión lineal predice valores continuos. Los sondeos de clasificación generalmente predicen clases discretas con regresión logística o una capa softmax.
- Sondeo lineal frente a evaluación de vecinos más cercanos: Un sondeo lineal aprende los límites de las clases. Los métodos de vecinos más cercanos clasifican las muestras según los embeddings almacenados cercanos sin aprender dichos límites. El tutorial de aprendizaje por transferencia de PyTorch denomina al flujo de trabajo estrechamente relacionado del codificador congelado como extractor de características fijo.
Sondeo lineal con Ultralytics YOLO#
Un modelo de clasificación Ultralytics YOLO26 preentrenado puede generar embeddings de imágenes a través de la API documentada model.embed(). El siguiente ejemplo congela el codificador de forma implícita precalculando características, y luego ajusta un sondeo lineal para distinguir entre gatos y 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 de YOLO26 permanecen fijos. Esto aísla 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 guía práctica#
-
Evaluación del preentrenamiento no etiquetado: Un equipo de robótica puede preentrenar un codificador con grandes volúmenes de vídeo de almacén no etiquetado, y luego sondear sus características utilizando un pequeño conjunto de datos etiquetados de carretillas elevadoras, trabajadores y palets. Una alta precisión en el sondeo indica que la representación puede respaldar la clasificación de imágenes o la detección posteriores con anotaciones limitadas.
-
Comparación de la idoneidad del dominio: Un equipo de imagen médica puede congelar varios codificadores candidatos y entrenar sondeos lineales idénticos para categorías de tejido. Si un codificador rinde sustancialmente mejor bajo la misma división y preprocesamiento, su representación es un punto de partida más sólido para un fine-tuning 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 la configuración de optimización. Evalúa tanto el sondeo lineal como el fine-tuning completo siempre que sea posible: el sondeo mide la información accesible en características fijas, mientras que el fine-tuning mide la eficacia con la que el modelo completo puede adaptarse.






