Vă prezentăm Fortuna: O bibliotecă pentru cuantificarea incertitudinii PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Vă prezentăm Fortuna: O bibliotecă pentru cuantificarea incertitudinii

Estimarea corectă a incertitudinii predictive este fundamentală în aplicațiile care implică decizii critice. Incertitudinea poate fi utilizată pentru a evalua fiabilitatea predicțiilor modelului, pentru a declanșa intervenția umană sau pentru a decide dacă un model poate fi implementat în siguranță în sălbăticie.

Vă prezentăm Noroc, o bibliotecă open-source pentru cuantificarea incertitudinii. Fortuna oferă metode de calibrare, cum ar fi predicția conformă, care pot fi aplicate oricărei rețele neuronale antrenate pentru a obține estimări calibrate ale incertitudinii. Biblioteca acceptă în plus o serie de metode de inferență bayesiene care pot fi aplicate rețelelor neuronale profunde scrise în In. Biblioteca facilitează rularea benchmark-urilor și va permite practicienilor să construiască soluții AI robuste și fiabile, profitând de tehnicile avansate de cuantificare a incertitudinii.

Problema încrederii excesive în învățarea profundă

Dacă te-ai uitat vreodată la probabilitățile de clasă returnate de un clasificator de rețea neuronală profundă antrenat, s-ar putea să fi observat că probabilitatea unei clase a fost mult mai mare decât a celorlalte. Ceva de genul acesta, de exemplu:

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

Dacă acesta este cazul pentru majoritatea predicțiilor, modelul dvs. ar putea fi prea încrezător. Pentru a evalua validitatea probabilităților returnate de clasificator, le putem compara cu acuratețea reală obținută pe un set de date holdout. Într-adevăr, este firesc să presupunem că proporția punctelor de date clasificate corect ar trebui să se potrivească aproximativ cu probabilitatea estimată a clasei prezise. Acest concept este cunoscut ca calibrare [Guo C. și colab., 2017].

Din păcate, multe rețele neuronale profunde antrenate sunt greșite calibrate, ceea ce înseamnă că probabilitatea estimată a clasei prezise este mult mai mare decât proporția punctelor de date de intrare clasificate corect. Cu alte cuvinte, clasificatorul este prea încrezător.

A fi prea încrezător ar putea fi problematic în practică. Este posibil ca un medic să nu comande teste suplimentare relevante, ca urmare a unui diagnostic sănătos excesiv de încrezător produs de o IA. O mașină care se conduce singur poate decide să nu frâneze, deoarece a evaluat cu încredere că obiectul din față nu era o persoană. Un guvernator poate decide să evacueze un oraș deoarece probabilitatea unui dezastru natural eminent estimat de o IA este prea mare. În aceste aplicații și în multe alte aplicații, estimările calibrate ale incertitudinii sunt esențiale pentru a evalua fiabilitatea predicțiilor modelului, pentru a reveni la un factor de decizie uman sau pentru a decide dacă un model poate fi implementat în siguranță.

Fortuna: O bibliotecă pentru cuantificarea incertitudinii

Există multe tehnici publicate pentru a estima sau a calibra incertitudinea predicțiilor, de exemplu, inferența bayesiană [Wilson AG, 2020], scalarea temperaturii [Guo C. și colab., 2017], și predicție conformă [Angelopoulos AN și colab., 2022] metode. Cu toate acestea, instrumentele și bibliotecile existente pentru cuantificarea incertitudinii au un domeniu de aplicare restrâns și nu oferă o gamă largă de tehnici într-un singur loc. Acest lucru are ca rezultat o cheltuieli generale semnificative, care împiedică adoptarea incertitudinii în sistemele de producție.

Pentru a umple acest gol, lansăm Fortuna, o bibliotecă pentru cuantificarea incertitudinii care reunește metode proeminente din literatura de specialitate și le pune la dispoziție utilizatorilor cu o interfață standardizată și intuitivă.

De exemplu, să presupunem că aveți încărcătoare de date de instruire, calibrare și testare tensorflow.Tensor format, și anume train_data_loader, calib_data_loader și test_data_loader. În plus, aveți un model de învățare profundă scris In, și anume model. Apoi poți folosi Fortuna pentru a:

  1. se potrivesc unei distribuții posterioare;
  2. calibrarea ieșirilor modelului;
  3. face previziuni calibrate;
  4. estimări de incertitudine;
  5. calculează valorile de evaluare.

Următorul cod face toate acestea pentru tine.

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)

Codul de mai sus folosește mai multe opțiuni implicite, inclusiv SWAG [Maddox WJ și colab., 2019] ca metodă de inferență posterioară, scalarea temperaturii [Guo C. și colab., 2017] pentru a calibra ieșirile modelului și o distribuție anterioară gaussiană standard, precum și configurația proceselor de ajustare și calibrare posterioare. Puteți configura cu ușurință toate aceste componente și sunteți foarte încurajat să faceți acest lucru dacă căutați o anumită configurație sau dacă doriți să comparați mai multe.

Moduri de utilizare

Fortuna oferă trei moduri de utilizare: 1/ Pornind de la modelele Flax, 2 / Pornind de la ieșirile modelului, și 3/ Pornind de la estimările de incertitudine. Conductele lor sunt prezentate în figura următoare, fiecare pornind de la unul dintre panourile verzi. Fragmentul de cod de mai sus este un exemplu de utilizare a Fortunei pornind de la modelele Flax, care permite antrenarea unui model folosind proceduri de inferență bayesiană. Alternativ, puteți începe fie cu rezultatele modelului, fie direct de la propriile estimări ale incertitudinii. Ambele aceste din urmă moduri sunt independent de cadru și vă ajută să obțineți estimări calibrate ale incertitudinii pornind de la a model antrenat.

1/ Plecând de la estimările de incertitudine

Pornind de la estimările de incertitudine, are cerințe minime de compatibilitate și este cel mai rapid nivel de interacțiune cu biblioteca. Acest mod de utilizare oferă metode de predicție conformă atât pentru clasificare, cât și pentru regresie. Acestea preiau estimări ale incertitudinii în numpy.ndarray formatează și returnează seturi riguroase de predicții care păstrează un nivel de probabilitate dat de utilizator. În sarcinile de regresie unidimensională, seturile conforme pot fi considerate versiuni calibrate ale intervalelor de încredere sau credibile.

Rețineți că, dacă estimările de incertitudine pe care le furnizați în intrări sunt inexacte, seturile conforme ar putea fi mari și inutilizabile. Din acest motiv, dacă aplicația dvs. permite acest lucru, vă rugăm să luați în considerare Pornind de la ieșirile modelului și Pornind de la modelele Flax moduri de utilizare detaliate mai jos.

2/ Pornind de la ieșirile modelului

Acest mod presupune că ați antrenat deja un model într-un anumit cadru și că ajungeți la Fortuna cu rezultate ale modelului numpy.ndarray format pentru fiecare punct de date de intrare. Acest mod de utilizare vă permite să calibrați rezultatele modelului, să estimați incertitudinea, să calculați valorile și să obțineți seturi conforme.

În comparație cu Pornind de la estimările de incertitudine modul de utilizare, Pornind de la ieșirile modelului oferă un control mai bun, deoarece se poate asigura că estimările de incertitudine au fost calibrate corespunzător. Cu toate acestea, dacă modelul ar fi fost antrenat cu metode clasice, cuantificarea rezultată a incertitudinii modelului (aka epistemice) poate fi slabă. Pentru a atenua această problemă, vă rugăm să luați în considerare Pornind de la modelele Flax modul de utilizare.

3/ Pornind de la modelele Flax

Pornind de la modelele Flax are cerințe de compatibilitate mai mari decât cele Pornind de la estimările de incertitudine și Pornind de la ieșirile modelului moduri de utilizare, deoarece necesită modele de învățare profundă scrise In. Cu toate acestea, vă permite să înlocuiți antrenamentul standard al modelului cu proceduri de inferență Bayesiană scalabile, care pot îmbunătăți semnificativ cuantificarea incertitudinii predictive.

Metodele bayesiene funcționează prin reprezentarea incertitudinii asupra soluției corecte, având în vedere informații limitate, prin incertitudinea asupra parametrilor modelului. Acest tip de incertitudine se numește incertitudine „epistemică”. Deoarece rețelele neuronale pot reprezenta multe soluții diferite, corespunzătoare diferitelor setări ale parametrilor lor, metodele bayesiene pot avea un impact deosebit în învățarea profundă. Oferim multe proceduri de inferență Bayesiană scalabile, care pot fi adesea folosite pentru a furniza estimări ale incertitudinii, precum și o precizie și o calibrare îmbunătățite, fără a avea, practic, nicio suprasolicitare a timpului de antrenament.

Concluzie

Am anunțat disponibilitatea generală a Fortuna, o bibliotecă pentru cuantificarea incertitudinii în învățarea profundă. Fortuna reunește metode proeminente din literatura de specialitate, de exemplu, metode conforme, scalarea temperaturii și inferența bayesiană, și le pune la dispoziție utilizatorilor cu o interfață standardizată și intuitivă. Pentru a începe cu Fortuna, puteți consulta următoarele resurse:

Încercați Fortuna și spuneți-ne ce părere aveți! Sunteți încurajat să contribuiți la bibliotecă sau să lăsați sugestiile și contribuțiile dvs. – trebuie doar să creați un problema sau deschideți un trageți cererea. De partea noastră, vom continua să îmbunătățim Fortuna, să-i creștem acoperirea metodelor de cuantificare a incertitudinii și să adăugăm alte exemple care să-i arate utilitatea în mai multe scenarii.


Despre autori

Vă prezentăm Fortuna: O bibliotecă pentru cuantificarea incertitudinii PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

 

Gianluca Detommaso este un om de știință aplicat la AWS. În prezent, lucrează la cuantificarea incertitudinii în învățarea profundă. În timpul liber, lui Gianluca îi place să practice sport, să mănânce mâncăruri grozave și să învețe noi abilități.

Vă prezentăm Fortuna: O bibliotecă pentru cuantificarea incertitudinii PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Alberto Gasparin este om de știință aplicat în cadrul Amazon Community Shopping din iulie 2021. Interesele sale includ procesarea limbajului natural, regăsirea informațiilor și cuantificarea incertitudinii. Este un pasionat de mâncare și vin.

Vă prezentăm Fortuna: O bibliotecă pentru cuantificarea incertitudinii PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Michele Donini este om de știință aplicat la AWS. El conduce o echipă de oameni de știință care lucrează la IA responsabilă, iar interesele sale de cercetare sunt corectitudinea algoritmică și învățarea automată explicabilă.

Vă prezentăm Fortuna: O bibliotecă pentru cuantificarea incertitudinii PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Matthias Seeger este cercetător principal aplicat la AWS.

Vă prezentăm Fortuna: O bibliotecă pentru cuantificarea incertitudinii PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Cedric Archambeau este cercetător principal aplicat la AWS și membru al Laboratorului European pentru Învățare și Sisteme Inteligente.

Vă prezentăm Fortuna: O bibliotecă pentru cuantificarea incertitudinii PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Andrew Gordon Wilson este profesor asociat la Institutul Courant de Științe Matematice și Centrul pentru Știința Datelor de la Universitatea din New York și academic vizitator Amazon la AWS. El este deosebit de implicat în construirea de metode pentru învățarea profundă bayesiană și probabilistică, procese gaussiene scalabile, optimizare bayesiană și învățarea automată inspirată de fizică.

Timestamp-ul:

Mai mult de la Învățare automată AWS