![Search icon](https://hackernoon.imgix.net/search-new.png?w=19&h=19)
Gradijentno spuštanje je najpopularnija tehnika optimizacije u modeliranju mašinskog učenja (ML). Algoritam minimizira grešku između predviđenih vrijednosti i osnovne istine. Budući da tehnika uzima u obzir svaku tačku podataka kako bi razumjela i minimizirala grešku, njena izvedba ovisi o veličini podataka za obuku. Tehnike poput Stohastičkog gradijentnog spuštanja (SGD) su dizajnirane da poboljšaju performanse proračuna, ali po cijenu tačnosti konvergencije.
Stochastic Average Gradient balansira klasični pristup, poznat kao Full Gradient Descent i SGD, i nudi obje prednosti. Ali prije nego što možemo koristiti algoritam, prvo moramo razumjeti njegov značaj za optimizaciju modela.
Svaki ML algoritam ima pridruženu funkciju gubitka koja ima za cilj da minimizira ili poboljša performanse modela. Matematički, gubitak se može definisati kao:
To je jednostavno razlika između stvarnog i predviđenog rezultata, a minimiziranje ove razlike znači da se naš model približava osnovnim vrijednostima istine.
Algoritam minimizacije koristi gradijentni spust da bi prešao funkciju gubitka i pronašao globalni minimum. Svaki korak prelaska uključuje ažuriranje težina algoritma radi optimizacije izlaza.
Konvencionalni algoritam gradijenta spuštanja koristi prosjek svih gradijenata izračunatih za cijeli skup podataka. Životni ciklus jednog primjera obuke izgleda ovako:
Jednačina ažuriranja težine izgleda ovako:
Gdje W
predstavlja težine modela, a dJ/dW
je derivacija funkcije gubitka u odnosu na težinu modela. Konvencionalna metoda ima visoku stopu konvergencije, ali postaje računski skupa kada se radi sa velikim skupovima podataka koji se sastoje od miliona tačaka podataka.
SGD metodologija ostaje ista kao i obični GD, ali umjesto korištenja cijelog skupa podataka za izračunavanje nagiba, koristi se mala serija iz ulaza. Metoda je mnogo efikasnija, ali može previše skakati oko globalnih minimuma jer svaka iteracija koristi samo dio podataka za učenje.
Pristup stohastičkog prosječnog gradijenta (SAG) uveden je kao srednji put između GD i SGD. Odabire nasumične podatke i ažurira njenu vrijednost na osnovu gradijenta u toj tački i ponderiranog prosjeka prošlih gradijenata pohranjenih za tu određenu tačku podataka.
Slično SGD, SAG modelira svaki problem kao konačan zbir konveksnih, diferencijabilnih funkcija. U bilo kojoj iteraciji, koristi sadašnje gradijente i prosjek prethodnih gradijenta za ažuriranje težine. Jednačina ima sljedeći oblik:
Između dva popularna algoritma, punog gradijenta (FG) i stohastičkog gradijenta (SGD), FG algoritam ima bolju stopu konvergencije jer koristi cijeli skup podataka tokom svake iteracije za izračunavanje.
Iako SAG ima strukturu sličnu SGD, njegova stopa konvergencije je uporediva i ponekad bolja od pristupa punog gradijenta. Tabela 1 u nastavku sumira rezultate eksperimenata
Uprkos neverovatnim performansama, nekoliko modifikacija je predloženo originalnom SGD algoritmu kako bi se poboljšale performanse.
Gradijentno spuštanje je popularna optimizacija koja se koristi za lociranje globalnih minimuma datih funkcija cilja. Algoritam koristi gradijent funkcije cilja da bi prešao nagib funkcije dok ne dostigne najnižu tačku.
Puni Gradient Descent (FG) i Stohastički Gradient Descent (SGD) su dvije popularne varijacije algoritma. FG koristi ceo skup podataka tokom svake iteracije i obezbeđuje visoku stopu konvergencije uz visoke troškove izračunavanja. Na svakoj iteraciji, SGD koristi podskup podataka za pokretanje algoritma. Daleko je efikasniji, ali sa neizvjesnom konvergencijom.
Stohastički prosječni gradijent (SAG) je još jedna varijacija koja pruža prednosti oba prethodna algoritma. Koristi prosjek prošlih gradijenata i podskup skupa podataka kako bi pružio visoku stopu konvergencije sa niskim proračunom. Algoritam se može dalje modificirati kako bi se poboljšala njegova efikasnost korištenjem vektorizacije i mini-serije.