Gradiëntdaling en stochastische gradiëntdaling in machinaal leren
Bijgewerkt op June 22, 2024 2 Minuten lezen

Gradientdaling en stochastische gradiëntdaling (SGD) zijn optimalisatiealgoritmen die worden gebruikt om een functie te minimaliseren, doorgaans geassocieerd met het minimaliseren van de fout in een model.
De belangrijkste verschillen tussen de twee zijn de volgende:
Gradient afdaling (GD)
-
Bij standaard gradiëntdaling berekent het algoritme de gradiënt van de kostenfunctie met behulp van de volledige trainingsdataset.
-
Het werkt de modelparameters bij door stappen te nemen die evenredig zijn met het negatieve van de gradiënt van de gehele dataset.
-
Deze methode garandeert convergentie tot het minimum (gezien bepaalde voorwaarden zoals convexiteit en geschikte leersnelheden), maar kan rekentechnisch duur zijn voor grote datasets.
Stochastische gradiëntdaling (SGD)
-
Bij stochastische gradiëntafdaling werkt het algoritme de modelparameters bij met behulp van de gradiënt van de kostenfunctie voor elk individueel trainingsvoorbeeld.
-
Het maakt regelmatig updates op basis van enkele of kleine batches trainingsvoorbeelden, waardoor het veel sneller is dan gradiëntdaling voor grote datasets.
-
Vanwege de luidruchtige updates kent SGD echter meer fluctuaties en convergeert deze niet noodzakelijkerwijs naar het absolute minimum; het convergeert naar een gebied dichtbij het minimum en oscilleert eromheen.
Wanneer gebruik je de een boven de ander:
-
Gradient Descent (GD): het is geschikt wanneer de dataset relatief klein is en in het geheugen past. Als de kostenfunctie soepel en braaf verloopt, kan GD efficiënt naar het minimum convergeren.
-
Stochastic Gradient Descent (SGD): dit verdient de voorkeur wanneer het omgaan met grote datasets waarbij het berekenen van gradiënten voor de gehele dataset rekentechnisch duur wordt. Het is ook nuttig in scenario’s waarin de kostenfunctie veel lokale minima heeft, omdat de ruis van SGD in updates kan helpen ontsnappen aan ondiepe lokale minima. Bovendien wordt SGD veelgebruikt bij het trainen van neurale netwerken vanwege hun enorme datasets en hoogdimensionale parameterruimten.
Bovendien worden in de praktijk vaak variaties gebruikt zoals mini-batch gradiëntdaling, waarbij de voordelen van zowel GD als SGD in evenwicht worden gebracht door voor elke update een subset van de gegevens in aanmerking te nemen. De keuze tussen deze algoritmen hangt vaak af van de computerbronnen, de omvang van de dataset en de kenmerken van het specifieke probleem.