Gradienta nolaišanās un stohastiskā gradienta nolaišanās (SGD) ir optimizācijas algoritmi, ko izmanto, lai minimizētu funkciju, kas parasti ir saistīta ar kļūdas samazināšanu modelī.
Galvenās atšķirības starp abiem ir šādas:
Gradienta nolaišanās (GD)
-
Standarta gradienta nolaišanās gadījumā algoritms aprēķina izmaksu funkcijas gradientu izmantojot visu apmācības datu kopu.
-
Tas atjaunina modeļa parametrus, veicot darbības, kas ir proporcionālas visas datu kopas gradienta negatīvajam.
-
Šī metode garantē konverģenci līdz minimumam (ņemot vērā noteiktus nosacījumus, piemēram, izliekumu un atbilstošus mācīšanās ātrumus), taču lielām datu kopām tā var būt dārga skaitļošanas ziņā.
Stohastiskā gradienta nolaišanās (SGD)
-
Stohastiskā gradienta nolaišanās gadījumā algoritms atjaunina modeļa parametrus, izmantojot izmaksu funkcijas gradientu katram individuālajam apmācības piemēram.
-
Tas nodrošina biežu atjaunināšanu, pamatojoties uz vienu vai nelielu apmācību piemēru partiju, padarot to daudz ātrāku nekā gradienta nolaišanās lielām datu kopām.
-
Tomēr trokšņaino atjauninājumu dēļ SGD ir lielākas svārstības, un tas ne vienmēr saplūst līdz absolūtajam minimumam; tas saplūst apgabalā, kas ir tuvu minimumam, svārstoties ap to.
Kad lietot vienu pār otru:
-
Gradienta nolaišanās (GD): tas ir piemērots ja datu kopa ir salīdzinoši maza un var ievietot atmiņā. Ja izmaksu funkcija ir vienmērīga un labi darbojas, GD var efektīvi konverģēt līdz minimumam.
-
Stohastiskā gradienta nolaišanās (SGD): tas ir vēlams, ja darbojat ar lielām datu kopām, kur gradientu aprēķināšana visai datu kopai kļūst skaitļošanas ziņā dārga. Tas ir noderīgi arī gadījumos, kad izmaksu funkcijai ir daudz vietējo minimumu, jo SGD troksnis atjauninājumos var palīdzēt izvairīties no sekliem vietējiem minimumiem. Turklāt SGD tiek parasti izmantots neironu tīklu apmācībā to plašo datu kopu un augstas dimensijas parametru telpu dēļ.
Turklāt praksē bieži tiek izmantotas tādas variācijas kā mini-partijas gradienta nolaišanās, kas līdzsvaro gan GD, gan SGD priekšrocības, ņemot vērā katra atjauninājuma datu apakškopu. Izvēle starp šiem algoritmiem bieži ir atkarīga no skaitļošanas resursiem, datu kopas lieluma un konkrētās problēmas īpašībām.