Esplora l'apprendimento one-shot nell'IA. Scopri come classify da una singola immagine utilizzando Ultralytics e le reti Siamese per una visione artificiale efficiente.
L'apprendimento one-shot è una tecnica di classificazione specializzata nel machine learning (ML) progettata per apprendere informazioni sulle categorie di oggetti da un singolo esempio di addestramento. A differenza dei tradizionali algoritmi di deep learning (DL), che richiedono enormi set di dati contenenti migliaia di immagini annotate per generalizzare in modo efficace, l'apprendimento one-shot imita la capacità cognitiva umana di cogliere istantaneamente un nuovo concetto. Ad esempio, una persona è solitamente in grado di riconoscere un uccello esotico specifico dopo averlo visto una sola volta; questa metodologia cerca di replicare tale efficienza nei sistemi di intelligenza artificiale (AI). È particolarmente utile in scenari in cui l'etichettatura dei dati è costosa, i dati sono scarsi o è necessario aggiungere nuove categorie in modo dinamico senza dover riqualificare l'intero modello.
Il principio fondamentale dell'apprendimento one-shot consiste nello spostare l'obiettivo dalla classificazione standard alla valutazione della somiglianza . Anziché addestrare una rete neurale (NN) a produrre un'etichetta di classe specifica (ad esempio, "cane" o "gatto"), il modello apprende una funzione di distanza. Un'architettura comune impiegata per questo è la rete neurale siamese, che consiste di due sottoreti identiche che condividono gli stessi pesi del modello.
Durante il funzionamento, la rete esegue l' estrazione delle caratteristiche per convertire le immagini in ingresso in vettori numerici compatti noti come embedding. Il sistema confronta quindi l'embedding di una nuova immagine di query con l'embedding della singola immagine di riferimento "scatto". Se la distanza matematica, spesso calcolata utilizzando la distanza euclidea o la similarità coseno, è inferiore a una certa soglia, le immagini vengono classificate come appartenenti alla stessa classe. Ciò consente al modello di verificare l'identità o classify in base alla loro vicinanza nello spazio delle caratteristiche apprese.
Il seguente Python mostra come estrarre gli embedding e calcolare la similarità utilizzando un
YOLO26 modello di classificazione dal
ultralytics pacchetto.
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}")
È importante differenziare l'apprendimento One-Shot dalle altre tecniche di apprendimento efficienti in termini di dati, poiché risolvono problemi simili attraverso vincoli diversi:
One-Shot Learning ha sbloccato capacità in settori in cui la raccolta di grandi quantità di dati di addestramento è impraticabile.
L'applicazione più diffusa dell'apprendimento one-shot è nella sicurezza biometrica. Quando si imposta Face ID su uno smartphone o si effettua la registrazione 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 le immagini live della fotocamera con questo "one shot" memorizzato per verificare l'identità. Ciò si basa su tecniche di incorporamento robuste, come quelle discusse nella ricerca fondamentale FaceNet, per garantire che i cambiamenti di illuminazione o angolazione non compromettano la corrispondenza di somiglianza.
Nell'ambito dell'intelligenza artificiale applicata alla produzione, creare un set di dati equilibrato di parti "difettose" è difficile perché i difetti sono rari e incostanti. L'apprendimento one-shot consente ai sistemi di visione artificiale (CV) di apprendere la rappresentazione di una singola parte di riferimento "perfetta". Qualsiasi articolo sulla linea di assemblaggio che produce un embedding significativamente distante da questo riferimento viene segnalato per il rilevamento delle anomalie. Ciò consente un controllo di qualità immediato senza la necessità di migliaia di immagini di parti difettose, che possono essere gestite e distribuite tramite Ultralytics .
Sebbene potente, l'apprendimento one-shot è sensibile al rumore; se l'immagine di riferimento è sfocata, ostruita o non rappresentativa, la capacità del modello di riconoscere quella classe si riduce significativamente. I ricercatori spesso utilizzano il meta-apprendimento, o "apprendimento dell'apprendimento", per migliorare la stabilità e la generalizzazione del modello. Con l'evoluzione delle architetture, i modelli più recenti come YOLO26 stanno incorporando estrattori di caratteristiche più robusti che rendono l'inferenza one-shot più veloce e accurata, aprendo la strada a dispositivi AI edge più adattivi e intelligenti .