Gradient Descent og Stokastic Gradient Descent i maskinlæring
Oppdatert på June 22, 2024 2 minutter lest

Gradientnedstigning og stokastisk gradientnedstigning (SGD) er optimaliseringsalgoritmer som brukes til å minimere en funksjon, vanligvis assosiert med å minimere feilen i en modell.
De primære forskjellene mellom de to er følgende:
Gradient Descent (GD)
-
I standard gradientnedstigning beregner algoritmen gradienten til kostnadsfunksjonen ved hjelp av hele treningsdatasettet.
-
Den oppdaterer modellparametrene ved å ta skritt proporsjonale med det negative av gradienten til hele datasettet.
-
Denne metoden garanterer konvergens til et minimum (gitt visse forhold som konveksitet og passende læringshastigheter), men kan være beregningsmessig dyr for store datasett.
Stokastisk gradientnedstigning (SGD)
-
Ved stokastisk gradientnedstigning oppdaterer algoritmen modellparametrene ved å bruke gradienten til kostnadsfunksjonen for hvert enkelt treningseksempel.
-
Den gjør hyppige oppdateringer basert på enkelt eller små grupper med treningseksempler, noe som gjør det mye raskere enn gradientnedstigning for store datasett.
-
Men på grunn av støyende oppdateringer, har SGD flere svingninger og konvergerer ikke nødvendigvis til det absolutte minimum; den konvergerer til et område nær minimum, svinger rundt det.
Når du skal bruke den ene fremfor den andre:
-
Gradient Descent (GD): Det passer når datasettet er relativt lite og kan passe inn i minnet. Hvis kostnadsfunksjonen er jevn og veloppdragen, kan GD effektivt konvergere til minimum.
-
Stochastic Gradient Descent (SGD): Det er å foretrekke når håndterer store datasett der databehandlingsgradienter for hele datasettet blir beregningsmessig kostbart. Det er også nyttig i scenarier der kostnadsfunksjonen har mange lokale minima, ettersom SGDs støy i oppdateringer kan bidra til å unnslippe grunne lokale minima. Videre er SGD vanligvis brukt i trening av nevrale nettverk på grunn av deres enorme datasett og høydimensjonale parameterrom.
Dessuten brukes variasjoner som minibatch gradient descent, som balanserer fordelene med både GD og SGD ved å vurdere en delmengde av dataene for hver oppdatering, ofte i praksis. Valget mellom disse algoritmene avhenger ofte av beregningsressurser, datasettstørrelse og det spesifikke problemets egenskaper.