paint-brush
Înțelegerea gradientului mediu stocasticde@kustarev
31,912 lecturi
31,912 lecturi

Înțelegerea gradientului mediu stocastic

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

Prea lung; A citi

Coborârea gradientului este o optimizare populară utilizată pentru localizarea minimelor globale ale funcțiilor obiective furnizate. Algoritmul folosește gradientul funcției obiectiv pentru a parcurge panta funcției până când ajunge la punctul cel mai de jos. Full Gradient Descent (FG) și Stochastic Gradient Descent (SGD) sunt două variante populare ale algoritmului. FG utilizează întregul set de date în timpul fiecărei iterații și oferă o rată de convergență ridicată la un cost de calcul ridicat. La fiecare iterație, SGD utilizează un subset de date pentru a rula algoritmul. Este mult mai eficient, dar cu o convergență incertă. Stochastic Average Gradient (SAG) este o altă variantă care oferă beneficiile ambilor algoritmi anteriori. Utilizează media gradienților din trecut și un subset al setului de date pentru a oferi o rată de convergență ridicată cu calcul scăzut. Algoritmul poate fi modificat în continuare pentru a-și îmbunătăți eficiența utilizând vectorizare și mini-loturi.

People Mentioned

Mention Thumbnail

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Înțelegerea gradientului mediu stocastic
Andrey Kustarev HackerNoon profile picture
0-item


Coborârea gradientului este cea mai populară tehnică de optimizare în modelarea învățării automate (ML). Algoritmul minimizează eroarea dintre valorile prezise și adevărul de bază. Deoarece tehnica ia în considerare fiecare punct de date pentru a înțelege și a minimiza eroarea, performanța sa depinde de dimensiunea datelor de antrenament. Tehnici precum Stochastic Gradient Descent (SGD) sunt concepute pentru a îmbunătăți performanța de calcul, dar cu prețul preciziei de convergență.


Stochastic Average Gradient echilibrează abordarea clasică, cunoscută sub numele de Full Gradient Descent și SGD, și oferă ambele beneficii. Dar înainte de a putea folosi algoritmul, trebuie mai întâi să înțelegem semnificația acestuia pentru optimizarea modelului.

Optimizarea obiectivelor de învățare automată cu Gradient Descent

Fiecare algoritm ML are asociată o funcție de pierdere care are ca scop minimizarea sau îmbunătățirea performanței modelului. Din punct de vedere matematic, pierderea poate fi definită ca:


Este pur și simplu diferența dintre rezultatul real și cel prezis, iar minimizarea acestei diferențe înseamnă că modelul nostru se apropie mai mult de valorile de adevăr de bază.


Algoritmul de minimizare folosește coborârea gradientului pentru a parcurge funcția de pierdere și pentru a găsi un minim global. Fiecare pas de traversare implică actualizarea greutăților algoritmului pentru a optimiza rezultatul.


Coborâre în gradient simplu

Algoritmul convențional de coborâre a gradientului utilizează media tuturor gradienților calculati pe întregul set de date. Ciclul de viață al unui singur exemplu de instruire arată astfel:



Ecuația de actualizare a greutății arată astfel:

Unde W reprezintă ponderile modelului și dJ/dW este derivata funcției de pierdere în raport cu greutatea modelului. Metoda convențională are o rată de convergență ridicată, dar devine costisitoare din punct de vedere computațional atunci când se ocupă cu seturi mari de date care cuprind milioane de puncte de date.

Coborâre cu gradient stocastic (SGD)

Metodologia SGD rămâne aceeași cu GD simplu, dar în loc să folosească întregul set de date pentru a calcula gradienții, folosește un lot mic din intrări. Metoda este mult mai eficientă, dar poate sări prea mult în jurul minimelor globale, deoarece fiecare iterație utilizează doar o parte din date pentru învățare.

Gradient mediu stocastic

Abordarea Stochastic Average Gradient (SAG) a fost introdusă ca o cale de mijloc între GD și SGD. Selectează un punct de date aleatoriu și își actualizează valoarea în funcție de gradientul din acel punct și de o medie ponderată a gradienților din trecut stocați pentru acel punct de date anume.


Similar cu SGD, SAG modelează fiecare problemă ca o sumă finită de funcții convexe, diferențiabile. La orice iterație dată, folosește gradienții actuali și media gradienților anteriori pentru actualizarea greutății. Ecuația ia următoarea formă:



Rata de convergență

Între cei doi algoritmi populari, gradient complet (FG) și coborâre a gradientului stocastic (SGD), algoritmul FG are o rată de convergență mai bună, deoarece utilizează întregul set de date în timpul fiecărei iterații pentru calcul.

Deși SAG are o structură similară cu SGD, rata sa de convergență este comparabilă și uneori mai bună decât abordarea cu gradient complet. Tabelul 1 de mai jos rezumă rezultatele experimentelor de Schmidt et. al .

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

Modificări ulterioare

În ciuda performanței sale uimitoare, au fost propuse mai multe modificări la algoritmul SGD original pentru a ajuta la îmbunătățirea performanței.


  • Reponderare în iterațiile timpurii: convergența SAG rămâne lentă în timpul primelor câteva iterații, deoarece algoritmul normalizează direcția cu n (numărul total de puncte de date). Aceasta oferă o estimare inexactă, deoarece algoritmul nu a văzut încă multe puncte de date. Modificarea sugerează normalizarea prin m în loc de n, unde m este numărul de puncte de date văzute cel puțin o dată până la respectiva iterație.
  • Mini-loturi: Abordarea Stochastic Gradient utilizează mini-loturi pentru a procesa mai multe puncte de date simultan. Aceeași abordare poate fi aplicată pentru SAG. Acest lucru permite vectorizarea și paralelizarea pentru o eficiență îmbunătățită a computerului. De asemenea, reduce încărcarea memoriei, o provocare proeminentă pentru algoritmul SAG.
  • Experimentarea pasului: dimensiunea pasului menționată mai devreme (116L) oferă rezultate uimitoare, dar autorii au experimentat în continuare folosind dimensiunea pasului de 1L. Acesta din urmă a oferit o convergență și mai bună. Cu toate acestea, autorii nu au putut prezenta o analiză oficială a rezultatelor îmbunătățite. Ei concluzionează că dimensiunea pasului ar trebui experimentată pentru a găsi cea optimă pentru problema specifică.


Gânduri finale

Coborârea gradientului este o optimizare populară utilizată pentru localizarea minimelor globale ale funcțiilor obiective furnizate. Algoritmul folosește gradientul funcției obiectiv pentru a parcurge panta funcției până când ajunge la punctul cel mai de jos.

Full Gradient Descent (FG) și Stochastic Gradient Descent (SGD) sunt două variante populare ale algoritmului. FG utilizează întregul set de date în timpul fiecărei iterații și oferă o rată de convergență ridicată la un cost de calcul ridicat. La fiecare iterație, SGD utilizează un subset de date pentru a rula algoritmul. Este mult mai eficient, dar cu o convergență incertă.


Stochastic Average Gradient (SAG) este o altă variantă care oferă beneficiile ambilor algoritmi anteriori. Utilizează media gradienților din trecut și un subset al setului de date pentru a oferi o rată de convergență ridicată cu calcul scăzut. Algoritmul poate fi modificat în continuare pentru a-și îmbunătăți eficiența utilizând vectorizare și mini-loturi.