Hvad betyder Backpropagation?
Backpropagation er en effektiv metode til at beregne gradienter i et neuralt netværk. Først beregnes et output gennem et forward pass. Derefter sammenlignes output med træningsmålet gennem en tabsfunktion, og påvirkningen af parametrene beregnes baglæns gennem netværket.
Metoden bygger på kædereglen fra differentialregning. Den gør det muligt at kombinere lokale afledte fra mange sammenkoblede beregninger. Resultatet fortæller, hvordan små parameterændringer vil påvirke tabet omkring modellens aktuelle tilstand.
Backpropagation er ikke det samme som selve opdateringen af vægtene. En optimizer bruger de beregnede gradienter til at vælge ændringer. Det er heller ikke en forklaring af modellens svar i almindeligt sprog eller en kopi af menneskelig refleksion.
Et træningsskridt har flere dele
Input sendes frem gennem modellen, tabet beregnes, gradienter føres tilbage, og optimizerens opdatering anvendes. Disse trin gentages over træningsmaterialet. Learning rate og andre indstillinger påvirker, hvordan gradienterne omsættes til ændringer.
Under almindelig inferens beregner modellen et resultat med de aktuelle vægte. Den behøver normalt ikke backpropagation for hver brugerforespørgsel. Feedback fra brugeren kan indgå i senere forbedring, men det er en særskilt proces.
Gradienter kræver teknisk kontrol
Meget små eller store gradienter kan gøre træningen vanskelig. Arkitektur, aktiveringsfunktioner, initialisering og træningsindstillinger kan påvirke stabiliteten. Derfor bør udviklere kontrollere mere end blot den endelige score.
Et fejlbehæftet træningsmål kan stadig give matematisk korrekte gradienter. Backpropagation vurderer ikke, om et label er fagligt rigtigt, eller om opgaven er hensigtsmæssig. Datakontrol og evaluering på nye eksempler er derfor fortsat nødvendige.
Et eksempel fra praksis
Forestil jer et team, der tilpasser en billedmodel til emballagekontrol. De første kørsler ændrer ikke kvaliteten, selv om træningsprogrammet gennemfører. Teamet undersøger, om de ønskede lag faktisk er trænbare, og om gradienterne når frem til dem.
Efter rettelsen ændres vægtene som forventet. Det tekniske problem er løst, men modellen skal stadig testes på nye billeder. En fungerende gradientberegning dokumenterer, at træningen kan udføres; den dokumenterer ikke alene, at modellen er klar til at påvirke produktionsbeslutninger.
Typiske faldgruber
- Et gennemført træningsprogram beviser ikke, at de tilsigtede parametre blev opdateret.
- Gradienter kan være numerisk problematiske, selv om enkelte beregninger ser korrekte ud.
- Mekanismen kan fejlagtigt blive omtalt som modellens menneskelige forståelse eller forklaring.
Det skal I afklare
- Er de rigtige lag og parametre med i gradientberegningen?
- Er tab, gradienter og opdateringer numerisk stabile?
- Er træningsresultatet efterfølgende vurderet på nye, relevante eksempler?
Spørgsmål og svar
Bruger en chatbot backpropagation, når den svarer?
Normalt genererer den svaret gennem inferens med eksisterende vægte. Eventuel efterfølgende træning er en anden proces, som afhænger af systemets design og datahåndtering.
Er backpropagation en optimizer?
Nej. Den beregner gradienter. En optimizer, eksempelvis en gradientbaseret opdateringsmetode, bruger dem til at ændre parametrene.
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: Training using backpropagation ↗Baglæns beregning af gradienter i neurale netværk.
- Google: Gradient descent ↗Hvordan gradienter bruges til parameteropdatering.

