Scopri l'active learning, un metodo di machine learning economico che aumenta l'accuratezza con meno etichette. Scopri come trasforma l'addestramento dell'IA!
L'apprendimento attivo è un approccio dinamico nel apprendimento automatico (ML), progettato per ottimizzare il processo di processo di addestramento scegliendo selettivamente i punti dati più informativi per l'annotazione. Nell'apprendimento supervisionato standard apprendimento supervisionato standard, un modello viene alimentato passivamente con un ampio set di dati pre-etichettati, il che può essere inefficiente e costoso se i dati includono esempi ridondanti o non informativi. esempi ridondanti o non informativi. L'apprendimento attivo cambia questo paradigma permettendo al modello di interattivamente una fonte di informazioni, spesso un esperto umano o un "oracolo", per richiedere etichette per istanze specifiche e ambigue, istanze ambigue. Questa strategia mirata riduce significativamente la quantità di dati di addestramento necessari per ottenere un'elevata precisione, il che la rende ideale per i progetti con budget limitati o vincoli di tempo stringenti.
Il processo di apprendimento attivo funziona come un ciclo iterativo, spesso descritto come un flusso di lavoro "human-in-the-loop". flusso di lavoro "human-in-the-loop". Questo ciclo assicura che lo sforzo umano si concentri esclusivamente sui dati che contribuiscono maggiormente al miglioramento del modello. Il flusso di lavoro flusso di lavoro tipico prevede:
L'efficacia di questo metodo dipende in larga misura dalla strategia di campionamento. Il campionamento per incertezza è la tecnica più comune, in cui l'algoritmo seleziona le istanze più vicine al suo confine decisionale. Dettagli completi su queste strategie sono disponibili in varie letteratura sull'apprendimento attivo.
Il seguente frammento di codice mostra come implementare un ciclo di campionamento dell'incertezza di base. Carica un modello, fa una previsione sulle immagini e identifica quelle con rilevamenti a bassa sicurezza, segnalandole per la revisione manuale.
from ultralytics import YOLO
# Load a pre-trained YOLO11 model
model = YOLO("yolo11n.pt")
# Run inference on a list or directory of unlabeled images
results = model.predict(["image1.jpg", "image2.jpg"])
# Identify images where the model is uncertain
uncertain_samples = []
for result in results:
# Check if detections exist and if the maximum confidence is below a threshold
if result.boxes.conf.numel() > 0 and result.boxes.conf.max() < 0.6:
uncertain_samples.append(result.path)
print(f"Flagging {result.path} for manual labeling.")
print(f"Total uncertain images found: {len(uncertain_samples)}")
L'apprendimento attivo è particolarmente utile nei domini in cui l'etichettatura dei dati è costosa o richiede competenze specialistiche.
L'apprendimento attivo prevede l'utilizzo di dati non etichettati, ma si distingue da altri paradigmi di apprendimento automatico:
L'implementazione dell'apprendimento attivo richiede una solida operazioni di apprendimento automatico (MLOps) per gestire il flusso di dati tra il modello, il set di dati e l'interfaccia di annotazione. Gli strumenti che supportano la gestione gestione e versionamento dei dati sono essenziali per tracciare quali campioni sono stati interrogati. Mentre le librerie generiche come scikit-learn offrono una certa utilità, i flussi di lavoro di computer vision spesso richiedono un'integrazione personalizzata con immagini per visualizzare e annotare efficacemente le immagini selezionate. in modo efficace. Gli utenti esperti possono esplorare il repository GitHub diUltralytics per vedere come i risultati delle predizioni possono essere strutturati per essere inseriti in questi cicli di cura dei dati.