Träna ett neuralt nätverk

Här får du se hur ett neuralt nätverk faktiskt lär sig. Vi följer ett enda träningsexempel hela vägen runt: nätverket gissar, vi mäter hur fel gissningen var, felet skickas bakåt genom nätverket, och varje vikt justeras en aning.

1
Framåtpass
Indata skickas genom nätverket, som gör en gissning.
2
Förlust
Vi jämför nätverkets gissning med det rätta svaret och räknar ut hur stort felet är.
3
Backpropagation
Felet skickas bakåt genom nätverket, så att varje vikt får veta hur mycket den bidrog till det.
4
Uppdatera
Varje vikt justeras en aning i den riktning som minskar felet.

Vad ska nätverket lära sig?

Välj en logisk grind. Nätverket ska lära sig att ge rätt svar för alla fyra kombinationerna av ingångarna x₁ och x₂.

AI-aktiviteter

Träna ett neuralt nätverk

Följ hur nätverket lär sig, steg för steg, från slumpmässig gissning till färdigtränad modell.

English
Avancerat

Vad gör egentligen backpropagation?

Felet fördelas bakåt

Backpropagation är metoden som talar om hur varje vikt ska ändras för att nätverket ska gissa bättre nästa gång.

När nätverket har gjort sin gissning räknar vi först ut hur stort felet blev. Sedan arbetar vi bakåt genom nätverket. Vi börjar vid utgången och frågar:

Hur mycket bidrog den här neuronen till felet?
Och sedan: hur mycket bidrog neuronen före den?

Till slut vet varje vikt hur stor påverkan just den hade på felet. Det talet kallas felsignal.

Derivator: hur känsligt är felet?

För att avgöra hur mycket en vikt bidrog till felet används derivator. En derivata svarar på frågan:

Om vikten ökas en liten aning, hur mycket större eller mindre blir felet?

I varje beräkningssteg är z (neuronens viktade summa), a (neuronens aktivering, alltså summan efter sigmoid), ŷ (nätverkets gissning) och L (förlusten, hur fel gissningen blev) konkreta tal, uträknade för en given ingång och givna vikter. Det som deriveras är inte de enskilda talen, utan sambandet mellan dem. Håller man alla andra värden fasta och låter w variera framträder en kurva, och derivatan är lutningen på kurvan i just den punkt där vikten befinner sig. Det är inte höjden som mäts, utan hur brant det lutar där.

Kedjeregeln

En vikt påverkar inte felet direkt. Den påverkar först nästa neuron, den neuronen påverkar nästa, och till slut nätverkets utgång, som i sin tur påverkar förlusten.

ViktNeuronUtgångFörlust

För att räkna ut hur mycket vikten påverkar förlusten måste vi ta hänsyn till alla steg i kedjan. Därför multipliceras de lokala lutningarna med varandra:

Hur vikten påverkar neuronen×Hur neuronen påverkar utgången×Hur utgången påverkar förlusten= Hur vikten påverkar förlusten

Varje led i kedjan har sin egen färdiga formel. Skrivsättet ∂A/∂B läses: hur mycket A ändras när B ändras en aning.

Hur förlusten ändras när gissningen ändrasHur aktiveringen ändras när summan ändrasHur summan ändras när vikten ändras

Kedjeregeln multiplicerar ihop de här lutningarna, steg för steg bakåt genom nätverket. Det är precis det Fas 3 · Backprop gör, och det är därför signalen går baklänges: framåtpasset räknar ut nätverkets svar, backpropagation räknar ut ansvaret för felet.

Gradienten talar om vad som ska göras

Resultatet för en vikt kallas dess gradient, och den säger två saker:

Riktning – ska vikten ökas eller minskas?
Storlek – hur mycket bör vikten ändras?

Ju brantare kurvan är, desto känsligare är förlusten för ändringar i vikten. Längst ner i dalen är lutningen noll, och där går det inte att minska förlusten mer genom att flytta vikten åt något håll. Förlusten är alltså som minst i botten av kurvan.

Att låta varje vikt ta ett litet steg nedför sin egen kurva, i motsatt riktning mot gradienten, och sedan göra om det varv efter varv, kallas gradientnedstigning. Det är precis det som händer i Fas 4 · Uppdatera vikter, och det är så nätverket sakta tar sig ner mot dalens botten.

Testa själv: lutningen vid en punkt
w
w
L(w)
Lutning dL/dw
Den gula linjen är tangenten, alltså kurvans lutning i just den punkten. Det är den siffran som är derivatan. Den gröna pilen visar vilken väg gradientnedstigning knuffar w: nedför backen, mot botten av dalen.