Few-Shot Learning
O aprendizado com poucos exemplos (FSL) reconhece novas classes a partir de um pequeno número de exemplos rotulados, usando aprendizado métrico, meta-aprendizado, ajuste fino ou prompting.
A aprendizagem com poucos exemplos (FSL) consiste em aprender uma tarefa nova, geralmente reconhecer novas classes, com apenas alguns exemplos anotados por classe, normalmente entre 1 e 10. A aprendizagem supervisionada padrão precisa de centenas ou milhares de imagens anotadas por classe, que são caras ou impossíveis de recolher para defeitos raros, doenças raras ou um produto lançado ontem. Os métodos de aprendizagem com poucos exemplos reduzem essa diferença recorrendo a conhecimento prévio: um modelo pré-treinado com muitos dados relacionados já produz características que separam bem as novas classes, pelo que bastam alguns exemplos para as definir. A mesma ideia surge nos modelos de linguagem, em que alguns exemplos resolvidos no prompt orientam o modelo para uma nova tarefa sem qualquer treino.
Tarefas N-way K-shot#
Os problemas de aprendizagem com poucos exemplos descrevem-se como N-way K-shot: N novas classes, cada uma com K exemplos anotados. Estes exemplos anotados formam o conjunto de suporte, e o modelo é avaliado pela forma como classifica um conjunto de consulta separado de exemplos das mesmas N classes. Assim, numa tarefa 5-way 1-shot, o modelo recebe um exemplo de cada uma de cinco classes que nunca viu e tem de classificar novas imagens nessas classes. A aprendizagem one-shot é o caso K = 1, e a aprendizagem zero-shot é K = 0, em que as classes são descritas por texto ou atributos em vez de exemplos. Os benchmarks de investigação avaliam o desempenho em classes excluídas do treino, como Omniglot, com 1,623 caracteres manuscritos de 50 alfabetos, e miniImageNet, com 100 classes do ImageNet de 600 imagens cada.
Abordagens à aprendizagem com poucos exemplos#
Os métodos de aprendizagem por métricas treinam uma rede para mapear imagens para embeddings em que os exemplos da mesma classe ficam próximos uns dos outros, pelo que uma consulta recebe o rótulo dos exemplos de suporte mais semelhantes. As redes prototípicas calculam a média dos embeddings de suporte de cada classe para obter um protótipo e atribuem a consulta ao protótipo mais próximo, sem necessidade de novo treino quando surge uma classe nova.
Outras abordagens adaptam os pesos do modelo ou a respetiva entrada:
- Meta-aprendizagem: Treina com milhares de pequenas tarefas simuladas, extraídas de classes base, para que o modelo aprenda a adaptar-se. A meta-aprendizagem independente do modelo (MAML) aprende uma inicialização a partir da qual alguns passos de gradiente no conjunto de suporte de uma nova tarefa produzem bons pesos.
- Transferência e ajuste fino: pré-treine um backbone em um conjunto de dados grande e, em seguida, treine apenas uma nova cabeça de classificação, ou a rede inteira com uma taxa de aprendizado baixa, no conjunto de suporte. Essa linha de base simples compete com métodos dedicados de meta-aprendizado em benchmarks few-shot padrão, e a sondagem linear de grandes modelos pré-treinados continua sendo uma forte linha de base few-shot.
- Prompts para modelos de base: Os grandes modelos de linguagem executam novas tarefas com alguns exemplos incluídos no prompt, sem atualizar os pesos; o GPT-3 demonstrou esta capacidade em mais de duas dezenas de benchmarks de linguagem. Os modelos de visão usam prompts visuais, como caixas de exemplo, da mesma forma.
Deteção de objetos com poucos exemplos e prompts visuais#
A deteção acrescenta localização ao problema de aprendizagem com poucos exemplos: o modelo tem de encontrar todas as instâncias de uma classe em que não foi treinado. YOLO26 também é a base do YOLOE-26, uma variante de vocabulário aberto cujo codificador de prompts visuais transforma caixas de exemplo num embedding de classe e, em seguida, deteta e segmenta objetos correspondentes em novas imagens, sem treino. As caixas que partilham um ID de classe são combinadas num único prompt, pelo que dois exemplos de uma classe constituem um conjunto de suporte 2-shot. Este exemplo usa duas pessoas numa imagem como conjunto de suporte e procura-as noutra imagem:
import numpy as np
from ultralytics import YOLOE
from ultralytics.models.yolo.yoloe import YOLOEVPSegPredictor
# Checkpoint YOLOE-26 que aceita prompts visuais
model = YOLOE("yoloe-26s-seg.pt")
# Conjunto de suporte: duas caixas de exemplo de uma classe (pessoas) na imagem de referência
boxes = np.array([[221.52, 405.8, 344.98, 857.54], [669.47, 392.19, 809.72, 877.04]])
support = {"bboxes": boxes, "cls": np.array([0, 0])}
# Consulta: encontrar objetos semelhantes aos exemplos noutra imagem, sem treino
results = model.predict(
"https://ultralytics.com/images/zidane.jpg",
refer_image="https://ultralytics.com/images/bus.jpg",
visual_prompts=support,
predictor=YOLOEVPSegPredictor,
)
result = results[0]
result.save(filename="few_shot_result.jpg")Os prompts visuais agrupam exemplos sem lhes atribuir nomes, pelo que as correspondências nos resultados recebem os rótulos object0, object1 e assim sucessivamente, um nome por ID de classe.
Aplicações no mundo real#
- Inspeção de fabrico: Um novo tipo de defeito, como uma fissura numa peça recentemente introduzida, pode surgir apenas algumas vezes antes de os inspetores quererem sinalizá-lo; a deteção com poucos exemplos ou a deteção de anomalias permite adicioná-lo sem um grande conjunto de dados novo.
- Imagiologia médica: As doenças raras têm poucas tomografias anotadas, por isso os modelos de análise de imagens médicas adaptam características pré-treinadas a novos achados com base num pequeno conjunto de casos anotados por especialistas.
- Retalho e robótica: As lojas acrescentam produtos novos e os robôs encontram constantemente objetos novos; algumas fotografias de referência permitem que um sistema reconheça cada um deles na prateleira ou na garra.
Aprendizagem com poucos exemplos vs. conceitos relacionados#
- Aprendizagem por transferência: A prática mais abrangente de reutilizar conhecimento de uma tarefa noutra. A aprendizagem com poucos exemplos é o caso extremo de escassez de dados, e a transferência é a ferramenta mais comum.
- Meta-aprendizagem: Uma estratégia de treino que ensina a aprender e uma das várias formas de resolver problemas de aprendizagem com poucos exemplos. A aprendizagem com poucos exemplos designa o próprio cenário do problema.
- Prompts com poucos exemplos: Adapta um modelo congelado através de exemplos na entrada durante a inferência, enquanto a afinação com poucos exemplos altera os pesos do modelo usando o mesmo pequeno conjunto de exemplos.










