Backpropagatie in een neuraal netwerk: machine learning-algoritme en voorbeeld

⚡ Slimme samenvatting

Backpropagatie is het kerntrainingsalgoritme van een neuraal netwerk. Het verfijnt elk gewicht op basis van de fout die in de vorige epoch is gemeten, zodat het model beter generaliseert op onbekende data, laag voor laag.

  • 🔘 Kernidee: De kettingregel levert de gradiënt van het verlies op voor elk gewicht, laag per laag.
  • ☑️ Trainingslus: Voorwaartse doorgang, meet de fout, propageer deze achterwaarts, werk de gewichten bij, herhaal.
  • Twee varianten: Statische backpropagatie koppelt een vaste invoer aan een vaste uitvoer; recurrente backpropagatie stabiliseert zich eerst en plant zich daarna voort.
  • 🧪 Waarom het uitmaakt: Gradiëntdaling blijft alleen praktisch voor diepe neurale netwerken omdat de gradiënten laag na laag worden hergebruikt.
  • Bekende limieten: De prestaties zijn afhankelijk van de kwaliteit van de invoer, en ruisende samples vertekenen de geleerde gewichten.
  • ⚙️ Gradiëntgezondheid: Het vermenigvuldigen van veel kleine afgeleiden zorgt ervoor dat de gradiënten verdwijnen; ReLU en normalisatie verminderen dit effect.

Backpropagation in neurale netwerken: een machine learning-algoritme

Wat is een kunstmatig neuraal netwerk?

Een kunstmatig neuraal netwerk is een groep verbonden I/O-eenheden waarbij elke verbinding een gewicht heeft. Het helpt bij het bouwen van voorspellende modellen op basis van grote databases, en het ontwerp ontleent zijn terminologie aan het menselijk zenuwstelsel. Dergelijke netwerken ondersteunen beeldherkenning, machinaal leren, spraakherkenning en vele andere patroonherkenningstaken.

Backpropagatie is het algoritme dat bepaalt wat die gewichten moeten zijn, dus de twee concepten kunnen het beste samen gelezen worden.

Wat is backpropagatie?

Backpropagatie is de kern van het trainen van neurale netwerken. Het is de methode om de gewichten van een neuraal netwerk te verfijnen op basis van de foutenmarge die in de vorige iteratie (epoch) is behaald. Door de gewichten correct af te stemmen, kunnen fouten worden verminderd en wordt het model betrouwbaarder door de generalisatie ervan te verbeteren.

Backpropagation in neural network is een korte vorm voor ‘achterwaartse propagatie van fouten’. Het is een standaardmethode voor het trainen van kunstmatige neurale netwerken. Deze methode helpt bij het berekenen van de gradiënt van een verliesfunctie ten opzichte van alle gewichten in het netwerk.

Twee termen worden vaak door elkaar gehaald. Backpropagation alleen berekent de gradiënt; een optimalisatiemethode zoals gradiëntdaling is wat er daadwerkelijk gebeurt. veranderingen De gewichten worden berekend met behulp van die gradiënt. Bijna elk modern framework voert backpropagatie automatisch uit via de autodiff-engine.

Hoe het backpropagatie-algoritme werkt

Het backpropagation-algoritme in neurale netwerken berekent de gradiënt van de verliesfunctie voor een enkel gewicht met behulp van de kettingregel. Het berekent efficiënt één laag tegelijk, in tegenstelling tot een naïeve directe berekening. Het berekent de gradiënt, maar definieert niet hoe deze wordt gebruikt. Het is een generalisatie van de berekening in de delta-regel.

De kettingregel zorgt voor de efficiëntie. De invloed van een vroeg gewicht op het uiteindelijke verlies is een product van de lokale afgeleiden langs het pad naar de uitvoer. Het algoritme slaat daarom het tussenresultaat van elke laag op de terugweg op en hergebruikt dit voor elk gewicht in de laag eronder, in plaats van het hele netwerk voor elk gewicht opnieuw te berekenen.

Bekijk het volgende voorbeeld van een backpropagation neuraal netwerk om het te begrijpen. De afbeelding tracHet is een volledige doorgang: de inputs komen aan de linkerkant binnen, de activaties bewegen zich door de verborgen laag naar de output, en de gemeten fout reist vervolgens via dezelfde verbindingen terug om de gewichten te corrigeren.

Diagram van het backpropagatie-algoritme, met de voorwaartse doorgang door de invoer-, verborgen en uitvoerlagen en de fout die achterwaarts reist.

  1. Ingangen X arriveren via het vooraf verbonden pad
  2. De invoer wordt gemodelleerd met behulp van echte gewichten W. De gewichten worden meestal willekeurig geselecteerd.
  3. Bereken de uitvoer voor elk neuron, van de invoerlaag tot de verborgen lagen en de uitvoerlaag.
  4. Bereken de fout in de uitvoer:
    ErrorB= Actual Output – Desired Output
    
  5. Ga terug van de uitvoerlaag naar de verborgen laag om de gewichten zo aan te passen dat de fout kleiner wordt.
  6. Herhaal dit proces totdat het gewenste resultaat is bereikt.

Veel leerboeken vermelden dezelfde hoeveelheid als gewenst min werkelijkBeide conventies werken, omdat het teken wordt geabsorbeerd wanneer de optimizer de subroutine uitvoert.tracHet is de gradiënt, mits je één conventie in het hele netwerk hanteert.

In de praktijk is de fout zelden een loutere onderschrijving.tracEen verliesfunctie, zoals de gemiddelde kwadratische fout voor regressie of kruisentropie voor classificatie, zet de verschillen per uitvoer om in één enkel getal dat daadwerkelijk wordt gebruikt voor de gradiëntbackpropagatie.

Waarom hebben we backpropagatie nodig?

De meest opvallende voordelen van Backpropagation zijn:

  • Backpropagatie is snel, eenvoudig en gemakkelijk te programmeren
  • Het voegt geen nieuwe parameters toe; de ​​afstemming die je doet, is aan de optimizer en het netwerk, met name de leerfrequentie en het aantal invoerwaarden.
  • Het is een flexibele methode omdat er geen voorkennis over het netwerk vereist is
  • Het is een standaardmethode die over het algemeen goed werkt
  • Er is geen speciale vermelding nodig van de kenmerken van de te leren functie.

Simpel gezegd: zonder een efficiënte manier om gradiënten te verkrijgen, zou het trainen van een structuur dieper dan één laag rekenkundig onhaalbaar zijn.

Wat is een Feed Forward-netwerk?

Een feedforward neuraal netwerk is een kunstmatig neuraal netwerk waarbij de knooppunten nooit een cyclus vormen. Dit soort neuraal netwerk heeft een invoerlaag, verborgen lagen en een uitvoerlaag. Het is het eerste en eenvoudigste type kunstmatige neurale netwerk.

Het onderscheid is hier belangrijk omdat de voorwaartse doorgang van backpropagatie precies een voorwaartse doorgang is; alleen de foutcorrectie verloopt in de tegenovergestelde richting.

Soorten backpropagatienetwerken

Er zijn twee soorten backpropagatienetwerken:

  • Statische achterwaartse voortplanting
  • Terugkerende backpropagatie

Statische achterwaartse voortplanting

Het is een type backpropagation-netwerk dat een kaart produceert.ping van een statische invoer voor een statische uitvoer. Het is nuttig voor het oplossen van statische classificatieproblemen, zoals optische tekenherkenning.

Terugkerende backpropagatie

Terugkerende terugpropagatie in datamining Het proces wordt doorgevoerd totdat een vaste waarde is bereikt. Daarna wordt de fout berekend en teruggevoerd.

Het belangrijkste verschil tussen deze twee methoden is: dat de kaartping is snel bij statische backpropagatie, terwijl het niet-statisch is bij recurrente backpropagatie. De onderstaande tabel zet de twee naast elkaar.

Criterium Statische achterwaartse voortplanting Terugkerende terugpropagatie
Wereldmapping Statische invoer naar statische uitvoer Niet-statisch; het netwerk stabiliseert zich voordat de fout optreedt.
Snelheid Snel, één doorgang per monster. Het activeringsproces verloopt trager en wordt herhaald totdat het stabiliseert.
Netwerkvorm Feedforward, geen cycli Bevat feedbackverbindingen
Typisch gebruik Optische tekenherkenning, classificatie met vaste grootte Problemen waarvan de uitkomst afhangt van een vastgestelde interne toestand.

Geschiedenis van backpropagatie

  • In 1961 werd het basisconcept van continue terugpropagatie afgeleid in de context van de regeltechniek door J. Kelly, Henry Arthur en E. Bryson.
  • In 1969 presenteerden Bryson en Ho een meertraps dynamische systeemoptimalisatiemethode.
  • In 1970 publiceerde Seppo Linnainmaa de omgekeerde modus van automatische differentiatie, de rekenmethode waarop de moderne backpropagation is gebaseerd.
  • In 1974 stelde Werbos de mogelijkheid voor om dit principe toe te passen in een kunstmatig neuraal netwerk.
  • In 1982 bracht Hopfield zijn idee van een neuraal netwerk naar voren.
  • In 1986 kreeg backpropagation, dankzij de inspanningen van David E. Rumelhart, Geoffrey E. Hinton en Ronald J. Williams, erkenning.
  • In 1989 trainden Yann LeCun en zijn collega's een convolutioneel netwerk met backpropagatie om handgeschreven cijfers te lezen, een van de eerste grootschalige praktische toepassingen.
  • In 1993 was Wan de eerste persoon die een internationale patroonherkenningswedstrijd won met behulp van de backpropagation-methode.
  • In 2006 wekte Hintons werk aan deep belief networks en layer-wise pretraining de interesse in het trainen van deep networks weer op, een interesse die was gestagneerd als gevolg van het verdwijnende gradiëntprobleem.
  • In 2010 analyseerden Xavier Glorot en Yoshua Bengio waarom diepe neurale netwerken moeilijk te trainen waren en introduceerden ze een verbeterde gewichtsinitialisatie, die samen met ReLU-activaties diepe backpropagatie praktisch uitvoerbaar maakte.
  • In 2012 won AlexNet (Krizhevsky, Sutskever en Hinton) de ImageNet-competitie met behulp van GPU-versnelde backpropagatie, wat de aanzet gaf tot de moderne deep learning-hausse.
  • In 2014 werd de Adam-optimizer (Kingma en Ba) geïntroduceerd en deze werd al snel de standaardvariant van gradiëntafdalingsmethoden die met backpropagatie werd gebruikt.
  • In 2015 loste Batch Normalization and Residual Networks (ResNet) het probleem van gradiëntstroom in zeer diepe netwerken op, waardoor backpropagatie door honderden lagen mogelijk werd.
  • In de periode 2015-2017 werden TensorFlow en Py gebruikt.Torch maakte automatische differentiatie een standaardfunctie in de software, waardoor gradiënten niet langer handmatig berekend hoefden te worden.
  • In 2017 werd de Transformer-architectuur geïntroduceerd. Deze wordt, net als de grote taalmodellen die erop gebouwd zijn, end-to-end getraind met backpropagatie.
  • In 2019 ontvingen Bengio, Hinton en LeCun de ACM AM Turing Award voor hun werk aan diepe neurale netwerken.
  • In 2020 betoogde het artikel "Backpropagation and the Brain" (Lillicrap, Santoro, Marris, Akerman en Hinton) dat de hersenen mogelijk een soortgelijk leerproces als backpropagation nastreven, waarmee het debat over de biologische plausibiliteit opnieuw werd aangewakkerd.
  • In 2022 introduceerde Hinton het Forward-Forward-algoritme, een trainingsmethode die een achterwaartse doorgang volledig vermijdt.
  • In 2024 ontvingen John Hopfield en Geoffrey Hinton de Nobelprijs voor de Natuurkunde voor hun fundamentele ontdekkingen die machinaal leren met kunstmatige neurale netwerken mogelijk maakten.
  • In 2025 werden forward-forward-methoden uitgebreid naar convolutionele netwerken, waaruit bleek dat training zonder backpropagatie kon werken bij beeldclassificatietaken.
  • In 2026 blijft backpropagatie het standaard trainingsalgoritme voor vrijwel alle deep learning-modellen, terwijl er tegelijkertijd onderzoek wordt gedaan naar gradiëntvrije, lokale en parallelle leermethoden die het geheugen- en rekenverbruik verminderen.

Kernpunten van backpropagatie

  • Vereenvoudigt de netwerkstructuur door gewogen verbindingen te verwijderen die de minste invloed hebben op het getrainde netwerk.
  • Je moet een groep invoer- en activeringswaarden bestuderen om de relatie tussen de invoer- en verborgen eenheidslagen te ontwikkelen.
  • Het helpt bij het beoordelen van de impact die een bepaalde invoervariabele heeft op een netwerkuitvoer. De kennis die uit deze analyse wordt verkregen, moet in regels worden weergegeven.
  • Backpropagatie is vooral nuttig voor diepe neurale netwerken die werken aan foutgevoelige projecten, zoals beeld- of spraakherkenning.
  • Backpropagation maakt gebruik van de keten- en machtsregels, waardoor het met elk willekeurig aantal uitgangen kan werken.

Beste werkwijze voor backpropagatie

Backpropagatie in neurale netwerken kan worden uitgelegd met behulp van de analogie van de "schoenveter". Gewichtsupdates gedragen zich net als de spanning op een veter: te weinig spanning en er blijft niets bij elkaar, te veel spanning en er knapt iets.

Veterspanning Wat het betekent tijdens de training
Te weinig spanning Onvoldoende beperkingen en erg losjes — het model is ondermaats.
Te veel spanning Te veel beperkingen (overtraining); te veel tijd in beslag nemen (relatief traag proces); grotere kans op breuk
De ene veter meer aantrekken dan de andere. Onbehagen (vooroordeel) — één deel van het netwerk domineert de pasvorm

Uit deze analogie volgen twee praktische gewoontes: schaal de invoerwaarden vóór de training, zodat geen enkele eigenschap meer invloed heeft dan de rest, en houd het validatieverlies in de gaten, zodat de spanning wordt verlicht voordat overtraining optreedt.

Nadelen van het gebruik van backpropagatie

  • De daadwerkelijke prestaties van backpropagation voor een specifiek probleem zijn afhankelijk van de invoergegevens.
  • Het back-propagatie-algoritme in datamining kan behoorlijk gevoelig zijn voor ruis
  • Bij een mini-batch moet backpropagatie worden geïmplementeerd met een matrixgebaseerde aanpak; looping Het verwerken van slechts één voorbeeld tegelijk gaat aanzienlijk langzamer.
  • In diepe netwerken kan de herhaalde vermenigvuldiging van kleine afgeleiden de gradiënten naar nul doen krimpen, waardoor de eerste lagen nauwelijks leren — het probleem van de verdwijnende gradiënt zoals beschreven in de Google Crashcursus Machine Learning.

Geen van deze punten sluit de methode uit. Het zijn juist deze redenen waarom programmeurs kiezen voor ReLU-activaties, normalisatie en zorgvuldige leerfrequentieplanning wanneer ze overstappen van een ondiep netwerk naar een... diepgaand leren model.

Veelgestelde vragen

Bij backpropagatie wordt de gradiënt van het verlies ten opzichte van elk gewicht berekend. Gradient descent is de optimalisatiemethode die deze gradiënt gebruikt om elk gewicht te verplaatsen. De ene methode meet de helling; de andere neemt de stapgrootte.

De leerfrequentie bepaalt hoe ver elk gewicht langs zijn gradiënt beweegt. Een te kleine frequentie zorgt voor een zeer trage training; een te grote frequentie zorgt voor schommelingen of divergentie van het verlies. Trainingsschema's die de frequentie over de trainingsrondes verlagen, convergeren doorgaans betrouwbaarder.

Backpropagatie door de tijd heen traint terugkerende netwerken door de sequentie uit te rollen tot een keten van kopieën, en vervolgens gewone backpropagatie daarop toe te passen. Lange sequenties worden meestal afgekapt, omdat de gradiënten anders verdwijnen of exploderen over vele stappen.

Elke differentieerbare verliesfunctie werkt. De gemiddelde kwadratische fout is geschikt voor regressie, binaire kruisentropie voor problemen met twee klassen en categorische kruisentropie voor uitvoerlagen met meerdere klassen. De keuze verandert de gradiënt in de uitvoerlaag, niet het backward-algoritme zelf.

Geautomatiseerde zoektools onderzoeken leersnelheden, laagdikte en regularisatie-instellingen veel sneller dan handmatig proberen en fouten maken. Bayesiaanse optimalisatie en vroegtijdige stopzettingping Planners verwijderen snel zwakke runs, waardoor rekenkracht overblijft voor de configuraties die het validatieverlies daadwerkelijk verminderen.

GitHub-copiloot Het programma genereert trainingsloops, gradiëntcontroles en laagdefinities op basis van een korte opmerking, wat de hoeveelheid standaardcode vermindert. Controleer de afgeleiden die het programma produceert aan de hand van een numerieke gradiëntcontrole, aangezien een plausibel ogend maar onjuist teken stilzwijgend wordt meegetraind.

Grote gewichten zorgen ervoor dat de achterwaartse producten in elke laag toenemen totdat de updates doorschieten en het verlies instabiel wordt. GradiëntclippingKleinere begingewichten, batchnormalisatie en een lagere leerfrequentie zorgen ervoor dat de waarden binnen een bepaald bereik blijven.

Een batch is de groep samples die verwerkt wordt vóór een gewichtsupdate. Een iteratie is een enkele update. Een epoch is één volledige doorgang over de trainingsset, bestaande uit evenveel iteraties als er batches zijn.

Vat dit bericht samen met: