![Search icon](https://hackernoon.imgix.net/search-new.png?w=19&h=19)
Gradijentno spuštanje najpopularnija je tehnika optimizacije u modeliranju strojnog učenja (ML). Algoritam minimizira pogrešku između predviđenih vrijednosti i temeljne istine. Budući da tehnika uzima u obzir svaku podatkovnu točku kako bi razumjela i smanjila pogrešku, njezina izvedba ovisi o veličini podataka za obuku. Tehnike kao što je Stochastic Gradient Descent (SGD) dizajnirane su za poboljšanje izvedbe izračuna, ali po cijenu točnosti konvergencije.
Stochastic Average Gradient uravnotežuje 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 njegovu važnost za optimizaciju modela.
Svaki ML algoritam ima pridruženu funkciju gubitka koja ima za cilj smanjiti ili poboljšati performanse modela. Matematički, gubitak se može definirati kao:
To je jednostavno razlika između stvarnog i predviđenog rezultata, a minimiziranje te razlike znači da se naš model približava osnovnim istinitim vrijednostima.
Algoritam za minimiziranje koristi gradijentni spust za prelazak funkcije gubitka i pronalaženje globalnog minimuma. Svaki korak prolaska uključuje ažuriranje težina algoritma za optimizaciju izlaza.
Konvencionalni algoritam gradijentnog spuštanja koristi prosjek svih gradijenata izračunatih u cijelom skupu podataka. Životni ciklus jednog primjera obuke izgleda ovako:
Jednadžba 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 s velikim skupovima podataka koji se sastoje od milijuna podatkovnih točaka.
SGD metodologija ostaje ista kao i obična GD, ali umjesto korištenja cijelog skupa podataka za izračun gradijenata, koristi malu skupinu ulaznih podataka. Metoda je mnogo učinkovitija, 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 sredina između GD i SGD. Odabire slučajnu podatkovnu točku i ažurira njezinu vrijednost na temelju gradijenta u toj točki i ponderiranog prosjeka prošlih gradijenata pohranjenih za tu određenu podatkovnu točku.
Slično SGD-u, SAG modelira svaki problem kao konačni zbroj konveksnih, diferencijabilnih funkcija. U bilo kojoj iteraciji koristi trenutne gradijente i prosjek prethodnih gradijenata za ažuriranje težine. Jednadžba ima sljedeći oblik:
Između dva popularna algoritma, punog gradijenta (FG) i stohastičkog gradijentnog spuštanja (SGD), FG algoritam ima bolju stopu konvergencije budući da za izračun koristi cijeli skup podataka tijekom svake iteracije.
Iako SAG ima strukturu sličnu SGD-u, njegova je stopa konvergencije usporediva s pristupom potpunog gradijenta, a ponekad i bolja od njega. Tablica 1 u nastavku sažima rezultate eksperimenata
Unatoč njegovim nevjerojatnim performansama, predloženo je nekoliko modifikacija originalnog SGD algoritma kako bi se poboljšale performanse.
Gradijentni pad je popularna optimizacija koja se koristi za lociranje globalnih minimuma danih funkcija cilja. Algoritam koristi gradijent funkcije cilja za prelazak nagiba funkcije dok ne dosegne najnižu točku.
Puni gradijentni spust (FG) i stohastički gradijentni spust (SGD) dvije su popularne varijacije algoritma. FG koristi cijeli skup podataka tijekom svake iteracije i pruža visoku stopu konvergencije uz visoku cijenu izračuna. U svakoj iteraciji, SGD koristi podskup podataka za pokretanje algoritma. Daleko je učinkovitiji, ali s neizvjesnom konvergencijom.
Stohastički prosječni gradijent (SAG) još je 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 uz malo izračunavanja. Algoritam se može dodatno modificirati kako bi se poboljšala njegova učinkovitost pomoću vektorizacije i mini-serija.