Verbind je met ons

AI 101

Wat is backpropagatie?

mm

Wat is backpropagatie?

Deep learning-systemen kunnen extreem complexe patronen leren en bereiken dit door hun gewichten aan te passen. Hoe worden de gewichten van een diep neuraal netwerk precies aangepast? Ze worden via aangepast een proces genaamd terugvermeerdering. Zonder backpropagatie zouden diepe neurale netwerken geen taken kunnen uitvoeren zoals het herkennen van beelden en het interpreteren van natuurlijke taal. Begrijpen hoe backpropagatie werkt is van cruciaal belang voor het begrijpen van diepe neurale netwerken in het algemeen. Laten we daarom backpropagatie bespreken en zien hoe het proces wordt gebruikt om de gewichten van een netwerk aan te passen.

Backpropagatie kan moeilijk te begrijpen zijn, en de berekeningen die worden gebruikt om backpropagatie uit te voeren kunnen behoorlijk complex zijn. Dit artikel zal proberen u een intuïtief begrip van backpropagation te geven, waarbij weinig complexe wiskunde wordt gebruikt. Enige discussie over de wiskunde achter backpropagation is echter noodzakelijk.

Het doel van backpropagatie

Laten we beginnen met het definiëren van het doel van backpropagation. De gewichten van een diep neuraal netwerk zijn de sterkte van verbindingen tussen eenheden van een neuraal netwerk. Wanneer het neurale netwerk tot stand is gebracht, worden aannames gedaan over hoe de eenheden in één laag zijn verbonden met de lagen die ermee zijn verbonden. Terwijl de gegevens door het neurale netwerk bewegen, worden de gewichten berekend en worden aannames gedaan. Wanneer de gegevens de laatste laag van het netwerk bereiken, wordt er een voorspelling gedaan over hoe de kenmerken zich verhouden tot de klassen in de dataset. Het verschil tussen de voorspelde waarden en de werkelijke waarden is het verlies/de fout en het doel van backpropagation is om het verlies te verminderen. Dit wordt bereikt door de gewichten van het netwerk aan te passen, waardoor de aannames meer gaan lijken op de werkelijke relaties tussen de invoerkenmerken.

Een diep neuraal netwerk trainen

Voordat backpropagatie kan worden gedaan op a neuraal netwerk, moet de reguliere/voorwaartse trainingspas van een neuraal netwerk worden uitgevoerd. Wanneer een neuraal netwerk wordt gemaakt, wordt een reeks gewichten geïnitialiseerd. De waarde van de gewichten zal veranderen naarmate het netwerk wordt getraind. De voorwaartse trainingspassage van een neuraal netwerk kan worden opgevat als drie afzonderlijke stappen: activering van neuronen, overdracht van neuronen en voorwaartse voortplanting.

Bij het trainen van een diep neuraal netwerk moeten we gebruik maken van meerdere wiskundige functies. Neuronen in een diep neuraal netwerk bestaan ​​uit de binnenkomende gegevens en een activeringsfunctie, die de waarde bepaalt die nodig is om het knooppunt te activeren. De activeringswaarde van een neuron wordt berekend met verschillende componenten, zijnde een gewogen som van de inputs. De gewichten en invoerwaarden zijn afhankelijk van de index van de knooppunten die worden gebruikt om de activering te berekenen. Bij het berekenen van de activeringswaarde moet rekening worden gehouden met een ander getal, een biaswaarde. Bias-waarden fluctueren niet, dus worden ze niet vermenigvuldigd met het gewicht en de invoer, ze worden gewoon opgeteld. Dit alles betekent dat de volgende vergelijking kan worden gebruikt om de activeringswaarde te berekenen:

Activering = som(gewicht * invoer) + bias

Nadat het neuron is geactiveerd, wordt een activeringsfunctie gebruikt om te bepalen wat de output van de werkelijke output van het neuron zal zijn. Verschillende activeringsfuncties zijn optimaal voor verschillende leertaken, maar veelgebruikte activeringsfuncties zijn de sigmoïde functie, de Tanh-functie en de ReLU-functie.

Zodra de uitgangen van het neuron zijn berekend door de activeringswaarde door de gewenste activeringsfunctie te laten lopen, is de voorwaartse voortplanting voltooid. Voorwaartse voortplanting is gewoon de uitvoer van één laag nemen en deze de invoer van de volgende laag maken. De nieuwe invoer wordt vervolgens gebruikt om de nieuwe activeringsfuncties te berekenen en de uitvoer van deze bewerking wordt doorgegeven aan de volgende laag. Dit proces gaat door tot aan het einde van het neurale netwerk.

Backpropagatie in het netwerk

Het proces van backpropagation neemt de uiteindelijke beslissingen van de trainingspas van een model in zich op en bepaalt vervolgens de fouten in deze beslissingen. De fouten worden berekend door de outputs/beslissingen van het netwerk te vergelijken met de verwachte/gewenste outputs van het netwerk.

Zodra de fouten in de beslissingen van het netwerk zijn berekend, wordt deze informatie teruggestuurd via het netwerk en worden de parameters van het netwerk gaandeweg gewijzigd. De methode die wordt gebruikt om de gewichten van het netwerk bij te werken, is gebaseerd op calculus, met name op de kettingregel. Een goed begrip van calculus is echter niet nodig om het idee achter backpropagation te begrijpen. Weet gewoon dat wanneer een uitvoerwaarde wordt geleverd door een neuron, de helling van de uitvoerwaarde wordt berekend met een overdrachtsfunctie, waardoor een afgeleide uitvoer wordt geproduceerd. Bij backpropagatie wordt de fout voor een specifiek neuron als volgt berekend formule:

error = (expected_output – actual_output) * helling van de outputwaarde van het neuron

Bij het werken op de neuronen in de uitvoerlaag wordt de klassewaarde gebruikt als de verwachte waarde. Nadat de fout is berekend, wordt de fout gebruikt als invoer voor de neuronen in de verborgen laag, wat betekent dat de fout voor deze verborgen laag de gewogen fouten zijn van de neuronen die in de uitvoerlaag worden gevonden. De foutberekeningen reizen terug door het netwerk langs het gewichtennetwerk.

Nadat de fouten voor het netwerk zijn berekend, moeten de gewichten in het netwerk worden bijgewerkt. Zoals gezegd omvat het berekenen van de fout het bepalen van de helling van de uitgangswaarde. Nadat de helling is berekend, kan een proces dat bekend staat als gradiëntafdaling worden gebruikt om de gewichten in het netwerk aan te passen. Een helling is een helling waarvan de hoek/steilheid kan worden gemeten. De helling wordt berekend door “y over” of de “stijging” over de “run” uit te zetten. In het geval van het neurale netwerk en het foutenpercentage is de “y” de berekende fout, terwijl de “x” de netwerkparameters zijn. De parameters van het netwerk hebben een relatie met de berekende foutwaarden, en naarmate de gewichten van het netwerk worden aangepast, neemt de fout toe of af.

"Gradient afdaling" is het proces van het bijwerken van de gewichten zodat het foutenpercentage afneemt. Backpropagation wordt gebruikt om de relatie te voorspellen tussen de parameters van het neurale netwerk en het foutenpercentage, dat het netwerk instelt voor gradiëntafdaling. Het trainen van een netwerk met gradiëntafdaling omvatte het berekenen van de gewichten door voorwaartse voortplanting, het terugsturen van de fout en het vervolgens bijwerken van de gewichten van het netwerk.

Blogger en programmeur met specialiteiten in Machine leren en Diepe leren onderwerpen. Daniel hoopt anderen te helpen de kracht van AI te gebruiken voor maatschappelijk welzijn.