paint-brush
Razumijevanje stohastičkog prosječnog gradijentaby@kustarev
31,726 čitanja
31,726 čitanja

Razumijevanje stohastičkog prosječnog gradijenta

by Andrey Kustarev4m2024/06/06
Read on Terminal Reader
Read this story w/o Javascript

Predugo; Citati

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 serija.

People Mentioned

Mention Thumbnail

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Razumijevanje stohastičkog prosječnog gradijenta
Andrey Kustarev HackerNoon profile picture
0-item


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.

Optimiziranje ciljeva strojnog učenja s gradijentnim spuštanjem

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.


Plain Gradient Descent

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.

Stohastički gradijentni pad (SGD)

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.

Stohastički prosječni gradijent

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:



Stopa konvergencije

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 Schmidt et. al .

Izvor: https://arxiv.org/pdf/1309.2388

Dalje modifikacije

Uprkos neverovatnim performansama, nekoliko modifikacija je predloženo originalnom SGD algoritmu kako bi se poboljšale performanse.


  • Ponovno ponderisanje u ranim iteracijama: SAG konvergencija ostaje spora tokom prvih nekoliko iteracija pošto algoritam normalizuje pravac sa n (ukupnim brojem tačaka podataka). Ovo daje netačnu procjenu jer algoritam tek treba da vidi mnogo tačaka podataka. Modifikacija predlaže normalizaciju pomoću m umjesto n, gdje je m broj podataka viđenih barem jednom do te određene iteracije.
  • Mini-serije: Stohastički Gradient pristup koristi mini-serije za obradu više tačaka podataka istovremeno. Isti pristup se može primijeniti na SAG. Ovo omogućava vektorizaciju i paralelizaciju za poboljšanu efikasnost računara. Takođe smanjuje opterećenje memorije, što je značajan izazov za SAG algoritam.
  • Eksperimentisanje sa veličinom koraka: Ranije pomenuta veličina koraka (116L) daje neverovatne rezultate, ali su autori dalje eksperimentisali koristeći veličinu koraka od 1L. Potonji je omogućio još bolju konvergenciju. Međutim, autori nisu bili u mogućnosti da predstave formalnu analizu poboljšanih rezultata. Oni zaključuju da treba eksperimentirati s veličinom koraka kako bi se pronašla optimalna za određeni problem.


Final Thoughts

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.