Explore how contrastive learning enables AI to understand data by comparing samples. Learn about self-supervised features and train models on the Ultralytics Platform.
A aprendizagem contrastiva é um paradigma de aprendizagem automática que ensina os modelos a compreender os dados através da comparação de amostras semelhantes e diferentes. Ao contrário da aprendizagem supervisionada tradicional, que depende fortemente de conjuntos de dados rotulados manualmente, a aprendizagem contrastiva é frequentemente utilizada em contextos de aprendizagem auto-supervisionada. A ideia central é simples, mas poderosa: o modelo aprende a aproximar as representações de itens relacionados (pares positivos) em um espaço vetorial, enquanto afasta itens não relacionados (pares negativos). Esse processo permite que os algoritmos criem recursos robustos e generalizáveis a partir de grandes quantidades de dados não rotulados, o que é crucial para dimensionar sistemas de inteligência artificial (IA).
No cerne da aprendizagem contrastiva está o conceito de aprendizagem por comparação. Em vez de memorizar que uma imagem específica é um «gato», o modelo aprende que duas fotos diferentes de um gato são mais semelhantes entre si do que qualquer uma delas é a uma foto de um cão. Isso é normalmente conseguido através do aumento de dados. Uma imagem de entrada, frequentemente chamada de "âncora", é transformada em duas versões diferentes usando técnicas como recorte, inversão ou variação de cor . Essas duas versões formam um par positivo. O modelo é então treinado para minimizar a distância entre as suas incorporações, maximizando a distância para outras imagens aleatórias (amostras negativas) no lote.
Essa abordagem ajuda a rede neural a se concentrar em características semânticas de alto nível, em vez de detalhes de pixels de baixo nível. Por exemplo, seja um carro vermelho ou azul, ou virado para a esquerda ou para a direita, o conceito subjacente de "carro" permanece o mesmo. Ao ignorar essas variações superficiais, o modelo desenvolve uma compreensão mais profunda do mundo visual, o que beneficia significativamente tarefas posteriores, como detecção e classificação de objetos.
A aprendizagem contrastiva tornou-se uma pedra angular para muitas aplicações de IA de última geração, particularmente onde os dados rotulados são escassos ou caros de obter.
É útil diferenciar a aprendizagem contrastiva de técnicas semelhantes para compreender o seu papel único no cenário da aprendizagem automática (ML).
Embora treinar um modelo contrastivo do zero exija muitos recursos, é possível usar facilmente modelos pré-treinados para
extrair características. O exemplo a seguir demonstra como carregar um modelo e extrair o vetor de características (incorporação)
para uma imagem usando o ultralytics pacote. Esta incorporação representa o conteúdo semântico aprendido através de
técnicas semelhantes ao pré-treino contrastivo.
from ultralytics import YOLO
# Load a pre-trained YOLO26 classification model
model = YOLO("yolo26n-cls.pt")
# Run inference on an image to get the results
# The 'embed' argument can be used in advanced workflows to extract feature layers
results = model("https://ultralytics.com/images/bus.jpg")
# Access the top predicted class probability
# This prediction is based on the learned feature representations
print(f"Top class: {results[0].names[results[0].probs.top1]}")
print(f"Confidence: {results[0].probs.top1conf:.4f}")
Essa capacidade de extrair características ricas e significativas torna a aprendizagem contrastiva essencial para a construção de modernos sistemas de visão computacional (CV), permitindo uma pesquisa de imagens e análises avançadas eficientes. Para gerenciar conjuntos de dados e treinar modelos personalizados que se beneficiam dessas arquiteturas avançadas, a Ultralytics oferece um ambiente simplificado para implantação e monitoramento.