Ultralytics YOLO27: Entre na lista de espera.
Licenciar o YOLO
Voltar ao glossário da Ultralytics

Contrastive Learning

A aprendizagem contrastiva treina embeddings aproximando pares correspondentes e afastando outras amostras. Veja InfoNCE, SimCLR, MoCo, CLIP e código.

O aprendizado contrastivo treina um modelo para produzir incorporações em que pares de amostras correspondentes, chamados positivos, ficam próximos, e amostras não correspondentes, chamadas negativas, ficam distantes. Os pares podem vir dos próprios dados, como dois recortes aumentados da mesma foto, ou de dados naturalmente pareados, como uma imagem e sua legenda, por isso o aprendizado contrastivo não precisa de rótulos de classe. É uma das principais famílias de métodos de aprendizado autossupervisionado para imagens, junto com a reconstrução mascarada e a autodestilação. Codificadores treinados dessa forma produzem características que se transferem para detecção, classificação e recuperação, e o mesmo objetivo treina modelos de visão e linguagem, como o CLIP, que pode classificar imagens apenas com texto por meio do aprendizado zero-shot.

Como funciona a aprendizagem contrastiva#

Um método contrastivo tem três componentes: uma forma de criar pares positivos, um codificador que converte cada amostra num embedding normalizado e uma função de perda que compara semelhanças. No SimCLR, Ting Chen e colegas da Google criaram duas vistas de cada imagem com recortes aleatórios, distorção de cor e desfocagem, codificaram ambas com uma ResNet partilhada, seguida de uma pequena cabeça de projeção, e trataram as outras imagens do lote como negativas:

O aumento de dados define o que o modelo aprende a ignorar. Como dois recortes da mesma imagem têm de ser mapeados para pontos próximos, o codificador aprende que as alterações de posição, escala e cor não mudam o que a imagem representa e mantém as características que distinguem uma imagem das restantes. Com uma ResNet-50 quatro vezes mais larga do que a versão padrão, um classificador linear treinado com as características congeladas do SimCLR atingiu 76.5% de precisão top-1 no ImageNet, igualando uma ResNet-50 supervisionada.

Funções de perda contrastiva#

  • Perda contrastiva por pares: a função de perda de 2006 de Raia Hadsell, Sumit Chopra e Yann LeCun aproxima cada par positivo e afasta cada par negativo até que a distância entre os dois seja, no mínimo, igual a uma margem m.
  • Perda tripla: compara uma âncora com um exemplo positivo e um negativo, exigindo que o positivo esteja mais próximo por uma margem. Em 2015, a FaceNet da Google treinou embeddings faciais com esta função.
  • InfoNCE: compara um positivo com muitos negativos em simultâneo. Com as semelhanças s divididas por uma temperatura τ, a perda de uma âncora é −log[exp(s₊/τ) / Σⱼ exp(sⱼ/τ)], uma entropia cruzada softmax em que o positivo é a classe correta entre todos os candidatos. Aaron van den Oord e colegas deram-lhe este nome em codificação preditiva contrastiva, em 2018; a perda NT-Xent do SimCLR e a perda do CLIP são variantes desta função.
  • Perda sigmoide: o SigLIP avalia cada par como uma correspondência independente de sim ou não através de uma sigmoide, pelo que a perda não precisa de normalização ao longo do lote.

No PyTorch, a InfoNCE reduz-se à entropia cruzada aplicada a uma matriz de semelhanças cuja diagonal contém os positivos:

import torch
import torch.nn.functional as F

torch.manual_seed(0)
# Stand-in embeddings for 8 images, a second view of each (row i of both is a positive pair),
# and 8 unrelated images
view1 = F.normalize(torch.randn(8, 128), dim=1)
view2 = F.normalize(view1 + 0.1 * torch.randn(8, 128), dim=1)
unrelated = F.normalize(torch.randn(8, 128), dim=1)

# InfoNCE: cosine similarities divided by a temperature, then cross-entropy where
# each row's positive (the diagonal) is the correct class among all 8 candidates
temperature = 0.1
targets = torch.arange(8)
for name, keys in [("Augmented views", view2), ("Unrelated images", unrelated)]:
    logits = view1 @ keys.T / temperature
    print(f"{name}: loss {F.cross_entropy(logits, targets):.3f}")

Apresenta Augmented views: loss 0.016 e Unrelated images: loss 2.505. Quando o positivo de cada linha é claramente a chave mais semelhante, a perda aproxima-se de zero. Com chaves não relacionadas, ultrapassa ln 8 ≈ 2.08, a perda de uma escolha uniforme entre oito candidatos, porque dividir por uma temperatura de 0.1 transforma semelhanças aleatórias em previsões erradas feitas com confiança. Uma temperatura mais baixa torna a softmax mais acentuada e concentra a perda nos negativos mais difíceis. O MoCo usa τ = 0.07, e o CLIP inicializa a sua temperatura aprendida com o mesmo valor.

Negativos, tamanho do lote e variantes#

A InfoNCE melhora com mais negativos, o que faz do número de negativos um custo central. O SimCLR obtinha-os a partir de lotes muito grandes. O MoCo, criado por Kaiming He e colegas da Facebook AI Research, mantinha uma fila de 65,536 embeddings de lotes recentes como negativos e codificava-os com uma cópia do codificador atualizada lentamente por momentum, o que separa o número de negativos do tamanho do lote. Negativos aleatórios podem ser falsos negativos, como outra fotografia de um cão da mesma raça, e os negativos muito fáceis ensinam pouco; por isso, a mineração de negativos difíceis procura amostras que possam ser confundidas. A aprendizagem contrastiva supervisionada (SupCon) usa rótulos para tratar todas as amostras da mesma classe como positivas. Métodos não contrastivos, como BYOL, SimSiam e DINO, eliminam por completo os negativos e evitam que todos os exemplos colapsem para o mesmo embedding através de redes assimétricas, gradientes interrompidos ou centralização.

  • Aprendizagem de métricas: tarefa mais abrangente de aprender uma função de distância, da qual derivam as perdas contrastiva e tripla. Atualmente, «aprendizagem contrastiva» refere-se, em geral, à variante autossupervisionada com muitos negativos, popularizada pelo SimCLR e pelo MoCo.
  • Autoencoders: aprendem a reconstruir a entrada, pelo que as suas características têm de preservar os detalhes ao nível dos píxeis. As características contrastivas mantêm apenas o que distingue uma amostra das restantes.
  • JEPA: prevê os embeddings de regiões ocultas da imagem a partir das regiões visíveis, aprendendo no espaço dos embeddings sem pares negativos.
  • Aprendizagem supervisionada: treina o modelo para reconhecer um conjunto fixo de classes atribuídas por humanos, enquanto a pré-treino contrastivo só precisa de uma regra para determinar quais as amostras que correspondem.

Aplicações#

  • Modelos de visão e linguagem: o CLIP treinou um codificador de imagens e um codificador de texto com 400 milhões de pares imagem-legenda e lotes de 32,768, permitindo que os comandos de texto classifiquem e recuperem imagens. Os modelos Ultralytics YOLOE-26 codificam os nomes das classes com o codificador de texto MobileCLIP2 da Apple, treinado com um objetivo contrastivo ao estilo CLIP, e avaliam cada região candidata em relação a esses embeddings de texto numa cabeça contrastiva, pelo que set_classes(["forklift", "pallet"]) transforma os mesmos pesos num detetor para novas categorias.
  • Pesquisa semântica: os embeddings de imagens e texto treinados por contraste são armazenados numa base de dados vetorial e pesquisados por semelhança.
  • Pré-treino com poucos rótulos: em áreas como a análise de imagens médicas, onde os rótulos especializados são escassos, o pré-treino contrastivo com exames sem rótulos fornece uma rede base que a afinação adapta com um pequeno conjunto rotulado.
  • Reconhecimento facial e reidentificação: as perdas contrastiva e tripla treinam embeddings nos quais as fotografias da mesma pessoa ou objeto ficam próximas. Os embeddings da FaceNet, com 128 dimensões, atingiram 99.63% de precisão na referência Labeled Faces in the Wild.

Explore as soluções

Visão computacional no desporto

Visão computacional no desporto

Descubra como o Ultralytics YOLO impulsiona a visão computacional no esporte com rastreamento de jogadores e bolas, análise de desempenho, insights para treinadores e reabilitação de atletas.
Saiba mais
Visão computacional para imagens aéreas

Visão computacional para imagens aéreas

Transforma imagens de drones e aéreas em informações em tempo real para a agricultura, a aquacultura, a conservação e a análise geoespacial com Ultralytics YOLO.
Saiba mais
Visão computacional no setor aeroespacial

Visão computacional no setor aeroespacial

Aplica visão computacional na indústria aeroespacial com Ultralytics YOLO para inspecionar aeronaves, detetar objetos estranhos na pista (FOD), apoiar operações aeroportuárias em terra e detetar defeitos em materiais compósitos.
Saiba mais
Visão computacional na segurança

Visão computacional na segurança

Protege todas as instalações com os modelos Ultralytics YOLO. A IA visual permite monitorizar perímetros, detetar ameaças, reconhecer matrículas e melhorar a segurança no local de trabalho.
Saiba mais
Visão computacional na robótica

Visão computacional na robótica

Potencia máquinas mais inteligentes com os modelos Ultralytics YOLO. A IA visual na robótica permite navegação autónoma, perceção, rastreamento de objetos e controlo em tempo real.
Saiba mais
Visão computacional na logística

Visão computacional na logística

Otimize a logística com os modelos Ultralytics YOLO. A IA de visão permite inspecionar pacotes, fazer triagem, rastrear veículos e monitorar a segurança em tempo real nos armazéns.
Saiba mais
Visão computacional no varejo

Visão computacional no varejo

Reinvente o varejo com os modelos Ultralytics YOLO. A IA de visão permite rastrear o estoque, monitorar prateleiras, gerenciar filas e obter insights mais inteligentes sobre clientes.
Saiba mais
Visão computacional na área da saúde

Visão computacional na área da saúde

Desenvolva soluções de saúde com os modelos Ultralytics YOLO. A IA de visão na área da saúde permite obter imagens médicas mais rapidamente, diagnósticos mais inteligentes e monitoramento de pacientes.
Saiba mais
Visão computacional na manufatura

Visão computacional na manufatura

Otimize a manufatura com modelos Ultralytics YOLO. A IA visual impulsiona o controle de qualidade, a detecção de defeitos, a conformidade com o uso de EPI e a automação da linha de montagem.
Saiba mais
Visão computacional no setor automotivo

Visão computacional no setor automotivo

Aplique visão computacional no setor automotivo com modelos Ultralytics YOLO. A IA visual aumenta a segurança viária, aprimora a assistência ao condutor e viabiliza a automação de veículos para estradas mais inteligentes.
Saiba mais
Visão computacional na agricultura

Visão computacional na agricultura

Leve a IA de visão à agricultura inteligente com os modelos Ultralytics YOLO. Aprimore o monitoramento de plantações, o rastreamento de animais e a agricultura de precisão para obter safras maiores e mais inteligentes.
Saiba mais

Vamos construir juntos o futuro da IA!

Comece sua jornada rumo ao futuro do aprendizado de máquina