In deze serie artikelen bespreken we neurale netwerken. We gaven een definitie en gingen in op de toepassingen. In dit artikel gaan we iets dieper op de materie in: we bespreken de werking van neurale netwerken. Want hoe werkt een neuraal netwerk precies? In het volgende artikelen illustreren we onderstaande stof met een voorbeeld.
Een neuraal netwerk is een statistisch leermodel dat is gebaseerd op biologische neurale netwerken. De individuele elementen van het neurale netwerk, de processoren, oftewel neuronen, zijn eenvoudig. Ze lezen input en verwerken deze, en genereren output. Een netwerk van veel verbonden neuronen kan echter ongelooflijk rijk en intelligent gedrag vertonen. Normaal gesproken worden neuronen in lagen georganiseerd. Data reist van de eerste (input) naar de laatste (output) laag, mogelijk na het meerdere keren doorlopen van de lagen.
Een van de belangrijkste elementen van een neuraal netwerk is het vermogen om te leren. Een neuraal netwerk is een complex adaptief systeem, wat betekent dat het zijn interne structuur kan veranderen op basis van data. Gewoonlijk wordt dit bereikt door het aanpassen van gewichten. Elke verbinding tussen neuronen heeft een gewicht, een getal dat het signaal tussen de twee neuronen regelt. Dit gewicht bepaalt hoe sterk het signaal via die connectie aankomt bij het doelneuron, en kan positief (stimulerend) of negatief (remmend) zijn.
Uiteindelijk is voor ieder paar neuronen (A,B) in het netwerk een functie met gewichten gedefinieerd, die aangeeft hoe het vuren van A invloed heeft op B. Als het netwerk de juiste output genereert, hoef je de gewichten niet aan te passen. Echter, als het netwerk een foute output genereert, dan past het systeem de gewichten aan om toekomstige resultaten te verbeteren.
Tekst gaat verder onder de afbeelding.
Hierbij is ook de drempel van belang: alleen als het aggregaat van het signaal lager (of hoger) is dan dat drempelniveau wordt het signaal verzonden. Dat zit zo: wanneer het netwerk actief is, ontvangt de neuron een gegevensitem – een ander getal – over elk van de verbindingen en vermenigvuldigt het met het bijbehorende gewicht. Vervolgens voegt het de resulterende producten samen, waardoor je een enkel getal krijgt. Alleen als het getal de drempelwaarde overschrijdt, geeft de neuron gegevens door naar de volgende neuron.
De interactie tussen de processoren in een neuraal netwerk is adaptief, zodat verbindingen tussen andere processoren in het neurale netwerk kunnen ontstaan, en bestaande verbindingen kunnen worden versterkt, verzwakt of weer verbroken kunnen worden. Dit betekent dat een neuraal netwerk kan leren. Hierbij verwijst “leren” dus naar de automatische aanpassing van de parameters van het systeem, zodat het systeem de juiste output voor een bepaalde input kan genereren. Informatie die door het netwerk stroomt, heeft gevolgen voor de structuur van het neurale netwerk omdat deze verandert – of leert – op basis van die input en output.
Anders gezegd: neuronen worden geactiveerd via gewogen verbindingen van voorheen actieve neuronen. De ontvangende neuron verwerkt het signaal en stuurt vervolgens al dan niet een signaal aan de volgende neuronen. Input die bijdragen tot het krijgen van juiste antwoorden worden groter gewogen. Bijvoorbeeld, als knooppunten David, Dianne en Dakota knooppunt Ernie vertellen dat het huidige invoerbeeld een foto van Brad Pitt is, maar knooppunt Durango zegt dat het Betty White is en het trainingsprogramma bevestigt dat het Pitt is, zal Ernie het gewicht verminderen dat het toewijst aan Durango’s input en het gewicht dat het geeft aan David, Dianne en Dakota verhogen.
Het ‘trainen’ van het netwerk gebeurt door het aanbieden van input met de bijbehorende gewenste output. Tijdens deze gecontroleerde fase vergelijkt het netwerk zijn eigenlijke output met wat het bedoeld was om te produceren, dat wil zeggen de gewenste output. Het verschil tussen beide uitkomsten wordt aangepast met behulp van backpropagation. Dit betekent dat het netwerk achteruit werkt van output naar input om gewichten en drempels (oftewel de functies) aan te passen totdat het verschil tussen de werkelijke en de gewenste output zo klein mogelijk is. Meestal worden deze geleidelijk bijgesteld, en bestaat een ‘trainingssessie’ uit vele (duizenden) iteraties.
Een tweede stap in het leerproces is het aanbieden van nieuwe input en het controleren van het resultaat dat dat oplevert. Op die manier kan bepaald worden in hoeverre het netwerk ‘volleerd’ is, en hoe betrouwbaar de resultaten zijn.
Dit artikel is onderdeel van een serie.
Lees meer:
Deel 1 – Machine learning, neurale netwerken en deep learning uitgelegd
Deel 2 – Wat is een neuraal netwerk: een introductie
Deel 3 – Toepassingen van neurale netwerken – van chatbots tot zorg
Deel 5 – Voorbeeld van een neuraal netwerk – de werking uitgelegd
Infographic – Neurale netwerken bij machine learning
Bronnen – Bronnen 3Bplus artikelen deep learning