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ä edustaa mallin painoja ja 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. W dJ/dW 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 Muita muutoksia Huolimatta sen hämmästyttävästä suorituskyvystä, alkuperäiseen SGD-algoritmiin on ehdotettu useita muutoksia suorituskyvyn parantamiseksi. 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. Uudelleenpainotus varhaisissa iteraatioissa: 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. Minierät: 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. Step-Size-kokeilu: 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ä.