Neurale netwerken: wie begrijpt ze nog?

Kunstmatige intelligentie heeft een enorme versnelling ondergaan door de toepassing van ‘diepe neurale netwerken’. Op vrijwel onnavolgbare wijze nemen zulke netwerken steeds meer taken van ons mensen over. Wie begrijpt hoe ze werken?

Neurale netwerken worden steeds vaker en met steeds meer succes ingezet. Bijvoorbeeld op het gebied van zelfrijdende auto’s, medische diagnostiek, het bordspel ‘GO’ of het herkennen van dieren op plaatjes. In plaats van een computer expliciet te programmeren voor een bepaalde taak, laten onderzoekers een diep neuraal netwerk (DNN) zelf uitvogelen wat de typische karakteristieken zijn van de invoer, en een uitspraak doen over wat deze invoer voor betekenis heeft. 

Het gaat hierbij vaak om big data, en altijd om hoog-dimensionale data. Foto's bijvoorbeeld hebben al gauw tienduizenden dimensies omdat ieder pixel een variabele is. Ook medische data, zoals de uitkomst van een genexpressietest, is hoog-dimensionaal. 

Mensen begrijpen de invoer en de uitvoer van een neuraal netwerk. Maar de innerlijke werking is een black box. Het voelt ongemakkelijk om computers dingen te laten beoordelen op een manier die we zelf niet begrijpen.

Een test dataset van zestigduizend handgeschreven cijfers (28x28 pixels), met het tSNE algoritme geordend in tien vrijwel niet overlappende clusters.

Algoritme verbeteren

Nicola Pezzotti, promovendus aan de TU Delft in de Computer Graphics and Visualisation groep (faculteit Elektrotechniek, Wiskunde & Informatica), liep stage bij Google. Hier verbeterde hij een algoritme (t-distributed Stochastic Neighbor Embedding of t-SNE) dat erop gericht is de samenhang in een hoog-dimensionale dataset weer te geven in een laag aantal dimensies, geschikt voor de mens. 

Het algoritme kan bijvoorbeeld gebruikt worden om een grote dataset van 60 duizend gedigitaliseerde handgeschreven cijfers (van 28x28 pixels) geordend weer te geven in een twee dimensionaal plaatje. Daarnaast is het door Pezzotti verbeterde algoritme een krachtig middel om inzicht te verkrijgen in de werking en kwaliteit van neurale netwerken. 

Visuele weergave

Die kwaliteit is nu niet altijd goed. Als een neuraal netwerk slecht ontworpen is, of slecht getraind, dan maakt het fouten bij het interpreteren van nieuw aangeboden data. Maar een grote validatie-dataset handmatig doorspitten op onverwachte en ongewenste resultaten is onbegonnen werk. De uitvoer van een neuraal netwerk is namelijk typisch ook weer hoog-dimensionaal en moeilijk te overzien door mensen. Bij het herkennen van dieren kan de uitvoer voor elk nieuw plaatje bijvoorbeeld bestaan uit een lange rij getallen, waarbij elk getal de kans uitdrukt dat het een hond, een duif, een olifant, enzovoort weergeeft. 

Het voelt ongemakkelijk om computers dingen te laten beoordelen op een manier die we zelf niet begrijpen

Een visuele weergave van deze data, met het tSNE algoritme, geeft heel snel inzicht. Is er te veel overlap tussen clusters, of zijn er misschien enkele onverwachte kleine clusters? Voor informatici zijn dat aanwijzingen om het ontwerp of de training van het DNN te herzien. 

Nicola Pezzotti maakte zijn implementatie van het algoritme zo snel dat het door iedereen te gebruiken is, thuis op een eenvoudige desktop-PC en zelfs via een webbrowser. Google heeft het inmiddels toegevoegd aan hun open source software platform voor het ontwerpen en valideren van neurale netwerken (‘Tensorflow.js’). 

‘Off-label’ gebruik

Biomedische onderzoekers van het Leiden Universitair Medisch Centrum hebben het tSNE algoritme toegepast, maar zonder tussenkomst van een neuraal netwerk. De onderzoekers hadden van grote aantallen individuele cellen gemeten in welke mate bepaalde proteïnen op het celoppervlak voorkwamen. 

De visualisatie met het tSNE algoritme maakte hen duidelijk dat er mogelijk nog onontdekte celtypen van het menselijk immuunsysteem en nieuwe tussenstadia van stamcellen bestonden, en waaraan deze te herkennen zijn. Door hier vervolgens gericht op te zoeken konden de onderzoekers deze celtypen daadwerkelijk aantonen.