Inleiding in neurale netwerken
Naast een wijk van een grote stad ligt een uitgebreid complex met sportvelden en sporthallen. Voetbal is een van de sporten die je op dit complex kan spelen. Op een zeker moment zijn in de wijk allemaal jongens op hun fiets op weg naar het sportcomplex. Schijnbaar om daar te gaan voetballen. Geen van de jongens heeft een bord op zijn fiets waarop staat wat hij gaat doen. De vraag is nu of het mogelijk is om op basis van een aantal eigenschappen van deze jongens te bepalen of ze inderdaad in het sportcomplex willen gaan voetballen.
Waarschijnlijk gaat de jongen voetballen
Zo gaat een jongen die een nieuwe voetbal bij zich heeft waarschijnlijk voetballen, maar zeker weten doe je het niet. Het kan ook zijn dat deze jongen de bal gekocht heeft als cadeau voor iemand anders. Het kan evengoed zijn dat hij deze bal gevonden heeft en thuis aan zijn ouders laat zien. Hieruit blijkt dat het bij zich hebben van een voetbal niet voldoende is om de beslissing te nemen.
Op zoek naar zekerheid
Aan de andere kant, bij een jongen in trainingspak met voetbalschoenen aan op de fiets is er ook geen zekerheid. Datzelfde geldt voor een groep jongens met rugtassen die gezamenlijk naar het sportcomplex rijden. Anders gezegd, pas als je jongens bij het sportcomplex ziet aankomen, daar het voetbalveld ziet oplopen om daar vervolgens een balletje te gaan trappen, dan pas weet je wie er wel gaan voetballen en wie niet.
3-daagse Big Data Opleiding
Wil je leren hoe je algoritmes zoals een neuraal netwerk in elkaar zet? Dan is onze 3-daagse opleiding Predictive Analytics & Big Data training absoluut een aanrader.
Geen van de eigenschappen is bepalend
In de praktijk is het vaak noodzakelijk om vooraf te weten wie er wel en wie er niet gaat voetballen. Omdat geen van de eigenschappen bepalend is en een vaste combinatie van eigenschappen evenmin, kan je de methode beslisboom niet gebruiken. Er is een andere methode nodig die kan werken met combinaties van eigenschappen waaruit je dan het antwoord op de vraag kan halen. In dit soort situaties gebruik je een neuraal netwerk.
Neuraal netwerk is een imitatie van de hersenen
Een neuraal netwerk is zowel in opbouw als in werking een imitatie van onze eigen hersenen. Om de werking van dit netwerk uit te leggen, gaan we het probleem van de voetballende jongens eerst scherper omschrijven.
Het handboek Artificial Intelligence Hoe kan je neurale netwerken en AI toepassen om de informatievoorziening van jouw organisatie op orde te stellen en je processen te optimaliseren? In het handboek Artificial Intelligence (een compleet recept voor datagedreven werken in 10 stappen) krijgen neurale netwerken en Big Data een grote rol toebedeeld. Een must voor elk bedrijf dat toekomstbestendig en datagedreven wil zijn. Bereid jouw organisatie voor op een algoritmische toekomst.
Het probleem dat een neuraal netwerk oplost
Om de vraag te beantwoorden wie uit de groep jongens op het sportcomplex gaat voetballen is het nodig om de mogelijke factoren te bepalen die van invloed kunnen zijn op het antwoord. Geen van deze factoren is volledig bepalend voor het antwoord, zoals eerder duidelijk werd. Zo is het meenemen van een voetbal geen garantie dat de betreffende jongen ook inderdaad gaat voetballen.
Nauwgezet onderzoek is vereist
Aan de andere kant kan een jongen die zonder enige spullen richting het sportcomplex loopt wel degelijk een voetballer zijn. Vooraf aangeven wat een bepaalde jongen gaat doen op grond van een aantal factoren vraagt om nauwgezet onderzoek. Voor een dergelijk onderzoek zijn gegevens bekend van een groep jongens die allemaal op weg (lijken te) zijn naar het sportcomplex.
Figuur 1: tabel met invloed van verschillende factoren op het wel of niet gaan voetballen op het sportcomplex voor een groep jongens.
Inspectie van de gegevens
Inspectie van de gegevens van de eerste twaalf jongens leidt in elk geval tot de volgende constateringen:
- Het hebben van een bal is geen garantie voor voetballen.
- Meegaan met een groep met bal resulteert in voetballen.
- De combinatie van kleding en voetbalschoenen resulteert in voetballen.
- Het hebben van een fiets heeft geen voorspellende waarde.
Uitgaand van de gegevens van deze twaalf jongens lijkt het erop dat het mogelijk is om eenvoudig te voorspellen wie er gaat voetballen en wie niet. De vraag die dan direct volgt, is wat de betrouwbaarheid is van een voorspelling op basis van deze gegevens.
Voorspellen versus echt gedrag
Voor de volgende vier jongens wordt de voorspelling vergeleken met hun echte gedrag. Met de nieuwe gegevens erbij blijkt ineens dat het hebben van schoenen en kleding niet bepalend is, evenmin als het meegaan met een groep met een bal.
Figuur 2: tabel met invloed van verschillende factoren op het wel of niet gaan voetballen (kolom: Echt) op het sportcomplex vergeleken met de voorspelling (kolom: Idee).
De voorspelling ligt minder voor de hand
De uitkomst van de voorspellingen (predictive analytics) blijkt minder voor de hand te liggen dan verwacht op basis van de eerste groep gegevens. Om de voorspelling te verbeteren staat een aantal wegen open:
- Gebruik meer factoren om het juiste antwoord te bepalen. De vraag is alleen, welke andere factoren je dan moet toevoegen.
- Gebruik gegevens van meer jongens. De kans is dan groot dat het doen van een goede voorspelling lastiger wordt. In het bovenstaande voorbeeld betekende het toevoegen van vier jongens het onderuit halen van de criteria voor de betrouwbare voorspelling.
- Accepteren dat de voorspelling niet altijd klopt. In de gegeven situatie is dit een bruikbare aanpak, alleen moet de voorspelling wel een ‘best guess’ (de best mogelijke oplossing) zijn.
- De voorspelling baseren op een gewogen gemiddelde van alle factoren. In deze aanpak ga je alle beschikbare gegevens gebruiken om tot een antwoord te komen. De enige moeilijkheid is het toekennen van een juist gewicht aan elke factor.
In feite bieden alleen opties 3 en 4 een oplossing. Daarbij geeft een combinatie van deze twee de beste voorspelling. Het is juist het neuraal netwerk dat in staat is om met deze uitgangspunten de beste voorspelling te bepalen.
De training R & data mining Tijdens de Training R & data mining laat de docent je in 3 intensieve dagen kennis met het vakgebied Predictive Analytics, praktische data mining & text mining. Ook het concept Big Data, privacy en ethiek komen natuurlijk langs, maar je leert vooral programmeren in R gebruikmakend van diverse bibliotheken. Stoom jezelf klaar als data scientist om een perfect neuraal netwerk op te bouwen.
De oplossingen van neurale netwerken
Computers zijn heel goed in het verwerken van duidelijk gedefinieerde gegevens volgens vaste protocollen. Een van de sterke kanten van de menselijke hersenen is de mogelijkheid om te werken met vage en incomplete gegevens volgens vaak slecht gedefinieerde methoden. De oorzaak van het verschil in mogelijkheden ligt in de manier waarop een neuron, de verwerkingseenheid van de hersenen, de gegevens verwerkt.
Een neuron geeft een signaal af
Een neuron verzamelt signalen van verschillende bronnen vergelijkbaar met een gegevenspakhuis. Welke bronnen dit zijn, ligt voor elk neuron vast op basis van eerdere informatie. Komt de som van alle ingangssignalen boven een vooraf ingestelde waarde, dan geeft het neuron een signaal af op zijn uitgang. De sterkte van dit signaal wordt bepaald door de grootte van de ingangssignalen. Hoe groter de som van de inkomende signalen, hoe groter het uitgaande signaal. Door informatie te verdelen over verschillende neuronen en door de uitgaande signalen weer te verwerken in andere neuronen kunnen de hersenen (vaak slecht gedefinieerde en incomplete) informatie verwerken.
Computers gaan anders met informatie om
Deze manier van verwerking wijkt sterk af van de ‘normale’ manier waarop digitale computers met informatie omgaan. Door een neuraal netwerk te gebruiken, kan een digitale computer wel de werking van een neuron simuleren. Dit brengt wel met zich mee dat in het neurale netwerk op een soortgelijke manier de juiste gewichten aan onderlinge verbindingen moet toekennen. Precies zoals neuronen doen in onze hersenen.
Twee methoden
In de praktijk bestaan hiervoor twee methoden:
- Vast: hierbij ga je de gewichten voor de verschillende signalen vast instellen. Hierdoor is het neurale netwerk slechts toepasbaar binnen een sterk afgebakende taak.
- Adaptief: hierbij ontstaan de verschillende gewichten door combinaties van invoersignalen en (bekende) uitvoersignalen aan te bieden.
Het antwoord klopt altijd
Door de gewichten van de onderlinge verbindingen te veranderen, zorgt het neurale netwerk er voor dat het antwoord klopt. Dit proces herhaalt zich voor een groot aantal combinaties. Dit proces, het “leren” van het neurale netwerk, zet je voort totdat de veranderingen in gewichten beneden een vooraf ingestelde grenswaarde vallen. In dat geval kent het netwerk de situatie. Vanaf dat moment kun je het gebruiken voor nieuwe, onbekende situaties. Het “leren” van een neuraal netwerk kan je op twee manieren benaderen:
- Met supervisie: hierbij gebruik je zowel invoer- als uitvoersignalen om het neurale netwerk juist in te stellen. Deze methode pas je vaak offline toe. Pas als het netwerk naar behoren functioneert, ga je het neurale netwerk in zijn eigenlijke omgeving inzetten.
- Zonder supervisie: hierbij is het netwerk volledig zelflerend. Deze manier van werken is te zien als een “training on the job”.
De omstandigheden zijn in hoge mate bepalend voor de te volgen strategie bij het toepassen van neurale netwerken.
De drie lagen van een neuraal netwerk
Om de opbouw van een neuraal netwerk en het leerproces toe te lichten, nemen we een eenvoudig neuraal netwerk als voorbeeld. Net als in onze hersenen bestaat dit netwerk in een computer uit drie lagen:
- Invoerlaag
- Verborgen laag (ook wel verwerkingslaag)
- Uitvoerlaag
In dit voorbeeld gaat het om een adaptief netwerk dat met supervisie leert. In eerste instantie zijn de gewichten wi,j van de verschillende verbindingen gelijk. Ook de drempelwaarde di,j waarboven een bepaald neuron actief is, is gelijk. Door het neurale netwerk een groot aantal situaties aan te bieden met een bekend resultaat, is het mogelijk de gewichten wi,j en de drempelwaarden di,j zo aan te passen dat de uitvoer steeds klopt. Zodra de verandering van de gewichten en drempelwaarden beneden een (vooraf ingestelde) waarde valt, kun je stellen dat het neurale netwerk klaar is voor gebruik.
Adaptieve netwerken
Het moge duidelijk zijn dat het adaptieve netwerk uit dit voorbeeld de mogelijkheid heeft om zich verder bij te regelen door op gezette tijden een “opfriscursus” te geven. Hierbij ga je opnieuw een groot aantal situaties aanbieden aan het netwerk. Bijvoorbeeld combinaties waarmee het neurale netwerk op dit moment nog minder presteert.
De voor- en nadelen van neurale netwerken
Alles overziend kenmerkt een neuraal netwerk zich door de volgende voordelen:
- kan goed omgaan met vage en onvolledige informatie
- de instelling van het neurale netwerk kan zich aanpassen aan veranderende omstandigheden en eisen
- is alleen goed bruikbaar wanneer een zekere mate van patroonherkenning gewenst is (beeldmateriaal)
Daar staan dan de volgende nadelen tegenover:
- de uitkomst van een neuraal netwerk kent een bepaalde onzekerheid die niet altijd gewenst is
- voordat een neuraal netwerk bruikbaar is moet het door een leerfase (zowel online als offline)
- de kwaliteit van de uitkomsten is sterk afhankelijk van de kwaliteit van de data die gebruikt is voor het ‘leren’ van het netwerk
- behalve bij een vast netwerk heeft de gebruiker nauwelijks invloed op de werking (interne gewichten en drempelwaarden) van het neurale netwerk
De beperkingen van dit algoritme
Net als elke andere methode voor het onderzoeken van Big Data is ook een neuraal netwerk niet zonder beperkingen. Hoewel een neuraal netwerk vaak goed uit de voeten kan met vage en incomplete informatie, kan de uitkomst van een netwerk ook incompleet zijn. De zekerheid van een beslissingsboom vind je niet bij een neuraal netwerk. Ook is niet elke verzameling gegevens en niet elke opdracht geschikt.
Zoeken naar patronen op foto’s
Ook hier is het de kunst om juist die opdrachten te kiezen waar een neuraal netwerk goed in is. Dat is in (vrijwel) alle gevallen waarin je zoekt naar patronen. Zo kun je neurale netwerken met veel succes inzetten bij gezichtsherkenning en het opsporen van bepaalde patronen op foto’s of in filmbeelden. Ook bij het opsporen van (weinig voorkomende) ziektes kan een neuraal netwerk goed scoren. Waarom? Omdat in veel gevallen de informatie niet volledig is en de symptomen waartegen getest moet worden vaak overlap kennen en zelden volledig zijn.
Ook met neurale netwerken aan de slag?
Neem gerust eens contact met ons op voor een gesprek met één van onze neurale netwerk-specialisten. Zij vertellen je graag meer over de mogelijkheden van artificial intelligence en machine learning.