Presentazione di Fortuna: una libreria per la quantificazione dell'incertezza PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Presentazione di Fortuna: una libreria per la quantificazione dell'incertezza

La corretta stima dell'incertezza predittiva è fondamentale nelle applicazioni che implicano decisioni critiche. L'incertezza può essere utilizzata per valutare l'affidabilità delle previsioni del modello, attivare l'intervento umano o decidere se un modello può essere distribuito in modo sicuro in natura.

Vi presentiamo Fortuna, una libreria open source per la quantificazione dell'incertezza. Fortuna fornisce metodi di calibrazione, come la previsione conforme, che possono essere applicati a qualsiasi rete neurale addestrata per ottenere stime di incertezza calibrate. La libreria supporta inoltre una serie di metodi di inferenza bayesiana che possono essere applicati alle reti neurali profonde scritte Lino. La libreria semplifica l'esecuzione di benchmark e consentirà ai professionisti di creare soluzioni di intelligenza artificiale robuste e affidabili sfruttando tecniche avanzate di quantificazione dell'incertezza.

Il problema dell'eccessiva fiducia nel deep learning

Se hai mai esaminato le probabilità di classe restituite da un classificatore di reti neurali profonde addestrato, potresti aver osservato che la probabilità di una classe era molto più grande delle altre. Qualcosa del genere, per esempio:

p = [0.0001, 0.0002, …, 0.9991, 0.0003, …, 0.0001]

Se questo è il caso per la maggior parte delle previsioni, il tuo modello potrebbe essere troppo sicuro. Per valutare la validità delle probabilità restituite dal classificatore, possiamo confrontarle con l'accuratezza effettiva ottenuta su un set di dati di controllo. In effetti, è naturale presumere che la proporzione di punti dati correttamente classificati dovrebbe corrispondere approssimativamente alla probabilità stimata della classe prevista. Questo concetto è noto come il modello [Guo C. et al., 2017].

Sfortunatamente, molte reti neurali profonde addestrate sono calibrate in modo errato, il che significa che la probabilità stimata della classe prevista è molto più alta della proporzione di punti dati di input correttamente classificati. In altre parole, il classificatore è troppo sicuro di sé.

Essere troppo sicuri di sé potrebbe essere problematico nella pratica. Un medico non può ordinare test aggiuntivi pertinenti, a causa di una diagnosi sana troppo sicura di sé prodotta da un'intelligenza artificiale. Un'auto a guida autonoma può decidere di non frenare perché ha valutato con sicurezza che l'oggetto davanti non era una persona. Un governatore può decidere di evacuare una città perché la probabilità di un grave disastro naturale stimata da un'IA è troppo alta. In queste e molte altre applicazioni, le stime di incertezza calibrate sono fondamentali per valutare l'affidabilità delle previsioni del modello, ricorrere a un decisore umano o decidere se un modello può essere implementato in sicurezza.

Fortuna: una libreria per la quantificazione dell'incertezza

Esistono molte tecniche pubblicate per stimare o calibrare l'incertezza delle previsioni, ad esempio l'inferenza bayesiana [Wilson AG, 2020], ridimensionamento della temperatura [Guo C. et al., 2017], e predizione conforme [Angelopoulos AN et al., 2022] metodi. Tuttavia, gli strumenti e le librerie esistenti per la quantificazione dell'incertezza hanno un ambito ristretto e non offrono un'ampia gamma di tecniche in un unico luogo. Ciò si traduce in un sovraccarico significativo, ostacolando l'adozione dell'incertezza nei sistemi di produzione.

Per colmare questa lacuna, lanciamo Fortuna, una libreria per la quantificazione dell'incertezza che riunisce metodi importanti in tutta la letteratura e li rende disponibili agli utenti con un'interfaccia standardizzata e intuitiva.

Ad esempio, supponiamo di disporre di caricatori di dati di addestramento, calibrazione e test tensorflow.Tensor formato, vale a dire train_data_loader, calib_data_loader ed test_data_loader. Inoltre, hai scritto un modello di deep learning Lino, ovvero modello. Allora puoi usare Fortuna per:

  1. montare una distribuzione posteriore;
  2. calibrare gli output del modello;
  3. fare previsioni calibrate;
  4. stimare le stime dell'incertezza;
  5. calcolare le metriche di valutazione.

Il codice seguente fa tutto questo per te.

from fortuna.data import DataLoader
from fortuna.prob_model.classification import ProbClassifier
from fortuna.metric.classification import expected_calibration_error

# convert data loaders
train_data_loader = DataLoader.from_tensorflow_data_loader(train_data_loader)
calib_data_loader = DataLoader.from_tensorflow_data_loader(calib_data_loader)
test_data_loader = DataLoader.from_tensorflow_data_loader(test_data_loader)

# define and train a probabilistic model
prob_model = ProbClassifier(model=model)
train_status = prob_model.train(train_data_loader=train_data_loader, calib_data_loader=calib_data_loader)

# make predictions and estimate uncertainty
test_inputs_loader = test_data_loader.to_inputs_loader()
test_means = prob_model.predictive.mean(inputs_loader=test_inputs_loader)
test_modes = prob_model.predictive.mode(inputs_loader=test_inputs_loader, means=test_means)

# compute the expected calibration error and plot a reliability diagram
test_targets = test_data_loader.to_array_targets()
ece = expected_calibration_error(preds=test_modes, probs=test_means, targets=test_targets)

Il codice sopra utilizza diverse scelte predefinite, incluso SWAG [Maddox WJ et al., 2019] come metodo di inferenza a posteriori, il ridimensionamento della temperatura [Guo C. et al., 2017] per calibrare gli output del modello e una distribuzione a priori gaussiana standard, nonché la configurazione dei processi di adattamento e calibrazione posteriori. Puoi configurare facilmente tutti questi componenti e ti consigliamo vivamente di farlo se stai cercando una configurazione specifica o se desideri confrontarne diverse.

Modalità di utilizzo

Fortuna offre tre modalità di utilizzo: 1/ A partire dai modelli Flax, 2 / Partendo dagli output del modello, e 3/ A partire dalle stime di incertezza. Le loro condutture sono rappresentate nella figura seguente, ciascuna a partire da uno dei pannelli verdi. Il frammento di codice sopra è un esempio di utilizzo di Fortuna a partire dai modelli Flax, che consente di addestrare un modello utilizzando procedure di inferenza bayesiana. In alternativa, puoi iniziare dai risultati del modello o direttamente dalle tue stime di incertezza. Entrambe queste ultime modalità lo sono quadro indipendente e aiutarti a ottenere stime di incertezza calibrate a partire da a modello addestrato.

1/ A partire dalle stime dell'incertezza

Partire dalle stime dell'incertezza ha requisiti minimi di compatibilità ed è il livello più rapido di interazione con la libreria. Questa modalità di utilizzo offre metodi di predizione conforme sia per la classificazione che per la regressione. Questi accettano le stime dell'incertezza numpy.ndarray formattare e restituire insiemi rigorosi di previsioni che conservano un livello di probabilità dato dall'utente. Nei compiti di regressione unidimensionale, gli insiemi conformi possono essere pensati come versioni calibrate di confidenza o intervalli credibili.

Tieni presente che se le stime dell'incertezza che fornisci negli input sono imprecise, gli insiemi conformi potrebbero essere grandi e inutilizzabili. Per questo motivo, se la tua applicazione lo consente, ti preghiamo di prendere in considerazione il Partendo dagli output del modello ed A partire dai modelli Flax modalità di utilizzo dettagliate di seguito.

2/ Partendo dalle uscite del modello

Questa modalità presuppone che tu abbia già addestrato un modello in qualche framework e arrivi a Fortuna con gli output del modello numpy.ndarray formato per ciascun punto dati di input. Questa modalità di utilizzo consente di calibrare gli output del modello, stimare l'incertezza, calcolare le metriche e ottenere set conformi.

Rispetto al A partire dalle stime di incertezza modalità di utilizzo, Partendo dagli output del modello fornisce un controllo migliore, in quanto può garantire che le stime dell'incertezza siano state opportunamente calibrate. Tuttavia, se il modello fosse stato addestrato con metodi classici, la quantificazione risultante dell'incertezza del modello (nota anche come epistemica) potrebbe essere scarsa. Per mitigare questo problema, si prega di considerare il A partire dai modelli Flax modalità di utilizzo.

3/ A partire dai modelli Flax

A partire dai modelli Flax ha requisiti di compatibilità più elevati rispetto al A partire dalle stime di incertezza ed Partendo dagli output del modello modalità di utilizzo, in quanto richiede modelli di deep learning scritti Lino. Tuttavia, consente di sostituire l'addestramento del modello standard con procedure di inferenza bayesiana scalabili, che possono migliorare significativamente la quantificazione dell'incertezza predittiva.

I metodi bayesiani funzionano rappresentando l'incertezza su quale soluzione sia corretta, date informazioni limitate, attraverso l'incertezza sui parametri del modello. Questo tipo di incertezza è chiamata incertezza “epistemica”. Poiché le reti neurali possono rappresentare molte soluzioni diverse, corrispondenti a diverse impostazioni dei loro parametri, i metodi bayesiani possono avere un impatto particolare nel deep learning. Forniamo molte procedure di inferenza bayesiana scalabili, che spesso possono essere utilizzate per fornire stime di incertezza, oltre a una migliore precisione e calibrazione, praticamente senza sovraccarico di tempo di addestramento.

Conclusione

Abbiamo annunciato la disponibilità generale di Fortuna, una libreria per la quantificazione dell'incertezza nel deep learning. Fortuna riunisce metodi importanti in tutta la letteratura, ad esempio metodi conformi, ridimensionamento della temperatura e inferenza bayesiana, e li rende disponibili agli utenti con un'interfaccia standardizzata e intuitiva. Per iniziare con Fortuna, puoi consultare le seguenti risorse:

Prova Fortuna e facci sapere cosa ne pensi! Sei incoraggiato a contribuire alla biblioteca o a lasciare i tuoi suggerimenti e contributi: basta creare un file problema o apri a richiesta di pull. Da parte nostra, continueremo a migliorare Fortuna, ad aumentare la copertura dei metodi di quantificazione dell'incertezza e ad aggiungere ulteriori esempi che mostrino la sua utilità in diversi scenari.


Circa gli autori

Presentazione di Fortuna: una libreria per la quantificazione dell'incertezza PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

 

Gianluca De Tommaso è uno scienziato applicato presso AWS. Attualmente lavora sulla quantificazione dell'incertezza nel deep learning. Nel tempo libero, Gianluca ama praticare sport, mangiare ottimo cibo e imparare nuove abilità.

Presentazione di Fortuna: una libreria per la quantificazione dell'incertezza PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Alberto Gasparin è uno scienziato applicato all'interno di Amazon Community Shopping dal luglio 2021. I suoi interessi includono l'elaborazione del linguaggio naturale, il recupero delle informazioni e la quantificazione dell'incertezza. È un appassionato di enogastronomia.

Presentazione di Fortuna: una libreria per la quantificazione dell'incertezza PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Michele Donini è Sr Applied Scientist presso AWS. Guida un team di scienziati che lavorano sull'IA responsabile e i suoi interessi di ricerca sono l'equità algoritmica e l'apprendimento automatico spiegabile.

Presentazione di Fortuna: una libreria per la quantificazione dell'incertezza PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Mattia Seeger è un Principal Applied Scientist presso AWS.

Presentazione di Fortuna: una libreria per la quantificazione dell'incertezza PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Cédric Archambeau è Principal Applied Scientist presso AWS e Fellow dell'European Lab for Learning and Intelligent Systems.

Presentazione di Fortuna: una libreria per la quantificazione dell'incertezza PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Andrew Gordon Wilson è Professore Associato presso il Courant Institute of Mathematical Sciences e Center for Data Science presso la New York University e Amazon Visiting Academic presso AWS. È particolarmente impegnato nella costruzione di metodi per il deep learning bayesiano e probabilistico, processi gaussiani scalabili, ottimizzazione bayesiana e machine learning ispirato alla fisica.

Timestamp:

Di più da Apprendimento automatico di AWS