Ondanks grote toepasbaarheid zijn er twijfels bij het daadwerkelijk toepassen van kunstmatige intelligentie (artificial intelligence – ai). Hoe weet je bij grote hoeveelheden input en gebruikers dat het systeem het goede of het goed genoeg doet? Hoe verkrijg je het juiste vertrouwen in ai? Waarom is dit in geval van ai zo’n issue? Ai is 'blackbox development', waarbij het algoritme niet direct inzichtelijk is. Voor vertrouwen in ai is transparantie nodig. Testen kan deze transparantie bieden.
De toekomst is kunstmatige intelligentie (ai): toepasbaarheid, beschikbaarheid en toegankelijkheid van ai zijn eindeloos en groeien alleen maar. En toch zijn er twijfels bij het daadwerkelijk toepassen van ai. Zoals in het geval van zelfrijdende auto’s: twijfels door discussies over aansprakelijkheid bij ongelukken door softwarefouten, onbetrouwbare objectherkenning en moeizame interactie met onvoorspelbare menselijke verkeersdeelnemers.
In het klein worstelen softwareontwikkelaars van ai, maar ook afnemers, met deze twijfels. Wat is een bug in geval van ai en hoe los je deze op? Hoe weet je bij grote hoeveelheden input en gebruikers dat het systeem het goede of het goed genoeg doet? Hoe verkrijg je het juiste vertrouwen in ai? Waarom is dit in geval van ai zo’n issue?
Whitebox versus blackbox
In ’traditionele’, whitebox, softwareontwikkeling kun je in de code traceren hoe het systeem tot een bepaalde output komt. Het algoritme, hoe het systeem zich gedraagt, valt samen met de code. Vertrouwen wordt verkregen doordat testers kunnen aangeven wat de dekkingsgraad van testen van de code en de beslissingen en de output is. Daarnaast kunnen gebruikerstesten op een zelfde manier een dekkingsgraad van de processen afgeven, daarmee wordt redelijk goed voorspeld hoe het systeem zich in de echte wereld gedraagt.
Bugs zijn traceerbaar in de whitebox code en gericht fixbaar. Dat er toch iets mis kan gaan in productie ligt met name aan complexiteit en ontwikkelprocessen, waardoor niet altijd alles wordt overzien en getest. Maar omdat de code in principe transparant is en samenvalt met het algoritme is er terecht vertrouwen dat de kwaliteit van whitebox development beheerst kan worden.
Bij blackbox development, zoals ai, is de code niet transparant. Bovendien wordt het algoritme, en dat wordt vaak vergeten, niet alleen door de code bepaald maar vooral door de trainingsdata. De code (bij ai: het neurale netwerk) gedraagt zich anders indien getraind met andere data. Of een schaap als schaap wordt herkend hangt af van de hoeveelheid en representativiteit van de aangeboden trainingsdata met schapen (en andere beesten).
Explainable ai?
Van blackbox development kun je alleen de algemene werking en principes van lerende software uitleggen. Je kunt daarbij het blackbox karakter van de code niet opheffen. De trainingsdata bepaalt in combinatie met de software het algoritme. Uitleg van ai en het verkrijgen van het juiste vertrouwen moeten zich hier rekenschap van geven.
Aanzetten hiertoe zijn gegeven in een aantal artikelen in de Computable. De oplossing wordt daar ‘Explainable ai’ genoemd. Deze artikelen zijn niet meer dan eerste verkenningen. Wij willen hier de volgende stappen zetten.
‘Explainable ai’ betekent niet dat je het gedrag van een systeem (het algoritme) uitlegt aan de hand van de code of algemene principes van ai. De code zelf blijft blackbox, dat is nu juist zijn kracht: een neuraal netwerk zoekt zelf naar een oplossing en deze oplossing (het zogenaamde model en daarmee het algoritme) zit verspreid in de code en de trainingsdata. Het is alleen te zien in het gedrag van het systeem. Zoals een gedachte niet is te vinden in een deel van de hersenen maar het product is van samenwerkende hersendelen, zintuigen en een omgeving.
Voor vertrouwen in ai moet zich men zich eerst rekenschap geven van waar vertrouwen op is gebaseerd.
Wat is vertrouwen?
Om het gedrag van het systeem te kunnen uitleggen en daarmee vertrouwen te winnen moet je begrijpen hoe het psychologische proces werkt waarin vertrouwen tot stand komt. Vertrouwen ontstaat door:
- Herkenning en identificatie: als ik iets herken denk ik dat het reageert zoals ik en dat mijn eisen, wensen en angsten worden gezien. ai is ‘eng’ omdat het onbekend en onvoorspelbaar is. ai zou een eigen, niet-menselijke logica volgen. Spectaculaire, meestal uit de context gerukte, verhalen uit de media helpen hier niet bij.
- Autoriteit: bij whitebox development heb je vertrouwen dat de programmeur weet wat hij doet, dat zij de code en daarmee het algoritme beheerst. Dit vertrouwen op basis van autoriteit is er bij blackbox development minder: niemand kan exact uitleggen en daarmee voorspellen hoe het systeem in alle situaties reageert.
- Reputatie: hoe komt ai in het nieuws? Een ongeluk met een zelfrijdende Tesla krijgt meer aandacht dan een kettingbotsing. Er is veel aandacht voor de ‘bias’, vooringenomenheid, die bij de keuze van trainingsdata doorwerkt in het algoritme van ai. Bij ai kan vooringenomenheid zichzelf versterken door alleen maar oog te hebben gegevens die het bevestigen. Er moeten feiten komen om inzicht te geven in de daadwerkelijke risico’s van ai.
- Vertrouwen dat het ergste wordt voorkomen: zijn er controlemechanismen (zoals politie, leger, surveillance) die eventuele calamiteiten signaleren? Is er begrip van wat het systeem absoluut niet of juist wel moet doen en wordt dit afgedwongen?
- Ethiek en sociale context: komen de belangen en perspectieven van alle relevante partijen tot uitdrukking in het algoritme? Als de makers van de software of het gedrag van de software blijk geven van sensitiviteit voor maatschappelijk en menselijk belang (of wanneer dit ontbreekt) zal dit invloed hebben op het vertrouwen. Dit geldt ook voor het belang van de samenleving als geheel, het milieu, het klimaat. De vraag is dan onder andere: met welk oogmerk is het systeem geoptimaliseerd? Zijn alle praktijksituaties voorzien en zijn deze uitgeprobeerd op het systeem (zoals testen dit in “normale” trajecten doet)? Zijn de verwachtingen en noden van alle gebruikers aantoonbaar vertegenwoordigd? Zijn vooroordelen, tunnelvisie en beperkte contexten oververtegenwoordigd in de trainingsdata?
Vertrouwen in ai
Testen van blackbox development speelt een cruciale rol bij het verkrijgen van het juiste, gefundeerde, vertrouwen. Op basis van bovenstaande vijf vormen van vertrouwen moet testen de volgende karakteristieken hebben:
- Niet alleen de afnemers van de ai software maar ook de gebruikers, klanten, mogelijke datatypen en omstandigheden moeten invloed hebben op wat wordt getest. In testsituaties en resultaten moeten deze terug te vinden zijn. Testers gaan op zoek naar de gebruikers (of de real life situaties) en stellen met hen op wat de juiste verwachtingen en criteria zijn.
- Testers analyseren de trainingsdata op compleetheid, representativiteit en juistheid in het licht van de requirements uit.
- Testresultaten geven aan wat de mate is waarin het systeem voldoet aan de verwachtingen van gebruikers. Op deze manier krijgt de gebruiker een beeld van het voor hem relevante gedrag van het ai-systeem. Testen kunnen laten zien vanuit welke gebruikersgroepen het systeem wordt beoordeeld en spelen snel in op nieuwe inzichten voor wat betreft gebruikersgroepen en hun specifieke verwachtingen.
- Beoordeling van de testresultaten bestaat uit statistische analyse. Testresultaten leveren in geval van ai namelijk alleen een mate van voldoen op: in geval van beeldherkenning geeft het systeem een rekenresultaat van de mate waarin een beeld voldoet aan een model. Dit is niet 1 of 0 maar iets er tussen in. In geval van een zoekmachine wil je een bepaald resultaat in de hitlijst zien, plaats 5 in plaats van 1 op de lijst is misschien minder goed, maar niet helemaal fout. Hoe goed of fout iets is, zal afhangen van een rekenkundige analyse waarbij je het belang of risico mee weegt.
- Het ai-systeem moet per versie (afhankelijk van de trainingsdataset en aanpassingen in het systeem) worden beoordeeld en de verschillende versies moeten onderling kunnen worden vergeleken. Hiermee laat je zien dat er greep is op de kwaliteit van het systeem en dat er keuzes kunnen worden gemaakt voor wat betreft het gewenste gedrag en de versie die je gebruikt. Testen draagt zo ook bij aan de optimalisering van het ai-systeem.
- De testen worden periodiek, ook in productie, uitgevoerd en worden bijgesteld naar nieuwe inzichten en informatie over gebruik uit productie. ai-systemen zullen ook continue worden bijgesteld door nieuwe gegevens. Met name ai-systemen zoals zoekmachines en beeldherkenning zijn gevoelig voor veranderingen in de wereld. De wereld van ai is dynamisch. Testen moeten hierop inspelen en in de dynamiek het gedrag van het systeem kunnen valideren tegen de wensen, verwachtingen en risico’s van mensen.
Conclusie
De wereld van ai is dynamisch: het algoritme is niet gelijk aan de code maar wordt ook bepaald door trainingsdata die steeds vernieuwd worden vanuit de wereld, die ook nog eens steeds veranderd. Naast de input is ook de output van ai niet eenduidig en bestaat voornamelijk uit rekenresultaten. Toch wordt ai ingezet om beslissingen op te baseren. Dat er twijfels zijn bij de inzet van ai en het vertrouwen achterweg blijft, is logisch.
Testen kan hier een belangrijke rol vervullen door de verwachtingen vanuit de wereld te gebruiken als testbasis en daarmee de kwaliteit van de trainingsdata en de output van het ai-systeem in diverse voor mensen relevante situaties transparant te maken. Hiervoor zal een tester van ai datascience vaardigheden en ethische en maatschappelijke sensitiviteit moeten hebben!