Scopri la potenza dell'One-Shot Learning, una tecnica di AI rivoluzionaria che consente ai modelli di generalizzare a partire da dati minimi per applicazioni reali.
L'apprendimento one-shot (OSL) è un approccio sofisticato nell'ambito dell'apprendimento automatico (ML). dell'apprendimento automatico (ML), in cui un modello è progettato per di riconoscere e categorizzare nuovi oggetti con un solo esempio etichettato. A differenza dei metodi tradizionali di metodi tradizionali di deep learning (DL) che richiedono di dati di addestramento per raggiungere un'elevata precisione. precisione, l'OSL imita la capacità cognitiva umana di afferrare un nuovo concetto immediatamente dopo averlo visto una sola volta. Questa è particolarmente importante per le applicazioni in cui l'etichettatura dei dati l 'etichettatura dei dati è costosa, i dati sono scarsi o nuove categorie appaiono categorie nuove appaiono dinamicamente, come nella verifica dell'identità o nell'identificazione di anomalie rare.
Il meccanismo alla base di OSL consiste nello spostare il problema dalla classificazione alla valutazione delle differenze. Invece di di addestrare un modello per memorizzare classi specifiche (come "gatto" o "cane"), il sistema impara una funzione di somiglianza. funzione di somiglianza. Questo obiettivo viene spesso raggiunto utilizzando un'architettura architettura di rete neurale (NN) nota come rete Rete siamese. Le reti siamesi utilizzano sottoreti identiche che condividono gli stessi pesi del modello per elaborare due input distinti. pesi del modello per elaborare due immagini di ingresso distinte contemporaneamente.
Durante questo processo, la rete converte gli input ad alta dimensione (come le immagini) in vettori compatti e a bassa dimensione, noti come embeddings. noti come embeddings. Se le due immagini appartengono alla stessa alla stessa classe, la rete viene addestrata a posizionare i loro embeddings vicini nello spazio vettoriale. Al contrario, se sono diverse, i loro embeddings vengono allontanati. Questo processo si basa molto su un'efficace estrazione delle caratteristiche per catturare l'essenza unica di un oggetto. di un oggetto. Al momento dell'inferenza, una nuova immagine viene classificata confrontando il suo embedding con il singolo "scatto" memorizzato di ogni classe, utilizzando una metrica di distanza, come ad esempio la distanza tra i due. "di ogni classe utilizzando una metrica di distanza, come la distanza euclidea o il cosmo. distanza euclidea o la somiglianza del coseno.
Il seguente snippet Python illustra come estrarre gli embeddings utilizzando YOLO11 e calcolare la somiglianza tra uno "scatto" noto e una nuova immagine di query.
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}")
Per comprendere l'OSL è necessario distinguerlo da altre tecniche di apprendimento a basso contenuto di dati. Pur condividendo l'obiettivo dell'efficienza efficienza, i loro vincoli differiscono in modo significativo:
L'apprendimento in un colpo solo ha permesso intelligenza artificiale (IA) di funzionare in ambienti dinamici dove la riqualificazione dei modelli non è praticabile.
Nonostante la sua utilità, l'apprendimento One-Shot si scontra con le sfide della generalizzazione. Poiché il modello infonde una classe da una singola istanza, è suscettibile al rumore o ai valori anomali dell'immagine di riferimento. I ricercatori spesso impiegano meta-apprendimento, o "imparare a imparare", per migliorare la stabilità di questi modelli. migliorare la stabilità di questi modelli. Framework come PyTorch e TensorFlow sono in continua evoluzione per supportare queste architetture avanzate. Inoltre, l'incorporazione di dati sintetici può contribuire ad accrescere il singolo scatto, fornendo una rappresentazione più robusta da cui il modello può apprendere.