You are here

Kernproef of aardbeving? Hoe patronen in data dat onthullen

We leven in een wereld waarin meer en meer data verzameld wordt. Het kost ontzettend veel tijd om dat allemaal te doorzoeken op mogelijk interessante dingen. Promotiestudent Roel Bertens ontwikkelde het algoritme Ditto, dat een samenvatting van je dataset maakt om sneller de patronen en afwijkingen te vinden. door Reineke Maschhaupt

Roel Bertens deed exploratief onderzoek en staat zelf ook exploratief in het leven. Zo begon hij tijdens zijn promotietraject al het bedrijfsleven te verkennen. Hij draaide een tijdje mee bij de ING Bank en bij de tech-startup Semiotic Labs. Bertens: ‘In het bedrijfsleven zie je snel het resultaat van wat je maakt, net als bij programmeren. Dat vind ik erg leuk.’

Trein of kernproef?

Bertens begon zijn onderzoek in samenwerking met het Koninklijk Nederlands Meteorologisch instituut (KNMI). Bertens: ‘Mijn medeonderzoekers en ik wilden beter begrijpen wat voor patronen er in seismische data zitten.’ Seismische activiteit is een maat voor de veelvuldigheid en hevigheid van een aardbeving op een bepaalde plek. ‘Wij wilden een automatisch systeem maken voor de classificaties van de seismische data die binnenkwamen. Dat doe je door de precieze waarden in te delen in groepen – bijvoorbeeld alles van 0 of lager is A, alles van 0 tot 5 is B etc. - discretiseren noem je dat. Dan kun je veel sneller zeggen: Is het een voorbijrijdende trein, is er een kernproef gedaan of is er een aardbeving? Die manier van groeperen scheelt werk voor de seismograaf. Zo kun je automatisch heel veel data doorzoeken om te kijken of er bijvoorbeeld geen kernproeven worden uitgevoerd die tegen de afspraken van landen ingaan.’

Data zonder begin en eind

Seismische data is zogenaamde sequentiële data, een continue stroom van data. Bertens keek op een verkennende manier wat we van dit soort data kunnen leren. Daarvoor gebruikte hij dezelfde technieken die al op ‘transactiedata’ gebruikt worden. Bertens: ‘In een supermarkt zijn transactiedata bijvoorbeeld de producten die elke klant bij de kassa afrekent. De technieken die patronen herkennen in zulke transactiedata heb ik proberen te vertalen naar sequentiële data. Dat is moeilijker, want transactiedata begint en eindigt ergens, maar bij sequentiële data is er geen begin en eind en kan er veel meer herhaling optreden.’

‘Allereerst moet je dan een soort grammatica voor die data ontwikkelen. Die grammatica bepaalt wat voor patronen je algoritme vindt, zoals de grammatica van het Nederlands bepaalt wat voor woorden en zinnen wij kunnen maken. Je kunt daarin verschillende keuzes maken die tot andere soorten patronen leiden, niet beter of slechter, maar anders. En dat is gelijk het moeilijk eraan’, lacht hij, ‘dat er oneindig veel mogelijkheden zijn’.

Drie bijna identieke patronen in een dataset

Patronen in een tekst

Bertens paste zijn data-grammatica letterlijk toe op de grammatica van een tekst. In de tekst was elk woord een symbool. Dan gebruik je dus heel veel groeperingen voor alle verschillende woorden. De hele tekst vormt zo één sequentie en een andere parallelle sequentie bevat de functies van de woorden in de zin, dus voorzetsel, lidwoord, zelfstandig naamwoord, enzovoort. De patronen kunnen dan de zinsconstructie aangeven. Eerst keek ik: is er überhaupt regelmaat te vinden? Nou, dat was er. We kregen veel kleine patronen, zoals het lidwoord dat vaak gekoppeld is aan het zelfstandig naamwoord. Dat was nog niet zo bijzonder, maar wel dat hij de structuur kon vinden. Toen we op zoek gingen naar afwijkingen bleken dat meestal foutjes te zijn in het automatisch ‘taggen’ van het systeem. In de tekst werd ‘sounds’ bijvoorbeeld als zelfstandig naamwoord geclassificeerd terwijl het in de tekst de functie van een werkwoord had. Dat vond het algoritme toevallig omdat we zochten naar combinaties van patronen die niet vaak voorkomen.

Kapotte treinwissels voorspellen

Tijdens zijn periode bij Semiotic Labs kreeg Bertens vervolgens de gelegenheid om zijn methode toe te passen op data over spoorwissels. Met zijn medeonderzoekers keek hij naar het stroomverbruik van de elektromotor die de wissels op het spoor bedient. Hoe lang is de wissel bezig en hoeveel stroom heeft hij daarvoor nodig? ‘Als je lang genoeg patronen hebt verzameld kun je al aan het patroon zien hoe het met een bepaalde wissel gaat. Daardoor zagen we al een dag of tien aankomen dat een bepaalde wissel niet meer goed functioneerde en dat er naar gekeken moest worden. Zulke modellen kunnen dus goed gebruikt worden om uitval van wissels te voorkomen.’

Interessante data of foutjes

Uit zijn onderzoek kwam Ditto voort, een algoritme dat automatisch een kleine verzameling van karakteristieke patronen vindt in je dataset, een samenvatting dus. Hiermee krijg je snel een beter beeld van de inhoud van je dataset. Bertens: ‘De samenvatting is een soort model van de data, een compacte simpele weergave ervan. De samenvattingen die Ditto opleverde heb ik daarna gebruikt om afwijkingen te vinden. Als je dat model pakt en vervolgens vergelijkt met je hele dataset en je vindt data die niet passen in dat model, dan zijn dat afwijkingen. Dan kun je gaan kijken: wat past er niet en in welke mate past het niet? Daarna kun je een berekening maken van de meest onwaarschijnlijke patronen of combinaties van patronen. Dat kunnen interessante data zijn of het zijn gewoon de foutjes in het systeem of in het meten. Maarja, zo vind je die foutjes wel.’

Weg uit je cirkel

‘De brainstorms met mijn promotor vond ik heel leuk. En die ideeën dan werkend zien te krijgen is fantastisch. Maar daar gaat soms wel eindeloos werk zonder zichtbare vooruitgang aan vooraf, en meerdere struikelblokken’, lacht hij. ‘Wat lastig was aan mijn onderzoek is dat er niet één waarheid is waar je naar op zoek bent. Een valkuil is dat je op één plek blijft staan en een beetje alle kanten uitprobeert, zodat je een cirkel om je heen creëert. Maar je moet ook gewoon durven om een weg in te slaan, weg van die cirkel. Je weet niet of die weg doodlopend gaat zijn. Maar als je die weg niet ingaat, vind je dat ook niet uit. Daar heb ik in het begin wel echt mee geworsteld.’

Dat Bertens uiteindelijk een weg in heeft durven slaan is duidelijk. Bertens: ‘Ja, ik denk dat Ditto wel een stapje in de richting is van het aangaan van die grote hoeveelheden data in de wereld.’

Roel Bertens studeerde Computer Science aan de Universiteit Utrecht en de University of Florida. Op 17 mei 2017 promoveerde hij aan de Universiteit Utrecht met de thesis ‘Insight in Information: from Abstracts to Anomaly’. Nu gaat hij aan de slag bij GoDataDriven in Amsterdam, dat voor bedrijven waarde haalt uit hun data, bijvoorbeeld door deze data te gebruiken voor voorspellingen. Zijn promotieonderzoek werd gefinancierd door Commit, binnen het project TimeTrails.