Descens del gradient i descens del gradient estocàstic (SGD) són algoritmes d'optimització que s'utilitzen per minimitzar una funció, normalment associats a minimitzar l'error en un model.
Les principals diferències entre ambdues són les següents:
Descens del gradient (GD)
-
En el descens de gradient estàndard, l'algoritme calcula el gradient de la funció de cost utilitzant tot el conjunt de dades d'entrenament.
-
Actualitza els paràmetres del model fent passos proporcionals al negatiu del gradient de tot el conjunt de dades.
-
Aquest mètode garanteix la convergència al mínim (tenint en compte certes condicions com la convexitat i les taxes d'aprenentatge adequades), però pot ser computacionalment costós per a grans conjunts de dades.
Descens del gradient estocàstic (SGD)
-
En el descens de gradient estocàstic, l'algoritme actualitza els paràmetres del model utilitzant el gradient de la funció de cost per a cada exemple d'entrenament individual.
-
Fa actualitzacions freqüents basades en lots únics o petits d'exemples d'entrenament, el que el fa molt més ràpid que el descens del gradient per a grans conjunts de dades.
-
Tanmateix, a causa de les seves actualitzacions sorolloses, SGD té més fluctuacions i no necessàriament convergeix al mínim absolut; convergeix a una zona propera al mínim, oscil·lant al seu voltant.
Quan utilitzar un sobre l'altre:
-
Gradient Descent (GD): és adequat quan el conjunt de dades és relativament petit i pot cabre a la memòria. Si la funció de costos és suau i es comporta bé, GD pot convergir al mínim de manera eficient.
-
Descens del gradient estocàstic (SGD): és preferible quan es tracta de grans conjunts de dades on la computació de gradients per a tot el conjunt de dades es fa costosa computacionalment. També és útil en escenaris en què la funció de cost té molts mínims locals, ja que el soroll de SGD a les actualitzacions pot ajudar a escapar de mínims locals poc profunds. A més, SGD s'utilitza habitualment en l'entrenament de xarxes neuronals a causa dels seus amplis conjunts de dades i espais de paràmetres d'alta dimensió.
A més, a la pràctica s'utilitzen sovint variacions com ara descens de gradient de mini-lot, que equilibra els beneficis tant de GD com de SGD tenint en compte un subconjunt de dades per a cada actualització. L'elecció entre aquests algorismes sovint depèn dels recursos computacionals, la mida del conjunt de dades i les característiques específiques del problema.