Un punct de plecare mai bun pentru rețelele profunde
Citește lucrarea →Antrenarea unei rețele neuronale profunde este, în mare parte, o căutare. Ponderile rețelei sunt un set de numere, iar învățarea înseamnă ajustarea acelor numere — milioane dintre ele — către valori care rezolvă sarcina. Dar orice căutare trebuie să înceapă de undeva, iar locul de unde începe se dovedește a conta enorm. Dacă ponderile pornesc prost, o rețea profundă poate învăța lent, se poate bloca sau poate eșua complet în a învăța. Această lucrare pune o întrebare aparent simplă: în loc să pornim de la numere aleatorii, putem alege un punct de plecare principial care să ofere unei rețele profunde un avans real?
Problema
Deep learning funcționează stivuind multe straturi de reprezentare unul peste altul, în loc de cele unul sau două straturi pe care se baza machine learning tradițional. Această profunzime este exact ceea ce le conferă rețelelor profunde puterea lor — și exact ceea ce le face greu de antrenat. Înainte de a avea loc orice învățare, fiecare conexiune din rețea are nevoie de o pondere inițială, iar practica standard este să extragă acele ponderi aleatoriu. Inițializarea ponderilor este, de fapt, o problemă de estimare a parametrilor: scopul este să alegem valori de pornire care se află într-o regiune bună a unui spațiu de căutare uriaș, cu multe dimensiuni, aproape de o soluție bună, mai degrabă decât prinse lângă una slabă.
Pentru rețelele cu puține straturi există o abundență de tehnici de inițializare din care să alegem. Pentru arhitecturile profunde, nu. După cum spun autorii, avem multe modalități de a inițializa rețelele cu puține straturi, dar ne lipsesc tehnicile pentru cele mai profunde — iar euristicile construite pentru unul sau două straturi nu se transferă pur și simplu atunci când sunt multe. În spațiile de ponderi cu foarte multe dimensiuni, peisajul își schimbă chiar caracterul: minimele locale slabe care afectează rețelele cu puține straturi tind să se transforme în puncte-șa (saddle points), regiuni plate care pot bloca antrenarea într-un alt mod. Abordarea principială dominantă la acel moment, inițializarea normalizată (normalized initialisation, NI), funcționează bine și este robustă pentru diverse funcții de activare, dar lucrarea remarcă faptul că, în esență, nu existau alternative la ea. Acea lacună — lipsa unor modalități principiale de a porni o rețea profundă — este problema pe care această lucrare își propune să o abordeze.
Figura 1. Punctul de plecare contează: inițializarea ponderilor modelează antrenarea.
Ideea
Propunerea se sprijină pe analiza pe intervale, o ramură a matematicii dezvoltată în anii 1960 pentru a raționa despre incertitudine lucrând cu intervale de valori în loc de numere individuale. Intuiția din spatele metodei este fizică, nu doar matematică. O unitate ascunsă dintr-o rețea este cea mai utilă atunci când semnalul total care ajunge la ea cade în regiunea activă a funcției sale de activare — partea curbei în care unitatea chiar răspunde și transmite informația mai departe, în loc să satureze la o valoare plată. Dacă semnalul primit este prea mare sau prea mic, unitatea încetează să mai fie informativă, iar de-a lungul multor straturi stivuite aceste probleme se acumulează până când semnalul se degradează.
Așadar, în loc să se întrebe „ce ponderi aleatorii să folosim?”, metoda se întreabă „ce interval de ponderi menține semnalul primit de fiecare unitate în regiunea sa utilă?”. Analiza pe intervale transformă această cerință într-o problemă de toleranță pe interval liniară (linear interval tolerance): pornind de la datele reale care intră într-un strat, calculează limite pentru ponderi astfel încât intrarea combinată în fiecare nod ascuns să fie garantat menținută în banda activă a funcției de activare. Ponderile inițiale sunt apoi extrase aleatoriu din interiorul acelor limite calculate, mai degrabă decât dintr-un interval arbitrar — aleatorii, dar constrânse la un interval ales astfel încât semnalele să se propage curat.
Autorii numesc procedura rezultată DLIT (Deep Linear Interval Tolerance). Aceasta extinde lucrări anterioare de toleranță pe interval pentru rețele cu puține straturi — Adam, Karras, Magoulas și Vrahatis (2014) — și o adaptează la profunzimea arhitecturilor moderne. DLIT funcționează strat cu strat: citește statistici simple din datele de intrare, le folosește pentru a delimita și a eșantiona ponderile primului strat, trece datele prin funcția de activare a acelui strat pentru a produce intrarea pentru stratul următor și repetă — extinzând rețeta originală intrare-spre-ascuns cu o nouă tratare a straturilor ascuns-spre-ascuns și ascuns-spre-ieșire pe care le impune profunzimea. Metoda are un număr mic de hiperparametri reglabili (inclusiv unul legat de curbura funcției de activare alese — direct pentru tanh și logistic și necesitând o căutare pentru ReLU, care nu are curbură), așa încât poate fi adaptată la rețeaua și la datele aflate în lucru.
Figura 2. Inițializarea prin Linear Interval Tolerance, pe scurt.
Ce am descoperit
Acesta este un studiu empiric preliminar, iar lucrarea îl prezintă cu grijă în acest fel. Autorii au evaluat DLIT pe trei benchmark-uri standard din literatura de deep learning — MNIST, CIFAR-10 și CIFAR-100 — alese tocmai pentru că vin cu rezultate publicate binecunoscute față de care se pot compara. Au testat multilayer perceptron-uri profunde pe două funcții de activare (ReLU și tanh), două dimensiuni de mini-batch și forme diferite de rețea — de exemplu o arhitectură 2000-1000-500 la un mini-batch de 10 și o arhitectură mai profundă 3000-2000-1000-500-100 la un mini-batch de 500 — antrenând timp de 200 de epoci cu categorical cross-entropy și fără oprire timpurie (early stopping). De-a lungul experimentelor, au comparat DLIT direct cu inițializarea normalizată (NI), folosind aceleași arhitecturi și hiperparametri pentru ambele, astfel încât singurul lucru care se schimba era modul în care porneau ponderile.
Concluzia principală este modestă și onestă: pe aceste configurări, DLIT a produs o generalizare ușor mai bună decât NI. Pe setul de testare, o eroare de cross-entropy mai mică este mai bună, iar DLIT a ieșit constant în avantaj. Cu ReLU la un mini-batch de 10, de exemplu, DLIT a atins o eroare de testare de 1,57 pe MNIST față de 2,13 pentru NI, 49,33 față de 52,77 pe CIFAR-10 și 71,92 față de 73,76 pe CIFAR-100. Același tipar s-a păstrat cu funcția de activare tanh și la dimensiunea mai mare de mini-batch și arhitectura mai profundă — DLIT a depășit NI pe diverse funcții de activare, dimensiuni de mini-batch și topologii, ceea ce autorii își doreau cel mai mult să vadă: nu o singură reușită norocoasă, ci consecvență. La fel de importantă este ceea ce nu a mers prost. Pentru că au omis deliberat oprirea timpurie, autorii au putut observa dacă straturile saturau — înghețau și încetau să mai învețe — și au constatat că nici NI, nici DLIT nu au produs matrice de ponderi care să satureze prematur nodurile. Concluzia este o metodă robustă și fiabil competitivă cu cea mai puternică bază de referință principială a vremii, nu un salt dramatic în acuratețe.
Figura 3. Ce a arătat evaluarea preliminară.
De ce contează
Punctul de plecare este una dintre pârghiile discrete din spatele a tot ceea ce ajunge să facă o rețea profundă. O rețea mai bine inițializată se antrenează mai rapid, irosește mai puțină putere de calcul și are mai puține șanse să se blocheze — iar pentru că aceste câștiguri apar înainte de orice pas de antrenare, ele nu costă aproape nimic în execuție. De aceea inițializarea a rămas o întrebare vie în deep learning mult timp după ce arhitecturile de prim-plan au atras atenția: este o infrastructură fundamentală, iar pe infrastructura fundamentală se sprijină discret orice rezultat aplicat.
Această lucrare trebuie citită exact pentru ceea ce este — o metodă aflată într-o etapă incipientă, demonstrată într-un studiu preliminar pe benchmark-uri publice, care prezintă o direcție promițătoare, nu un rezultat finit și definitiv. Autorii sunt expliciți în privința drumului care urmează, propunând în special hibridizarea DLIT cu inițializarea normalizată pentru a câștiga stabilitate în spații de ponderi cu și mai multe dimensiuni și integrarea parametrilor reglabili ai metodei într-o versiune mai automată și generalizată. Ceea ce semnalează despre stm.ai este profunzimea fundației: este genul de lucru fundamental privind optimizarea și antrenarea rețelelor profunde care stă la baza AI-ului aplicat, iar aceeași rigoare în modul în care sunt construite sistemele de învățare — principială acolo unde alții recurg la valori implicite și onestă privind diferența dintre o metodă promițătoare și una dovedită — străbate activitatea aplicată a companiei în MedTech și FinTech.
C. Stamate, G.D. Magoulas, M.S.C. Thomas — „Initialising Deep Neural Networks: An Approach Based on Linear Interval Tolerance”, în Proceedings of SAI Intelligent Systems Conference (IntelliSys) 2016, Springer, Lecture Notes in Networks and Systems (2016). Citește lucrarea.