-

Machine Learning en AI: Wat kunnen computers nog niet?

Computers kunnen goed met data omgaan als deze eenmaal verzameld is, maar ze zijn minder goed in staat om iets zinnigs te zeggen over het proces van dataverzameling: hoe kwam de data vanuit de echte wereld terecht in de dataset die de computer uiteindelijk analyseert? 

In een poging om de zin van de onzin te scheiden op het gebied van Machine Learning en AI is dit het laatste artikel in een serie van 6 over “hoe computers slimme dingen doen”. We begonnen simpel; hoe kunnen computers überhaupt iets leren? Daarna bespraken we hoe computers leren van voorbeelden: we behandelden simpele vormen van supervised leren, en de iets complexere neurale netwerken. In het vierde artikel bekeken we hoe computers data samenvatten en in het vijfde artikel keken we hoe computers interactief kunnen leren; het zogenaamde reïnforcement leren.

Deze voorgaande vijf artikelen gaven een kijkje in de moderne manieren van Machine Learning en AI. De toepassingen hiervan zijn indrukwekkend: door supervised leren kunnen computers gezichten herkennen en kunnen ze voorlezen wat ze “zien’’ op een foto. Door reïnforcement leren kunnen computers zichzelf leren hoe ze een auto op de weg houden. Logisch dus dat er veel aandacht voor deze technologie is. Echter, computers kunnen ook veel dingen nog niet; de grootste valkuilen bespreek ik in dit artikel.

Wat kunnen computers nog niet?

In de vorige artikelen zagen we al een aantal dingen waar computers moeite mee hebben: zo zagen we dat flexibele supervised leren modellen zoals neurale netwerken soms last hebben van het scheiden van ruis in de data en daadwerkelijk signaal (het zogenaamde overfitten, zie hier). En, bij het reïnforcement leren (zie hier) was het veelal lastig om de volledige staat van de wereld goed te beschrijven voor de computer. Maar, in mijn ogen zijn er fundamentelere problemen. Een hele reeks van gerelateerde problemen wordt veroorzaakt door het feit dat computers veelal wel goed met data kunnen omgaan als deze eenmaal verzameld is, maar minder goed in staat zijn om iets zinnigs te zeggen over het proces van data verzameling: hoe kwam de data vanuit de echte wereld terecht in de dataset die de computer uiteindelijk analyseert? 

Data is er niet zomaar; data worden verzameld door sensoren of vragenlijsten (of andere vormen van metingen), op een bepaald moment in tijd, en veelal met een bepaald doel. Op het moment dat de data verzameld werden waren er mensen (en steeds vaker ook computers) die beslissingen namen; deze beslissingen beïnvloeden de data. En, niet alle mogelijke data komt in onze databases; meestal ziet de computer die probeert te leren van de data, zeker in het geval van supervised en unsupervised leren, maar een (heel) klein deel van de data (de zogenaamde sample); we kunnen ons dan afvragen waarom juist deze specifieke data in onze dataset zit.

Onduidelijkheid en onbegrip over het proces van data verzameling levert legio problemen op; hier een paar voorbeelden:

  • Computers ‘begrijpen’ de data niet. Het is een flauw voorbeeld, maar tot mijn spijt waargebeurd; een computer werd geleerd te voorspellen welke pagina’s van een grote e-commerce site het effectiefst waren. De computer kwam tot de verassende conclusie dat pagina #53 in Frankrijk succesvol was (veel conversie), maar in Duitsland niet. Zal dit nieuwe inzicht ons iets fundamenteels leren over onze klanten? Bij nadere inspectie van de data, en de verschillen tussen de verschillende pagina’s, kwamen we erachter dat pagina #53 in het Frans was geschreven. De computer zag enkel het nummer van de pagina’s, en begreep de inhoud niet.
  • Computers leren menselijke vooroordelen. Het is een van de bekendste voorbeelden waar supervised leren de fout in ging: Een computer die op basis van een groot aantal CVs (input) en de bijbehorende beslissing om een kandidaat wel of niet uit te nodigen voor een sollicitatiegesprek (output) leert vrouwen en migranten niet uit te nodigen. We dachten dat de computer geen vooroordelen zou hebben, en dus eerlijker zou zijn. Maar, als de mensen die de data verzamelden deze vooroordelen wel hebben, dan neemt de computer deze simpelweg over.
  • De kennis van een computer is niet representatief. We leerden een computer om te voorspellen hoe goed een docent is op basis van de studentenevaluaties van een vak. De evaluaties waren echter vrijwillig: niet alle studenten vulden de evaluatie in. Bij nader onderzoek bleek dat enkel zeer negatieve en zeer positieve studenten de evaluaties invulden: de computer leerde dus een vertekend beeld.
  • Computers, of mensen, generaliseren (ver) buiten de data. Het klinkt te simpel voor woorden: waarom leren we computers niet om huizenprijzen te voorspellen? Er is zoveel data beschikbaar, en taxaties zijn duur, dus daar moet een business case voor zijn. Echter, een model dat het vandaag goed doet op de historische data van de huizenmarkt, doet het waarschijnlijk volgend jaar helemaal niet meer goed. Of, een model getraind op data van Amsterdam doet het waarschijnlijk heel slecht in Nijmegen. Generaliseren in tijd of buiten de range van de data gaat erg vaak fout!
  • Computers verwarren oorzaak en gevolg. Een sprekend voorbeeld: neem de data van alle elektronisch patiëntendossiers in Nederland, en selecteer hieruit alle vrouwen met borstkanker. Kijk daarna of ze chemotherapie hebben gekregen en hoe lang ze in leven bleven. Het blijkt dat vrouwen die chemotherapie krijgen een grotere kans hebben om vroegtijdig te overlijden. Een (stupide) supervised leren model zou hieruit voorspellen dat het niet geven van chemotherapie leidt tot een verhoogde kans op overleven. Maar, de werkelijkheid is anders: in Nederland krijgen enkel vrouwen met een ernstige tumor chemotherapie, bij vrouwen met een kleine tumor wordt deze chirurgisch verwijderd. De verhoogde kans op overlijden komt dus niet door de chemo, maar door de ernstige tumor. De computer leert dat chemo een oorzaak is voor overlijden, maar beiden zijn simpelweg het gevolg van de ernstige tumor.
  • Computers redeneren over het verkeerde proces. Het verwarren van oorzaak en gevolg, is symptoom van een veel breder probleem: computers leren van data die op een bepaalde manier werd verzameld, maar zo gauw we de computer gebruiken om nieuwe beslissingen te maken, dan veranderen we dat proces. Stel, we gebruiken een computer om te voorspellen na hoeveel dagen patiënten, na een behandeling in het ziekenhuis, naar huis mogen. We gebruiken de huidige data van opname duur en verloop. Het blijkt dat een computer goed kan leren voorspellen hoelang een patiënt moest blijven. Indrukwekkend. Maar, er is geen garantie dat dit model, wanneer we het gaan gebruiken, goede beslissingen neemt. In het huidige proces zitten er namelijk allerlei relaties tussen geplande operaties en de ligtijd (als de bedden vol zijn dan worden er geen nieuwe operaties gepland), en tussen verschillende patiënten (als er een nieuwe patiënt aankomt, dan moet een andere naar huis). Deze relaties zijn onderdeel van het huidige proces van dataverzameling. Als we ons nieuwe computermodel gebruiken, dan veranderen we deze relaties: er is dan geen garantie meer dat onze voorspellingen nog steeds goed zijn.

De bovenstaande voorbeelden laten zien dat hoewel computers goed zijn in leren op basis van data, ze nog niet goed zijn in het begrijpen van data. Dit heeft in mijn ogen 2 oorzaken: ten eerste missen computers een begrip van sampling: welke datapunten, van alle mogelijke datapunten, zitten in de dataset? Het ontbreken van studentenevaluaties met een gematigde mening zijn hiervan een voorbeeld. Als ik eerlijk ben denk ik echter dat we dit probleem theoretisch vrij goed hebben opgelost; we weten in de statistiek prima welke manieren van sampling wel en niet tot goede modellen kunnen leiden. Maar, dit onderwerp is momenteel niet hip, en lijkt veelal compleet te worden genegeerd door de machine learners onder ons (voor een overzicht van het effect van sampling zie hoofdstuk 2 van het aankomende boek “Statistics for Data Scientist’’). 

De tweede oorzaak van de problemen hierboven is complexer: computers missen veelal een begrip van de causale processen die gaande waren toen de data verzameld werden: veroorzaakte de chemotherapie de uitkomst, of veroorzaakte de ernst van de ziekte juist de chemotherapie? De laatste vijftien jaar worden in dit vakgebied grote stappen gezet: we kunnen steeds beter correlaties onderscheiden van causale processen (zie bijvoorbeeld “The book of why’’). Maar, we komen er ook steeds meer achter dat we causale processen alleen maar kunnen achterhalen als we bereid zijn sterke aannames te maken over de processen, of als we het proces zelf onder controle hebben; beiden zijn vaak niet het geval. Zonder sterke aannames, of zonder eigen controle, zijn er geen garanties te geven dat een computer oorzaak en gevolg uit elkaar kan houden!

Toegegeven, reïnforcement leren is een “vreemde eend in de bijt” in de problemen die ik hierboven heb beschreven. Bij reïnforcement leren verzameld een computer zelf actief data; de computer “weet’’ dus welke data wordt gesampled, en de computer controleert (een deel van) het proces waardoor ook causale effecten in theorie te ontdekken zijn (in theorie, want in de praktijk blijkt dit soms nog lastig). Echter, reïnforcement leren heeft zo zijn eigen problemen: we kunnen dit momenteel enkel in situaties waar we alle relevante eigenschappen van de wereld (de context, zie het vorige artikel), en alle relevantie acties, vooraf in kaart kunnen brengen. Dat is niet vaak het geval: in veel gevallen is de wereld veel te complex om alle relevante variabelen vooraf te identificeren.

Dit brengt me tot het laatste punt: hoewel computers door de huidige beschikbare data en rekenkracht indrukwekkende dingen kunnen doen, missen ze fundamenteel een ‘begrip van de wereld’. We kunnen een computer tegenwoordig leren tekst op een foto voor te lezen: “Een meisje gooit een frisbee in het park”. Indrukwekkend (zie hier). Maar, de volgende fout komt ook voor: “Een frisbee gooit een meisje in het park”. Net iets minder indrukwekkend, en voor een mens stupide: we weten, uit al onze voorgaande ervaring, dat frisbees (en andere objecten) niet kunnen gooien. De computer echter weet dit (nog) niet.

Deel dit bericht

Plaats een reactie

Uw e-mailadres wordt niet op de site getoond