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.
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₂.
Följ hur nätverket lär sig, steg för steg, från slumpmässig gissning till färdigtränad modell.
EnglishBackpropagation ä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:
Till slut vet varje vikt hur stor påverkan just den hade på felet. Det talet kallas felsignal.
För att avgöra hur mycket en vikt bidrog till felet används derivator. En derivata svarar på frågan:
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.
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.
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:
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.
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.
Resultatet för en vikt kallas dess gradient, och den säger två saker:
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.