![Search icon](https://hackernoon.imgix.net/search-new.png?w=19&h=19)
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.
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.
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.
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.
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ă:
Î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
Î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.
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.