Stochastický gradientní sestup

Stochastický gradient sestup ( SGD ) je iterativní metoda  pro optimalizaci objektivní funkce s vhodnými vlastnostmi hladkosti (například diferencovatelnost nebo subdiferencovatelnost ). Lze si to představit jako stochastickou aproximaci optimalizace sestupu gradientu , protože nahrazuje skutečný gradient vypočítaný z úplného souboru dat odhadem vypočítaným z náhodně vybrané podmnožiny dat [1] . Sníží se tak potřebné výpočetní zdroje a pomáhá dosáhnout vyšší iterační rychlosti výměnou za nižší rychlost konvergence [2] . Zvláště velkého efektu je dosaženo v aplikacích souvisejících se zpracováním velkých dat .

Ačkoli základní myšlenka stochastické aproximace sahá až do Robbins-Monroeova algoritmu z 50. let [3] , stochastický gradient sestup se stal důležitou optimalizační technikou ve strojovém učení [1] .

Pozadí

Statistický odhad i strojové učení zvažují problém minimalizace objektivní funkce , která má tvar součtu

kde by měla být odhadnuta minimalizace parametru . Každý součtový člen je obvykle spojen s pozorováním v datovém souboru používaném pro trénování.

V klasické statistice vznikají problémy s minimalizací součtů v metodě nejmenších čtverců a v metodě maximální věrohodnosti (pro nezávislá pozorování). Obecná třída odhadů vznikajících jako minimalizace součtů se nazývá M-estimátory . Již na konci 20. století však bylo zaznamenáno, že požadavek i lokální minimalizace je pro některé problémy metody maximální věrohodnosti příliš restriktivní [4] . Moderní statistici teoretici proto často zvažují stacionární body věrohodnostní funkce (nebo nuly její derivace, skórovací funkce a další metody odhadu rovnic ).

Problém minimalizace součtu také vzniká při minimalizaci empirického rizika . V tomto případě je hodnota ztrátové funkce v -tém příkladu a je to empirické riziko.

Při použití k minimalizaci výše uvedené funkce provádí standardní (nebo „dávková“) metoda sestupu gradientu následující iterace:

kde je velikost kroku, nazývaná rychlost učení ve strojovém učení.

V mnoha případech mají sčítací funkce jednoduchý tvar, který umožňuje nízkonákladové výpočty součtu funkcí a gradientu součtu. Například ve statistice umožňuje použití jednoparametrových exponenciálních rodin ekonomický výpočet funkce a gradientu.

V jiných případech však může výpočet gradientu součtu vyžadovat nákladné výpočty gradientu pro všechny sčítatelné funkce. Na velké trénovací množině se při absenci jednoduchých vzorců stává výpočet součtů gradientů velmi nákladným, protože výpočet gradientu součtu vyžaduje výpočet gradientů jednotlivých členů součtu. Aby se snížilo množství výpočtů, stochastický gradientní sestup vybírá podmnožinu sčítatelných funkcí při každé iteraci algoritmu. Tento přístup je zvláště účinný u velkých problémů strojového učení [5] .

Iterační metoda

Při stochastickém („online“) gradientovém sestupu je skutečný gradient aproximován gradientem jednoho tréninkového příkladu

Algoritmus prochází trénovací sadou a provádí výše uvedený přepočet pro každý příklad trénování. K dosažení konvergence algoritmu může trvat několik průchodů trénovací datovou sadou. Před každým novým průchodem jsou data v sadě zamíchána, aby se eliminovala možnost zacyklení algoritmu. Typické implementace mohou využívat adaptivní rychlost učení zlepšení konvergence.

V pseudokódu lze stochastický sestup gradientu reprezentovat následovně:

Kompromisem mezi výpočtem skutečného gradientu a gradientu v rámci jednoho tréninkového příkladu může být výpočet gradientu z více než jednoho tréninkového příkladu, nazývaného "mini-dávka", v každém kroku. To může být výrazně lepší než popsaný "skutečný" stochastický gradientní sestup, protože kód může v každém kroku používat knihovny vektorových tvarů namísto samostatných výpočtů. Může také vést k hladší konvergenci, protože gradient vypočítaný v každém kroku je zprůměrován z více příkladů školení.

Konvergence sestupu stochastického gradientu byla analyzována pomocí teorií konvexní minimalizace a stochastické aproximace . Ve zjednodušené formě lze výsledek znázornit takto: když se míra učení snižuje vhodnou rychlostí, za předpokladu relativně slabých předpokladů, stochastický gradient sestupu konverguje téměř jistě ke globálnímu minimu, pokud je cílová funkce konvexní nebo pseudokonvexní . jinak metoda téměř jistě konverguje k lokálnímu minimu [6] [7] . Ve skutečnosti je to důsledek Robbins-Sigmundovy věty [8] .

Příklad

Předpokládejme, že chceme aproximovat přímku pomocí trénovací množiny s mnoha pozorováními a odpovídajícími odpověďmi pomocí metody nejmenších čtverců . Cílová funkce pro minimalizaci bude

Poslední řádek ve výše uvedeném pseudokódu pro úlohu se stane

Všimněte si, že v každé iteraci (která se také nazývá převzorkování) se počítá pouze gradient v jednom bodě namísto výpočtu přes sadu všech vzorků.

Klíčový rozdíl oproti standardnímu (dávkovému) sestupu gradientu spočívá v tom, že v každém kroku je použita pouze jedna část dat z celé sady a tato část je v každém kroku vybrána náhodně.

Pozoruhodné aplikace

Stochastický gradient sestup je oblíbeným algoritmem pro trénování široké škály modelů ve strojovém učení , zejména v (lineárních) podpůrných vektorových strojích , v logistické regresi (viz například Vowpal Wabbit ) a v grafových pravděpodobnostních modelech [9] . V kombinaci s algoritmem backpropagation je to de facto standardní algoritmus pro trénování umělých neuronových sítí [10] . Jeho aplikace byla také viděna v geofyzikální komunitě, zejména pro aplikace Full Waveform Inversion (FWI) [11] .

Stochastický gradientový sestup konkuruje algoritmu L-BFGS , který je také široce používán. Stochastický gradient sestup se používá minimálně od roku 1960 k trénování lineárních regresních modelů pod názvem ADALINE [12] .

Dalším stochastickým algoritmem sestupu gradientu je adaptivní filtr nejmenších čtverců [ ( LMS) . 

Odrůdy a modifikace

Existuje mnoho modifikací algoritmu sestupu stochastického gradientu. Zejména ve strojovém učení je problémem volba rychlosti učení (velikost kroku): při velkém kroku se může algoritmus rozcházet a při malém kroku je konvergence příliš pomalá. K vyřešení tohoto problému můžete použít plán rychlosti učení , kde rychlost učení klesá s rostoucím číslem iterace . Zároveň se při prvních iteracích hodnoty parametrů výrazně mění a při pozdějších iteracích se pouze zpřesňují. Takové rozvrhy jsou známy již od McQueenovy práce na shlukování k -means [ 13] . Některé praktické rady ohledně výběru kroku v některých variantách SGD jsou uvedeny v oddílech 4.4, 6.6 a 7.5 Spall (2003) [14] .

Implicitní změny (ISGD)

Jak již bylo zmíněno dříve, klasický stochastický gradientový sestup je obvykle citlivý na rychlost učení . Rychlá konvergence vyžaduje vysokou rychlost učení, ale to může způsobit numerickou nestabilitu . Problém lze vyřešit především [15] zohledněním implicitní změny v , kdy se stochastický gradient přepočítává při další iteraci, a ne při aktuální.

Tato rovnost je implicitní, protože se objevuje na obou stranách rovnosti. Toto je stochastická forma metody proximálního gradientu , protože přepočet lze vyjádřit jako

Jako příklad zvažte metodu nejmenších čtverců s vlastnostmi a pozorováními . Chceme se rozhodnout:

kde znamená skalární součin .

Všimněte si, že může mít jako první prvek "1". Klasický stochastický gradient sestup funguje takto

kde je rovnoměrně rozloženo mezi 1 a . Zatímco teoreticky tento postup konverguje za relativně mírných předpokladů, v praxi může být postup značně nestabilní. Zejména pokud jsou nastaveny nesprávně, pak mají s vysokou pravděpodobností velké absolutní vlastní hodnoty a postup se může lišit v několika iteracích. Naproti tomu implicitní stochastický gradient sestup ( ISGD ) může být vyjádřen jako  

Procedura zůstane numericky stabilní pro téměř všechny , protože rychlost učení je nyní normalizována. Takové srovnání mezi klasickým a explicitním stochastickým gradientem sestupu v metodě nejmenších čtverců je velmi podobné srovnání mezi filtrem nejmenších čtverců ( anglicky nejmenší průměr čtverců , LMS) a normalizovaným filtrem nejmenších čtverců ( anglicky normalized filtr nejmenších středních čtverců , NLM).   

Ačkoli analytické řešení pro ISGD je možné pouze metodou nejmenších čtverců, postup lze efektivně implementovat v široké škále modelů. Konkrétně předpokládejme, že to závisí na pouze jako lineární kombinace vlastností , takže můžeme psát , kde funkce s reálnou hodnotou může záviset na , ale ne přímo, pouze přes . Metoda nejmenších čtverců tuto podmínku splňuje, a proto logistická regrese a většina zobecněných lineárních modelů tuto podmínku splňují . Například v nejmenších čtvercích a v logistické regresi , kde je logistická funkce . V Poissonově regresi a tak dále.

Za takových podmínek lze ISGD snadno implementovat následovně. Nechť , kde je číslo. Pak je ISGD ekvivalentní

Faktor měřítka lze nalézt pomocí půlení , protože ve většině modelů, jako jsou výše uvedené zobecněné lineární modely, se funkce snižuje a pak hranice hledání bude .

Impuls

Novější vývoj zahrnuje metodu hybnosti , která se objevila v práci Rumelharta , Hintona a Williamse o učení zpětného šíření [16] . Stochastický gradient hybnosti sestup si pamatuje změnu při každé iteraci a určuje další změnu jako lineární kombinaci gradientu a předchozí změny [17] [18] :

to vede k

kde parametr , který minimalizuje , by měl být odhadnut a je velikost kroku (někdy nazývaná rychlost učení ve strojovém učení).

Název "hybnost" pochází z hybnosti ve fyzice - vektor hmotnosti , chápaný jako dráha částice podél prostoru parametrů [16] , zažívá zrychlení z gradientu ztrátové funkce (" síla "). Na rozdíl od klasického sestupu stochastického gradientu se metoda snaží udržet pokrok ve stejném směru tím, že zamezí kolísání. Momentum bylo úspěšně používáno počítačovými vědci k trénování umělých neuronových sítí po několik desetiletí [19] .

Průměrování

Průměrný stochastický gradientový sestup , vyvinutý nezávisle Ruppertem a Polyakem na konci 80. let, je konvenční stochastický gradientní sestup, který zaznamenává střední hodnotu vektoru parametrů. To znamená, že přepočet je stejný jako u obvyklé metody stochastického gradientu, ale algoritmus také sleduje [20]

.

Když je optimalizace dokončena, vektor středních parametrů zaujme místo w .

AdaGrad

AdaGrad (adaptive gradient algorithm ), publikovaný v roce 2011 [21] [22] , je modifikací stochastického gradientového sestupového algoritmu se samostatnou  rychlostí učení pro každý parametr . Neformálně to zvyšuje rychlost učení pro parametry s řídkými daty a snižuje rychlost učení pro parametry s méně řídkými daty. Tato strategie zvyšuje rychlost konvergence ve srovnání se standardní metodou stochastického gradientu v podmínkách, kdy jsou data řídká a odpovídající parametry jsou informativnější. Příklady takových aplikací jsou zpracování přirozeného jazyka a rozpoznávání vzorů [21] . Algoritmus má základní rychlost učení , ale je vynásoben prvky vektoru , který je úhlopříčkou matice vnějšího produktu .

kde , gradient na iteraci . Úhlopříčka je dána

.

Tento vektor je aktualizován po každé iteraci. Konverzní vzorec

[A]

nebo zápis jako přepočet podle parametrů,

Každý prvek poskytuje multiplikátor rychlosti učení aplikovaný na jeden parametr . Protože jmenovatel v tomto faktoru, , je ℓ2 norma předchozí derivace, velké změny parametrů jsou zeslabeny, zatímco parametry, které přijímají malé změny, mají vyšší rychlost učení [19] .

Přestože byl algoritmus vyvinut pro konvexní problémy , AdaGrad byl úspěšně použit pro nekonvexní optimalizaci [23] .

RMSProp

RMSProp (z Root Mean Square Propagation ) je  metoda, ve které je rychlost učení upravena pro každý parametr. Cílem je vydělit rychlost učení pro váhy klouzavými průměry nedávných gradientů pro tuto váhu [24] . První klouzavý průměr se tedy vypočítá z hlediska efektivní hodnoty

kde je faktor zapomínání.

Možnosti jsou aktualizovány jako

RMSProp prokázal dobrou adaptaci rychlosti učení napříč různými aplikacemi. RMSProp lze považovat za zobecnění Rprop . Metoda je schopna pracovat s minibalíčky, nejen s plnými balíčky [25] .

Adam

Adam [26] (zkratka pro Adaptive Moment Estimation ) je aktualizací optimalizátoru RMSProp .  Tento optimalizační algoritmus používá klouzavé průměry jak gradientů, tak druhých momentů gradientů. Pokud jsou zadány parametry , a ztrátová funkce , kde odráží index aktuální iterace (sestava začíná ), je přepočet parametru algoritmem Adam dán vzorci

kde je malá přísada použitá k zabránění dělení 0 a a jsou koeficienty zapomínání pro gradienty a druhé momenty gradientů. Druhá mocnina a druhá odmocnina se počítají prvek po prvku.

Přirozený gradient sestup a kSGD

Kalman- based Stochastic Gradient Descent ( kSGD  ) [27] je online a offline algoritmus pro učení parametrů pro statistické problémy pro modely kvazi věrohodnosti , který zahrnuje lineární modely , nelineární modely , zobecněné lineární modely a neuronové sítě se ztrátami rms jako zvláštní případ. Pro online výukové problémy je kSGD speciální případ Kalmanova filtru pro lineární regresní problémy, speciální případ rozšířeného Kalmanova filtru pro nelineární regresní problémy a lze jej považovat za inkrementální Gauss-Newtonovu metodu . Navíc díky vztahu kSGD ke Kalmanovu filtru a vztahu přirozeného gradientu sestupu [28] ke Kalmanovu filtru [29] je kSGD hlavním vylepšením populární metody přirozeného gradientu sestupu.

Výhody kSGD oproti jiným metodám:

(1) necitlivé na počet podmínek problému, [b] (2) má velký výběr hyperparametrů, (3) má podmínku zastavení.

Nevýhodou kSGD je, že algoritmus vyžaduje ukládání husté kovarianční matice mezi iteracemi a při každé iteraci musí být nalezen součin vektoru a matice.

Pro popis algoritmu předpokládáme, že funkce , kde , je definována pomocí tak, že

kde je funkce průměrování (tj. očekávaná hodnota ) a je rozptylová funkce (tj. rozptyl pro ). Potom přepočet parametru a přepočet kovariantní matice jsou dány následujícími výrazy

kde jsou hyperparametry. Přepočet může způsobit, že se kovariantní matice stane nedefinovanou, čemuž se lze vyhnout vynásobením matice maticí. může být jakákoli pozitivně definitní symetrická matice, ale obvykle se bere matice identity. Jak poznamenává Patel [27] , pro všechny problémy, kromě lineární regrese, jsou vyžadovány opakované běhy, aby se zajistila konvergence algoritmu, ale nejsou uvedeny žádné teoretické nebo implementační podrobnosti. Úzce související offline vícedávková metoda pro nelineární regresi, kterou analyzoval Bertsekas [30] , používala faktor zapomínání při přepočítávání kovariantní matice k prokázání konvergence.

Metody druhého řádu

Je známo, že stochastická analogie standardního (deterministického) Newton-Raphsonova algoritmu (metoda „druhého řádu“) poskytuje asymptoticky optimální nebo téměř optimální formu iterativní optimalizace za podmínek stochastické aproximace. Bird, Hansen, Nosedal a Singer [31] vyvinuli metodu, která využívá přímého výpočtu Hessových matic součtových členů v empirické rizikové funkci . Přímé stanovení požadovaných Hessových matic pro optimalizaci však nemusí být v praxi možné. Praktické a teoreticky vyhlížející metody pro verzi SGD algoritmu druhého řádu, která nevyžaduje přímou Hessovu informaci, uvedl Spall et al . ). Tyto metody, i když přímo nevyžadují informace o Hessianu, jsou založeny buď na hodnotách součtových členů ve výše uvedené empirické rizikové funkci, nebo na hodnotách gradientů součtových členů (tj. vstup SGD) . Zejména optimalita druhého řádu je asymptoticky dosažitelná bez přímého výpočtu Hessových matic členů součtu v empirické rizikové funkci.

Komentáře

  1. je elementární součin .
  2. Pro problém lineární regrese je rozptyl objektivní funkce kSGD (tj. celková chyba a rozptyl) na iteraci roven pravděpodobnosti klesající k 1 při rychlosti závislé na , kde je rozptyl reziduí. Navíc, pro konkrétní volbu , lze ukázat, že iterační rozptyl kSGD účelové funkce je roven pravděpodobnosti inklinující k 1 při rychlosti závislé na , kde je optimální parametr.

Viz také

Poznámky

  1. 12 Taddy , 2019 , str. 303–307.
  2. Bottou, Bousquet, 2012 , str. 351–368.
  3. Mei, 2018 , str. E7665–E7671.
  4. Ferguson, 1982 , s. 831–834.
  5. Bottou, Bousquet, 2008 , str. 161–168.
  6. Bottou, 1998 .
  7. Kiwiel, 2001 , str. 1–25.
  8. Robbins, Siegmund, 1971 .
  9. Finkel, Kleeman, Manning, 2008 .
  10. LeCun a kol., 2012 , str. 9-48.
  11. Diaz, Guitton, 2011 , str. 2804-2808.
  12. Avi Pfeffer. CS181 Přednáška 5 - Perceptrony (Harvard University) .  (nedostupný odkaz)
  13. Darken, Moody, 1990 .
  14. Spall, 2003 .
  15. Toulis, Airoldi, 2017 , str. 1694–1727
  16. 1 2 Rumelhart, Hinton, Williams, 1986 , str. 533–536.
  17. Sutskever, Martens, Dahl, Hinton, 2013 , str. 1139–1147.
  18. Sutskever, Ilya (2013). Školení rekurentních neuronových sítí (PDF) (Ph.D.). University of Toronto. Archivováno (PDF) z originálu dne 28.02.2020 . Staženo 2020-03-01 . Použitý zastaralý parametr |deadlink=( nápověda )
  19. 1 2 Matthew D. Zeiler (2012), ADADELTA: Metoda adaptivní rychlosti učení, arΧiv : 1212.5701 [cs.LG]. 
  20. Polyak, Juditsky, 1992 , s. 838–855.
  21. 1 2 Duchi, Hazan, Singer, 2011 , str. 2121–2159.
  22. Joseph Perla (2014). Poznámky k AdaGrad (nedostupný odkaz) . Získáno 1. března 2020. Archivováno z originálu dne 30. března 2015. 
  23. Gupta, Bengio, Weston, 2014 , str. 1461–1492
  24. Tieleman, Tijmen a Hinton, Geoffrey (2012). Přednáška 6,5-rmsprop: Vydělte gradient klouzavým průměrem jeho aktuální velikosti. KURZ: Neuronové sítě pro strojové učení
  25. Hinton, Geoffrey Přehled minidávkového gradientového sestupu (odkaz není k dispozici) 27.–29. Získáno 27. září 2016. Archivováno z originálu 23. listopadu 2016. 
  26. Kingma Diederik, Jimmy Ba (2014), Adam: Metoda pro stochastickou optimalizaci, arΧiv : 1412.6980 [cs.LG]. 
  27. 12 Patel , 2016 , str. 2620–2648.
  28. Cichocki, Chen, Amari, 1997 , str. 1345–1351.
  29. Ollivier Yann (2017), Online Natural Gradient as a Kalman Filter, arΧiv : 1703.00209 [stat.ML]. 
  30. Bertsekas, 1996 , s. 807–822.
  31. Byrd, Hansen, Nocedal, Singer, 2016 , str. 1008–1031.
  32. Spall, 2000 , str. 1839–1853.
  33. Spall, 2009 , str. 1216–1229.
  34. Bhatnagar, Prasad, Prashanth, 2013 .
  35. Ruppert, 1985 , str. 236–245.

Literatura

Čtení pro další čtení

Odkazy