paint-brush
Stohastiskā vidējā gradienta izpratneautors@kustarev
31,726 lasījumi
31,726 lasījumi

Stohastiskā vidējā gradienta izpratne

autors Andrey Kustarev4m2024/06/06
Read on Terminal Reader
Read this story w/o Javascript

Pārāk ilgi; Lasīt

Gradienta nolaišanās ir populāra optimizācija, ko izmanto, lai atrastu sniegto 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.

People Mentioned

Mention Thumbnail

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Stohastiskā vidējā gradienta izpratne
Andrey Kustarev HackerNoon profile picture
0-item


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ā.

Mašīnmācīšanās mērķu optimizēšana ar gradienta nolaišanos

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.


Plain Gradient Descent

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.

Stohastiskā gradienta nolaišanās (SGD)

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.

Stohastiskais vidējais gradients

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:



Konverģences līmenis

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 Šmits u.c. al .

Avots: https://arxiv.org/pdf/1309.2388

Papildu modifikācijas

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.


  • Atkārtota svēršana agrīnās iterācijās: SAG konverģence saglabājas lēna dažu pirmo iterāciju laikā, jo algoritms normalizē virzienu ar n (kopējais datu punktu skaits). Tas nodrošina neprecīzu aprēķinu, jo algoritmam vēl nav redzami daudzi datu punkti. Modifikācija iesaka normalizēt ar m, nevis n, kur m ir datu punktu skaits, kas vismaz vienu reizi redzēti līdz konkrētajai iterācijai.
  • Mini partijas: Stohastiskā gradienta pieeja izmanto mini partijas, lai vienlaicīgi apstrādātu vairākus datu punktus. To pašu pieeju var piemērot SAG. Tas ļauj vektorizēt un paralēli, lai uzlabotu datora efektivitāti. Tas arī samazina atmiņas slodzi, kas ir ievērojams izaicinājums SAG algoritmam.
  • Soļa izmēra eksperimentēšana: iepriekš minētais soļa izmērs (116L) nodrošina pārsteidzošus rezultātus, taču autori turpināja eksperimentēt, izmantojot soļa izmēru 1L. Pēdējais nodrošināja vēl labāku konverģenci. Tomēr autori nevarēja iesniegt formālu uzlaboto rezultātu analīzi. Viņi secina, ka ir jāeksperimentē soļa izmērs, lai atrastu konkrētajai problēmai optimālāko.


Pēdējās domas

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.