Backpropagation i neurale netværk: ML-algoritme og eksempel

⚡ Smart opsummering

Backpropagation er den centrale træningsalgoritme i et neuralt netværk, der finjusterer hver vægt fra den fejl, der blev målt i den foregående epoch, så modellen bedre generaliserer på usete data, ét lag ad gangen.

  • 🔘 Kerneidé: Kædereglen giver tabets gradient for hver vægt, ét lag ad gangen.
  • ☑️ Træningsløkke: Fremadrettet aflevering, mål fejlen, forplant den bagud, opdater vægtene, gentag.
  • To varianter: Statisk backpropagation kortlægger fast input til fast output; tilbagevendende backpropagation stabiliserer sig først og udbreder sig derefter.
  • 🧪 Hvorfor det er vigtigt: Gradientnedgang forbliver kun praktisk for dybe netværk, fordi gradienter genbruges lag for lag.
  • 🛠️ Kendte grænser: Ydeevnen afhænger af inputkvaliteten, og støjende prøver forvrænger de lærte vægte.
  • 🇧🇷 Gradienttilstand: Multiplikation af mange små derivater forårsager forsvindende gradienter; ReLU og normalisering reducerer effekten.

Tilbageudbredelse i neurale netværk: maskinlæringsalgoritme

Hvad er et kunstigt neuralt netværk?

Et kunstigt neuralt netværk er en gruppe af forbundne I/O-enheder, hvor hver forbindelse bærer en vægt. Det hjælper dig med at bygge prædiktive modeller fra store databaser, og designet låner sit ordforråd fra det menneskelige nervesystem. Netværk af denne art understøtter billedforståelse, maskinlæring, computertale og mange andre mønstergenkendelsesopgaver.

Backpropagation er den algoritme, der bestemmer, hvad disse vægte skal være, så de to ideer læses bedst sammen.

Hvad er Backpropagation?

Backpropagation er essensen af ​​træning af neurale netværk. Det er metoden til finjustering af vægtene i et neuralt netværk baseret på den fejlrate, der blev opnået i den foregående epoch (dvs. iteration). Korrekt justering af vægtene giver dig mulighed for at reducere fejlrater og gøre modellen pålidelig ved at øge dens generalisering.

Tilbageudbredelse i neurale netværk er en kort form for "udbredelse af fejl bagud." Det er en standardmetode til træning af kunstige neurale netværk. Denne metode hjælper med at beregne gradienten af ​​en tabsfunktion med hensyn til alle vægtene i netværket.

To begreber forveksles ofte. Kun tilbagepropagering beregner gradienten; en optimerer som gradient descent er det, der faktisk ændringer vægtene ved hjælp af den gradient. Næsten alle moderne frameworks udfører backpropagation automatisk via deres autodiff-motor.

Hvordan Backpropagation Algoritme virker

Bagudbredelsesalgoritmen i neurale netværk beregner gradienten af ​​tabsfunktionen for en enkelt vægt ved hjælp af kædereglen. Den beregner effektivt ét lag ad gangen, i modsætning til en naiv direkte beregning. Den beregner gradienten, men den definerer ikke, hvordan gradienten bruges. Den generaliserer beregningen i deltareglen.

Kædereglen er det, der gør dette effektivt. Indflydelsen af ​​én tidlig vægt på det endelige tab er et produkt af de lokale derivater langs vejen til outputtet, så algoritmen cacher hvert lags mellemresultat på vej tilbage og genbruger det for hver vægt i laget nedenunder i stedet for at genberegne hele netværket pr. vægt.

Overvej følgende eksempeldiagram over et neuralt netværk med tilbageudbredelse for at forstå det. tracer én fuld gennemgang: input kommer ind i venstre side, aktiveringer bevæger sig fremad gennem det skjulte lag til output, og den målte fejl bevæger sig derefter tilbage langs de samme forbindelser for at korrigere vægtene.

Diagram over bagudrettet propageringsalgoritme, der viser fremadrettet gennemløb af input-, skjulte og outputlag samt fejlen, der bevæger sig bagud

  1. Indgange X ankommer gennem den forudforbundne vej
  2. Input modelleres ved hjælp af reelle vægte W. Vægtene er normalt tilfældigt udvalgt.
  3. Beregn output for hver neuron fra inputlaget, til de skjulte lag, til outputlaget.
  4. Beregn fejlen i outputtene:
    ErrorB= Actual Output – Desired Output
    
  5. Rejs tilbage fra outputlaget til det skjulte lag for at justere vægtene, så fejlen mindskes.
  6. Fortsæt med at gentage processen, indtil det ønskede resultat er opnået.

Mange lærebøger skriver den samme mængde som ønsket minus faktiskBegge konventioner fungerer, fordi fortegnet absorberes, når optimeringsdelentracts gradienten, forudsat at du holder én konvention i hele netværket.

I praksis er fejlen sjældent en bar subtracEn tabsfunktion, såsom middelkvadratfejl til regression eller krydsentropi til klassificering, konverterer forskellene pr. output til det enkelte tal, hvis gradienttilbagepropagation faktisk beregnes.

Hvorfor har vi brug for backpropagation?

De mest fremtrædende fordele ved Backpropagation er:

  • Backpropagation er hurtig, enkel og nem at programmere
  • Den tilføjer ingen nye parametre; den tuning, du foretager, tilhører optimizeren og netværket, primært læringshastigheden og antallet af input.
  • Det er en fleksibel metode, da den ikke kræver forudgående viden om netværket
  • Det er en standardmetode, der generelt fungerer godt
  • Det behøver ikke nogen særlig omtale af funktionerne i funktionen for at blive lært.

Kort sagt, uden en effektiv måde at opnå gradienter på, ville det være beregningsmæssigt upraktisk at træne noget dybere end et enkelt lag.

Hvad er et feed-forward-netværk?

Et feedforward neuralt netværk er et kunstigt neuralt netværk, hvor noderne aldrig danner en cyklus. Denne type neurale netværk har et inputlag, skjulte lag og et outputlag. Det er den første og enkleste type kunstigt neurale netværk.

Sondringen er vigtig her, fordi den fremadrettede passage af backpropagation netop er en feedforward-passage; kun kører fejlkorrektionen i den modsatte retning.

Typer af backpropagation netværk

To typer backpropagation netværk er:

  • Statisk tilbage-udbredelse
  • Tilbagevendende Backpropagation

Statisk tilbage-udbredelse

Det er en slags backpropagation-netværk, der producerer et kortping af statisk input til statisk output. Det er nyttigt til at løse problemer med statisk klassificering, såsom optisk tegngenkendelse.

Tilbagevendende Backpropagation

Tilbagevendende tilbageudbredelse i data mining føres fremad, indtil en fast værdi er opnået. Derefter beregnes fejlen og forplantes bagud.

Hovedforskellen mellem de to metoder er: at kortetping er hurtig i statisk tilbageudbredelse, mens den er ikke-statisk i tilbagevendende tilbageudbredelse. Tabellen nedenfor viser de to side om side.

Kriterium Statisk tilbage-udbredelse Tilbagevendende tilbagepropagering
Kortping Statisk input til statisk output Ikke-statisk; netværket stabiliserer sig, før fejlen bruges
Speed Hurtig, én gennemgang pr. prøve Langsommere, aktiveringen gentages, indtil den stabiliserer sig
Netværksform Forward-feedback, ingen cyklusser Indeholder feedbackforbindelser
Typisk brug Optisk tegngenkendelse, klassificering med fast størrelse Problemer hvis output afhænger af en stabiliseret indre tilstand

Historien om tilbagepropagation

  • I 1961 blev det grundlæggende koncept for kontinuerlig backpropagation udledt i forbindelse med kontrolteori af J. Kelly, Henry Arthur og E. Bryson.
  • I 1969 gav Bryson og Ho en flertrins dynamisk systemoptimeringsmetode.
  • I 1970 udgav Seppo Linnainmaa den omvendte tilstand af automatisk differentiering, den beregningsmetode, som moderne backpropagation er bygget på.
  • I 1974 udtalte Werbos muligheden for at anvende dette princip i et kunstigt neuralt netværk.
  • I 1982 bragte Hopfield sin idé om et neuralt netværk.
  • I 1986, ved indsats af David E. Rumelhart, Geoffrey E. Hinton, Ronald J. Williams, vandt tilbagepropagation anerkendelse.
  • I 1989 trænede Yann LeCun og kolleger et konvolutionelt netværk med backpropagation til at læse håndskrevne cifre, en af ​​de første praktiske anvendelser i stor skala.
  • I 1993 var Wan den første person, der vandt en international mønstergenkendelseskonkurrence ved hjælp af tilbageformeringsmetoden.
  • I 2006 genoplivede Hintons arbejde med dybe trosnetværk og lagvis prætræning interessen for træning af dybe netværk, som var gået i stå på grund af forsvindende gradienter.
  • I 2010 analyserede Xavier Glorot og Yoshua Bengio, hvorfor dybe netværk var svære at træne, og introducerede forbedret vægtinitialisering, hvilket sammen med ReLU-aktiveringer gjorde dyb backpropagation praktisk.
  • I 2012 vandt AlexNet (Krizhevsky, Sutskever og Hinton) ImageNet-konkurrencen ved hjælp af GPU-accelereret backpropagation, hvilket udløste det moderne boom inden for deep learning.
  • I 2014 blev Adam-optimereren (Kingma og Ba) introduceret, og den blev hurtigt standardvarianten af ​​gradient-descent, der blev brugt med backpropagation.
  • I 2015 løste batchnormalisering og residualnetværk (ResNet) gradientflowproblemer i meget dybe netværk, hvilket muliggjorde backpropagation gennem hundredvis af lag.
  • I 2015-2017, TensorFlow og PyTorch gjorde automatisk differentiering til en standard softwarefunktion, så gradienter ikke længere behøvede at udledes manuelt.
  • I 2017 blev Transformer-arkitekturen introduceret, og den er trænet end-to-end med backpropagation, ligesom de store sprogmodeller, der er bygget på den.
  • I 2019 modtog Bengio, Hinton og LeCun ACM AM Turing Award for deres arbejde med dybe neurale netværk.
  • I 2020 argumenterede artiklen “Backpropagation and the Brain” (Lillicrap, Santoro, Marris, Akerman og Hinton) for, at hjernen muligvis tilnærmer sig backpropagation-lignende læring, hvilket genåbnede debatten om biologisk plausibilitet.
  • I 2022 foreslog Hinton Forward-Forward-algoritmen, en træningsmetode, der helt undgår en baglæns gennemløbning.
  • I 2024 blev John Hopfield og Geoffrey Hinton tildelt Nobelprisen i fysik for grundlæggende opdagelser, der muliggjorde maskinlæring med kunstige neurale netværk.
  • I 2025 blev forward-forward-metoder udvidet til konvolutionelle netværk, hvilket viste, at backpropagation-fri træning kunne fungere på billedklassificeringsopgaver.
  • Fra 2026 forbliver backpropagation standardtræningsalgoritmen for stort set alle deep learning-modeller, mens forskningen i gradientfri, lokale og parallelle læringsmetoder, der reducerer dens hukommelses- og beregningsomkostninger, fortsætter.

Bagudbredelse Nøglepunkter

  • Forenkler netværksstrukturen ved at fjerne vægtede links, der har mindst effekt på det trænede netværk.
  • Du skal studere en gruppe af input- og aktiveringsværdier for at udvikle forholdet mellem input- og skjulte enhedslag.
  • Det hjælper med at vurdere den indvirkning, som en given inputvariabel har på et netværksoutput. Den viden, der opnås fra denne analyse, bør repræsenteres i regler.
  • Backpropagation er især nyttig for dybe neurale netværk, der arbejder på fejltilbøjelige projekter, såsom billed- eller talegenkendelse.
  • Backpropagation udnytter kæde- og potensreglerne, hvilket gør det muligt for den at fungere med et hvilket som helst antal output.

Bedste Practice for Backpropagation

Tilbagepropagering i neurale netværk kan forklares ved hjælp af "skosnørebånd"-analogien. Vægtopdateringer opfører sig meget ligesom spændingen på et snørebånd: for lidt, og intet holdes sammen, for meget, og noget knækker.

Blondespænding Hvad det betyder under træning
For lidt spænding Ikke nok begrænsning og meget løs — modellen passer ikke til formålet
For meget spænding For meget begrænsning (overtræning); tager for meget tid (relativt langsom proces); højere sandsynlighed for brud
Trækker mere i den ene snøre end i den anden Ubehag (bias) — én del af netværket dominerer tilpasningen

To praktiske vaner følger af analogien: skaler inputtene før træning, så ingen enkelt funktion trækker hårdere end resten, og hold øje med valideringstabet, så spændingen frigives, før overtræning sætter ind.

Ulemper ved at bruge Backpropagation

  • Den faktiske ydeevne af backpropagation på et specifikt problem afhænger af inputdataene.
  • Tilbageudbredelsesalgoritme i datamining kan være ret følsom over for støjende data
  • Over en mini-batch bør backpropagation implementeres med en matrixbaseret tilgang;ping over ét eksempel ad gangen er markant langsommere.
  • I dybe netværk kan den gentagne multiplikation af små derivater krympe gradienter mod nul, så de tidligste lag knap nok lærer - det forsvindende gradientproblem beskrevet i Google Machine Learning Crash -kursus.

Ingen af ​​disse udelukker metoden. De er grundene til, at praktikere griber efter ReLU-aktivering, normalisering og omhyggelige læringsplaner, når de bevæger sig fra et overfladisk netværk til et dyb læring model.

Ofte Stillede Spørgsmål

Backpropagation beregner gradienten af ​​tabet i forhold til hver vægt. Gradientnedstigning er den optimeringsfunktion, der bruger den gradient og flytter hver vægt. Den ene måler hældningen; den anden tager skridtet.

Læringshastigheden bestemmer, hvor langt hver vægt bevæger sig langs sin gradient. For lille, og træningen kravler; for stor, og tabet oscillerer eller divergerer. Tidsplaner, der aftager hastigheden over epoker, konvergerer normalt mere pålideligt.

Tilbagepropagering gennem tiden træner tilbagevendende netværk ved at udrulle sekvensen i en kæde af kopier og derefter anvende almindelig tilbagepropagering på tværs af den. Lange sekvenser afkortes normalt, fordi gradienter ellers forsvinder eller eksploderer over mange trin.

Ethvert differentierbart tab fungerer. Den gennemsnitlige kvadratiske fejl passer til regression, binær krydsentropi passer til toklasseproblemer, og kategorisk krydsentropi passer til outputlag med flere klasser. Valget ændrer gradienten på outputlaget, ikke selve den baglæns algoritme.

Automatiserede søgeværktøjer udforsker læringshastigheder, lagbredder og regulariseringsindstillinger langt hurtigere end manuel trial and error. Bayesiansk optimering og tidlig stopping Planlæggere beskærer hurtigt svage kørsler og overlader beregning til de konfigurationer, der rent faktisk reducerer valideringstab.

GitHub Copilot udkaster træningsløkker, gradienttjek og lagdefinitioner fra en kort kommentar, hvilket forkorter standardarbejdet. Verificer de afledte, den producerer, mod en numerisk gradienttjek, da et plausibelt, men forkert tegn trænes lydløst.

Store vægte får de bagudrettede produkter til at vokse i hvert lag, indtil opdateringerne overskrider hinanden, og tabet bliver ustabilt. Gradientklipping, mindre startvægte, batchnormalisering og en lavere indlæringshastighed holder alle størrelsesordenerne inden for intervallet.

En batch er den gruppe af prøver, der behandles før én vægtopdatering. En iteration er en enkelt sådan opdatering. En epoch er én komplet gennemgang af træningssættet, der indeholder lige så mange iterationer, som der er batches.

Opsummer dette indlæg med: