Connect with us

AI 101

Wat zijn Neurale Netwerken?

mm

Wat zijn Kunstmatige Neurale Netwerken (ANN’s)?

Veel van de grootste vooruitgang in AI wordt gedreven door kunstmatige neurale netwerken. Kunstmatige Neurale Netwerken (ANN’s) zijn de verbinding van wiskundige functies die samen zijn gevoegd in een formaat geïnspireerd door de neurale netwerken die in de menselijke hersenen worden aangetroffen. Deze ANN’s zijn in staat om complexe patronen uit gegevens te halen, deze patronen toe te passen op ongezien gegevens om de gegevens te classificeren/te herkennen. Op deze manier “leert” de machine. Dat is een korte samenvatting van neurale netwerken, maar laten we een nauwere blik werpen op neurale netwerken om beter te begrijpen wat ze zijn en hoe ze werken.

Multi-laags Perceptron Uitgelegd

Voordat we naar meer complexe neurale netwerken kijken, zullen we even kijken naar een eenvoudige versie van een ANN, een Multi-Laags Perceptron (MLP).

Stel je een productielijn in een fabriek voor. Op deze productielijn ontvangt een werknemer een artikel, voert enkele aanpassingen uit en geeft het vervolgens door aan de volgende werknemer in de lijn, die hetzelfde doet. Dit proces gaat door totdat de laatste werknemer in de lijn de finishing touches aan het artikel aanbrengt en het op een lopende band zet die het uit de fabriek zal halen. In deze analogie zijn er meerdere “lagen” in de productielijn, en producten bewegen tussen lagen terwijl ze van werknemer naar werknemer gaan. De productielijn heeft ook een ingang en een uitgang.

Een Multi-Laags Perceptron kan worden beschouwd als een zeer eenvoudige productielijn, bestaande uit drie lagen in totaal: een invoerlaag, een verborgen laag en een uitvoerlaag. De invoerlaag is waar de gegevens in de MLP worden ingevoerd, en in de verborgen laag worden enkele “werknemers” de gegevens verwerkt voordat ze worden doorgegeven aan de uitvoerlaag, die het product naar de buitenwereld geeft. In het geval van een MLP worden deze werknemers “neuronen” (of soms knooppunten) genoemd en wanneer ze de gegevens verwerken, manipuleren ze deze door een reeks wiskundige functies.

Binnen het netwerk zijn er structuren die knooppunt naar knooppunt verbinden, genaamd “gewichten“. Gewichten zijn een veronderstelling over hoe gegevenspunten met elkaar in verband staan terwijl ze door het netwerk gaan. Om het anders te zeggen, gewichten weerspiegelen het niveau van invloed dat een neurone op een andere neurone heeft. De gewichten gaan door een “activatiefunctie” wanneer ze het huidige knooppunt verlaten, wat een soort wiskundige functie is die de gegevens transformeert. Ze transformeren lineaire gegevens in niet-lineaire voorstellingen, waardoor het netwerk complexe patronen kan analyseren.

De analogie met de menselijke hersenen die wordt geïmpliceerd door “kunstmatig neurale netwerk” komt voort uit het feit dat de neuronen die de menselijke hersenen vormen, op een soortgelijke manier met elkaar zijn verbonden als knooppunten in een ANN.

Hoewel multi-laags perceptoren al sinds de jaren 40 bestaan, waren er een aantal beperkingen die voorkwamen dat ze bijzonder nuttig waren. Echter, in de loop van de afgelopen paar decennia is een techniek genaamd “backpropagation” ontwikkeld, waardoor netwerken de gewichten van de neuronen konden aanpassen en daardoor veel effectiever konden leren. Backpropagation verandert de gewichten in het neurale netwerk, waardoor het netwerk de werkelijke patronen in de gegevens beter kan vastleggen.

Diepe Neurale Netwerken

Diepe neurale netwerken nemen de basisvorm van de MLP en maken deze groter door meer verborgen lagen in het midden van het model toe te voegen. In plaats van dat er een invoerlaag, een verborgen laag en een uitvoerlaag is, zijn er veel verborgen lagen in het midden en worden de uitvoeren van een verborgen laag de ingangen voor de volgende verborgen laag totdat de gegevens door het hele netwerk zijn gegaan en teruggegeven.
De meerdere verborgen lagen van een diep neurale netwerk kunnen complexere patronen interpreteren dan de traditionele multi-laags perceptron. Verschillende lagen van het diepe neurale netwerk leren de patronen van verschillende delen van de gegevens. Als de invoergegevens bijvoorbeeld bestaan uit afbeeldingen, kan het eerste deel van het netwerk de helderheid of donkerte van pixels interpreteren, terwijl de latere lagen vormen en randen oppikken die kunnen worden gebruikt om objecten in de afbeelding te herkennen.

Verschillende Soorten Neurale Netwerken

Er zijn verschillende soorten neurale netwerken, en elke soort neurale netwerken heeft zijn eigen voordelen en nadelen (en dus zijn eigen gebruikscases). Het type diepe neurale netwerk dat hierboven is beschreven, is het meest voorkomende type neurale netwerk, en het wordt vaak aangeduid als een feedforward neurale netwerk.

Een variatie op neurale netwerken is het Recurrent Neurale Netwerk (RNN). In het geval van Recurrent Neurale Netwerken worden lusmechanismen gebruikt om informatie van eerdere staten van analyse vast te houden, wat betekent dat ze patronen kunnen interpreteren waar de volgorde van belang is. RNN’s zijn nuttig bij het afleiden van patronen uit sequentiële/chronologische gegevens. Recurrent Neurale Netwerken kunnen eenzijdig of tweezijdig zijn. In het geval van een tweezijdig neurale netwerk, kan het netwerk informatie nemen van later in de sequentie, evenals van eerdere delen van de sequentie. Aangezien het tweezijdige RNN meer informatie in overweging neemt, is het beter in staat om de juiste patronen uit de gegevens te trekken.

Een Convolutional Neurale Netwerk is een speciaal type neurale netwerk dat goed is in het interpreteren van patronen die in afbeeldingen worden aangetroffen. Een CNN werkt door een filter over de pixels van de afbeelding te passen en een numerieke voorstelling van de pixels in de afbeelding te bereiken, die het vervolgens kan analyseren op patronen. Een CNN is zo gestructureerd dat de convolutionele lagen die de pixels uit de afbeelding halen, eerst komen, en dan de dicht verbonden feed-forward lagen komen, die het netwerk zullen leren om objecten te herkennen, erna.

Blogger en programmeur met specialisaties in Machine Learning en Deep Learning onderwerpen. Daniel hoopt anderen te helpen de kracht van AI te gebruiken voor het sociale goede.