A Gradiens süllyedés és a Sztochasztikus gradiens süllyedés (SGD) optimalizálási algoritmusok, amelyek egy függvény minimalizálására használatosak, jellemzően a modell hibáinak minimalizálására.
A kettő közötti elsődleges különbségek a következők:
Gradiens süllyedés (GD)
-
Normál gradiens süllyedés esetén az algoritmus kiszámítja a költségfüggvény gradiensét a teljes képzési adatkészlet felhasználásával.
-
Frissíti a modell paramétereit a teljes adathalmaz gradiensének negatívjával arányos lépésekkel.
-
Ez a módszer garantálja a minimális konvergenciát (bizonyos feltételek mellett, mint például a konvexitás és a megfelelő tanulási sebesség), de számítási szempontból költséges lehet nagy adatkészletek esetén.
Sztochasztikus gradiens süllyedés (SGD)
-
Sztochasztikus gradiens süllyedés esetén az algoritmus frissíti a modell paramétereit a költségfüggvény gradiensével minden egyes képzési példához.
-
Gyakori frissítéseket végez egyetlen vagy kis kötegű betanítási példák alapján, így sokkal gyorsabb, mint a gradiens süllyedés nagy adatkészletek esetén.
-
A zajos frissítései miatt azonban az SGD több ingadozást mutat, és nem feltétlenül konvergál az abszolút minimumhoz; a minimumhoz közeli területhez konvergál, körülötte oszcillál.
Mikor érdemes egyiket a másikkal szemben használni:
-
Gradient Descent (GD): Akkor alkalmas amikor az adatkészlet viszonylag kicsi és elfér a memóriában. Ha a költségfüggvény sima és jól viselkedik, a GD hatékonyan konvergálhat a minimumhoz.
-
Stochastic Gradient Descent (SGD): Előnyösebb, ha nagy adatkészletekkel foglalkozik, ahol a teljes adatkészlet gradienseinek kiszámítása számítási szempontból költségessé válik. Olyan esetekben is hasznos, amikor a költségfüggvénynek sok helyi minimuma van, mivel az SGD zaja a frissítésekben segíthet elkerülni a sekély helyi minimumokat. Ezenkívül az SGD-t általánosan használják neurális hálózatok betanítására hatalmas adatkészleteik és nagydimenziós paramétertereik miatt.
Ezenkívül a gyakorlatban gyakran alkalmaznak olyan változatokat, mint a mini-batch gradient decent, amely egyensúlyba hozza mind a GD, mind az SGD előnyeit, figyelembe véve az egyes frissítésekhez tartozó adatok egy részét. Az algoritmusok közötti választás gyakran a számítási erőforrásoktól, az adatkészlet méretétől és az adott probléma jellemzőitől függ.