Hvad betyder Gradient descent?
Gradient descent er en måde at tilpasse en model gennem gentagne små ændringer. Metoden beregner, hvordan tabet påvirkes af ændringer i parametrene, og bevæger dem i den modsatte retning af gradienten. Learning rate bestemmer størrelsen af skridtet.
Man kan tænke på en bevægelse ned ad et landskab, men billedet er kun en metafor. Virkelige modeller kan have mange parametre og komplekse tabsflader. Metoden giver ikke en generel garanti for at finde den globalt bedste løsning i enhver model.
Gradienten kan beregnes ud fra hele træningssættet eller mindre dele. Mini-batches er almindelige, fordi de giver en praktisk afvejning mellem beregning, hukommelse og opdateringer. Valgene påvirker træningsforløbet og skal ses sammen.
Skridtstørrelsen kan ændre hele forløbet
En for stor learning rate kan få træningen til at svinge eller blive ustabil. En meget lille værdi kan gøre fremskridtene langsomme. Et træningsforløb bør derfor følges med relevante kurver og kontrol af, at beregningerne er numerisk stabile.
Optimeringsvarianter kan tilpasse opdateringerne på forskellige måder. Det ændrer ikke det grundlæggende behov for at vælge en passende tabsfunktion og kontrollere kvaliteten på data, som ikke indgår i vægttilpasningen.
Lavere tab er ikke hele projektets mål
Gradient descent optimerer den funktion, udvikleren har valgt. Hvis funktionen kun delvist repræsenterer virksomhedens behov, kan modellen blive bedre til træningsmålet uden at gøre den faktiske arbejdsgang bedre.
Følg derfor både optimeringen og de praktiske kvalitetsmål. Gem indstillinger, initialisering og dataversion, så et træningsresultat kan undersøges og sammenlignes. Stop eller genbesøg forsøget, hvis tabet bliver ugyldigt eller udvikler sig på en uforklarlig måde.
Et eksempel fra praksis
Et illustrativt projekt træner en regressionsmodel til at estimere energiforbrug. Teamet opdager, at træningstabet svinger kraftigt mellem opdateringer. Før de skifter til en større model, undersøger de inputskala og learning rate.
En mere passende indstilling giver et stabilt træningsforløb. Derefter vurderes modellen på senere målinger og sammenlignes med en sæsonreference. Stabil optimering er dermed et nødvendigt teknisk skridt, mens den faktiske prognosekvalitet afgør, om modellen er nyttig.
Typiske faldgruber
- En ustabil træning kan blive fejltolket som behov for flere data eller større model.
- Et faldende træningstab kan skjule dårlig generalisering.
- En praktisk metafor om at gå ned ad en bakke kan give et forkert indtryk af garanteret optimalitet.
Det skal I afklare
- Er tabsfunktionen egnet til den konkrete opgave?
- Er opdateringer og træningskurver stabile under de valgte indstillinger?
- Forbedres kvaliteten også på relevant valideringsmateriale?
Spørgsmål og svar
Er gradient descent det samme som backpropagation?
Nej. Backpropagation bruges til effektivt at beregne gradienter gennem et netværk. Gradient descent bruger gradienterne til at opdatere parametrene.
Skal alle modeller bruge gradient descent?
Nej. Forskellige modelfamilier har forskellige træningsmetoder. Gradientbaseret optimering er særlig vigtig for neurale netværk og mange andre differentiable modeller.
Kilder og videre læsning
De tekniske begreber bygger på nedenstående kilder. Eksemplerne er illustrative og viser, hvordan I kan arbejde med emnet.
- Google: Gradient descent ↗Gradienter og iterative parameteropdateringer.
- Google: Hyperparameters ↗Learning rate og valg i træningsprocessen.

