Zero-Shot Learning
A aprendizagem zero-shot reconhece classes sem exemplos rotulados, associando as entradas a descrições textuais. Abrange CLIP, deteção de vocabulário aberto e limitações.
O aprendizado zero-shot (ZSL) é a capacidade de um modelo reconhecer classes para as quais não viu exemplos de treinamento rotulados. Em vez de exemplos, o modelo recebe uma descrição de cada nova classe, como uma lista de atributos ou, em sistemas modernos, o nome da classe como texto, e compara as entradas com essas descrições em um espaço compartilhado de embeddings. O aprendizado supervisionado padrão só consegue predizer as classes presentes nos rótulos de treinamento, então adicionar uma categoria exige coletar e rotular novos dados e treinar novamente. Um modelo zero-shot adiciona uma categoria quando seu nome é incluído. O CLIP da OpenAI, treinado com 400 milhões de pares de imagem e legenda, igualou a precisão do ResNet-50 supervisionado original no ImageNet sem usar nenhuma das 1,28 milhão de imagens de treinamento rotuladas do ImageNet.
Como funciona o aprendizado zero-shot#
O aprendizado zero-shot transfere conhecimento por meio de um espaço semântico que conecta classes conhecidas e desconhecidas. Os primeiros métodos descreviam cada classe com atributos definidos por humanos, como "listrado", "tem cascos" e "vive em pradarias", e treinavam modelos para predizer esses atributos. Assim, um animal nunca visto durante o treinamento podia ser reconhecido como a classe cujos atributos correspondiam aos dele. Os modelos de visão e linguagem substituíram os atributos criados manualmente por linguagem natural. O CLIP treina um codificador de imagens e um codificador de texto com aprendizado contrastivo, para que imagens e legendas correspondentes recebam embeddings semelhantes. Para classificar, ele gera um embedding para uma solicitação de cada classe candidata, como "uma foto de uma zebra", gera o embedding da imagem e escolhe a classe com a maior similaridade do cosseno:
Como o classificador é construído a partir de texto durante a inferência, a lista de classes pode mudar a cada solicitação. O mesmo padrão se aplica a modelos de linguagem grandes (LLMs), nos quais a solicitação zero-shot consiste em fornecer apenas uma instrução ao modelo, sem exemplos resolvidos, conforme definido no artigo do GPT-3.
Detecção de objetos zero-shot#
Os detectores de vocabulário aberto ampliam o aprendizado zero-shot de imagens inteiras para objetos individuais. Eles pontuam cada região candidata comparando-a com embeddings de texto das classes solicitadas, de modo que podem encontrar objetos fora de qualquer conjunto fixo de rótulos, como um produto específico em um arquivo de vídeos. O YOLO-World aplica essa abordagem a modelos YOLO de tempo real. O YOLOE-26 da Ultralytics, uma versão de vocabulário aberto do YOLO26, codifica cada nome de classe passado para set_classes() com um codificador de texto MobileCLIP2 e retorna caixas e máscaras de segmentação de instâncias para essas classes sem novo treinamento:
from ultralytics import YOLOE
# Checkpoint YOLOE-26 que aceita solicitações de texto
model = YOLOE("yoloe-26s-seg.pt")
# Nomeie as classes durante a inferência, neste caso com palavras que não são rótulos do COCO
model.set_classes(["city bus", "sneakers", "glasses"])
# Detecte e segmente as classes nomeadas
results = model.predict("https://ultralytics.com/images/bus.jpg")
result = results[0]
result.save(filename="zero_shot_result.jpg")A primeira chamada de set_classes() baixa o codificador de texto. Para detecção de objetos, "zero-shot" significa que o modelo não recebeu caixas rotuladas para uma classe, embora o nome da classe possa ter aparecido nos dados de imagem e texto usados para pré-treinar seus codificadores. A Ultralytics Platform anota automaticamente conjuntos de dados de detecção com detectores zero-shot e modelos de linguagem visual, e o VLM Leaderboard compara a precisão com que cada um encontra objetos em imagens do mundo real.
Aplicações#
- Busca visual e moderação: Bibliotecas de mídia e plataformas de conteúdo encontram imagens que correspondem a uma consulta de texto ou sinalizam novas categorias de conteúdo, sem treinar um classificador para cada consulta.
- Robótica: Um robô orientado a buscar "a caneca azul" consegue localizar uma categoria de objeto que nunca foi treinado para detectar.
- Vida selvagem e biodiversidade: O BioCLIP, treinado com mais de 10 milhões de imagens de todo o reino da vida, classifica espécies zero-shot a partir dos nomes e ganhou o prêmio de melhor artigo de estudante no CVPR 2024.
- Imagens médicas: Modelos treinados com radiografias associadas a laudos radiológicos escritos podem sinalizar achados que nunca foram anotados como rótulos explícitos de treinamento.
Desafios#
A precisão zero-shot costuma ser inferior à de um modelo treinado com exemplos rotulados das mesmas classes, sobretudo para categorias especializadas ou de granularidade fina cujos nomes são raros em textos da web. No aprendizado zero-shot generalizado, em que as imagens de teste podem pertencer a classes conhecidas e desconhecidas, os modelos favorecem as classes com que foram treinados, e estudos de benchmark descobriram que, nesse cenário, a precisão nas classes desconhecidas cai acentuadamente. Os resultados também dependem da formulação, o que torna a engenharia de prompts parte da classificação zero-shot: a precisão do CLIP no ImageNet aumentou 1.3% quando o nome simples da classe foi substituído pelo prompt "uma foto de {label}."
Aprendizado zero-shot e termos relacionados#
- Aprendizado few-shot: Aprende novas classes com poucos exemplos rotulados por classe, geralmente de 1 a 10. O aprendizado zero-shot é o caso com zero exemplos e uma descrição.
- Aprendizado one-shot: O caso de aprendizado few-shot com exatamente um exemplo rotulado por classe, muitas vezes correspondido por similaridade de embeddings.
- Aprendizado por transferência: Reutiliza um modelo pré-treinado em uma nova tarefa, geralmente ajustando-o com dados rotulados. O aprendizado zero-shot transfere conhecimento pelo espaço compartilhado de texto e imagem, sem treinamento adicional.
- Prompting visual: Especifica o alvo com uma imagem de exemplo ou uma caixa em vez de palavras, o que ajuda com objetos difíceis de nomear, como uma peça ou um logotipo específico.










