Gradientnedstigning og stokastisk gradientnedstigning (SGD) er optimeringsalgoritmer som brukes til å minimere en funksjon, vanligvis i forbindelse med minimering av feilen i en modell.
De viktigste forskjellene mellom de to er følgende:
Gradient nedstigning (GD)_
-
I standard gradientnedstigning beregner algoritmen gradienten til kostnadsfunksjonen ved hjelp av hele treningsdatasettet.
-
Den oppdaterer modellparametrene ved å ta trinn som er proporsjonale med den negative gradienten for hele datasettet.
-
Denne metoden garanterer konvergens mot minimum ( gitt visse betingelser som konveksitet og passende læringsrater), men kan være beregningskrevende for store datasett.
Stokastisk gradientavstamning (SGD)
-
I stokastisk gradientnedstigning oppdaterer algoritmen modellparametrene ved hjelp av gradienten til kostnadsfunksjonen for hvert enkelt treningseksempel.
-
Den gjør hyppige oppdateringer basert på enkelte eller små grupper med treningseksempler, noe som gjør den mye raskere enn gradientnedstigning for store datasett.
-
På grunn av støyende oppdateringer har SGD imidlertid flere svingninger og konvergerer ikke nødvendigvis mot det absolutte minimumet.
Når du bør bruke den ene fremfor den andre:
-
Gradient Descent (GD): Denne metoden er egnet når datasettet er relativt lite og får plass i minnet. Hvis kostnadsfunksjonen er jevn og veloppdragen, kan GD effektivt konvergere til minimum.
-
Stokastisk gradientnedstigning (SGD): Denne metoden er å foretrekke når man arbeider med store datas ett der det blir for dyrt å beregne gradienter for hele datasettet. Den er også nyttig i scenarier der kostnadsfunksjonen har mange lokale minima, ettersom SGDs støy i oppdateringer kan bidra til å unngå grunne lokale minima. SGD brukes dessuten ofte til å trene opp nevrale nettverk på grunn av de store datasettene og høydimensjonale parameterrommene.
I tillegg brukes ofte varianter som mini-batch gradient descent, som balanserer fordelene ved både GD og SGD ved å ta hensyn til en delmengde av dataene for hver oppdatering. Valget mellom disse algoritmene avhenger ofte av beregningsressurser, datasettets størrelse og det spesifikke problemets egenskaper.