Grunnleggende AI
Hva er Backpropagation?
Hva er Backpropagation?
Dype lÃĶringsystemer kan lÃĶre ekstremt komplekse mÃļnster, og de gjÃļr dette ved ÃĨ justere vektene sine. Hvordan justeres vektene i et dypt neuralt nettverk nÃļyaktig? De justeres gjennom en prosess som kalles backpropagation. Uten backpropagation ville dype neurale nettverk ikke kunne utfÃļre oppgaver som ÃĨ gjenkjenne bilder og tolke naturlig sprÃĨk. Ã forstÃĨ hvordan backpropagation fungerer er kritisk for ÃĨ forstÃĨ dype neurale nettverk generelt, sÃĨ la oss diskutere backpropagation og se hvordan prosessen brukes til ÃĨ justere en nettverks vekter.
Backpropagation kan vÃĶre vanskelig ÃĨ forstÃĨ, og beregningene som brukes til ÃĨ utfÃļre backpropagation kan vÃĶre ganske komplekse. Denne artikkelen vil prÃļve ÃĨ gi deg en intuitiv forstÃĨelse av backpropagation, ved ÃĨ bruke lite kompleks matematikk. Likevel er noen diskusjon om matematikken bak backpropagation nÃļdvendig.
MÃĨlet med Backpropagation
La oss starte med ÃĨ definere mÃĨlet med backpropagation. Vektene i et dypt neuralt nettverk er styrken pÃĨ forbindelsene mellom enhetene i et neuralt nettverk. NÃĨr det neurale nettverket etableres, gjÃļres antagelser om hvordan enhetene i ett lag er koblet til lagene som er koblet til det. NÃĨr dataene flyter gjennom det neurale nettverket, beregnes vektene og antagelser gjÃļres. NÃĨr dataene nÃĨr det siste laget i nettverket, gjÃļres en prediksjon om hvordan egenskapene er relatert til klassene i datasettet. Forskjellen mellom de predikerte verdiene og de faktiske verdiene er tapet/feilen, og mÃĨlet med backpropagation er ÃĨ redusere tapet. Dette oppnÃĨs ved ÃĨ justere vektene i nettverket, og gjÃļre antagelsene mer lik de faktiske relasjonene mellom inndata-egenskapene.
Trening av et Dypt Neuralt Nettverk
FÃļr backpropagation kan utfÃļres pÃĨ et neuralt nettverk, mÃĨ den vanlige/forover-trÃĶningspassen av et neuralt nettverk utfÃļres. NÃĨr et neuralt nettverk opprettes, initialiseres en sett med vekter. Verdiene av vektene vil bli endret mens nettverket trenes. Den forover-trÃĶningspassen av et neuralt nettverk kan betraktes som tre separate trinn: neuron-aktivitet, neuron-overfÃļring og forover-propagasjon.
NÃĨr du trener et dypt neuralt nettverk, mÃĨ du bruke flere matematiske funksjoner. Neuroner i et dypt neuralt nettverk bestÃĨr av inndata og en aktiveringsfunksjon, som bestemmer verdien som er nÃļdvendig for ÃĨ aktivere noden. Aktiveringsverdien til en neuron beregnes med flere komponenter, og er en vektet sum av inndataene. Vekt- og inndata-verdiene avhenger av indeksen til nodene som brukes til ÃĨ beregne aktiveringsverdien. En annen verdi mÃĨ ogsÃĨ tas i betraktning nÃĨr aktiveringsverdien beregnes, en bias-verdi. Bias-verdier varierer ikke, sÃĨ de multipliseres ikke sammen med vekten og inndataene, men legges bare til. Dette betyr at fÃļlgende ligning kan brukes til ÃĨ beregne aktiveringsverdien:
Aktivering = sum(vekt * inndata) + bias
Etter at neuronen er aktivert, brukes en aktiveringsfunksjon til ÃĨ bestemme hva utgangen av den faktiske utgangen til neuronen skal vÃĶre. Forskjellige aktiveringsfunksjoner er optimale for forskjellige lÃĶringsoppgaver, men vanligvis brukte aktiveringsfunksjoner inkluderer sigmoid-funksjonen, Tanh-funksjonen og ReLU-funksjonen.
NÃĨr utgangene til neuronen er beregnet ved ÃĨ kjÃļre aktiveringsverdien gjennom den Ãļnskede aktiveringsfunksjonen, er forover-propagasjon gjort. Forover-propagasjon er bare ÃĨ ta utgangene fra ett lag og gjÃļre dem til inndata for det neste laget. De nye inndataene brukes deretter til ÃĨ beregne de nye aktiveringsfunksjonene, og utgangen av denne operasjonen sendes videre til det neste laget. Denne prosessen fortsetter helt til slutten av det neurale nettverket.
Backpropagation i Nettverket
Prosessenen med backpropagation tar imot de endelige beslutningene fra en modells trÃĶningspass, og deretter bestemmer den feilene i disse beslutningene. Feilene beregnes ved ÃĨ kontrastere utgangene/beslutningene til nettverket og de forventede/Ãļnskede utgangene til nettverket.
NÃĨr feilene i nettverkets beslutninger er beregnet, sendes denne informasjonen tilbake gjennom nettverket, og nettverkets parametre endres underveis. Metoden som brukes til ÃĨ oppdatere vektene i nettverket er basert pÃĨ kalkulus, spesifikt, det er basert pÃĨ kjede-regelen. Likevel er det ikke nÃļdvendig ÃĨ ha kunnskap om kalkulus for ÃĨ forstÃĨ idÃĐen bak backpropagation. Bare vÃĶr klar over at nÃĨr en utgangsverdi er gitt fra en neuron, beregnes skrÃĨningen av utgangsverdien med en overfÃļringsfunksjon, og produserer en avledet utgang. NÃĨr backpropagation utfÃļres, beregnes feilen for en bestemt neuron i henhold til fÃļlgende formel:
feil = (forventet_utgang â faktisk_utgang) * skrÃĨning av neuronnets utgangsverdi
NÃĨr det opereres pÃĨ neuroner i utgangslaget, brukes klassen som forventet verdi. Etter at feilen er beregnet, brukes feilen som inndata for neuroner i skjulte lag, og feilen for dette skjulte laget er den vektete feilen til neuroner i utgangslaget. Feilberegningene reiser bakover gjennom nettverket langs vektene nettverket.
Etter at feilene for nettverket er beregnet, mÃĨ vektene i nettverket oppdateres. Som nevnt tidligere, innebÃĶrer feilberegning ÃĨ bestemme skrÃĨningen av utgangsverdien. Etter at skrÃĨningen er beregnet, kan en prosess som kalles gradient-descent brukes til ÃĨ justere vektene i nettverket. En gradient er en skrÃĨning, hvis vinkel/hellning kan mÃĨles. SkrÃĨning beregnes ved ÃĨ plotte ây overâ eller âstigningâ over âlÃļpâ. I tilfelle det neurale nettverket og feilraten, er âyâ den beregnede feilen, mens âxâ er nettverkets parametre. Nettverkets parametre har en relasjon til de beregnede feilverdiene, og nÃĨr nettverkets vekter justeres, Ãļker eller minker feilen.
âGradient-descentâ er prosessen med ÃĨ oppdatere vektene sÃĨ feilraten minker. Backpropagation brukes til ÃĨ forutsi relasjonen mellom nettverkets parametre og feilraten, og setter opp nettverket for gradient-descent. Trening av et nettverk med gradient-descent innebÃĶrer ÃĨ beregne vektene gjennom forover-propagasjon, backpropagere feilen og deretter oppdatere vektene i nettverket.












