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] .
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] .
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ř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ě.
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) .
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] .
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 .
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ě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 (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 (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 [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.
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.
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.