Descubra o poder do One-Shot Learning, uma técnica revolucionária de IA que permite que os modelos generalizem a partir de dados mínimos para aplicações no mundo real.
A Aprendizagem One-Shot (OSL) é uma abordagem sofisticada no âmbito da aprendizagem automática (ML) em que um modelo é concebido para reconhecer e categorizar novos objectos com apenas um único exemplo rotulado. Em contraste com os métodos tradicionais de métodos tradicionais de aprendizagem profunda (DL) que requerem vastos repositórios de dados de treino para atingir uma precisão, o OSL imita a capacidade cognitiva humana de apreender um novo conceito instantaneamente depois de o ver apenas uma vez. Esta capacidade é particularmente crucial para aplicações em que a rotulagem de dados é dispendiosa, os dados são escassos ou novas categorias aparecem dinamicamente, como na verificação de identidade ou na identificação de anomalias raras.
O mecanismo central subjacente à OSL consiste em deslocar o problema da classificação para a avaliação das diferenças. Em vez de treinar um modelo para memorizar classes específicas (como "gato" vs. "cão"), o sistema aprende uma função de similaridade. Isto é frequentemente conseguido utilizando uma arquitetura de rede neural (NN) conhecida como rede siamesa. As redes siamesas utilizam sub-redes idênticas que partilham os mesmos modelos de pesos para processar duas imagens de entrada distintas simultaneamente.
Durante este processo, a rede converte entradas de elevada dimensão (como imagens) em vectores compactos e de baixa dimensão compactos e de baixa dimensão, conhecidos como " embeddings". Se as duas imagens pertencerem à mesma classe, a rede é treinada para posicionar seus embeddings próximos uns dos outros no espaço vetorial. Por outro lado, se forem diferentes, as suas incorporações são afastadas. Este processo depende fortemente de uma extração extração de caraterísticas para captar a essência única de um objeto. Na altura da inferência, uma nova imagem é classificada comparando a sua incorporação com a única "armazenada de cada classe utilizando uma métrica de distância, como a distância euclidiana ou semelhança de cosseno.
O seguinte snippet Python ilustra como extrair embeddings usando YOLO11 e calcular a semelhança entre uma imagem conhecida "conhecida e uma nova imagem de consulta.
import numpy as np
from ultralytics import YOLO
# Load a pre-trained YOLO11 classification model
model = YOLO("yolo11n-cls.pt")
# Extract embeddings for a 'shot' (reference) and a 'query' image
# The model returns a list of results; we access the first item
shot_result = model.embed("reference_image.jpg")[0]
query_result = model.embed("test_image.jpg")[0]
# Calculate Cosine Similarity (1.0 = identical, -1.0 = opposite)
# High similarity suggests the images belong to the same class
similarity = np.dot(shot_result, query_result) / (np.linalg.norm(shot_result) * np.linalg.norm(query_result))
print(f"Similarity Score: {similarity:.4f}")
Para compreender a OSL é necessário distingui-la de outras técnicas de aprendizagem com poucos dados. Embora partilhem o objetivo da eficiência, as suas restrições diferem significativamente:
O One-Shot Learning permitiu que a a inteligência artificial (IA) funcionar em ambientes dinâmicos onde a reciclagem de modelos é impraticável.
Apesar da sua utilidade, o One-Shot Learning enfrenta desafios relativamente à generalização. Como o modelo infere uma classe classe a partir de uma única instância, é suscetível ao ruído ou a valores atípicos nessa imagem de referência. Os investigadores utilizam frequentemente meta-aprendizagem, ou "aprender a aprender", para para melhorar a estabilidade destes modelos. Estruturas como PyTorch e TensorFlow estão a evoluir continuamente para suportar estas arquitecturas arquitecturas avançadas. Além disso, a incorporação de dados sintéticos pode ajudar a aumentar a imagem única, fornecendo uma representação mais robusta para o modelo aprender.