Wat is een neuraal netwerk?
Je hoort er steeds meer over: machine learning, deep learning en neurale netwerken. Systemen die gebaseerd zijn op de werking van de hersenen van de mens. Maar hoe werken deze neurale netwerken en waarom is dat zo bijzonder? Ik ga je het uitleggen.
Je kunt de werking van neurale netwerken koppelen aan applicaties die je elke dag gebruikt, zoals Google Maps, Apple’s gezichtsherkenningstechnologie, chatbots en Amazon’s Alexa assistent bijvoorbeeld. Neurale netwerken liggen ook aan de basis van een aantal belangrijke doorbraken op het gebied van kunstmatige intelligentie, zoals het diagnosticeren van longkanker op een CT scan. En ook bij de ontwikkelingen op het gebied van zelfrijdende auto’s zijn neurale netwerken van belang.
Het concept en de wetenschap achter kunstmatige neurale netwerken bestaan al vele decennia. Maar het is pas in de afgelopen jaren dat de beloften van de neurale netwerken werkelijkheid zijn geworden.
Kunstmatige intelligentie om ons heen
We zijn op weg naar een nieuw tijdperk. Slimme software systemen die met ons meedenken, ons helpen, het werk efficiënter kunnen maken en sneller en accurater data kunnen verwerken. Patronen kunnen herkennen uit grote onoverzichtelijke hoeveelheden data. Gezichten, spraak en tekst kunnen herkennen als ware het mensen. Slimme computersystemen die menselijke ‘vaardigheden’ beginnen te bezitten en intelligentie toevoegen aan producten, processen en diensten.
En dat is geen toekomstdenken, maar realiteit. Er is enthousiasme over de recente kwalitatieve toename van neurale netwerken en daarbij tekenen zich de contouren van een maatschappij met een vaste rol voor kunstmatige intelligentie zich steeds meer af. En vooral de neurale netwerken zijn hierin een vliegwiel gebleken.
Rule-based systeem versus neuraal netwerk
Een neuraal netwerk is dé tegenhanger van de rule-based systemen die in de eerste jaren van de kunstmatige intelligentie de overhand hadden. Rule-based systemen (de naam zegt het al) is een beslisboom van keuzes die het systeem moet maken: Als-dit-dan dat.
Als het systeem A tegenkomt, doet het B. Stap voor stap. 100% logica. Heel statisch dus eigenlijk.
Een neuraal netwerk kan echter niet worden geprogrammeerd om een bepaalde taak stap voor stap uit te voeren, maar leert door het zien van voorbeelden.
Het neurale netwerk
Een neuraal netwerk kan bijvoorbeeld gebruikt worden door een mediabedrijf om te berekenen hoeveel losse kranten elk verkooppunt per dag nodig heeft. Als een neuraal netwerk wordt gevoed met genoeg zuivere data over de hoeveelheid kranten die landelijk op een bepaalde dag nodig waren bij een bepaald verkooppunt, kan het hieruit een trend leren. Op basis daarvan kan het voorspellen hoeveel kranten er op een bepaalde dag bij een bepaald verkooppunt nodig zijn – mits de data waarvan hij geleerd heeft correct zijn. Een neuraal netwerk is immers zo goed als de trainingsdata zijn.
Terwijl een rule-based systeem bestaat uit regels die het letterlijk uit moet voeren, heeft een neuraal netwerk een veel complexere onderliggende structuur, die is afgeleid van het neurale netwerk in onze eigen hersenen. Ze bestaan beide uit talloze neuronen die met elkaar in verbinding staan. Elk neuron reageert meer of minder sterk op bepaalde ‘prikkels’.
Vogels en slakken
Stel dat het doel is om het neurale netwerk te leren om vogels van slakken te onderscheiden. Nadat ze een heleboel voorbeelden hebben gezien, zijn de neuronen dan als het ware ingesteld op bepaalde kenmerken van vogels en slakken. Er is bijvoorbeeld een neuron A dat wordt geprikkeld door het zien van een snavel en een neuron B dat wordt geprikkeld door het zien van een slakkenhuisje. Als een neuron harder geprikkeld wordt dan de drempelwaarde, zal het een signaal afgeven. Zo zal in dit geval neuron A een signaal afgeven bij een afbeelding van een vogel en neuron B bij het zien van een slak.
Neuronen
Omdat het neurale netwerk op basis van de voorbeelden heeft geleerd dat een prikkel van A een vogel betekent en een prikkel van B een slak, kan het onderscheid maken tussen die twee. In deze eenvoudige situatie is dit mogelijk al genoeg om een vogel van een slak te kunnen onderscheiden, maar het kan snel misgaan als de snavel van de vogel bijvoorbeeld niet duidelijk op de afbeelding staat. Dan zal namelijk zowel neuron A als neuron B geen signaal afgeven waardoor het onduidelijk is of het om een vogel of een slak gaat. Door meer neuronen toe te voegen kunnen er meer kenmerken van vogels en slakken worden getoetst. Dan wordt bijvoorbeeld een neuron geprikkeld door het zien van veren of poten. Zo kan het netwerk gedetailleerder analyseren. Door meer neuronen toe te voegen kan het kunstmatige netwerk dus steeds meer en steeds complexere dingen onderscheiden. Door de verschillende neuronen met elkaar te verbinden kunnen ze, wanneer ze geprikkeld worden, een signaal doorgeven aan andere neuronen. Zo worden de kenmerken waarop de verschillende neuronen reageren als het ware aan elkaar gekoppeld.
Gewichten
Mogelijk is het ene kenmerk echter veel betekenisvoller voor het maken van het onderscheid dan het andere en daarom zijn niet alle verbindingen tussen de neuronen even sterk. Dit wordt in een kunstmatig neuraal netwerk geregeld met gewichten. Hoe groter het gewicht dat aan een verbinding hangt, hoe sterker de prikkel binnenkomt bij het buurneuron. Zo zal er voor het herkennen van een vogel een groter gewicht worden gehangen aan de verbinding ‘snavel’ dan aan de verbinding ‘poten’, omdat veel andere dieren ook poten hebben maar waarschijnlijk geen snavel. Door een combinatie van meerdere kenmerken (snavel, poten, veren, ogen, vleugels, et cetera) wordt de kans steeds groter dat het ook echt om een vogel gaat. Uiteindelijk berekent een neuraal netwerk een percentage dat de waarschijnlijkheid aangeeft dat er een vogel op de afbeelding staat (en bijvoorbeeld niet een slak).
Hoe belangrijk bepaalde kenmerken zijn om bijvoorbeeld een vogel te herkennen, leert het netwerk in de trainingsfase. Door het zien van heel veel voorbeelden worden de gewichten ingesteld.
Input en output
Globaal bestaan de netwerken uit een aantal lagen. De eerste is een inputlaag waar de nieuwe data – bijvoorbeeld een afbeelding van een dier – binnenkomen. Daarna volgen een of meerdere verborgen lagen waarin zich de neuronen bevinden die op verschillende kenmerken uit de afbeelding kunnen reageren. Als laatste is er nog de outputlaag waar de signalen uit de verschillende neuronen in de verborgen laag samenkomen tot een ‘antwoord’.
Welk neuron er als het ware aan welk kenmerk gekoppeld wordt, bepaalt het netwerk zelf. Daardoor kan het erg complex zijn om te achterhalen wat het neurale netwerk precies doet, vooral wanneer er erg veel neuronen zijn; dit is een zwaktepunt.
Desondanks zijn neurale netwerken erg populair, onder andere omdat ze kunnen generaliseren en reageren op onverwachte situaties. (tekst loopt verder onder afbeelding)