GrundlÃĶggende AI
Hvad er Backpropagation?
Hvad er Backpropagation?
Dybe lÃĶringssystemer kan lÃĶre ekstremt komplekse mÃļnstre, og de opnÃĨr dette ved at justere deres vÃĶgte. Hvordan justeres vÃĶgtene af et dybt neuralt netvÃĶrk nÃļjagtigt? De justeres gennem en proces kaldet backpropagation. Uden backpropagation ville dybe neurale netvÃĶrk ikke vÃĶre i stand til at udfÃļre opgaver som at genkende billeder og fortolke naturligt sprog. At forstÃĨ, hvordan backpropagation fungerer, er afgÃļrende for at forstÃĨ dybe neurale netvÃĶrk generelt, sÃĨ lad os diskutere backpropagation og se, hvordan processen bruges til at justere en nets vÃĶgte.
Backpropagation kan vÃĶre svÃĶrt at forstÃĨ, og beregningerne, der bruges til at udfÃļre backpropagation, kan vÃĶre ret komplekse. Denne artikel vil forsÃļge at give dig en intuitiv forstÃĨelse af backpropagation, ved at bruge lidt kompleks matematik. Dog er nogen diskussion af matematikken bag backpropagation nÃļdvendig.
MÃĨlet med Backpropagation
Lad os starte med at definere mÃĨlet med backpropagation. VÃĶgtene af et dybt neuralt netvÃĶrk er styrken af forbindelserne mellem enhederne i et neuralt netvÃĶrk. NÃĨr neuralt netvÃĶrk er etableret, gÃļres antagelser om, hvordan enhederne i et lag er forbundet med de lag, der er forbundet med det. NÃĨr dataene bevÃĶger sig gennem neuralt netvÃĶrk, beregnes vÃĶgtene og gÃļres antagelser. NÃĨr dataene nÃĨr det sidste lag af netvÃĶrket, gÃļres en forudsigelse om, hvordan funktionerne er relateret til klasserne i datasÃĶttet. Forskellen mellem de forudsagte vÃĶrdier og de faktiske vÃĶrdier er tab/fejl, og mÃĨlet med backpropagation er at reducere tabet. Dette opnÃĨs ved at justere vÃĶgtene af netvÃĶrket, sÃĨ antagelserne bliver mere som de sande relationer mellem inputfunktionerne.
TrÃĶning af et Dybt Neuralt NetvÃĶrk
FÃļr backpropagation kan udfÃļres pÃĨ et neuralt netvÃĶrk, skal den normale/forwards trÃĶningsgang af et neuralt netvÃĶrk udfÃļres. NÃĨr et neuralt netvÃĶrk oprettes, initialiseres en sÃĶt af vÃĶgte. VÃĶrdien af vÃĶgtene vil blive ÃĶndret, mens netvÃĶrket trÃĶnes. Den forwards trÃĶningsgang af et neuralt netvÃĶrk kan opfattes som tre separate trin: neuronaktivering, neurontransfer og forwardspropagation.
NÃĨr vi trÃĶner et dybt neuralt netvÃĶrk, har vi brug for at bruge flere matematiske funktioner. Neuroner i et dybt neuralt netvÃĶrk bestÃĨr af indgÃĨende data og en aktiveringsfunktion, der bestemmer vÃĶrdien, der er nÃļdvendig for at aktivere noden. AktiveringsvÃĶrdien af en neuron beregnes med flere komponenter, der er en vÃĶgtet sum af input. VÃĶgtene og inputvÃĶrdierne afhÃĶnger af indekset for noden, der bruges til at beregne aktiveringen. En anden vÃĶrdi skal ogsÃĨ tages i betragtning, nÃĨr aktiveringsvÃĶrdien beregnes, en biasvÃĶrdi. BiasvÃĶrdierne ÃĶndrer sig ikke, sÃĨ de bliver ikke multipliceret sammen med vÃĶgten og input, de bliver bare tilfÃļjet. Alt dette betyder, at fÃļlgende ligning kan bruges til at beregne aktiveringsvÃĶrdien:
Aktivering = sum(vÃĶgt * input) + bias
Efter neuronen er aktiveret, bruges en aktiveringsfunktion til at bestemme, hvad outputtet af neuronen vil vÃĶre. Forskellige aktiveringsfunktioner er optimale for forskellige lÃĶringsopgaver, men almindelige aktiveringsfunktioner inkluderer sigmoidfunktionen, Tanh-funktionen og ReLU-funktionen.
NÃĨr outputtet af neuronen er beregnet ved at kÃļre aktiveringsvÃĶrdien gennem den Ãļnskede aktiveringsfunktion, udfÃļres forwardspropagation. Forwardspropagation er bare at tage outputtet af et lag og gÃļre det til input for det nÃĶste lag. De nye input bruges til at beregne de nye aktiveringsfunktioner, og outputtet af denne operation overfÃļres til det fÃļlgende lag. Denne proces fortsÃĶtter hele vejen gennem neuralt netvÃĶrk.
Backpropagation i NetvÃĶrket
Processen med backpropagation tager de endelige beslutninger fra en models trÃĶningsgang og bestemmer derefter fejlene i disse beslutninger. Fejlene beregnes ved at kontrastere outputtet/beslutningerne fra netvÃĶrket og de forventede/Ãļnskede output fra netvÃĶrket.
NÃĨr fejlene i netvÃĶrkets beslutninger er beregnet, backpropageres denne information gennem netvÃĶrket, og parametrene i netvÃĶrket ÃĶndres undervejs. Metoden, der bruges til at opdatere vÃĶgtene af netvÃĶrket, er baseret pÃĨ kalkulus, specifikt pÃĨ kÃĶderegel. Dog er en forstÃĨelse af kalkulus ikke nÃļdvendig for at forstÃĨ idÃĐen bag backpropagation. Du skal bare vide, at nÃĨr en outputvÃĶrdi er givet fra en neuron, beregnes skrÃĨningen af outputvÃĶrdien med en transferfunktion, der producerer en afledt output. NÃĨr backpropagation udfÃļres, beregnes fejlen for en bestemt neuron i henhold til fÃļlgende formel:
fejl = (forventet_output â faktisk_output) * skrÃĨning af neuronnets outputvÃĶrdi
NÃĨr der opereres pÃĨ neuronerne i outputlaget, bruges klassenvÃĶrdien som den forventede vÃĶrdi. Efter at fejlen er beregnet, bruges fejlen som input for neuronerne i det skjulte lag, hvilket betyder, at fejlen for dette skjulte lag er den vÃĶgtede fejl af neuronerne i outputlaget. Fejlberegningerne rejser baglÃĶns gennem netvÃĶrket langs vÃĶgtene.
Efter at fejlene for netvÃĶrket er beregnet, skal vÃĶgtene i netvÃĶrket opdateres. Som nÃĶvnt tidligere, indebÃĶrer fejlberegning at bestemme skrÃĨningen af outputvÃĶrdien. Efter at skrÃĨningen er beregnet, kan en proces kaldet gradient descent bruges til at justere vÃĶgtene i netvÃĶrket. En gradient er en skrÃĨning, hvis vinkel/stÃļrrelse kan mÃĨles. SkrÃĨning beregnes ved at plotte ây overâ eller âstigningâ over âlÃļbâ. I tilfÃĶldet af neuralt netvÃĶrk og fejlraten er âyâ den beregnede fejl, mens âxâ er netvÃĶrkets parametre. NetvÃĶrkets parametre har en relation til de beregnede fejlvÃĶrdier, og nÃĨr netvÃĶrkets vÃĶgte justeres, Ãļges eller formindskes fejlen.
âGradient descentâ er processen med at opdatere vÃĶgtene, sÃĨ fejlraten formindskes. Backpropagation bruges til at forudsige relationen mellem neuralt netvÃĶrks parametre og fejlraten, hvilket sÃĶtter netvÃĶrket op til gradient descent. TrÃĶning af et netvÃĶrk med gradient descent indebÃĶrer at beregne vÃĶgtene gennem forwardspropagation, backpropagere fejlen og derefter opdatere vÃĶgtene af netvÃĶrket.












