Învățare profundă bayesiană, viziune computerizată, incertitudine

suficientă

Alex Kendall

Cercetător viziune computerizată și robotică

Înțelegerea a ceea ce nu știe un model este o parte critică a multor sisteme de învățare automată. Din păcate, algoritmii de învățare profundă de astăzi sunt de obicei incapabili să înțeleagă incertitudinea lor. Aceste modele sunt adesea luate orbește și presupuse a fi exacte, ceea ce nu este întotdeauna cazul. De exemplu, în două situații recente acest lucru a avut consecințe dezastruoase.

În mai 2016, am trăit tragic prima deces din cauza unui sistem de conducere asistată. Potrivit blogului producătorului, „Nici pilotul automat, nici șoferul nu au observat partea albă a remorcii tractorului pe un cer luminat, deci frâna nu a fost acționată”.

În iulie 2015, un sistem de clasificare a imaginilor a identificat în mod eronat doi oameni afro-americani ca gorile, ridicând îngrijorarea discriminării rasiale. Vezi raportul de știri aici.

Și sunt sigur că există și multe alte cazuri interesante! Dacă ambii algoritmi au reușit să atribuie un nivel ridicat de incertitudine predicțiilor lor eronate, atunci fiecare sistem ar fi putut să ia decizii mai bune și probabil să evite dezastrul.

Pentru mine este clar că înțelegerea incertitudinii este importantă. Deci, de ce nu o face toată lumea? Problema principală este că abordările tradiționale de învățare automată pentru a înțelege incertitudinea, cum ar fi procesele Gaussiene, nu se ridică la intrări de dimensiuni ridicate, cum ar fi imagini și videoclipuri. Pentru a înțelege în mod eficient aceste date, avem nevoie de o învățare profundă. Dar învățarea profundă se luptă pentru a modela incertitudinea.

În această postare voi introduce un câmp care revine, cunoscut sub numele de învățare profundă bayesiană (BDL), care oferă un cadru de învățare profundă care poate modela și incertitudinea. BDL poate obține rezultate de ultimă generație, înțelegând în același timp incertitudinea. Voi explica diferitele tipuri de incertitudine și voi arăta cum să le modelez. În cele din urmă, voi discuta despre un rezultat recent care arată cum să folosiți incertitudinea pentru a pierde în greutate pentru învățarea profundă cu mai multe sarcini. Materialul pentru această postare de blog este preluat în mare parte din cele două lucrări recente ale mele:

De ce incertitudini avem nevoie în învățarea profundă bayesiană pentru viziunea computerizată? Alex Kendall și Yarin Gal, 2017. (.pdf)

Învățarea multi-sarcină folosind incertitudinea pentru a cântări pierderile pentru geometria scenei și semantică. Alex Kendall, Yarin Gal și Roberto Cipolla, 2017 (.pdf)

Și, ca întotdeauna, mai multe detalii tehnice pot fi găsite acolo!

Un exemplu de ce este cu adevărat important să înțelegem incertitudinea pentru estimarea adâncimii. Prima imagine este un exemplu de intrare într-o rețea neuronală bayesiană care estimează adâncimea, așa cum arată imaginea a doua. A treia imagine arată incertitudinea estimată. Puteți vedea că modelul prezice adâncimea greșită pe suprafețele dificile, cum ar fi geamurile reflectorizante și transparente ale mașinii roșii. Din fericire, modelul bayesian de învățare profundă este, de asemenea, conștient că este greșit și prezintă o incertitudine crescută.

Prima întrebare pe care aș dori să o adresez este ce este incertitudinea? De fapt, există diferite tipuri de incertitudine și trebuie să înțelegem ce tipuri sunt necesare pentru diferite aplicații. Voi discuta despre cele mai importante două tipuri - incertitudinea epistemică și aleatorică.

Incertitudine epistemică

Incertitudinea epistemică ne surprinde ignoranța cu privire la ce model a generat datele noastre colectate. Această incertitudine poate fi explicată cu date suficiente și este adesea denumită incertitudine de model. Incertitudinea epistemică este cu adevărat importantă de modelat pentru:

  • Aplicații critice pentru siguranță, deoarece este necesară incertitudinea epistemică pentru a înțelege exemple care sunt diferite de datele de instruire,
  • Seturi de date mici în care datele de instruire sunt rare.

Incertitudine aleatorică

Incertitudinea aleatorică surprinde incertitudinea noastră cu privire la informațiile pe care datele noastre nu le pot explica. De exemplu, incertitudinea aleatorică din imagini poate fi atribuită ocluziilor (deoarece camerele nu pot vedea prin obiecte) sau lipsei de caracteristici vizuale sau a regiunilor supra-expuse ale unei imagini etc. Poate fi explicat prin capacitatea de a observa toate variabilele explicative cu o precizie crescândă. Incertitudinea aleatorică este foarte importantă de modelat pentru:

  • Situații mari de date, în care incertitudinea epistemică este explicată în mare parte,
  • Aplicații în timp real, deoarece putem forma modele aleatorice ca o funcție deterministă a datelor de intrare, fără eșantionare costisitoare Monte Carlo.

De fapt, putem împărți aleatorii în alte două subcategorii:

  • Incertitudinea dependentă de date sau heteroscedastică este incertitudinea aleatorică care depinde de datele de intrare și este prezisă ca o ieșire model.
  • Incertitudinea dependentă de sarcină sau homoscedastică este incertitudinea aleatorică care nu depinde de datele de intrare. Nu este o ieșire model, mai degrabă este o cantitate care rămâne constantă pentru toate datele de intrare și variază între diferite sarcini. Prin urmare, poate fi descris ca o incertitudine dependentă de sarcină. Mai târziu, în post, voi arăta cum acest lucru este cu adevărat util pentru învățarea cu mai multe sarcini.

Ilustrând diferența dintre incertitudinea aleatorică și epistemică pentru segmentarea semantică. Puteți observa că incertitudinea aleatorică surprinde limitele obiectelor acolo unde etichetele sunt zgomotoase. Rândul de jos arată un caz de eșec al modelului de segmentare, atunci când modelul nu este familiarizat cu calea, și incertitudinea epistemică crescută corespunzătoare.

În continuare, voi arăta cum să formez modele pentru a surprinde această incertitudine folosind învățarea profundă bayesiană.

Învățarea profundă bayesiană este un câmp la intersecția dintre învățarea profundă și teoria probabilității bayesiene. Oferă estimări de incertitudine principiale din arhitecturi de învățare profundă. Acești arhitecți adânci pot modela sarcini complexe utilizând puterea de reprezentare ierarhică a învățării profunde, putând în același timp să deducă distribuții complexe multimodale posterioare. Modelele bayesiene de învățare profundă formează de obicei estimări ale incertitudinii fie prin plasarea distribuțiilor peste greutățile modelului, fie prin învățarea unei mapări directe a rezultatelor probabilistice. În această secțiune voi discuta pe scurt cum putem modela atât incertitudinea epistemică, cât și incertitudinea aleatorică folosind modele de învățare profundă bayesiană.

În primul rând, putem modela incertitudinea aleatorică heteroscedastică doar prin schimbarea funcțiilor noastre de pierdere. Deoarece această incertitudine este o funcție a datelor de intrare, putem învăța să o prezicem folosind o mapare deterministă de la intrări la modelul de ieșiri. Pentru sarcinile de regresie, ne antrenăm de obicei cu ceva de genul unei pierderi euclidiene/L2: \ (\ begin Loss = || y - \ hat || _2 \ end \). Pentru a învăța un model de incertitudine heteroscedastică, putem înlocui pur și simplu funcția de pierdere cu următoarele:

unde modelul prezice o medie \ (\ hat \) și o varianță \ (\ sigma ^ 2 \). După cum puteți vedea din această ecuație, dacă modelul prezice ceva foarte greșit, atunci va fi încurajat să atenueze termenul rezidual, prin creșterea incertitudinii \ (\ sigma ^ 2 \). Cu toate acestea, \ (\ log \ sigma ^ 2 \) împiedică creșterea infinită a termenului de incertitudine. Acest lucru poate fi considerat ca o atenuare a pierderii învățate.

Incertitudinea aleatorică homoscedastică poate fi modelată într-un mod similar, totuși parametrul de incertitudine nu va mai fi o ieșire model, ci un parametru liber pe care îl optimizăm.

Pe de altă parte, incertitudinea epistemică este mult mai greu de modelat. Acest lucru ne impune să modelăm distribuțiile peste modele și parametrii lor, ceea ce este mult mai greu de realizat la scară. O tehnică populară pentru a modela acest lucru este eșantionarea abandonului Monte Carlo, care plasează o distribuție Bernoulli peste greutățile rețelei.

În practică, acest lucru înseamnă că putem instrui un model cu abandon. Apoi, la momentul testului, mai degrabă decât efectuarea medierii modelului, putem să prelevăm stocastic din rețea cu diferite măști de renunțare aleatorii. Statisticile acestei distribuții a rezultatelor vor reflecta incertitudinea epistemică a modelului.

În secțiunea anterioară, am explicat proprietățile care definesc incertitudinea aleatorică și epistemică. Unul dintre rezultatele interesante din lucrarea noastră a fost că am putea arăta că această formulare oferă rezultate care satisfac aceste proprietăți. Iată un rezumat rapid al unor rezultate ale unui model de regresie a adâncimii monoculare pe două seturi de date:

Date de instruire Date de testare Variație aleatorică Varianță epistemică
Antrenat în setul de date nr. 1 Testat pe setul de date nr. 1 0,485 2,78
Antrenat pe 25% set de date nr. 1 Testat pe setul de date nr. 1 0,506 7,73
Antrenat în setul de date nr. 1 Testat pe setul de date nr. 2 0,461 4,87
Antrenat pe 25% set de date nr. 1 Testat pe setul de date nr. 2 0,388 15.0

Aceste rezultate arată că atunci când ne antrenăm cu mai puține date sau testăm pe date care sunt semnificativ diferite de setul de antrenament, atunci incertitudinea noastră epistemică crește drastic. Cu toate acestea, incertitudinea noastră aleatorică rămâne relativ constantă - ceea ce ar trebui - pentru că este testată pe aceeași problemă cu același senzor.

În continuare voi discuta despre o aplicație interesantă a acestor idei pentru învățarea cu mai multe sarcini.

Învățarea multi-task își propune să îmbunătățească eficiența învățării și precizia predicției prin învățarea mai multor obiective dintr-o reprezentare comună. Este predominant în multe domenii ale învățării automate, de la NLP la recunoașterea vorbirii până la viziunea computerizată. Învățarea cu mai multe sarcini este de o importanță crucială în sistemele în care durata de calcul lungă este prohibitivă, cum ar fi cele utilizate în robotică. Combinarea tuturor sarcinilor într-un singur model reduce calculul și permite acestor sisteme să ruleze în timp real.

Majoritatea modelelor cu mai multe sarcini se antrenează în diferite sarcini folosind o sumă ponderată a pierderilor. Cu toate acestea, performanța acestor modele depinde în mare măsură de ponderarea relativă dintre pierderea fiecărei sarcini. Reglarea manuală a acestor greutăți este un proces dificil și costisitor, ceea ce face ca învățarea cu mai multe sarcini să fie prohibitivă în practică.

În lucrarea noastră recentă, propunem să folosim incertitudinea homoscedastică pentru a pondera pierderile în modele de învățare cu mai multe sarcini. Deoarece incertitudinea homoscedastică nu variază în funcție de datele de intrare, o putem interpreta ca o sarcină de incertitudine. Acest lucru ne permite să formăm o pierdere principială pentru a învăța simultan diverse sarcini.

Explorăm învățarea cu mai multe sarcini în cadrul înțelegerii scenei vizuale în vederea computerizată. Algoritmii de înțelegere a scenei trebuie să înțeleagă atât geometria, cât și semantica scenei în același timp. Aceasta formează o problemă interesantă de învățare cu mai multe sarcini, deoarece înțelegerea scenei implică învățarea comună a diferitelor sarcini de regresie și clasificare cu diferite unități și scale. Poate surprinzător, arătăm că modelul nostru poate învăța ponderări cu mai multe sarcini și depășește modelele separate instruite individual în fiecare sarcină.

Învățarea cu mai multe sarcini îmbunătățește netezimea și acuratețea percepției adâncimii, deoarece învață o reprezentare care folosește indicii din alte sarcini, cum ar fi segmentarea (și invers).

De ce nu are putere de învățare profundă Bayesiană toate A.I. sisteme astăzi? Cred că ar trebui, dar mai sunt câteva întrebări de cercetare foarte dure. Pentru a încheia acest blog, voi menționa câteva dintre ele:

  • Tehnicile de incertitudine epistemică în timp real împiedică implementarea modelelor de incertitudine epistemică în aplicații de robotică în timp real. Fie creșterea eficienței eșantionului, fie metode noi care nu se bazează pe inferența Monte Carlo ar fi incredibil de benefice.
  • Repere pentru modelele bayesiene de învățare profundă. Este incredibil de important să cuantificăm îmbunătățirile pentru a dezvolta rapid modele - uitați-vă la ceea ce au făcut repere ca ImageNet pentru viziunea computerizată. Avem nevoie de suite de referință pentru a măsura calibrarea incertitudinii și în modelele BDL.
  • Tehnici de inferență mai bune pentru a capta distribuții multi-modale. De exemplu, consultați demo-ul configurat de Yarin aici, care prezintă câteva date multimodale pe care inferența abandonului MC nu le modelează.