Gradienttilasku ja stokastinen gradienttilasku koneoppimisessa

Päivitetty June 12, 2024 2 minuutteja luetaan

Gradienttilasku ja stokastinen gradienttilasku koneoppimisessa cover image

Gradientin lasku ja stokastinen gradienttilasku (SGD) ovat optimointialgoritmeja, joita käytetään funktion minimoimiseen, jotka tyypillisesti liittyvät mallin virheen minimoimiseen.

Ensisijaiset erot näiden kahden välillä ovat seuraavat:

Gradient Descent (GD)

  • Normaalissa gradienttilaskeutumisessa algoritmi laskee kustannusfunktion gradientin koko harjoitustietojoukon avulla.

  • Se päivittää mallin parametrit ottamalla askeleita, jotka ovat verrannollisia koko tietojoukon gradientin negatiiviseen.

  • Tämä menetelmä takaa konvergenssin minimiin (tietyt ehdot, kuten kuperuus ja sopivat oppimisnopeudet), mutta voi olla laskennallisesti kallista suurille tietojoukoille.

Stokastinen gradienttilasku (SGD)

  • Stokastisessa gradienttilaskeutumisessa algoritmi päivittää malliparametrit käyttämällä kustannusfunktion gradienttia jokaiselle harjoitusesimerkille.

  • Se tekee usein päivityksiä yksittäisten tai pienten koulutusesimerkkien perusteella, mikä tekee siitä paljon nopeamman kuin gradienttilaskeutuminen suurille tietojoukoille.

  • Kuitenkin sen meluisten päivitysten vuoksi SGD:ssä on enemmän vaihteluita, eikä se välttämättä lähenty absoluuttiseen minimiin; se suppenee alueelle, joka on lähellä minimiä ja värähtelee sen ympärillä.

Milloin käyttää toista päällekkäin:

  • Gradient Descent (GD): Se sopii kun tietojoukko on suhteellisen pieni ja mahtuu muistiin. Jos kustannusfunktio on sujuvaa ja hyvin käyttäytyvää, GD voi konvergoida tehokkaasti minimiin.

  • Stochastic Gradient Descent (SGD): Se on parempi, kun käsitellään suuria tietojoukkoja, joissa koko tietojoukon gradienttien laskeminen tulee laskennallisesti kallista. Se on hyödyllinen myös skenaarioissa, joissa kustannusfunktiolla on useita paikallisia minimejä, koska päivitysten SGD:n kohina saattaa auttaa välttämään matalia paikallisia minimijä. Lisäksi SGD:tä käytetään yleisesti neuroverkkojen koulutuksessa niiden valtavien tietojoukkojen ja suuriulotteisten parametriavaruuksien vuoksi.

Lisäksi käytännössä käytetään usein muunnelmia, kuten mini-erägradienttilasku, joka tasapainottaa sekä GD:n että SGD:n edut ottamalla huomioon kunkin päivityksen datan osajoukon. Valinta näiden algoritmien välillä riippuu usein laskentaresursseista, tietojoukon koosta ja tietyn ongelman ominaisuuksista.