Conformal Prediction
Scopri come la conformal prediction fornisce un'incertezza senza distribuzione per l'AI. Implementa set di previsione con Ultralytics YOLO26 per garantire risultati del modello affidabili.
La conformal prediction è un framework statistico nel machine learning (ML) che fornisce misure di incertezza prive di distribuzione per le predizioni del modello. Invece di restituire una singola predizione puntuale, come un'etichetta di classe specifica, un predittore conforme restituisce un set o un intervallo di predizione che contiene il valore vero con una probabilità specificata dall'utente (es. 90% o 95%). Questo framework si integra con qualsiasi modello di intelligenza artificiale (AI) per fornire formali garanzie statistiche senza richiedere modifiche all'architettura del modello. Per un elenco esaustivo di strumenti e ricerche aggiornati, puoi esplorare il repository Awesome Conformal Prediction.
Come funziona la Conformal Prediction#
Il meccanismo fondamentale si basa sulla valutazione di quanto sia insolita una nuova predizione rispetto a esempi passati, utilizzando un punteggio di non conformità (nonconformity score).
- Addestramento del Modello: Per prima cosa, addestra un modello di base utilizzando un set di dati di addestramento standard.
- Fase di Calibrazione: Passa un set di dati di calibrazione separato e riservato attraverso il modello addestrato. Calcola un punteggio di inconformità per ogni predizione, come la probabilità inversa nella classificazione di immagini.
- Calcolo dei Quantili: Determina il livello di confidenza desiderato (es. 95%) e trova il quantile corrispondente di questi punteggi di calibrazione per costruire i set di predizione.
- Applicazione dell'Inferenza: Durante l'inferenza in tempo reale, valuta i nuovi input e includi tutte le possibili etichette i cui punteggi scendono al di sotto del quantile di calibrazione.
Puoi esplorare le dimostrazioni matematiche di questo approccio nel tutorial A Gentle Introduction to Conformal Prediction o scoprire gli approcci di previsione delle serie temporali per gestire le incertezze temporali.
Differenziare la Conformal Prediction da termini correlati#
È fondamentale distinguere questo framework dalle metriche standard utilizzate durante il test del modello:
- Conformal Prediction vs. Punteggi di Confidenza: Un punteggio di confidenza standard riflette la certezza interna di un modello, ma è spesso scarsamente calibrato e privo di garanzie matematiche. La conformal prediction trasforma questi punteggi grezzi in set garantiti. Per le regolazioni tradizionali, consulta la calibrazione della probabilità di scikit-learn.
- Conformal Prediction vs. Accuratezza: L'accuratezza è una metrica storica globale che descrive la frequenza con cui un modello è corretto su un intero set di dati, mentre l'inferenza conforme fornisce un intervallo locale specifico per ogni singola nuova predizione.
Applicazioni nel mondo reale#
La conformal prediction è indispensabile in campi ad alta posta in gioco dove conoscere i punti ciechi del modello è fondamentale.
- Diagnostica Medica: Quando sfrutti l'AI in ambito sanitario per analizzare le scansioni, un modello potrebbe restituire un set di diagnosi plausibili anziché una singola classe potenzialmente errata. Ciò garantisce che i clinici indaghino su tutte le possibilità valide, supportando i recenti studi sulla medicina genomica e diagnostica per immagini affidabile.
- Guida Autonoma: Nei sistemi automobilistici basati su AI, l'applicazione di intervalli di predizione al rilevamento di oggetti genera una regione di confidenza spaziale attorno a un pedone, consentendo ai sistemi di frenata del veicolo di tenere conto in sicurezza dei movimenti peggiori possibili.
Implementazione degli insiemi di predizione#
Librerie come MAPIE (Model Agnostic Prediction Interval Estimator) forniscono strumenti integrati per Python, e le attività di regressione utilizzano spesso la regressione quantile conforme. Puoi anche implementare una logica di base di conformal prediction utilizzando le probabilità di modelli avanzati come Ultralytics YOLO26. Il seguente esempio costruisce un set di predizione utilizzando le probabilità di classificazione di YOLO26, imitando la logica di includere le classi principali fino al raggiungimento di una soglia cumulativa.
from ultralytics import YOLO
# Load an Ultralytics YOLO26 classification model
model = YOLO("yolo26n-cls.pt")
# Perform inference on an image
results = model("https://ultralytics.com/images/bus.jpg")
# Simple conformal-style prediction set logic based on cumulative probability
target_coverage = 0.95
prediction_set = []
cumulative_prob = 0.0
# Sort probabilities in descending order using the results object
probs = results[0].probs
sorted_indices = probs.top5
for idx in sorted_indices:
class_name = results[0].names[idx]
class_prob = probs.data[idx].item()
prediction_set.append((class_name, round(class_prob, 3)))
cumulative_prob += class_prob
# Stop adding to the set once we reach the 95% coverage threshold
if cumulative_prob >= target_coverage:
break
print(f"95% Prediction Set: {prediction_set}")Lo sviluppo di sistemi affidabili richiede pratiche di dati robuste per evitare che il data drift rovini la calibrazione. Strumenti come la Ultralytics Platform semplificano il processo di raccolta di dataset di classificazione aggiornati, riaddestramento dei modelli e gestione sicura del deployment del modello. Puoi leggere di più sulla cura di dati bilanciati nella nostra guida sulla comprensione del bias nei dataset, oppure seguire gli ultimi progressi presentati alla conferenza annuale COPA conference.






