![Search icon](https://hackernoon.imgix.net/search-new.png?w=19&h=19)
Gradienta nolaišanās ir vispopulārākā optimizācijas metode mašīnmācības (ML) modelēšanā. Algoritms samazina kļūdu starp prognozētajām vērtībām un pamata patiesību. Tā kā metode ņem vērā katru datu punktu, lai izprastu un samazinātu kļūdu, tā veiktspēja ir atkarīga no apmācības datu lieluma. Tādas metodes kā stohastiskā gradienta nolaišanās (SGD) ir izstrādātas, lai uzlabotu aprēķinu veiktspēju, taču uz konverģences precizitātes rēķina.
Stochastic Average Gradient līdzsvaro klasisko pieeju, kas pazīstama kā Full Gradient Descent un SGD, un piedāvā abas priekšrocības. Bet pirms mēs varam izmantot algoritmu, mums vispirms ir jāsaprot tā nozīme modeļa optimizācijā.
Katram ML algoritmam ir saistīta zaudējumu funkcija, kuras mērķis ir samazināt vai uzlabot modeļa veiktspēju. Matemātiski zaudējumus var definēt šādi:
Tā vienkārši ir atšķirība starp faktisko un prognozēto izvadi, un šīs atšķirības samazināšana nozīmē, ka mūsu modelis tuvojas pamata patiesības vērtībām.
Minimizācijas algoritms izmanto gradienta nolaišanos, lai šķērsotu zuduma funkciju un atrastu globālo minimumu. Katrs šķērsošanas solis ietver algoritma svaru atjaunināšanu, lai optimizētu izvadi.
Parastais gradienta nolaišanās algoritms izmanto visu gradientu vidējo vērtību, kas aprēķināta visā datu kopā. Viena apmācības piemēra dzīves cikls izskatās šādi:
Svara atjaunināšanas vienādojums izskatās šādi:
Kur W
apzīmē modeļa svarus un dJ/dW
ir zudumu funkcijas atvasinājums attiecībā pret modeļa svaru. Parastajai metodei ir augsts konverģences ātrums, taču tā kļūst skaitļošanas ziņā dārga, strādājot ar lielām datu kopām, kas ietver miljoniem datu punktu.
SGD metodoloģija paliek tāda pati kā vienkāršam GD, taču tā vietā, lai izmantotu visu datu kopu, lai aprēķinātu gradientus, tā izmanto nelielu partiju no ievades. Metode ir daudz efektīvāka, taču tā var pārāk daudz lēkt ap globālajiem minimumiem, jo katra iterācija mācībām izmanto tikai daļu datu.
Stohastiskā vidējā gradienta (SAG) pieeja tika ieviesta kā vidusceļš starp GD un SGD. Tas atlasa nejaušu datu punktu un atjaunina tā vērtību, pamatojoties uz gradientu šajā punktā un iepriekšējo gradientu vidējo svērto vērtību, kas saglabāta šim konkrētajam datu punktam.
Līdzīgi kā SGD, SAG modelē katru problēmu kā izliektu, diferencējamu funkciju galīgu summu. Jebkurā iterācijā svara atjaunināšanai tas izmanto pašreizējos gradientus un iepriekšējo gradientu vidējo vērtību. Vienādojumam ir šāda forma:
Starp diviem populāriem algoritmiem, pilnu gradientu (FG) un stohastiskā gradienta nolaišanos (SGD), FG algoritmam ir labāks konverģences ātrums, jo tas izmanto visu datu kopu katras iterācijas laikā aprēķinam.
Lai gan SAG struktūra ir līdzīga SGD, tās konverģences līmenis ir salīdzināms ar pilna gradienta pieeju un dažreiz labāks par to. 1. tabulā ir apkopoti rezultāti no eksperimentiem
Neskatoties uz tā apbrīnojamo veiktspēju, sākotnējam SGD algoritmam ir ierosinātas vairākas modifikācijas, lai palīdzētu uzlabot veiktspēju.
Gradienta nolaišanās ir populāra optimizācija, ko izmanto, lai atrastu nodrošināto mērķa funkciju globālos minimumus. Algoritms izmanto mērķa funkcijas gradientu, lai šķērsotu funkcijas slīpumu, līdz tas sasniedz zemāko punktu.
Pilna gradienta nolaišanās (FG) un Stohastiskā gradienta nolaišanās (SGD) ir divas populāras algoritma variācijas. FG izmanto visu datu kopu katras iterācijas laikā un nodrošina augstu konverģences ātrumu ar augstām aprēķina izmaksām. Katrā iterācijā SGD izmanto datu apakškopu, lai palaistu algoritmu. Tas ir daudz efektīvāks, bet ar nenoteiktu konverģenci.
Stohastiskais vidējais gradients (SAG) ir vēl viena variācija, kas nodrošina abu iepriekšējo algoritmu priekšrocības. Tas izmanto iepriekšējo gradientu vidējo vērtību un datu kopas apakškopu, lai nodrošinātu augstu konverģences līmeni ar zemu aprēķinu. Algoritmu var vēl vairāk modificēt, lai uzlabotu tā efektivitāti, izmantojot vektorizāciju un mini partijas.