paint-brush
Stokastisen keskigradientin ymmärtäminenkirjoittaja@kustarev
31,726 lukemat
31,726 lukemat

Stokastisen keskigradientin ymmärtäminen

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

Liian pitkä; Lukea

Gradienttilasku on suosittu optimointi, jota käytetään annettujen tavoitefunktioiden globaalien minimien paikantamiseen. Algoritmi käyttää tavoitefunktion gradienttia kulkemaan funktion jyrkkyyttä, kunnes se saavuttaa alimman pisteen. Full Gradient Descent (FG) ja Stochastic Gradient Descent (SGD) ovat kaksi suosittua algoritmin muunnelmaa. FG käyttää koko tietojoukkoa jokaisen iteraation aikana ja tarjoaa korkean konvergenssinopeuden korkeilla laskentakustannuksilla. Jokaisessa iteraatiossa SGD käyttää osajoukkoa dataa suorittaakseen algoritmin. Se on paljon tehokkaampi, mutta sen lähentyminen on epävarmaa. Stokastinen keskigradientti (SAG) on toinen muunnelma, joka tarjoaa molempien aikaisempien algoritmien edut. Se käyttää aiempien gradienttien keskiarvoa ja tietojoukon osajoukkoa tarjotakseen korkean konvergenssinopeuden alhaisella laskennalla. Algoritmia voidaan edelleen muokata sen tehokkuuden parantamiseksi käyttämällä vektorointia ja mini-eriä.

People Mentioned

Mention Thumbnail

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Stokastisen keskigradientin ymmärtäminen
Andrey Kustarev HackerNoon profile picture
0-item


Gradienttilasku on suosituin optimointitekniikka koneoppimisen (ML) mallintamisessa. Algoritmi minimoi virheen ennustearvojen ja perustotuuden välillä. Koska tekniikka ottaa jokaisen datapisteen huomioon virheen ymmärtämiseksi ja minimoimiseksi, sen suorituskyky riippuu opetusdatan koosta. Tekniikat, kuten Stochastic Gradient Descent (SGD), on suunniteltu parantamaan laskennan suorituskykyä, mutta konvergenssitarkkuuden kustannuksella.


Stochastic Average Gradient tasapainottaa klassista lähestymistapaa, joka tunnetaan nimellä Full Gradient Descent ja SGD, ja tarjoaa molemmat edut. Mutta ennen kuin voimme käyttää algoritmia, meidän on ensin ymmärrettävä sen merkitys mallin optimoinnissa.

Koneoppimistavoitteiden optimointi gradienttilaskeutumisella

Jokaiseen ML-algoritmiin liittyy häviötoiminto, jonka tarkoituksena on minimoida tai parantaa mallin suorituskykyä. Matemaattisesti tappio voidaan määritellä seuraavasti:


Se on yksinkertaisesti ero todellisen ja ennustetun lähdön välillä, ja tämän eron minimoiminen tarkoittaa, että mallimme tulee lähemmäksi maan totuusarvoja.


Minimointialgoritmi käyttää gradienttilaskua häviöfunktion läpi kulkemiseen ja globaalin minimin löytämiseen. Jokainen läpikulkuvaihe sisältää algoritmin painojen päivittämisen tulosteen optimoimiseksi.


Plain Gradient Descent

Perinteinen gradientin laskeutumisalgoritmi käyttää kaikkien koko tietojoukosta laskettujen gradientien keskiarvoa. Yhden harjoitusesimerkin elinkaari näyttää tältä:



Painon päivitysyhtälö näyttää tältä:

Missä W edustaa mallin painoja ja dJ/dW on häviöfunktion derivaatta suhteessa mallin painoon. Perinteisellä menetelmällä on korkea konvergenssinopeus, mutta se tulee laskennallisesti kalliiksi käsiteltäessä suuria, miljoonia datapisteitä sisältäviä tietojoukkoja.

Stokastinen gradienttilasku (SGD)

SGD-metodologia pysyy samana kuin tavallinen GD, mutta sen sijaan, että se käyttäisi koko tietojoukkoa gradienttien laskemiseen, se käyttää pientä erää syötteistä. Menetelmä on paljon tehokkaampi, mutta se voi hypätä liikaa globaalien minimien ympärille, koska jokainen iteraatio käyttää vain osaa tiedosta oppimiseen.

Stokastinen keskigradientti

Stokastisen keskigradientin (SAG) lähestymistapa otettiin käyttöön keskitie GD:n ja SGD:n välillä. Se valitsee satunnaisen datapisteen ja päivittää sen arvon kyseisen pisteen gradientin ja kyseiselle datapisteelle tallennettujen aiempien gradienttien painotetun keskiarvon perusteella.


Kuten SGD, SAG mallintaa jokaisen ongelman kuperoiden, differentioituvien funktioiden äärellisenä summana. Missä tahansa iteraatiossa se käyttää nykyisiä gradientteja ja aiempien gradienttien keskiarvoa painon päivittämiseen. Yhtälö saa seuraavan muodon:



Lähentymisaste

Kahden suositun algoritmin, täyden gradientin (FG) ja stokastisen gradientin laskeutumisen (SGD) välillä FG-algoritmilla on parempi konvergenssinopeus, koska se käyttää koko tietojoukkoa jokaisen iteraation aikana laskennassa.

Vaikka SAG:n rakenne on samanlainen kuin SGD, sen lähentymisnopeus on verrattavissa ja joskus parempi kuin täyden gradientin lähestymistapa. Alla olevassa taulukossa 1 on yhteenveto kokeiden tuloksista Schmidt et. al .

Lähde: https://arxiv.org/pdf/1309.2388

Muita muutoksia

Huolimatta sen hämmästyttävästä suorituskyvystä, alkuperäiseen SGD-algoritmiin on ehdotettu useita muutoksia suorituskyvyn parantamiseksi.


  • Uudelleenpainotus varhaisissa iteraatioissa: SAG-konvergenssi pysyy hitaana muutaman ensimmäisen iteroinnin aikana, koska algoritmi normalisoi suunnan n:llä (datapisteiden kokonaismäärä). Tämä antaa epätarkan arvion, koska algoritmi ei ole vielä nähnyt monia datapisteitä. Muokkaus ehdottaa normalisointia m:llä n:n sijaan, missä m on datapisteiden määrä, jotka on nähty vähintään kerran kyseiseen iteraatioon asti.
  • Minierät: Stochastic Gradient -lähestymistapa käyttää minieriä useiden datapisteiden käsittelemiseen samanaikaisesti. Samaa lähestymistapaa voidaan soveltaa SAG:hen. Tämä mahdollistaa vektorisoinnin ja rinnakkaistamisen tietokoneen tehokkuuden parantamiseksi. Se myös vähentää muistin kuormitusta, mikä on merkittävä haaste SAG-algoritmille.
  • Step-Size-kokeilu: Aiemmin mainittu askelkoko (116L) tarjoaa uskomattomia tuloksia, mutta kirjoittajat jatkoivat kokeiluja käyttämällä askelkokoa 1L. Jälkimmäinen tarjosi vielä paremman konvergenssin. Kirjoittajat eivät kuitenkaan pystyneet esittämään muodollista analyysiä parantuneista tuloksista. He päättelevät, että askelkokoa tulisi kokeilla, jotta löydettäisiin optimaalinen koko tiettyyn ongelmaan.


Viimeisiä ajatuksia

Gradienttilasku on suosittu optimointi, jota käytetään annettujen tavoitefunktioiden globaalien minimien paikantamiseen. Algoritmi käyttää tavoitefunktion gradienttia kulkemaan funktion jyrkkyyttä, kunnes se saavuttaa alimman pisteen.

Full Gradient Descent (FG) ja Stochastic Gradient Descent (SGD) ovat kaksi suosittua algoritmin muunnelmaa. FG käyttää koko tietojoukkoa jokaisen iteraation aikana ja tarjoaa korkean konvergenssinopeuden korkeilla laskentakustannuksilla. Jokaisessa iteraatiossa SGD käyttää datan osajoukkoa algoritmin suorittamiseen. Se on paljon tehokkaampi, mutta sen lähentyminen on epävarmaa.


Stokastinen keskigradientti (SAG) on toinen muunnelma, joka tarjoaa molempien aikaisempien algoritmien edut. Se käyttää aiempien gradienttien keskiarvoa ja tietojoukon osajoukkoa tarjotakseen korkean konvergenssinopeuden alhaisella laskennalla. Algoritmia voidaan edelleen muokata sen tehokkuuden parantamiseksi käyttämällä vektorointia ja mini-eriä.