Afgelopen week was ik voor de 10e keer naar SXSW, de jaarlijkse tech-conferentie in Austin, Texas. Zoals ieder jaar was er een duidelijk thema te spotten. Waar het voorgaande edities ging over social media, big data, IoT of VR was dit jaar Artificial Intelligence (AI, Kunstmatige Intelligentie) buitengewoon prominent aanwezig. Een absolute hype waarbij allerlei tools die we al jaren gebruiken, zoals het aanbevelings-systeem van Amazon of Netflix of de gezichtsherkenning in sommige foto tools, ineens ‘AI’ wordt genoemd omdat dat hip is. En waarbij AI er bij wordt gesleept in onverwachte sectoren. AI and food. AI and therapy. AI in sports. AI and musicvideos.
In dit verhaal wil ik drie dingen beschrijven:
- Waarom ineens die interesse in AI? Hoe komt het dat veel grote tech bedrijven en ontelbare startups ineens deze richting als belangrijke zien?
- Waar liggen er misverstanden over AI en hoe kunnen we er beter over communiceren?
- Wat zijn zorgen over AI? Moeten we ons druk maken?
Behalve deze onderwerpen heb ik ook talloze, talloze goede voorbeelden gezien van waar en hoe AI werkt, nu al. Dit ga ik in andere posts beschrijven. Nu eerst dit.
1. Waarom al die interesse in AI?
Kort gezegd: Omdat de afgelopen jaren AI zo veel beter is geworden dat we het echt kunnen gaan gebruiken. Die verbeteringen komen door vooruitgang op 3 gebieden:
- Data. AI systemen hebben voorbeeld-data nodig om te leren, en er is veel meer data beschikbaar. Als je bijvoorbeeld een AI wil maken die foto’s herkent, zal je foto’s moeten hebben waarbij je ook weet wat er op die foto’s staat, zodat je de AI kan uitleggen: Dit is een foto van een schoolbus. Daardoor kan het systeem daarna schoolbussen herkennen. Gelabelde data, heet dat. Die data is er nu op talloze gebieden; denk aan stem (‘deze geluidsopname is van iemand die “appel” zegt’) of bijvoorbeeld handschrift (‘dit zijn voorbeelden van de letter A, geschreven door 10,000 verschillende mensen’).
- Hardware. Cloud computing is algemeen beschikbaar, voordelig en schaalbaar. En supersnel geworden door het toepassen van grafische kaart hardware. Grafische kaart? Ja, bedrijven als NVIDIA liggen momenteel voorop hierin. De hardware op die kaarten, GPU genoemd wat staat voor Graphics Processing Unit, is heel geschikt om heel veel data parallel te verwerken, wat nodig is om een vloeiend beeld te maken voor bijvoorbeeld een computergame. Een standaard CPU in iedere computer heeft 2, 4 of 8 ‘cores’ (reken-eenheden), een GPU heeft er vele duizenden. Stel je voor dat je een snelweg hebt van 3000 rijbanen in plaats van 4 of 8. Dat gaat lekker snel.
- Algoritmes. Al in de jaren 90 werden ‘neurale netwerken’ gebruikt; een rekenmodel in een computer die een soort eenvoudige imitatie is van hoe hersenen werken. Neuronen die een signaal kunnen doorgeven, of niet. Het succes daarvan viel eigenlijk tegen, tot rond 2009 variaties van de standaard neuraal-netwerk algoritmes succesvol bleken. ‘Diepe’ netwerken met veel tussenlagen bleken goed te kunnen leren, er kwamen algoritmes die een geheugen kregen waardoor spraakherkenning ineens veel beter werkte, en en kwamen algoritmes die beeldherkenning slimmer aanpakten waardoor dat ineens sprongen vooruit maakte.
Ineens waren er door deze drie elementen oplossingen mogelijk voor van oudsher heel lastige problemen. Als je in de jaren 90 hebt gewerkt met dicteer-software zal je ervaren dat een moderne Siri of Google Now in je telefoon dit nu veel beter kan dan wat toen het beste was. Het is dus ook niet toevallig dat die systemen juist nu allemaal ontwikkeld worden. Het kan nu, en tech-bedrijven denken dat we straks liever praten tegen onze telefoon dan dat we ouderwets aan het typen zijn.
Het herkennen van gezichten, foto’s, stemmen kan je het ‘perceptie’ onderdeel noemen van een AI systeem. De ogen en oren. Het andere grote onderdeel is het nemen van een ‘beslissing’ door de AI. Dit kan je ook in 2 groepen verdelen.
- Zelf autonoom beslissen. Een robot ‘ziet’ dingen en reageert daar zelfstandig op. Denk aan een zelfrijdende auto; als die een stoplicht herkent of een fietser die ineens oversteekt zal hij zelfstandig beslissen wat te doen. Of denk aan een beurshandelsysteem dat zelfstandig aandelen koopt en verkoopt op basis van nieuwe data plus geleerde patronen.
- Een mens assisteren. Denk aan een AI die een arts helpt door alle risico’s van een bepaalde ingreep te tonen, en meekijkt tijdens de operatie. Of een slechtziende helpt door hem in te fluisteren dat er twee mensen voor hem zitten, waarvan 1 lacht. Of een stem-analyse doet van een 112-telefoontje en een reeks kenmerken van de beller kan geven.
Kenmerk van al deze AI systemen is dat ze ‘zelfstandig leren’. Maar daarover ontstaan wel eens misverstanden. Want zo zelfstandig is dat helemaal niet altijd. Ze hebben data en een algoritme nodig. En dat leidt me tot het tweede onderwerp wat ik wil beschrijven:
2. Waar liggen de misverstanden over AI?
Om dit goed te kunnen uitleggen eerst een klein intermezzo over de werking van AI systemen. Hoe komt het dat AI systemen leren?
Als voorbeeld neem ik hier even beeldherkenning, “Wat staat er op deze foto?” Zo’n systeem heet een classificatie systeem. Hoe het leert is in principe heel eenvoudig.
- Bouw een computerprogramma met daarin een bepaald algoritme. Bijvoorbeeld een ‘deep learning’ variant, met bepaalde extraatjes die hem in het bijzonder goed maken voor beeldherkenning, zoals het gebruik van ‘convolutionele neurale netwerken’ die goed werken in het vinden van kleine patronen, zoals horizontale lijnen, of kleurovergangen, in een plaatje. Zo’n programma kent heel veel parameters, denk maar aan honderdduizenden.
- Stop er veel data in. Als je bijvoorbeeld wilt trainen op het herkennen van gezichten stop je er zo veel mogelijk plaatjes in, die je ‘gelabeld’ hebt. Je stopt er bijvoorbeeld een plaatje in van een landschap, en je zegt ‘hier staat geen gezicht op’. En zo verder met plaatjes van auto’s, huizen, skippyballen, wat je maar kan vinden. En je stopt er plaatjes in waar wel gezichten op staan, en die label je ‘hier staat wel een gezicht op’. De computer gaat ‘trainen’ op die plaatjes, met steeds kleine variaties binnen het algoritme. Hij verandert een van de parameters een beetje, en kijkt of dat een positief of negatief effect heeft op de score. De score is bijvoorbeeld ‘hoeveel % heb ik er goed’. En dat weet hij, want je hebt de juiste antwoorden ook meegegeven met de data. En dan verandert hij de volgende parameter. Etc. En dat herhaalt hij vele rondjes, net zo lang tot hij de sleutel vindt waardoor hij goed kan onderscheiden wanneer er wel en niet een gezicht op een foto staat. Het unieke patroon van rondjes, streepjes, vlakjes en kleuren dat bij ‘gezichten’ hoort heeft hij dan gevonden. Dat zit nu in de parameters. Zelf gevonden, zonder dat de programmeur het er in heeft gestopt.
- Test het met testdata. Na deze trainingsfase ga je kijken hoe goed het systeem werkt. Je stopt er nog een keer duizenden gelabelde foto’s in (die niet in je trainingsset zaten) en je kijkt hoe goed het systeem werkt. Hoeveel % van de foto’s zonder gezicht heeft hij juist geclassificeerd als ‘geen gezicht aanwezig’? En hoeveel van de foto’s met gezicht heeft hij goed geclassificeerd? En gemist? Dit geeft een score van je systeem. Door te variëren met het algoritme en met instellingen van het trainen zelf kan je de training- en testfase herhalen tot je tevreden bent met de score. En wat ‘score’ is bepaal je zelf: Wil je zeker weten dat hij in ieder geval alle foto’s herkent waar een gezicht op staat, en neem je daarbij op de koop toe dat hij af en toe gezichten denkt te herkennen in een heg of een wolk? (Vals positieven dus toelaten). Of wil je zeker weten dat op alle foto’s die hij als foto’s met een gezicht heeft herkent daadwerkelijk een gezicht staat, en neem je daarbij op de koop toe dat hij af en toe een foto met gezicht ten onrechte heeft weggegooid? (Vals positieven uitsluiten maar vals negatieven op de koop toe nemen). Dit is altijd een balans, en het hangt helemaal af van je eigen eisen welke je wilt. Deze train-test cyclus gaat door GPU hardware nu dus redelijk snel waardoor je tot een goed model kan komen. Als iedere cyclus een week kost probeer je veel minder uit dan als het in een uurtje kan.. en dus kan je veel betere parameters voor het model vinden dan vroeger.
Als je deze fases hebt doorlopen heb je het systeem gebouwd en kan het worden losgelaten op ‘echte data’. Naarmate er meer data in komt vanuit de echte wereld kan je het systeem ook hertrainen. Dagelijks, of wekelijks.
Wat heel belangrijk is om hier te begrijpen is dat het algoritme niet is verteld wat een gezicht is, of hoe hij die moet herkennen. Het algoritme heeft dit zelf gevonden. De programmeur heeft die kennis er niet in gestopt.
Dus je kan niet zeggen: Door te zien waar het algoritme de fout in gaat, kan je leren over de vooroordelen van de programmeur. Als een beeldherkenningsprogramma een burrito denkt te herkennen op een schilderij van een bos bloemen is dat niet de ‘schuld’ van de programmeur. Die hield niet per sé van burrito’s en heeft het ook niet als feature ‘burrito-achtigheid’ ingebouwd in de software. Het is wel de ‘schuld’ van de trainingsdata die er is in gestopt. Daar zaten te veel, te slechte, of verkeerd geclassificeerde foto’s van burrito’s in.
En dit kan goed fout gaan. Een voorbeeld is een beeldherkenningssysteem binnen de Amerikaanse justitie dat bedoeld was om potentiële criminelen te herkennen. Deze was getraind op foto’s van criminelen in Amerika, maar was volkomen racistisch geworden door de verkeerde trainingsset. De kans dat een gekleurd persoon als potentieel crimineel werd aangemerkt was veel groter dan voor een blanke. Lees meer hierover in de Washington Post – Big data may be reinforcing racial bias in the criminal justice system
Het punt hierbij dat zo’n systeem veelal een ‘black box’ is. Er gaat data in, er komt een antwoord uit, en geen mens, zelfs de ontwikkelaars niet, kunnen exact zeggen hoe die beslissing tot stand is gekomen. Zo’n deep learning netwerk bestaat uit honderdduizenden parameters die allemaal invloed hebben op elkaar, dus daar is voor helemaal niemand wijs uit te worden. “Het werkt”, maar waarom? En daarin hebben tech-bedrijven verantwoordelijkheid: Ze moeten zo open mogelijk zijn over hoe het systeem getraind is, en wat mogelijke vooroordelen en fouten zijn van het systeem. En er moet vooral niet mystiek over gedaan worden. ‘Machine learning’ klinkt lekker magisch, maar uiteindelijk is het gewoon gebouwd door ontwikkelaars en gevoed met data uit de echte wereld, om het in het algoritme gestelde doel zo goed mogelijk te halen. En niet alles werkt goed, daarover moeten de bouwers meer open zijn.
Als gebruiker van die systemen moet je daar meer over weten. Alleen al om te begrijpen wanneer het wel en niet werkt, en welke keuzes er zijn gemaakt. Is er geoptimaliseerd op zo veel mogelijk goede antwoorden, of zo min mogelijk fouten? Hoe is het systeem getraind en welke vooroordelen kan het hebben? Waar kan ik het vertrouwen, en waar niet meer?
3. Moeten we ons zorgen maken over AI?
We hebben als mens soms de neiging om volledig te vertrouwen op techniek. Denk maar aan die verhalen van mensen die een rivier in rijden omdat hun navigatiesysteem ze dat vertelde. En je kan voorspellen dat de techniek steeds meer van ons leven gaat overnemen, doordat AI zo slim en gebruikersvriendelijk wordt. Dit is iets om goed op te leren letten.
Een voorbeeld: AI en sport. Er zijn heel wat apps die je op je telefoon kunt draaien die je helpen tijdens je training. Door kennis over jouw prestatie te combineren met geleerde patronen van andere atleten kan zo’n app je automatisch het optimale trainingsschema geven. En je pushen om nu in hartslagzone 4 te gaan. Maar wat die app misschien niet weet is dat je kinderen al 2 dagen diarree hebben waardoor je je heel slecht hebt geslapen. Dan kan het heel ongezond zijn om blind te vertrouwen op die aanmoediging.
Een ander voorbeeld. Stem-analyse software kan met 20 minuten aan spraak van iemand diens stem volledig nadoen. Stel dat criminelen zo’n AI de stem van je moeder hebben geleerd, en jou bellen om met haar stem te vragen wanneer je nou precies op vakantie gaat… zodat de inbraak goed te timen is. Hieronder een korte demo van dit programma, rond 4:30 worden een paar nieuwe woorden uitgesproken die zijn samengesteld uit losse fonemen die de proefpersoon heeft uitgesproken.
In nog een ander voorbeeld is getoond dat het mogelijk is om een fake video te maken. Neem een video van Donald Trump, combineer dit met een acteur die een bepaalde zin uitspreekt, en het algoritme kan de video van Trump zo aanpassen dat het exact lijkt of Trump die woorden uitspreekt. Fake news krijgt zo een heel nieuwe dimensie.
Daarnaast is er natuurlijk ook het feit dat er banen kunnen verdwijnen en veranderen door AI. En er zullen ook nieuwe ontstaan, zo zag ik op SXSW iemand met de functie ‘Chief Robot Coach’. Hoe dit precies uit gaat pakken weet niemand zeker. En is een heel andere discussie.
Duidelijk is dat AI een technologie is, een tool. En net als alle technische tools heeft die impact op werk en welzijn, en kan ook worden gebruikt door kwaadwillenden om ons te bedriegen, te bestelen of te beïnvloeden. De positieve kant er van is dat computersystemen steeds beter, slimmer en gebruiksvriendelijke kunnen worden. En daarom vind ik AI zo interessant.