Copyright All Rights Reserved © 2018 Salves

Testen van AI – wat maakt het zo bijzonder?

testen-van-ai-wat-maakt-het-zo-bijzonder
8 oktober '18
  • Deel dit bericht
  • linkedin icon

Testen van AI – wat maakt het zo bijzonder?

door Sander Mol

Het gebruik van Artificial intelligence neemt snel toe. We vragen van alles aan Siri, Alexa en andere digitale assistenten en we laten op de weg steeds meer handelingen over aan onze auto. Ook bedrijven maken de stap. Bij een bank controleert AI alle betalingen en bij een webwinkel bepaalt AI de klantreis en voert de chatbot de gesprekken. Dit moet allemaal worden getest, maar de huidige testmethoden schieten tekort. Hoe bedenken we een nieuw plan voor testen van AI?

Slimme AI denkt niet zoals een mens

Op dit moment lijkt iedereen met AI bezig te zijn. Het aantal dagelijkse toepassingen stijgt explosief en het vakgebied ontwikkelt zich heel snel. AI wordt steeds beter, waardoor we er steeds meer op gaan vertrouwen. Siri zet onze wekker en selecteert de muziek die we willen luisteren, chatbots bepalen hoe de klant onze organisatie ervaart en onze auto bepaalt of we een noodstop zouden moeten maken of niet. Deze voorbeelden laten al meteen zien dat het belangrijk is om op te blijven letten. Een AI, ook één die duizenden uren getraind heeft, kan foute interpretaties doen en foute keuzes maken, net zoals wij dat doen. Bovendien nemen mensen bij een keuze veel context mee, die een AI niet heeft.

Operatie geslaagd, patiënt overleden

Een mooi voorbeeld waarin een lerende AI zijn eigen weg kiest, is het experiment met een robot-spin. Deze robot-spin had als opdracht om zichzelf voort te bewegen, waarbij de onderkant van de poten zo weinig mogelijk contact hadden met de grond. Uiteraard wilde de onderzoekers graag dat de spin zichzelf leerde lopen. De spin vond echter een veel efficiëntere manier om de opdracht uit te voeren, namelijk omrollen en op de rug voortbewegen. Zonder dat de onderkant van de poten enig contact hadden met de grond. Binnen de opgegeven kaders de perfecte oplossing! Zo zijn er nog vele andere voorbeelden waarbij de AI zijn eigen weg zoekt. Een bijpassend gezegde is ‘operatie geslaagd, patiënt overleden’, wat ons er meteen aan herinnert dat we in sommige sectoren écht zeker willen zijn dat de AI doet wat we verwachten. Om te weten of iets werkt, voeren we natuurlijk al vele jaren testen uit. Maar om AI te testen, moeten we terug naar de tekentafel. Op een groot aantal punten is testen van AI écht anders.

Testen van AI is afhankelijk van data

Voordat AI met enige zekerheid een keuze kan maken, moet hij eerst veel leren. Om te kunnen leren, is data nodig. Zeeën aan data. Het is niet alleen veel werk om deze data te verzamelen en bruikbaar te maken. Het is ook een uitdaging om data te vinden die écht lijkt op de praktijksituatie van jouw klant, zeker als je een volledig nieuwe applicatie bouwt. Als voorbeeld kunnen we eens kijken naar een webwinkel, waarbij we graag relevante producten (zoals sokken) willen tonen naast het product dat de klant al wil
bestellen (zoals schoenen). We weten pas of dit werkt, als we een groot aantal klanten eerst schoenen én sokken laten bestellen. Daarna kunnen we eens kijken of een klant die alleen schoenen wil bestellen, het advies krijgt om er sokken bij te nemen. Het voorbeeld van sokken en schoenen is iets wat wij als testers zelf vooraf kunnen bedenken. Maar hoe weet je dat de data waarmee je test, daadwerkelijk de data gaat zijn die de klanten en gebruikers gaan invoeren? Dit is niet specifiek een AI probleem, ook bij ‘gewone’ applicaties is dit van belang. Echter, bij AI zijn data en applicatie met elkaar verweven. Een op data getraind model IS een deel van je applicatie. De applicatie zal zich gedragen op de manier waarop het getraind is. Het legt verbanden tussen producten en geeft op basis daarvan suggesties. Een bekend marketingverhaal is dat in de supermarkt de mannelijke klanten die luiers halen, ook graag een kratje bier meenemen. Dit verband zal de AI misschien ook leggen in onze webwinkel, maar misschien op zijn eigen manier. Dus als een student bij ons een krat bier bestelt, zou de AI kunnen voorstellen om er ook een pak luiers bij te nemen. Dat zou betekenen dat de AI nog niet genoeg complexiteit meeneemt in zijn voorstel. En dat is lastig om af te vangen als je geen regels code hebt om te testen.

Omgaan met onzekerheid

Het voorbeeld van het bier en de luiers laat zien; veel relaties die de AI legt, merk je pas na een enorm groot aantal interacties en het leren van deze interacties via training. Zo’n training geeft nooit 100% zeker het juiste resultaat, al laat je de AI dagen leren. Dus wanneer is het goed genoeg? Als de trend de goede kant op gaat? En hoe ver de goede kant op? Hier zijn acceptatiecriteria op maat voor nodig. In plaats van 100% garantie op het juiste resultaat, geeft AI je altijd een bepaalde kans terug. Bij medische foto’s krijg je bijvoorbeeld de kans terug dat er een bepaalde aandoening op te zien is. En een zelfrijdende auto acteert op de kans dat de camera een voetganger laat zien.

AI zit er dus ook een klein percentage van de gevallen naast. Hoe ga je daarmee om? Hoe vang je dit af? En ook hier weer; wat is het risico en hoeveel tijd stop je in dit vangnet? Testers zijn bij uitstek geschikt om hierover te adviseren.

Programmeren blijft een groot deel van het werk

Het bouwen en trainen van AI is nog altijd mensenwerk. Een vooraanstaand AI-wetenschapper, Andrew Ng, zegt zelfs dat er bij het bouwen en trainen van een AI applicatie nooit één beste oplossing is. Er zijn heel veel variabelen die er samen voor zorgen dat een AI gaat leren. Het is een kwestie van experimenteren tot het leren snel en goed genoeg gaat. Dit maakt AI-applicaties anders dan volledig geprogrammeerde applicaties. Bij AI gaat het om vinden van de juiste parameters om te komen tot een bepaalde voorspelling. Al deze parameters gaan als één geheel aan het werk en zijn dus moeilijker te beoordelen dan de reguliere regels code, waarbij er af en toe een IF-statement ontbreekt of een variabele niet wordt gedefinieerd.

Bovendien is de AI slechts een gedeelte van de applicatie. De rest moet worden geprogrammeerd. Bijvoorbeeld bij een auto; als de kans 93% is dat er een voetganger voor de auto staat, dan rem ik. Dat zal bovendien afhangen van de huidige snelheid van de auto, want bij een hoge snelheid zal uitwijken beter zijn dan afremmen. Dit is een combinatie van programmatuur (als de snelheid onder de 40 km/u is dan…), maar je kunt snelheid ook meenemen in je AI-model. Allemaal ontwerpkeuzes, die we kunnen testen.

Klaarstomen voor productiedata

Het trainen en leren van AI gaat door na livegang. De kracht van AI is juist dat het ook leert van praktijksituaties. Dit betekent dat je na go-live zult moeten monitoren. Het liefst met een bepaalde structuur en dekking, waardoor het in essentie weer testen van AI is. Je houdt verschillende trends in de gaten, om te zien of het gedrag van de AI nog steeds aansluit op de manier waarop je het bedoeld hebt. Dit wordt nóg belangrijker, als je gebruikers bewust proberen je AI verkeerd te gebruiken en verkeerd gedrag aan te leren. Een inmiddels beroemd voorbeeld is de chatbot van Microsoft die door gebruikers werd om getraind tot een ‘nazi’. Het wordt extra belangrijk voor een tester om de impact en het risico hiervan in te schatten. En als je vindt dat erop getest moet worden, dan moet je met een creatieve inslag een paar scenario’s bedenken om dit te testen.

Testen van AI – nog veel te ontdekken

De weg naar het testen van AI-applicaties zit vol uitdagingen. In dit blog hebben we gezien waar we zoal op moeten letten. De vraag is dan hoe we dit gaan oplossen. Binnenkort start een Europees onderzoeksproject om een aanpak te bedenken voor het testen van AI. Hier is Salves bij betrokken. Een deel van het antwoord zou kunnen zijn om AI juist in te zetten bij het testen. Ook hier is Salves volop mee bezig. De AI toekomst staat op de stoep en Salves is klaar om de deur open te doen.

NEWSROOM OVERZICHT