Gradiëntdaling en stochastische gradiëntdaling (SGD) zijn optimalisatiealgoritmen die gebruikt worden om een functie te minimaliseren, meestal geassocieerd met het minimaliseren van de fout in een model.
De belangrijkste verschillen tussen de twee zijn de volgende:
Gradiëntdaling (GD)
-
Bij standaard gradiëntdaling berekent het algoritme de gradiënt van de kostenfunctie met behulp van de volledige trainingsdataset.
-
De modelparameters worden bijgewerkt door stappen te nemen die evenredig zijn met de negatieve gradiënt van de volledige dataset.
-
Deze methode garandeert convergentie naar het minimum ( gegeven bepaalde voorwaarden zoals convexiteit en geschikte leersnelheden) maar kan rekenkundig duur zijn voor grote datasets.
Stochastische gradiëntdaling (SGD)
-
Bij stochastische gradiëntdaling werkt het algoritme de modelparameters bij met behulp van de gradiënt van de kostenfunctie voor elk individueel trainingsvoorbeeld.
-
Het voert frequente updates uit op basis van enkele of kleine batches trainingsvoorbeelden, waardoor het veel sneller is dan gradiëntdaling voor grote datasets.
-
Door de lawaaierige updates heeft SGD echter meer fluctuaties en convergeert het niet noodzakelijk naar het absolute minimum.
Wanneer gebruik je de ene boven de andere?
-
Gradiëntdaling (GD): Deze methode is geschikt als de dataset relatief klein is en in het geheugen past. Als de kostenfunctie vloeiend is en zich goed gedraagt, kan GD efficiënt naar het minimum convergeren.
-
Stochastische gradiëntdaling (SGD): Deze methode verdient de voorkeur bij grote datasets waarbij het berekenen van gradiënten voor de hele dataset rekenkundig duur wordt. Het is ook nuttig in scenario's waar de kostenfunctie veel lokale minima heeft, omdat SGD's ruis in updates kan helpen om te ontsnappen aan ondiepe lokale minima. Verder wordt SGD vaak gebruikt bij het trainen van neurale netwerken vanwege hun enorme datasets en hoog-dimensionale parameterruimten.
Bovendien worden in de praktijk vaak variaties gebruikt zoals mini-batch gradient descent, die de voordelen van zowel GD als SGD in evenwicht brengt door een subset van de gegevens in beschouwing te nemen voor elke update. De keuze tussen deze algoritmen hangt vaak af van de computermiddelen, de grootte van de dataset en de kenmerken van het specifieke probleem.