Juridische beslissystemen zijn helemaal niet zelflerend

Mooie column van Karin Spaink (dank Bram): Ondermijning als verdienmodel, over het AI-softwarepakket van Totta Datalab waarmee gemeenten de pakkans van fraudeurs kunnen vergroten. Zou je denken, maar het systeem is 50% accuraat oftewel wijst in de helft van de gevallen mensen onterecht als fraudeur aan die vervolgens een heel onderzoekstraject voor de neus krijgen. Spaink voelde Totta aan de tand daarover, maar kreeg “Mooi toch dat we fraude zo beter kunnen opsporen? En hun datamodel was zelflerend, dan haal je die systeemfoutjes er toch uiteindelijk vanzelf uit?” als reactie. En dat hoor ik vaker, dus daar ga ik eens wat over zeggen, dat zelflerende.

Een belangrijke belofte van Artificial Intelligence is dat systemen zelflerend zijn. Dat wil zeggen dat ze leren van fouten in hun uitvoer, zodat het de volgende keer beter gaat. Een bekend voorbeeld is de klokthermostaat die ik thuis heb. Daarop stel ik in dat het om zeven uur 19 graden warm moet zijn. Standaard begint hij dan om half zeven te verwarmen, en om zeven uur vergelijkt hij de werkelijke temperatuur met de ingestelde 19 graden. Afhankelijk van het verschil wordt dat begintijdstip aangepast. Het systeem ‘leert’ op die manier hoe snel mijn huis verwarmt.

Veel systemen zijn complexer dan dit. Een auto met zelflerende inparkeermogelijkheid of automatisch rem heeft tientallen sensoren die meten hoe de omgeving verandert tijdens het bewegen, en is in staat ook dit met de gewenste eindtoestand (geparkeerd staan in dat vak of stilstaan vóór het object) te vergelijken om zo tot aangepast rijgedrag te komen voor de volgende keer. Maar het principe blijft hetzelfde: er is een gewenste eindtoestand, er is informatie over het verschil met de werkelijke eindtoestand en er is een mogelijkheid het gedrag aan te passen om die twee dichter bij elkaar te brengen.

In juridische advies- of beslissystemen snap ik werkelijk niet hoe je van een zelflerend systeem kunt spreken. Daar is er geen gewenste eindtoestand die je als computersysteem uit kunt lezen. Het beste dat je kunt doen, is dat een mens achteraf analyses als fout markeert, hopelijk met indicaties waarom. Je kunt dan je analysesysteem aanpassen op basis van de nieuwe informatie. Maar in heel veel gevallen krijg je die input niet, omdat je zelden hoort hoe het vervolgtraject is opgelost zeker wanneer er wordt geschikt of via mediation een oplossing wordt getroffen. Is iemand dan een fraudeur of gewoon een persoon die koos voor betalen om van het gedoe af te zijn?

Meer fundamenteel zit je bij juridische systemen met het probleem dat er geen objectieve waarheid is. Een juridische stelling is waar omdat de rechter als orakel zégt dat deze waar is, en zelfs dan is het alleen maar waar totdat in hoger beroep de uitspraak anders blijkt. En die feedbacklus kan zomaar een paar jaar duren ook. Dus je kunt je systeem wel verbeteren op basis van nieuwe constateringen en nieuwe gegevens, maar om dat zelflérend te noemen gaat me echt veel te ver.

Arnoud

16 reacties

  1. Goed gezegd, Arnoud. Dit brengt me op de idee dat Bayes wel eens belangrijk kan zijn als het om AI gaat en dan vooral als het gaat om beleidsbeslissingen en plannen waarvan heil wordt verwacht. Dit soort discussies wordt ook wel eens gevoerd over bijvoorbeeld screenen van oudere vrouwen op borstkanker of mensen in het algemeen op enge ziektes. De test heeft een gevoeligheid en een foutpercentage. Een zekere percentage van ziekte wordt herkend – zeg 95% – en ten onrechte wordt een zeker percentage – zeg 5% – onterecht ziek genoemd. Iedereen met een positieve uitslag krijgt een vervolgonderzoek. Het is redelijk simpel uit te rekenen dat als een ziekte één keer op tienduizend voorkomt, wat de kans is op echt ziek zijn bij een positieve uitslag. Als je een miljoen mensen onderzoekt verwacht je dat er 100 ziek zijn. 95 daarvan worden terecht herkend. Van de miljoen mensen krijgt echter 5% onterecht een positieve uitslag. Dat zijn 50.000 mensen! Op in totaal 50.095 positieve uitslagen zijn er maar 95 terecht. De kans op echt ziek zijn is dus (95/50.095) 0,0019 of 0,19 procent. Akkoord, de algemene kans op die ziekte is 1 op 10.000 en nu is het bijna 19 op 10.000 maar dan zijn er nog steeds 9.981 mensen die zich onterecht enorme zorgen maken en een duur vervolgonderzoek moeten ondergaan.

    Ik heb bewust de cijfers extreem gemaakt. Soms zal de uitslag zijn dat de test wel gedaan moet worden. 50% kans is echter wel heel ongevoelig, zeker als het ook nog eens niet door de tijd heen beter wordt.

    1. @Maarten, volgens mij is je rekenvoorbeeld niet representatief. De genoemde 50% is namelijk niet de kans op een fraude-alarm bij elk willekeurig gescreend dossier, maar de nauwkeurigheid van de gegeven alarms. Stel er zijn 1 miljoen te scannen mensen en het percentage fraudeurs is 1%, 10.000 in totaal dus. Dan zal het systeem maximaal 20.000 alarms kunnen geven indien alle 10.000 fraudeurs worden gevonden, waarvan dus 10.000 onterechte alarms. Dan is er 100% kans op fraudedetectie. Het is ook mogelijk dat het systeem maar 1000 alarmen geeft (500 fraude, 500 onterecht), de pakkans is dan 5%. De 50% zegt dus niets over de kans dat een fraudeur wordt opgespoord, maar alleen iets over het aandeel fraudeurs in de set alarms.

      Dat bij een klein percentage fraudeurs het systeem zich weet te beperken tot het geven van een set alarms waarin de helft inderdaad echte fraude is, is eigenlijk best goed.

    2. Je gaat hier uit van een zelfde percentage op foute positief en foute negatief. Dat is in de praktijk natuurlijk niet zo. Bovendien, je moet kijken naar alle kosten van alle onderzoeken: We gaan 1 miljoen mensen testen op een ziekte, en dat kan of door iedereen de dure 99.999% betrouwbare test te geven, of door eerst de goedkope (95%) test te doen, en dan de foute positieven de betrouwbare test te geven. Dus 1.000.000 x €1 + 50.095 *€100 = €6.009.500 in plaats van €100.000.000. De besparing van €94 miljoen als voordeel staat hier tegenover de levens van de 5 foute negatieven, en wat extra onrust bij 50.000 mensen als nadeel.

    3. Als je een miljoen mensen onderzoekt verwacht je dat er 100 ziek zijn. 95 daarvan worden terecht herkend.

      Inderdaad. En 5 zijn dus helaas wel ziek, of worden het binnen enkele jaren, maar bij het bevolkingsonderzoek waren ze schoon. Zoiets is heel heftig voor wie het overkomt. Maar statistisch is het onvermijdelijk, want geen enkel onderzoek is perfect, hoe goed ook.

      Zoiets speelt nu in Ierland met baarmoederhalskanker. Processen om schadevergoeding. Misschien zijn er echt vermijdbare fouten gemaakt. Maar dan nog. https://www.independent.ie/irish-news/health/smear-test-scandal-206-women-develop-cancer-after-allclear-36850237.html

  2. Op zich vind ik de terminologie van Spaink ‘ondermijning van de rechtstaat’ redelijk hysterisch. Het is niet zo dat op basis van de alarmen uit het systeem er direct een brief met formele beschuldiging, te verwachten maatregelen/boetes plus uitnodiging voor de rechtbank de deur uitgaat. Als je de output van het systeem interpreteert als ‘dit zou verdacht kunnen zijn, laat een mens hier eens goed naar kijken voordat we een onderzoek gaan starten’ dan lijkt er wat mij betreft weinig aan de hand.

    Plus wat Arnoud zegt: het systeem is niet zelflerend, later de gewenste output aan de dossiers knopen is niet meer dan het aanbieden van een extra trainingset.

    1. Maar als je het op die manier interpreteert kan je het toch ook zelflerend maken? Als er een mens naar kijkt kan die vervolgens bepalen of het inderdaad interessant was en dat terugkoppelen naar het systeem.

      1. De term ‘zelflerend’ wordt eigenlijk alleen gereserveerd voor een automatisch systeem wat zichzelf kan bijsturen zonder extra menselijke input. Het systeem in het artikel krijgt alleen extra training.

  3. Mijn persoonlijke ervaring als door de computer aangewezen “fraude-verdachte”: Gezegend met een umlaut op een van de letters in mijn achternaam, vindt het computersysteem van de studiefinanciering mijn naam niet in de lijst van ingeschreven studenten die uit de computer van de universiteit rolt. (Waarschijnlijk hebben die computers de umlaut op een verschillende manier “mishandeld”.) “Ha!”, zegt de stufie-computer, “geen inschrijving: fraude verdacht”. Dus eist stufie een verklaring in een boze brief. Kopietje inschrijving regelen bij de universiteit, als brief opsturen … niets horen … zal wel goed zijn. Volgende jaar hetzelfde probleem. Weer een brief van stufie of ik maar wilde bewijzen wel als student ingeschreven te zijn. Enfin, weer een kopietje van de inschrijving bij de studentenadministratie geregeld om op te sturen . Dit keer met een wat zuurdere brief erbij, waarin stond dat ze dit probleem vorig jaar ook al hadden en dat ze misschien eens naar hun software moesten kijken. Geen bericht terug. Het jaar daarop, u raadt het al, weer zo’n brief dat ik niet ingeschreven stond. Weer langs de studentenadministratie voor een kopie. Nog maar eens een postzegel gekocht. In de brief uitgelegd dat dit het derde jaar op rij was, dat ik twijfelde aan hun leervermogen en dat excuses me wel gepast leken. Nooit excuses gehad.

    De enige oplossing die je dan als welwillende burger rest is je onthouden van mogelijk verdacht gedrag. Ik ben snel afgestudeerd.

    Ik geef toe, dat het bovenstaande uit de tijd is dat dit soort “computerondersteunde fraudedetectie” nog niet als AI verkocht werd. Maar technieken worden niet plots beter door er een hippe naam aan te geven.

    Het beste dat je kunt doen, is dat een mens achteraf analyses als fout markeert, hopelijk met indicaties waarom.

    Het probleem is dat zo’n analyse niet gemaakt gaat worden. De fraude-gevalletjes-ambtenaar kijkt naar een signaal. “Verdachte” maakt duidelijk waarom er niets aan de hand is. Ambtenaar sluit case en gaat door met de volgende melding, want hij heeft nog een dikke stapel te gaan … Niemand rapporteert het gebrek van de software. Niemand verbetert de software. Niemand neemt verantwoordelijkheid, waardoor “zelflerend” een lege dop wordt. Excuses van de overheid: dat nooit!

  4. Toch denk ik dat een zelflerend systeem wel mogelijk moet zijn, zolang het systeem maar input krijgt om van te leren. Zo heeft Google via DeepMind AI al de AlphaGo en AlphaZero engines gemaakt om respectievelijk de spellen Go en Schaken te winnen. En ze zijn daar nu enorm sterk in geworden in hele korte tijd.

    Maar voor dat leerproces is enorm veel data noodzakelijk. En wel veel, veel meer dan aangeleverd kan worden als het om fraude gaat. Met een dataset van 17 miljoen mensen (alle Nederlanders) houdt het op een gegeven moment gewoon op met hoeveel meer het systeem nog kan leren.

    Het probleem is niet dat het niet kan, maar dat we gewoon niet genoeg data kunnen aanleveren. Uiteindelijk kan het systeem wel verwerken of de aannames die het maakte ook correct waren. Immers, als het is uitgezocht dan kunnen de analyses van het systeem aangepast worden, ongeacht of er wel of geen fraude was. Maar omdat het om een enorm klein aantal gevallen gaat kan het systeem gewoon niet snel genoeg leren. Dat betekent dat we vooral geduld moeten hebben om genoeg gegevens te verzamelen zodat het systeem beter kan leren…

    Maar dan is het weer jammer dat de wereld zo snel verandert en het systeem dat ook moet bijhouden. Wat vroeger een teken van fraude was, kan tegenwoordig gewoon normaal zijn. Wat interessanter is, is de vraag of er fraudeurs zijn die niet door het systeem zijn opgemerkt. Want ‘false positives’ zijn vervelend maar dat kan wel opgelost worden. De ‘false negatives’ zijn meer een probleem in deze situatie…

    1. Naast het gebrek aan input dnek ik dat dit inderdaad een probleem is. Bij een term als ‘leren’ verwacht een leek dat het systeem een fout geen tweede keer maakt, terwijl dat in werkelijkheid wel gebeurt. Daarnaast valt het vantevoren niet te zeggen of een systeem door leren een voldoende niveau kan halen. Bij de engines die je noemt is er aardig aan het model gesleuteld totdat er iets uitkwam dat het goed doet.

  5. Dit systeem zal de beschikking hebben over een database waarin van elke bijstandsontvanger een aantal kenmerken is opgeslagen, eigenschappen met waarden. Een van die eigenschappen kan zijn of er bij de desbetreffende persoon fraude is geconstateerd. Je kunt dan proberen correlaties op te sporen tussen de waarden van de andere eigenschappen en de waarde van deze ene eigenschap. Je zou dat zelfs semiautomatisch of helemaal automatisch kunnen doen. Daaruit kunnen dan formules rollen die de waarde van die eigenschap voorspellen als functie van de waarden van de andere eigenschappen. Dit kan bijvoorbeeld met factoranalyse; in het algemeen met machine learning. Je wilt een formule met 1) hoge precisie (het percentage aangewezen fraudeurs dat inderdaad fraudeur is; 50% vind ik al heel aardig) 2) hoge vangst (recall) (het percentage fraudeurs dat aangewezen wordt) en dan wel voor data die niet tot de trainingsset behoren. (Een formule van de vorm “een persoon is een fraudeur als het persoon A is, of persoon B, of persoon C, …”, waarbij A, B, C, … precies de geconstateerde fraudeurs zijn, beschrijft met 100% precisie en vangst welke personen in de trainingssset fraudeurs zijn, maar heeft 0% voorspellende waarde op een niet in de trainingsset opgenomen persoon.)

    Die formules worden beter naarmate je ze meer trainingsdata geeft. Waarom zou je dat niet zelflerend mogen noemen?

    1. Mijn punt is dat dat geen zélf lerend systeem is. Het systeem is namelijk statisch, wat je doet is periodiek een nieuw model bouwen op basis van een uitgebreidere dataset. Dat is op zichzelf prima maar het is misleidend dat zelflerend te noemen, omdat dat laatste suggereert dat het systeem zelf corrigerend vermogen heeft. Dat is niet zo, het systeem dat je aanzet blijft ijzerenheinig mensen als fraudeur aanmerken tot in lengte van dagen op basis van dezelfde criteria.

        1. Ja, maar het systeem krijgt steeds te weinig en lang niet altijd betrouwbare data om van te leren. En dan is het toch echt meer statisch dan zelflerend. Een zelflerend systeem zoals Google’s Alpha Zero heeft miljoenen sets van data nodig om hier patronen in te kunnen herkennen en op basis van die patronen voorspellingen te kunnen doen. Want een zelflerend systeem zoekt naar dergelijke patronen. Maar met een kleine dataset kom je niet tot betrouwbare patronen…

Geef een reactie

Handige HTML: <a href=""> voor hyperlinks, <blockquote> om te citeren, <UL>/<OL> voor lijsten, en <em> en <strong> voor italics en vet.