Neurale netwerken

Computers worden steeds slimmer.

Het is inmiddels al 20 jaar geleden dat schaakgrootmeester Kasparov door Deep Blue werd verslagen. De techniek heeft sinds die tijd niet stil gestaan. De grote vooruitgang die op het vlak van hardware en kunstmatige intelligentie is geboekt, heeft het mogelijk gemaakt dat Alpha Go enige tijde geleden de wereldkampioen van Go heeft kunnen overtreffen. Een jaar geleden werd dit nog voor onmogelijk gehouden. Deze groei in kunstmatige intelligentie is mede mogelijk gemaakt door ontwikkelingen op het gebied van zelflerende systemen zoals neurale netwerken.

Maar hoe werkt een neuraal netwerk nou eigenlijk?

Kort samengevat is een kunstmatig neuraal netwerk een leermodel dat gebaseerd is op de werking van de hersenen, een biologisch neuraal netwerk. Het netwerk bestaat uit een aantal ‘neuronen’ die gemodelleerd zijn naar hun biologische tegenhangers – ze krijgen signalen binnen waardoor ze vervolgens uitgaande signalen genereren. De neuronen zijn uitvoerig met elkaar verbonden door een adaptieve verbinding die sterker of zwakker kan worden gemaakt. Bij het ontwerp worden de neuronen opgesplitst in een aantal lagen – input, output en “hidden layers” die zich tussen de input en output bevinden.

Het ontwerp maakt het mogelijk om het netwerk te laten “leren” patronen te herkennen. Dit wordt gedaan door het te voeden met een groot aantal uitgewerkte voorbeelden. Hierbij wordt er bij elke iteratie gekeken of het resultaat juist is voorspeld, en afhankelijk hiervan worden de adaptieve verbindingen geleidelijk aangepast, totdat het netwerk een optimale nauwkeurigheid bereikt.

Bij analys.io hebben we al langer de wens om Machine Learning in te zetten ten behoeve van de accountantspraktijk. De eerste pilot die op onze lijst staat, richt zich op risicogericht samenstellen. We denken dat dit een onderwerp is waar Machine Learning van toegevoegde waarde voor de praktijk kan zijn.

We hebben ervoor gekozen om, voordat we met administraties aan de slag gaan, het concept eerst uit te testen op een relatief kleine dataset. Het plan was om een neuraal netwerk op te zetten dat voorspelt of de AEX-index morgen stijgt of daalt. Als input hebben we hiervoor 18 andere koersen (zoals Midkap, de Nikkei, Dow en een aantal valutakoersen en rentestanden) gebruikt.

Voor de implementatie van dit neurale netwerk is gebruik gemaakt van Tensorflow, de open source Machine Learning library van Google. Het was nog best een puzzel om de data geschikt te maken voor het TensorFlow algoritme. Toen dat eenmaal gelukt was, draaide het model vrij snel. Uiteindelijk hebben we met een data set van ongeveer 4.000 regels (1 regel per dag, dus ongeveer 11 jaar data) het model gebouwd. Tensorflow was hier een paar minuten mee bezig (op een gewone laptop). Uiteraard geen probleem maar wel iets om in de gaten te houden als we met grote datasets aan de slag gaan.

Na een tijdje experimenteren had het model een nauwkeurigheid van 60% bereikt. Niet goed genoeg om op de beurs te gaan handelen. Het is marginaal beter als kop-of-munt. De reden zal ongetwijfeld zijn dat de bewegingen in de AEX van veel meer variabelen afhankelijk zijn dan de input die wij zo eventjes van de sites van DNB en CBS konden trekken. Dit is ook niet zo belangrijk – de doelstelling was om Machine Learning toe te passen en dat is gelukt.

Tijd voor de volgende stap – Machine Learning en accountants. De eerste stappen zijn gezet dus hopelijk kunnen we daar op niet al te lange termijn meer over vertellen. Wil je op de hoogte blijven? Schrijf je hieronder in voor de nieuwsbrief.