One-Shot Learning
Esplora l'One-Shot Learning nell'AI. Scopri come classificare oggetti da una singola immagine usando Ultralytics YOLO26 e reti siamesi per una computer vision efficiente.
L'apprendimento one-shot è una tecnica di classificazione specializzata nel machine learning (ML), progettata per apprendere informazioni sulle categorie di oggetti a partire da un singolo esempio di addestramento. A differenza degli algoritmi tradizionali di deep learning (DL), che richiedono enormi dataset contenenti migliaia di immagini annotate per generalizzare efficacemente, l'apprendimento one-shot imita la capacità cognitiva umana di comprendere istantaneamente un nuovo concetto. Per esempio, una persona di solito riesce a riconoscere uno specifico uccello esotico dopo averlo visto una sola volta; questa metodologia cerca di replicare tale efficienza nei sistemi di intelligenza artificiale (AI). È particolarmente utile negli scenari in cui l'annotazione dei dati è costosa, i dati sono scarsi o è necessario aggiungere dinamicamente nuove categorie senza riaddestrare l'intero modello.
Meccanismi alla base del concetto#
Il principio fondamentale dell'apprendimento one-shot consiste nello spostare l'obiettivo dalla classificazione standard alla valutazione della similarità. Invece di addestrare una rete neurale (NN) a produrre l'etichetta di una classe specifica (ad esempio, "cane" o "gatto"), il modello apprende una funzione di distanza. Un'architettura comunemente utilizzata a questo scopo è la rete neurale siamese, costituita da due sottoreti identiche che condividono gli stessi pesi del modello.
Durante il funzionamento, la rete esegue l'estrazione delle caratteristiche per convertire le immagini di input in vettori numerici compatti, noti come embedding. Il sistema confronta quindi l'embedding di una nuova immagine di query con l'embedding dell'unico "esempio" di riferimento. Se la distanza matematica, spesso calcolata usando la distanza euclidea o la similarità coseno, è inferiore a una determinata soglia, si stabilisce che le immagini appartengono alla stessa classe. In questo modo il modello può verificare l'identità o classificare gli oggetti in base alla loro vicinanza nello spazio delle caratteristiche apprese.
Il seguente codice Python mostra come estrarre gli embedding e calcolare la similarità utilizzando un modello di classificazione YOLO26 del pacchetto ultralytics.
import numpy as np
from ultralytics import YOLO
# Load a pre-trained YOLO26 classification model for feature extraction
model = YOLO("yolo26n-cls.pt")
# Extract embeddings for a reference 'shot' and a query image
# The embed() method returns the feature vector directly
shot_vec = model.embed("reference_img.jpg")[0]
query_vec = model.embed("query_img.jpg")[0]
# Calculate similarity (higher dot product implies greater similarity)
similarity = np.dot(shot_vec, query_vec) / (np.linalg.norm(shot_vec) * np.linalg.norm(query_vec))
print(f"Similarity Score: {similarity:.4f}")Distinguere i paradigmi correlati#
È importante distinguere l'apprendimento one-shot dalle altre tecniche di apprendimento efficienti in termini di dati, poiché risolvono problemi simili attraverso vincoli diversi:
- Apprendimento few-shot (FSL): è la categoria più ampia che comprende l'apprendimento one-shot. Nell'FSL, al modello viene fornito un piccolo "insieme di supporto" di esempi, in genere da due a cinque immagini per classe. L'apprendimento one-shot è semplicemente il caso estremo in cui la dimensione dell'insieme di supporto è esattamente pari a uno.
- Apprendimento zero-shot (ZSL): riguarda il riconoscimento di categorie che il modello non ha mai visto visivamente. Invece di un'immagine di riferimento, lo ZSL si basa su attributi semantici o descrizioni testuali (ad esempio, identificare una "zebra" associando le caratteristiche visive alla descrizione testuale "cavallo a strisce") tramite l'elaborazione del linguaggio naturale (NLP).
- Apprendimento per trasferimento: consiste nel prendere un modello pre-addestrato su un ampio database come ImageNet e sottoporlo a fine-tuning per un nuovo compito. Sebbene l'apprendimento per trasferimento alimenti gli estrattori di caratteristiche utilizzati nell'apprendimento one-shot, il trasferimento standard di apprendimento di solito richiede più di un esempio per aggiornare efficacemente i pesi senza overfitting.
Applicazioni nel mondo reale#
L'apprendimento one-shot ha reso possibili funzionalità avanzate nei settori in cui raccogliere grandi quantità di dati di addestramento è impraticabile.
Riconoscimento facciale e sicurezza#
L'applicazione più diffusa dell'apprendimento one-shot è la sicurezza biometrica. Quando configuri Face ID su uno smartphone o ti registri in un sistema di accesso per dipendenti, il dispositivo acquisisce una singola rappresentazione matematica del volto dell'utente. Durante l'uso quotidiano, il sistema di riconoscimento facciale confronta il flusso video della fotocamera in tempo reale con questo "esempio" memorizzato per verificare l'identità. Questo si basa su solide tecniche di embedding, come quelle illustrate nella ricerca fondamentale FaceNet, per garantire che i cambiamenti di illuminazione o angolazione non compromettano la corrispondenza della similarità.
Controllo qualità industriale#
Nell'AI nella produzione industriale, creare un dataset equilibrato di componenti "difettosi" è difficile perché i difetti sono rari e incoerenti. L'apprendimento one-shot consente ai sistemi di visione artificiale (CV) di apprendere la rappresentazione di un singolo componente di riferimento "perfetto". Qualsiasi elemento della linea di assemblaggio che produce un embedding significativamente distante da questo riferimento viene segnalato per il rilevamento delle anomalie. Ciò consente un controllo qualità immediato senza richiedere migliaia di immagini di componenti danneggiati, che possono essere gestiti e implementati tramite la Ultralytics Platform.
Sfide e prospettive future#
Sebbene sia potente, l'apprendimento one-shot è suscettibile al rumore; se l'unica immagine di riferimento è sfocata, ostruita o non rappresentativa, la capacità del modello di riconoscere quella classe si riduce notevolmente. I ricercatori utilizzano spesso il meta-learning, ovvero il "learning to learn", per migliorare la stabilità e la generalizzazione del modello. Con l'evoluzione delle architetture, modelli più recenti come YOLO26 integrano estrattori di caratteristiche più robusti, che rendono l'inferenza one-shot più rapida e accurata, aprendo la strada a dispositivi di edge AI più adattivi e intelligenti.









