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

Razumijevanje stohastičkog prosječnog gradijenta

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

Predugo; Čitati

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.

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

Optimiziranje ciljeva strojnog učenja s gradijentnim spuštanjem

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.


Plain Gradient Descent

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.

Stohastički gradijentni pad (SGD)

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.

Stohastički prosječni gradijent

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:



Stopa konvergencije

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

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

Daljnje izmjene

Unatoč njegovim nevjerojatnim performansama, predloženo je nekoliko modifikacija originalnog SGD algoritma kako bi se poboljšale performanse.


  • Ponovno ponderiranje u ranim iteracijama: SAG konvergencija ostaje spora tijekom prvih nekoliko iteracija budući da algoritam normalizira smjer s n (ukupni broj podatkovnih točaka). To daje netočnu procjenu jer algoritam tek treba vidjeti mnogo podatkovnih točaka. Modifikacija predlaže normalizaciju prema m umjesto n, gdje je m broj podatkovnih točaka viđenih barem jednom do te određene iteracije.
  • Mini-serije: Stohastički gradijentni pristup koristi mini-serije za obradu više podatkovnih točaka istovremeno. Isti pristup može se primijeniti na SAG. To omogućuje vektorizaciju i paralelizaciju za poboljšanu učinkovitost računala. Također smanjuje opterećenje memorije, istaknuti izazov za SAG algoritam.
  • Eksperimentiranje s veličinom koraka: ranije spomenuta veličina koraka (116L) daje nevjerojatne rezultate, ali autori su dodatno eksperimentirali korištenjem veličine koraka od 1L. Potonji je omogućio još bolju konvergenciju. Međutim, autori nisu bili u mogućnosti predstaviti službenu analizu poboljšanih rezultata. Zaključuju da treba eksperimentirati s veličinom koraka kako bi se pronašla optimalna za određeni problem.


Završne misli

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.