Ga direct naar inhoud

Testen van Artificiële Intelligentie, kan dat wel?

Reinoud Kaasschieter
2020-03-13

Ook wanneer we blackboxtesten gebruiken, waarbij we evalueren welke output een systeem genereert naar aanleiding van input, treden er problemen op. Want intelligente systemen reageren niet altijd hetzelfde. Terwijl gangbare softwaretesten er juist van uitgaan dat systemen consistent reageren op dezelfde input.

Onze collega’s van Sogeti hebben al veel werk verricht om uit te zoeken op welke kwaliteitscriteria Artificiële Intelligentie te testen. Maar als we weten waarop we onze AI-oplossing willen testen, moeten we natuurlijk wel een testmethode hebben. Deze blog probeert uit te leggen hoe dat zit.

AI-algoritmes

Laat ik beginnen om te zeggen dat er niet één soort AI bestaat. Er zijn heel verschillende AI-algoritmen en verschillende AI-toepassingen met verschillende omvang. Ik beperk me daarom op lerende systemen, in het bijzonder Machine Learning. Dit zijn intelligente systemen die leren aan de hand van de data die het wordt gevoed. De AI analyseert de data, probeert er patronen in te herkennen en aan de hand van die patronen voorspellingen te doen over nieuwe data. Maar ieder voorspelling wordt geëvalueerd op effectiviteit, automatisch of handmatig. Deze evaluatie wordt dan gebruikt om toekomstige voorspellingen beter te maken.

Belangrijk is te weten dat bij de meeste AI-algoritmes:

  • De werking van de AI is niet direct duidelijk. Data en algoritme zijn in elkaar verweven. Er zijn wel technieken in ontwikkeling om het gedrag van een AI-algoritme beter te begrijpen. Het doel daarvan is AI transparanter te maken, zodat we te weten kunnen komen hoe een AI tot een beslissing is gekomen.
  • De meeste Artificiële Intelligentie is stochastisch van aard. Dat betekent dat de Ai zijn beslissingen neemt op basis van statistische processen. Een AI geeft dus nooit een zwartwit-antwoord. Maar altijd een antwoord met een zekerheidsmarge. Dit betekent voor het testen dat één testcase nooit voldoende is om die zekerheidsmarge te controleren.
  • Sommige AI-algoritmes leren continue van het daadwerkelijke gebruik. Dat betekent dat de testen het gedrag van de AI beïnvloeden. Wanneer we deze AI niet-realistische data, bijvoorbeeld uitzonderlijke data zoals grenswaardes, voeren, zal de AI zich anders ontwikkelen dan in het normale gebruik.
  • Data kan bij AI moeilijk hergebruikt worden. De beschikbare data moet bij lerende systemen vooraf gesplitst worden in trainingsdata en testdata. Testen met trainingsdata leidt niet tot goede testresultaten. We hebben dus veel data nodig om een AI-systeem te bouwen en te testen.

Maar aan de positieve kant: de meeste Artificiële Intelligentie is helemaal niet zo intelligent. Dat betekent dat het redelijk voorspelbaar is hoe de AI zich gaat gedragen. Wat het voor het testen weer gemakkelijker maakt.

Testmethoden

┌ Ik ga het niet hebben over de Turingtest. Deze test dient ervoor om na te gaan of een kunstmatige intelligentie net zo slim is als de mens. Zo ver zijn we op dit moment nog niet, dus die test laten we even buiten beschouwing. Al is het wel zo eerlijk om te vermelden dat chatbots al wel de Turing-test al gedeeltelijk hebben gehaald. ┘

Iedere toepassing van Artificiële Intelligentie kan een ander testmethode nodig hebben. Hiervoor heb ik drie fictieve scenario’s opgesteld om dat te illustreren. Daarbij beschrijf ik een testmethode die gebruikt kan worden. Dat wil niet zeggen dat dit de enige testmethode is die van toepassing zou kunnen zijn. Het zijn maar voorbeelden.

Scenario 1: voorspellen van beurskoersen

Dergelijke systemen kennen eigenlijk een redelijk eenvoudig testcriterium. Voedt ze met echte data en kijk hoe nauwkeurig hun voorspellingen zijn, vergelijkheden met de werkelijkheid. Alles binnen de zekerheidsmarge. Soms is het mogelijk ze te voeden met historische data, maar meestal is die al verbruikt voor het trainen van het systeem. Wanneer de AI goed voorspelt is het systemen in orde, althans, dan hopen we dat de voorspellingen in de toekomst ook goed blijven. Andere Metamorphic testing-technieken kunnen ook gebruikt worden.

Scenario 2: productaanbevelingen

Een AI claimt betere productaanbevelingen te doen dan een klassiek systeem. Hiervoor zijn al succescriteria te formuleren, zoals meer kliks of meer verkopen. In dit geval testen we niet de AI als losse systeemcomponent, maar in samenhang met de webwinkel. Eigenlijk zouden we twee versies moeten hebben. Eén winkel met en één zonder AI. Dan kunnen de resultaten worden vergeleken. Dit heet ook wel A/B testing.

Scenario 3: analyse van radiologische beelden

Artificiële Intelligentie is nu al in staat om op radiologische beelden beter tumoren te herkennen dan artsen. Hoe weten we dat? Door dezelfde beelden door een expert en door de AI te laten analyseren. Wanneer er een verschil is moeten we deze verschillen nog eens nauwkeurig te bestuderen, eventueel met nader onderzoek bij de patiënt.

Hoe we dat precies doen is even niet de vraag. Vanuit testperspectief kunnen we wel zeggen dat we van te voren niet kunnen bepalen wat op welke plaats te zien zou moeten zijn. Of wat er niet te zien zou moeten zijn. Omdat de AI dingen ziet die mensen niet herkend hebben. We kunnen niet eenvoudig het gedrag, de uitkomst van de testen, voorspellen. Dit is bij klassieke softwaretestmethoden wel vereist.

Onvoorspelbare uitkomsten

Van heel veel bigdatasystemen en ook van Artificiële Intelligentie verwachten wij dat zij ons “insights” geven, uitkomsten die we niet eerder zelf hadden aan zien komen. Maar bij iedere niet voorspelde uitkomst moeten we dus nagaan of deze uitkomst goed of fout is. Ze zijn dus niet per definitie fout, wat bij niet-stochastische systemen zoals “domme” algoritmes, meestal wel het geval is.

Dit betekent dat we buiten het AI-systeem om onze acceptatiecriteria moeten formuleren. We kunnen niet alleen zeggen: zoveel bevindingen van een bepaalde categorie zijn aanvaardbaar. De testcriteria zijn kwaliteitscriteria gaan niet alleen over data of systeemgedrag. De uitkomsten moeten niet binnen de marges vallen – ik zeg dus niet correct – maar ook aan andere criteria voldoen. Ik denk dus aan ethisch aanvaardbaar, uitlegbaar, onbevooroordeeld enz. En soms vinden we de oplossing die AI bedenkt briljant, maar niet direct zoals we zouden wensen gezien het vraagstuk dat opgelost moet worden.Sta toe dat er statistische cookies worden geplaatst bij het tonen van deze op de pagina ingesloten (embedded) YouTube content

Mijn favoriete voorbeeld van AI die, de wetenschappers die het gebruikten, verraste. Een testgeval daagde AI uit om te leren lopen, zonder dat zijn voeten de grond raken. Achtergronden via Cornell University.

Het testen van AI meestal een vorm van blackboxtesten. Het testproces is niet veel anders dan gebruikelijk: definieer uw vereisten, beoordeel het risico van bevindingen voor elke testcase, voer uw tests uit en evalueer of de gewogen, geaggregeerde resultaten zich op of boven een bepaald niveau bevinden. Voeg vervolgens wat exploratief testen toe aan de mix om bugs te vinden in de vorm van bevooroordeelde resultaten (bias). Waarbij eigenlijk het belangrijkste in de eerste stap ligt: het formuleren van resultaten in de vorm van kwaliteitscriteria. Welke resultaten van het AI-systemen vind ik aanvaardbaar en bruikbaar voor mijn specifieke business case. Een welke verrassingen ben ik bereid te accepteren.