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 het proberen uit te leggen.

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.

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.

Kracht van neurale netwerken

Een rulebased systeem zou compleet in de war raken wanneer je het een heel ander dier laat zien dan wat er in zijn regels staat; het systeem kan daar niets mee. Een neuraal netwerk zal alsnog aangeven hoe groot de kans is dat het een van de dieren is die het kent. De kracht van neurale netwerken is in de afgelopen jaren steeds sterker geworden: netwerken met een diepte van twintig of dertig lagen zijn niet ongewoon. Onderzoekers van Microsoft hebben er zelfs al een met 152 lagen gebouwd voor het classificeren van afbeeldingen.

De kracht van neurale netwerken is dat ze met onverwachtse situaties om kunnen gaan en leren van voorbeelden. En laten we nou heel veel voorbeelden hebben in onze ‘big data’ wereld.
Dit soort systemen kunnen ook met inzichten op de proppen komen die we zelf altijd over het hoofd hebben gezien. En de algoritmes kunnen tevens “hergebruikt” worden; Bovengenoemd model dat getraind is om vogels en slakken van elkaar te onderscheiden, heeft waarschijnlijk minder data nodig om een vogel van een cavia of gorilla te onderscheiden.
Omdat onze wereld te complex en te contextueel gevoelig is, is een rule-based system vaak ontoereikend. Een beslisboom werkt in de echte wereld vaak niet, want het aantal variaties is in heel veel situaties simpelweg te groot om de computer exacte instructies te geven.
Neurale netwerken zijn hier beter in en belonen ons terloops zelfs met antwoorden op vragen waarvan we niet wisten dat we ze hadden.

Boek een lezing over kunstmatige intelligentie

Bestel mijn boek over kunstmatige intelligentie