- Gevoeligheid: Hoeveel gevallen vangt je systeem
- Specificiteit: Hoe weinig vals positieven vangt je systeem
- Diagnosabiliteit: Het moet werken op de overgrote meerderheid van alle gevallen
Categorie archief: Ai
AI @ SXSW 2017
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.
Kunnen AI systemen echt denken?
In het panel Adam Cheyer, VP of Technology bij Viv Labs, waar ik al eerder enthousiast over was, Rana el Kaliouby van Affectiva, een bedrijf dat zich specialiseert in emoties en technologie, en Oren Etzioni van het Allen Institute of AI. Mensen uit de loopgraven van de AI wereld dus!
Op de vraag of algemene AI ooit slimmer zal worden dan de mens stak ongeveer 60% van de zaal hun hand op, en 30% dacht van niet. Een goede kickoff van prima discussie over wat er nou wel en niet goed kan met AI.
Wat nu al heel goed werkt zijn systemen die leren met “supervised learning”. Je geeft de software input (foto’s bijvoorbeeld, of geluid van gesproken woord, of 1 miljoen potjes Go) en je vertelt de software wat het goede antwoord was. Door de grote stappen in Neurale Netwerk algoritmes van de afgelopen jaren, plus heel geschikte hardware om grote analyses te doen in de vorm van GPU’s, plus de aanwezigheid van heel veel data om mee te trainen zijn deze systemen nu heel goed in hun taak geworden. Maar dan alleen in die taak. De AlphaGo computer die nu wint van de beste Go speler ter wereld kan niet schaken. En hij zal ook nooit zeggen dat hij vandaag niet zo veel zin heeft. De AI specialisten zien deze overwinning dan ook als een kleine (maar knappe) stap in het veld van AI.
En daar zit een belangrijk punt. AI systemen van nu zijn heel nauw, gespecialiseerd in 1 taak en die beter doen dan een mens. Maar laat zo’n systeem eens een test zien die een kind in groep 4 kan maken, dan heeft de software geen kans. Een tekeningetje van een bal en een plank, met de vraag ‘wat gebeurt er als de bal wordt losgelaten’ is voor een kind makkelijk, voor een AI voorlopig onmogelijk. Daarmee is een schooltest voor een 4-jarige voor een AI systeem veel moeilijker dan een potje Go.
Waar AI ook nog moet groeien is in perspectief. Een debat houden met een AI systeem zal niet zo snel lukken, omdat die zich niet kan verplaatsen in het standpunt van de ander, en daar op in kan gaan. Ook zijn er in de taal nog uitdagingen genoeg, met zinnen waarbij wij uit de context halen welke variant wordt bedoeld.
En die Turing test dan? De Turing test is vooral een test voor menselijke goedgelovigheid. Als je werkelijk onzeker bent of een systeem een mens of een computer is, heb je niet genoeg je best gedaan om de computer te ontmaskeren. Maar gek genoeg vinden mensen dit ook niet altijd erg. Anders dan van te voren was voorspeld wordt er heel veel gewoon gekletst tegen Siri. De bouwers dachten dat de nadruk vooral op productiviteit zou liggen, maar het gebruik was dus anders. Daarom is Siri een beetje aangepast, en geeft het soms kleine verrassingen in het antwoord waardoor het meer menselijk klinkt.
En als die AI er dan is, hoe kan je dan vertrouwen dat ‘jouw AI’ ook werkelijk in jouw belang handelt? Dat vereist vertrouwen. Bij Viv Labs bouwen ze dat op door heel transparant te zijn in wat Viv leert over je. “Viv wants to know this, is that ok and do you want me to remember it?” En je kan later altijd bekijken wat Viv over je weet, en je kan het wijzigen. Er moeten ook richtlijnen komen voor hoe een AI systeem interacteert met de mens, net zoals Apple de ‘human interface guidelines’ heeft opgesteld. Dit is een nieuw gebied en er is nog veel te leren.
En lopen onze banen gevaar? Jazeker, dat is nu al bezig en zal in de toekomst groter worden. Banen die echt risico lopen zijn bijvoorbeeld vrachtwagenchauffeur, maar ook accountants en analisten, zoals eerder al beschreven. Kevin Kelly vertelde er later op de dag over: De banen die gevaar lopen zijn die waarbij productiviteit centraal staat. Daar kan uiteindelijk het werk worden vervangen door een AI systeem. En er ontstaan nieuwe banen; Kelly zegt dat een toekomstige vereiste kan zijn ‘kan overweg met AI systemen’.
Voorlopig is het dus nog niet ‘mens tegen machine’ maar is het ‘mens, geholpen door machine’. Maar iedereen in het panel is er van overtuigd dat het op een dag wel mogelijk gaat worden dat een algemeen AI systeem beter zal zijn dan de mens in de meeste taken. Het zal alleen veel langer duren dan de buitenwereld nu denkt.
Werk in een geautomatiseerde toekomst
Door robotisering en kunstmatige intelligentie gaat werk veranderen. In het panel Robbie Allen, CEO van “Automated Insights”, een bedrijf dat uit data leesbare verhaaltjes produceert, en Dennis Mortensen van x.ai, een bedrijf dat een soort virtuele persoonlijke assistente ontwikkelt, die voor jou je meetings kan plannen door via email te spreken met de andere partijen van de meetings. Beide zeggen dat ze geen bestaande banen vervangen; de geautomatiseerde artikelen werden tot nu toe niet gemaakt, en de x.ai assistente is voor alle gebruikers niet een vervanging van een bestaande secretaresse. Toch zijn ze er niet zeker van dat er nooit banen verloren zullen gaan.
Kijkend in het verleden zie je dat het werk wat vooral verloren is gegaan, mechanisch herhalend werk is. Een auto in elkaar zetten. Bomen rooien. Landbouw. En in de toekomst loopt misschien ook de vrachtwagenchauffeur gevaar om vervangen te worden. Maar in de (nabije) toekomst zijn ook de banen met intellectueel herhalend werk niet meer zeker. Denk aan accountants. Of analyse in de medische wereld. Of productie van artikelen uit informatie, in de sport- of financiële wereld bijvoorbeeld.
Maar wat moet je dan nu leren, om in de toekomst een baan te houden? De ondernemers zeggen: ondernemerschap is zeer toekomstbestendig. Mortensen vertelt dat hij z’n dochters vooral aanraadt informatica te gaan studeren, want in die sector blijft altijd werk om de systemen te bouwen, onderhouden en verbeteren. En beveiligen.
Maar ja; niet iedereen (Mortsensens dochters bijvoorbeeld, tot zijn groot verdriet) wil of kan ondernemer zijn, of informaticus. Wat dat betreft zijn er geen simpele antwoorden.
En ontstaan er dan geen nieuwe banen? Jazeker wel. Bij x.ai werken 20 mensen aan het trainen van de kunstmatige intelligentie software. En werken mensen aan de interactie van de AI met mensen; wat moet de identiteit en toon zijn van de virtuele assistente.
Duidelijk is dat de kracht van software in de toekomst alleen maar groter gaat worden. En op de vraag wat dit betekent voor de mensen die niet in die sector zitten, hebben deze internet ondernemers ook geen pasklaar antwoord. De kans is groot dat hierdoor de ongelijkheid toe gaat nemen: de eigenaren van de ai krijgen een steeds groter stuk van de taart.