Linear Probing
A sondagem linear treina um classificador linear com as características de um modelo congelado para testar o que as suas representações codificam. Como funciona, código e comparação com o ajuste fino.
A sondagem linear é uma técnica que mede a quantidade de informação útil contida nas representações de um modelo pré-treinado, treinando apenas um classificador linear, a sonda, sobre as suas características congeladas. Os pesos do codificador nunca mudam: as imagens ou o texto passam por ele uma vez, os embeddings resultantes tornam-se entradas fixas, e uma regressão logística ou uma única camada densa aprende a prever rótulos a partir delas. Uma exatidão elevada da sonda significa que o codificador já organiza os exemplos de forma a que uma fronteira linear separe as classes. Em estruturas de dados, o mesmo nome refere-se a um método não relacionado para resolver colisões em tabelas hash, verificando a posição seguinte.
Como funciona a sondagem linear#
Uma experiência de sondagem carrega um codificador pré-treinado, congela-o, executa a extração de características num conjunto de dados rotulado e treina um classificador linear com base nas características armazenadas, apresentando os resultados num conjunto de teste reservado para avaliação. A sonda tem um peso por característica e por classe, além de um viés, pelo que só consegue traçar fronteiras de decisão lineares e não pode criar novas características por si só; qualquer taxa de acerto que alcance reflete o que o codificador aprendeu. A regressão logística aplica uma softmax ou uma função sigmoide às suas pontuações, mas as fronteiras de decisão continuam lineares no espaço das características. Como só a sonda é treinada, as características podem ser calculadas uma única vez e reutilizadas, o que torna a sondagem muito mais barata do que o ajuste fino.
Os modelos de classificação Ultralytics YOLO26 expõem características congeladas através de model.embed(), que, por predefinição, agrega a saída da camada anterior à cabeça de classificação num vetor por imagem, com 256 números no modelo nano. O exemplo seguinte sonda essas características em gatos e cães do CIFAR-10, imagens de baixa resolução que o modelo treinado no ImageNet nunca viu, e ajusta a mesma sonda aos píxeis originais para comparação:
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}")A sonda obtém 0,573 nos píxeis originais, apenas um pouco acima dos 0,5 de uma previsão aleatória, e 0,833 nas características do YOLO26; esta diferença mede a informação sobre as classes que o codificador congelado YOLO26 torna linearmente acessível.
O que revela uma sonda#
Uma sonda linear testa se a informação está presente e se é fácil de extrair. Guillaume Alain e Yoshua Bengio propuseram sondas de classificadores lineares como diagnóstico em "Understanding Intermediate Layers Using Linear Classifier Probes" e descobriram que a separabilidade linear das características aumentava monotonamente com a profundidade nas redes estudadas. Sondar cada camada desta forma mostra onde a rede forma os conceitos necessários para uma tarefa. Na aprendizagem auto-supervisionada, a exatidão da sondagem no ImageNet tornou-se a forma padrão de comparar codificadores treinados sem rótulos, uma vez que a sonda acrescenta quase nada em que uma representação fraca se possa apoiar. No processamento de linguagem natural, as sondas treinadas nos estados ocultos de um modelo de linguagem testam se este codifica propriedades como a classe gramatical, a sintaxe ou a veracidade de uma afirmação.
Os resultados da sondagem dependem da camada escolhida, da resolução de entrada e do pré-processamento, da quantidade de dados rotulados, da regularização da sonda e da divisão entre as imagens de treino e de avaliação, por isso as comparações entre codificadores só são válidas se todos estes fatores se mantiverem constantes. Quando uma sonda linear falha, uma pequena sonda não linear pode ter sucesso, o que mostra que a informação está presente, mas codificada de forma não linear.
Sondagem linear vs. métodos relacionados#
- Ajuste fino: Atualiza alguns ou todos os pesos do codificador juntamente com a cabeça, o que normalmente proporciona uma exatidão superior nos dados-alvo. Em "Fine-Tuning Can Distort Pretrained Features", o ajuste fino obteve, em média, uma exatidão 2% superior à da sondagem linear dentro da distribuição em 10 conjuntos de dados, mas uma exatidão 7% inferior sob desvio de distribuição; LP-FT, que consiste em fazer primeiro a sondagem linear e depois o ajuste fino a partir dessa cabeça, superou o ajuste fino completo em 1% dentro da distribuição e em 10% sob desvio.
- Avaliação por k vizinhos mais próximos: Classifica cada embedding de teste pelos rótulos dos embeddings de treino mais próximos, sem qualquer treino, outro protocolo comum para codificadores auto-supervisionados.
- Extração de características e aprendizagem por transferência: A extração de características produz os embeddings consumidos por uma sonda, e treinar uma cabeça linear sobre uma rede base congelada é a forma mais económica de aprendizagem por transferência, denominada utilização da rede como extrator de características fixo no tutorial de aprendizagem por transferência do PyTorch.
Limitações da sondagem linear#
A sondagem linear mede o grau de acessibilidade linear da informação, que difere da utilidade de uma representação após adaptação. Os autores dos autoencodificadores mascarados (MAE) descobriram que os resultados da sondagem linear e do ajuste fino não estavam, em grande medida, correlacionados: o codificador ViT-L atingiu 73,5% de exatidão no ImageNet com sondagem linear, e o ajuste fino apenas do último bloco Transformer aumentou esse valor para 81,0%; além disso, a sondagem do MoCo v3 obteve um resultado superior ao do MAE, mas ficou atrás deste em todas as configurações de ajuste fino parcial.










