Coborâre a gradientului stocastic

Coborârea gradientului stocastic ( SGD ) este o metodă  iterativă pentru optimizarea unei funcții obiective cu proprietăți de netezime adecvate (de exemplu, diferențiere sau subdiferențiabilitate ). Poate fi considerată ca o aproximare stocastică a optimizării coborârii gradientului , deoarece înlocuiește gradientul real calculat din setul de date complet cu o estimare calculată dintr-un subset de date selectat aleatoriu [1] . Acest lucru reduce resursele de calcul implicate și ajută la obținerea unor rate mai mari de iterație în schimbul unor rate de convergență mai mici [2] . Un efect deosebit de mare este obținut în aplicațiile legate de prelucrarea datelor mari .

Deși ideea de bază a aproximării stocastice se întoarce la algoritmul Robbins-Monroe din anii 1950 [3] , coborârea gradientului stocastic a devenit o tehnică importantă de optimizare în învățarea automată [1] .

Fundal

Atât estimarea statistică , cât și învățarea automată iau în considerare problema minimizării unei funcții obiective care are forma unei sume

unde trebuie estimată minimizarea parametrilor . Fiecare termen sumă este de obicei asociat cu a- a observație din setul de date utilizat pentru antrenament.

În statistica clasică, problemele de minimizare a sumei apar în metoda celor mai mici pătrate și în metoda probabilității maxime (pentru observații independente). Clasa generală de estimatori care apar ca minimizarea sumelor se numește M-estimatori . Totuși, încă de la sfârșitul secolului al XX-lea, s-a observat că cerința minimizării chiar locale este prea restrictivă pentru unele probleme ale metodei de maximă probabilitate [4] . Prin urmare, teoreticienii statistici moderni iau în considerare adesea punctele staționare ale funcției de probabilitate (sau zerourile derivatei sale, funcția de scoring și alte metode de estimare a ecuațiilor ).

Problema minimizării sumei apare și la minimizarea riscului empiric . În acest caz, este valoarea funcției de pierdere din exemplul --lea și este riscul empiric.

Când este utilizată pentru a minimiza funcția de mai sus, metoda de coborâre a gradientului standard (sau „loc”) efectuează următoarele iterații:

unde este dimensiunea pasului, numită rata de învățare în învățarea automată.

În multe cazuri, funcțiile sumabile au o formă simplă, care permite calcule cu costuri reduse pentru suma funcțiilor și gradientul sumei. De exemplu, în statistică, utilizarea familiilor exponențiale cu un parametru permite calculul economic al funcției și al gradientului.

Cu toate acestea, în alte cazuri, calcularea gradientului sumei poate necesita calcule scumpe de gradient pentru toate funcțiile sumabile. Pe un set mare de antrenament, în absența unor formule simple, calcularea sumelor gradienților devine foarte costisitoare, deoarece calcularea gradientului sumei necesită calcularea gradienților termenilor individuali ai sumei. Pentru a reduce cantitatea de calcul, coborârea gradientului stocastic selectează un subset de funcții sumabile la fiecare iterație a algoritmului. Această abordare este eficientă în special pentru problemele mari de învățare automată [5] .

Metoda iterativă

În coborârea gradientului stocastică ("online"), gradientul adevărat este aproximat de gradientul unui exemplu de antrenament

Trecând prin setul de antrenament, algoritmul efectuează recalcularea de mai sus pentru fiecare exemplu de antrenament. Pot fi necesare mai multe treceri peste setul de date de antrenament pentru a obține convergența algoritmului. Înainte de fiecare nouă trecere, datele din set sunt amestecate pentru a elimina posibilitatea de a bucla algoritmul. Implementările tipice pot folosi rata de învățare adaptivă îmbunătăți convergența.

În pseudocod , coborârea gradientului stocastic poate fi reprezentată după cum urmează:

Un compromis între calcularea gradientului adevărat și a gradientului pentru un singur exemplu de antrenament poate fi calcularea gradientului pentru mai mult de un exemplu de antrenament, numit „mini-lot”, la fiecare pas. Acest lucru poate fi semnificativ mai bun decât coborârea gradientului stocastic „adevărat” descris, deoarece codul poate folosi biblioteci de forme vectoriale în loc de calcule separate la fiecare pas. De asemenea, poate duce la o convergență mai lină, deoarece gradientul calculat la fiecare pas este mediat pe mai multe exemple de antrenament.

Convergența coborârii gradientului stocastic a fost analizată folosind teoriile de minimizare convexă și aproximare stocastică . Într-o formă simplificată, rezultatul poate fi reprezentat după cum urmează: atunci când rata de învățare scade la o rată adecvată, având în vedere ipoteze relativ slabe, coborârea gradientului stocastic converge aproape sigur către minimul global dacă funcția obiectiv este convexă sau pseudoconvexă , în caz contrar metoda converge aproape sigur către minim local [6] [7] . De fapt, aceasta este o consecință a teoremei Robbins-Sigmund [8] .

Exemplu

Să presupunem că vrem să aproximăm o linie printr-un set de antrenament cu multe observații și răspunsuri corespunzătoare folosind metoda celor mai mici pătrate . Funcția obiectivă pentru minimizare va fi

Ultima linie din pseudocodul de mai sus pentru sarcină devine

Rețineți că în fiecare iterație (care se mai numește și reeșantionare), doar gradientul dintr-un punct este calculat în loc să se calculeze peste setul de toate eșantioanele.

Diferența cheie față de coborârea gradientului standard (în lot) este că doar o parte a datelor din întregul set este utilizată la fiecare pas, iar această parte este aleasă aleatoriu la fiecare pas.

Aplicații notabile

Coborârea gradientului stocastic este un algoritm popular pentru antrenarea unei game largi de modele în învățarea automată , în special în mașinile vectoriale suport (liniare) , în regresia logistică (vezi de exemplu Vowpal Wabbit ) și în modelele probabilistice grafice [9] . Atunci când este combinat cu algoritmul de backpropagation , este algoritmul standard de facto pentru antrenarea rețelelor neuronale artificiale [10] . Aplicația sa a fost văzută și în comunitatea geofizică , în special pentru aplicațiile Full Waveform Inversion (FWI) [11] .

Coborârea gradientului stocastic concurează cu algoritmul L-BFGS , care este, de asemenea, utilizat pe scară largă. Coborârea gradientului stocastic a fost folosită cel puțin din 1960 pentru a antrena modele de regresie liniară sub denumirea de ADALINE [12] .

Un alt algoritm de coborâre a gradientului stocastic este filtrul adaptiv al celor mai mici pătrate medii [ ( LMS) . 

Soiuri și modificări

Există multe modificări ale algoritmului de coborâre a gradientului stocastic. În special, în învățarea automată, problema este alegerea ratei de învățare (dimensiunea pasului): cu un pas mare, algoritmul poate diverge, iar cu un pas mic, convergența este prea lentă. Pentru a rezolva această problemă, puteți utiliza programul ratei de învățare , unde rata de învățare scade pe măsură ce crește numărul de iterații . În același timp, la primele iterații, valorile parametrilor se modifică semnificativ, iar la iterațiile ulterioare, acestea sunt doar rafinate. Asemenea programe sunt cunoscute încă de la lucrările lui McQueen asupra grupării k -means [ 13] . Câteva sfaturi practice privind selecția pașilor în unele variante SGD sunt oferite în secțiunile 4.4, 6.6 și 7.5 din Spall (2003) [14] .

Modificări implicite (ISGD)

După cum am menționat mai devreme, coborârea clasică a gradientului stocastic este de obicei sensibilă la rata de învățare . Convergența rapidă necesită o rată mare de învățare rapidă, dar aceasta poate provoca instabilitate numerică . Problema poate fi rezolvată în principal [15] luând în considerare modificarea implicită în , când gradientul stocastic este recalculat la următoarea iterație, și nu la cea curentă.

Această egalitate este implicită deoarece apare de ambele părți ale egalității. Aceasta este forma stocastică a metodei gradientului proximal , deoarece recalcularea poate fi exprimată ca

Ca exemplu, luați în considerare metoda celor mai mici pătrate cu proprietăți și observații . Vrem să decidem:

unde înseamnă produsul scalar .

Rețineți că poate avea „1” ca prim element. Coborârea clasică a gradientului stocastic funcționează astfel

unde este distribuit uniform intre 1 si . În timp ce teoretic această procedură converge sub ipoteze relativ ușoare, în practică procedura poate fi extrem de instabilă. În special, dacă se setează incorect, atunci au valori proprii absolute mari cu probabilitate mare, iar procedura poate diverge în mai multe iterații. Prin contrast, coborârea gradientului stocastic implicit ( ISGD ) poate fi exprimată ca  

Procedura va rămâne stabilă numeric pentru aproape toate , deoarece rata de învățare este acum normalizată. O astfel de comparație între coborârea gradientului stocastic clasic și explicit în metoda celor mai mici pătrate este foarte asemănătoare cu comparația dintre filtrul celor mai mici pătrate medii ( engleză cele mai mici pătrate medii , LMS) și filtrul celor mai mici pătrate normalizate ( engleză normalizat filtrul celor mai mici pătrate medii , NLM-uri).   

Deși soluția analitică pentru ISGD este posibilă numai în metoda celor mai mici pătrate, procedura poate fi implementată eficient într-o gamă largă de modele. În special, să presupunem că depinde doar de o combinație liniară a proprietăților lui , astfel încât să putem scrie , unde o funcție cu valoare reală poate depinde de , dar nu direct, numai prin . Metoda celor mai mici pătrate satisface această condiție și, prin urmare, regresia logistică și cele mai multe modele liniare generalizate satisfac această condiție . De exemplu, în cele mai mici pătrate și în regresia logistică , unde este funcția logistică . În regresia Poisson , și așa mai departe.

În astfel de condiții, ISGD este ușor de implementat după cum urmează. Fie , unde este un număr. Atunci ISGD este echivalent cu

Factorul de scară poate fi găsit prin bisectarea , deoarece în majoritatea modelelor, cum ar fi modelele liniare generalizate de mai sus, funcția scade, iar atunci limitele de căutare vor fi .

Impuls

Evoluții mai recente includ metoda impulsului , care a apărut în lucrarea lui Rumelhart , Hinton și Williams despre învățarea propagării inverse [16] . Coborârea gradientului stocastic de impuls reține schimbarea la fiecare iterație și determină următoarea modificare ca o combinație liniară a gradientului și a modificării anterioare [17] [18] :

care duce la

unde parametrul , care minimizează , ar trebui estimat și este dimensiunea pasului (uneori numită rata de învățare în învățarea automată).

Denumirea „momentum” provine de la impuls în fizică - vectorul greutate , înțeles ca traseul unei particule de-a lungul spațiului parametrilor [16] , experimentează o accelerație din gradientul funcției de pierdere (" forță "). Spre deosebire de coborârea clasică a gradientului stocastic, metoda încearcă să mențină progresul în aceeași direcție prin prevenirea fluctuațiilor. Momentum a fost folosit cu succes de informaticieni pentru a antrena rețele neuronale artificiale timp de câteva decenii [19] .

Media

Average Stochastic Gradient Descent , dezvoltat independent de Ruppert și Polyak la sfârșitul anilor 1980, este o coborâre convențională a gradientului stocastic care înregistrează media unui vector de parametri. Adică, recalcularea este aceeași ca și în metoda obișnuită de coborâre a gradientului stocastic, dar algoritmul urmărește și [20]

.

Când optimizarea este completă, vectorul parametrilor medii ia locul lui w .

AdaGrad

AdaGrad ( algoritm de gradient adaptiv ), publicat în 2011 [21] [22] , este o modificare a algoritmului de coborâre a gradientului stocastic cu o  rată de învățare separată pentru fiecare parametru . În mod informal, aceasta crește rata de învățare pentru parametrii cu date rare și scade rata de învățare pentru parametrii cu date mai puțin rare. Această strategie crește rata de convergență în comparație cu metoda standard de coborâre a gradientului stocastic în condițiile în care datele sunt rare și parametrii corespunzători sunt mai informative. Exemple de astfel de aplicații sunt procesarea limbajului natural și recunoașterea modelelor [21] . Algoritmul are o rată de învățare de bază, dar este înmulțit cu elementele vectorului care este diagonala matricei exterioare a produsului

unde , gradient pe iterație . Diagonala este dată de

.

Acest vector este actualizat după fiecare iterație. Formula de conversie

[A]

sau, scriind ca recalculare prin parametri,

Fiecare element oferă un multiplicator al ratei de învățare aplicat unui parametru . Deoarece numitorul din acest factor, , este norma ℓ2 a derivatei anterioare, modificările mari ale parametrilor sunt atenuate, în timp ce parametrii care primesc modificări mici primesc rate de învățare mai mari [19] .

Deși algoritmul a fost dezvoltat pentru probleme convexe , AdaGrad a fost utilizat cu succes pentru optimizarea neconvexă [23] .

RMSProp

RMSProp (de la Root Mean Square Propagation ) este o  metodă în care rata de învățare este ajustată pentru fiecare parametru. Ideea este de a împărți rata de învățare pentru greutăți la mediile mobile ale gradienților recenti pentru acea greutate [24] . Deci prima medie mobilă este calculată în termeni de rms

unde, este factorul uitarii.

Opțiunile sunt actualizate ca

RMSProp a demonstrat o bună adaptare a ratei de învățare în diferite aplicații. RMSProp poate fi gândit ca o generalizare a Rprop . Metoda este capabilă să lucreze cu minipachete, nu doar cu pachete complete [25] .

Adam

Adam [26] (prescurtarea de la Adaptive Moment Estimation ) este o actualizare a optimizatorului RMSProp .  Acest algoritm de optimizare utilizează medii mobile atât ale gradienților, cât și ale secundelor momente ale gradienților. Dacă sunt dați parametrii , iar funcția de pierdere , unde reflectă indicele iterației curente (raportul începe cu ), recalcularea parametrului prin algoritmul Adam este dată de formulele

unde este un mic aditiv folosit pentru a preveni împărțirea cu 0 și și sunt coeficienții de uitare pentru gradienți și, respectiv, al doilea moment al gradienților. Pătrarea și rădăcina pătrată sunt calculate element cu element.

Coborâre în gradient natural și kSGD

Descent Stochastic Gradient ( kSGD  ) [27] bazat pe Kalman este un algoritm online și offline pentru învățarea parametrilor pentru probleme statistice pentru modele de cvasi-probabilitate , care include modele liniare , modele neliniare , modele liniare generalizate și rețele neuronale cu pierderi rms ca caz special. Pentru problemele de învățare online, kSGD este un caz special al filtrului Kalman pentru probleme de regresie liniară, un caz special al filtrului Kalman extins pentru probleme de regresie neliniară și poate fi considerat ca o metodă incrementală Gauss-Newton . Mai mult, datorită relației dintre kSGD și filtrul Kalman și relației dintre coborârea gradientului natural [28] și filtrul Kalman [29] , kSGD este o îmbunătățire majoră a metodei populare de coborâre a gradientului natural.

Avantajele kSGD față de alte metode:

(1) insensibil la numărul de condiții ale problemei, [b] (2) are o alegere robustă de hiperparametri, (3) are o stare de oprire.

Dezavantajul kSGD este că algoritmul necesită stocarea unei matrice de covarianță densă între iterații, iar la fiecare iterație trebuie găsit produsul vectorului și matricei.

Pentru a descrie algoritmul, presupunem că funcția , unde , este definită folosind astfel încât

unde este funcția de mediere (adică valoarea așteptată a lui ) și este funcția de varianță (adică varianța pentru ). Apoi recalcularea parametrului și recalcularea matricei covariante sunt date de următoarele expresii

unde sunt hiperparametrii. Recalcularea poate face ca matricea covariantă să devină nedefinită, ceea ce poate fi evitat prin înmulțirea matricei cu matrice. poate fi orice matrice simetrică pozitiv-definită, dar matricea de identitate este de obicei luată. După cum a observat Patel [27] , pentru toate problemele, cu excepția regresiei liniare, sunt necesare executări repetate pentru a asigura convergența algoritmului, dar nu sunt date detalii teoretice sau de implementare. O metodă strâns legată offline multi-loturi pentru regresia neliniară, analizată de Bertsekas [30] , a folosit factorul de uitare în recalcularea matricei covariante pentru a dovedi convergența.

Metode de ordinul doi

Se știe că analogul stocastic al algoritmului Newton-Raphson standard (determinist) (metoda „de ordinul doi”) oferă o formă asimptotic optimă sau aproape optimă de optimizare iterativă în condiții de aproximare stocastică. O metodă care utilizează calculul direct al matricelor hessiene a termenilor sume în funcția de risc empiric a fost dezvoltată de Bird, Hansen, Nosedal și Singer [31] . Cu toate acestea, o determinare directă a matricelor hessiene necesare pentru optimizare ar putea să nu fie posibilă în practică. Metode practice și teoretice pentru o versiune de ordinul doi a algoritmului SGD care nu necesită informații hessiane directe au fost date de Spall și colab . ). Aceste metode, deși nu necesită în mod direct informații despre Hessian, se bazează fie pe valorile termenilor sume din funcția de risc empiric prezentată mai sus, fie pe valorile gradienților termenilor sumei (adică intrarea SGD) . În special, optimitatea de ordinul doi este realizabilă asimptotic fără a calcula direct matricele hessiene ale termenilor sumei în funcția de risc empiric.

Comentarii

  1. este produsul elementwise al lui .
  2. Pentru o problemă de regresie liniară, varianța funcției obiective a lui kSGD (adică eroarea totală și varianța) per iterație este egală cu probabilitatea tinde spre 1 la o rată dependentă de , unde este varianța reziduurilor. Mai mult, pentru o anumită alegere a , se poate demonstra că varianța iterației lui kSGD a funcției obiectiv este egală cu probabilitatea care tinde la 1 la o rată dependentă de , unde este parametrul optim.

Vezi și

Note

  1. 12 Taddy , 2019 , p. 303–307.
  2. Bottou, Bousquet, 2012 , p. 351–368.
  3. Mei, 2018 , p. E7665–E7671.
  4. Ferguson, 1982 , p. 831–834.
  5. Bottou, Bousquet, 2008 , p. 161–168.
  6. Bottou, 1998 .
  7. Kiwiel, 2001 , p. 1–25.
  8. Robbins, Siegmund, 1971 .
  9. Finkel, Kleeman, Manning, 2008 .
  10. LeCun și colab., 2012 , p. 9-48.
  11. Diaz, Guitton, 2011 , p. 2804-2808.
  12. Avi Pfeffer. CS181 Cursul 5 - Perceptroni (Universitatea Harvard) .  (link indisponibil)
  13. Darken, Moody, 1990 .
  14. Spall, 2003 .
  15. Toulis, Airoldi, 2017 , p. 1694–1727
  16. 1 2 Rumelhart, Hinton, Williams, 1986 , p. 533–536.
  17. Sutskever, Martens, Dahl, Hinton, 2013 , p. 1139–1147.
  18. Sutskever, Ilya (2013). Antrenarea rețelelor neuronale recurente (PDF) (Ph.D.). Universitatea din Toronto. Arhivat (PDF) din original pe 28.02.2020 . Extras 2020-03-01 . Parametrul depreciat folosit |deadlink=( ajutor )
  19. 1 2 Matthew D. Zeiler (2012), ADADELTA: An adaptive learning rate method, arΧiv : 1212.5701 [cs.LG]. 
  20. Polyak, Juditsky, 1992 , p. 838–855.
  21. 1 2 Duchi, Hazan, Singer, 2011 , p. 2121–2159.
  22. Joseph Perla (2014). Note despre AdaGrad (link indisponibil) . Preluat la 1 martie 2020. Arhivat din original la 30 martie 2015. 
  23. Gupta, Bengio, Weston, 2014 , p. 1461–1492
  24. Tieleman, Tijmen și Hinton, Geoffrey (2012). Cursul 6.5-rmsprop: Împărțiți gradientul la o medie curentă a mărimii sale recente. COURSERA: Rețele neuronale pentru învățarea automată
  25. Hinton, Geoffrey Privire de ansamblu asupra coborârii gradientului mini-loturi (link indisponibil) 27–29. Consultat la 27 septembrie 2016. Arhivat din original la 23 noiembrie 2016. 
  26. Kingma Diederik, Jimmy Ba (2014), Adam: A method for stochastic optimization, arΧiv : 1412,6980 [cs.LG]. 
  27. 12 Patel , 2016 , p. 2620–2648.
  28. Cichocki, Chen, Amari, 1997 , p. 1345–1351.
  29. Ollivier Yann (2017), Online Natural Gradient as a Kalman Filter, arΧiv : 1703.00209 [stat.ML]. 
  30. Bertsekas, 1996 , p. 807–822.
  31. Byrd, Hansen, Nocedal, Singer, 2016 , p. 1008–1031.
  32. Spall, 2000 , p. 1839−1853.
  33. Spall, 2009 , p. 1216–1229.
  34. Bhatnagar, Prasad, Prashanth, 2013 .
  35. Ruppert, 1985 , p. 236–245.

Literatură

Lectură pentru lecturi suplimentare

Link -uri