Enkele valkuilen in AI

Posted on: 23/01/2018 by: Joachim Ganseman

Artificiële intelligentie (AI) maakt de laatste jaren grote sprongen. Alleen al de explosieve groei van de belangrijkste academische conferenties en de nieuwsberichten over universiteiten die worden leeggeplukt door bedrijven maken duidelijk hoe ‘hot’ het vakgebied is.

De beschikbare rekenkracht is de laatste tijd erg toegenomen, net als de beschikbare datasets om de AI te trainen, en de keus aan achterliggende modellen (CNN, RNN, LSTM, GAN, …). De grootste spelers op het veld bieden kant-en-klaar open-source AI-platformen aan (TensorflowCaffe, Theano, Keras, ...). Onderzoekers maken hun code steeds vaker publiek beschikbaar, voorzien van een uitgebreidere readme (o.a. Jupyter Notebooks is populair). Zo kunnen ze reproduceerbaarheid claimen - en dat je zo gemakkelijker geciteerd wordt is handig meegenomen. Wie wat vertrouwd is met de terminologie en de onderliggende technologieën, kan vrij snel zelf experimentjes beginnen uitvoeren.

De resultaten zijn de laatste tijd dan ook significant. Zelfrijdend vervoer, geautomatiseerde diagnoses of medische hulp, real-time vertaling, zijn toepassingen die 20 jaar geleden vooral tot het domein van Star Trek hoorden maar vandaag al zeer dicht bij uitrol in het dagelijkse leven staan.

Hoewel de term AI een grootse claim tot ‘intelligentie’ insinueert, en media of goeroes allerhande de superlatieven niet schuwen: in essentie is artificiële intelligentie nog steeds gewoon een geavanceerde vorm van toegepaste statistiek. “Lies, damned lies and statistics” indachtig, kan je daar dus creatief mee omspringen - en inderdaad blijken veel AI’s verbazend gemakkelijk voor de gek te houden.

Een AI-systeem wordt meestal opgezet voor een duidelijk afgebakende usecase: classificatie (bvb beeld-analyse), suggesties geven (bvb bij online winkelen), gegevens genereren die voldoen aan bepaalde eigenschappen, … Een AI wordt daarvoor getraind op een bepaalde dataset. Iedere beslissing die een getrainde AI daarop neemt is in essentie een “beredeneerde gok”. Die gebeurt op basis van de tot dan geziene data: van enige domeinkennis of begrip van de ruimere omgeving is geen sprake, als die er niet eerst expliciet in werd gestoken.

Ook hier geldt ‘garbage in, garbage out’. De manier waarop een AI getraind is of blijft trainen, is erg bepalend voor de toekomstige output. In deze blogpost bekijken we (niet exhaustief) enkele belangrijke aandachtspunten.

Onvolledige / vooringenomen trainingsdata

Onvolledige of onevenwichtige trainingsdata zorgt onder andere voor ‘false negatives’: de AI kan iets niet herkennen dat hij wel had moeten herkennen. In de praktijk, als een AI een klasse aan objecten moet herkennen, wordt die idealiter getraind op een verzameling voorbeelden die deze klasse volledig en gelijkmatig dekt. Vaak is het aantal variabelen achter de schermen zo onoverzichtelijk groot ('curse of dimensionality'), dat het zo goed als onmogelijk is om een dataset van voldoende omvang te verzamelen. Data verzamelen en verwerken is ook erg tijdrovend dus duur, en tenzij je hoort tot de grote spelers die kunnen crowdsourcen op ongeziene schaal (al wordt dat ook best actief gecontroleerd), is op een bepaald moment het geld op.

Dat gebeurt niet altijd op een goed moment. Spraakmakende missers op dat vlak gebeurden dan ook al enkele keren bij gezichtsherkenning. De bias die op deze manier in een systeem ingebouwd kan raken, kan bovendien verstrekkende gevolgen hebben.

Als men er zich niet van bewust is, kan de bias in een dataset lang verborgen blijven. Pas na een jaar of twaalf, toen iemand de moeite nam om eens naar de volledige dataset te luisteren, werd ontdekt dat een belangrijke dataset voor detectie van muziekgenres wel erg veel overhelde naar bepaalde artiesten en verschillende duplicaten bevatte. Plots bleek het grootste deel van de systemen die gedurende die 12 jaar gebouwd waren op/met deze dataset, op erg los zand te staan.

"Always look at your data" blijft daarom een belangrijke leidraad. Het gevaar schuilt erin dat dat steeds minder haalbaar dreigt te worden in de context van het 'big data' gebeuren.

Confounding factoren

Wanneer we een classifier trainen, zoekt de AI naar eigenschappen op basis waarvan het onderscheid tussen de verschillende klassen met de grootste zekerheid gemaakt kan worden. Dat kunnen vrij abstracte gegevens zijn die niet noodzakelijk betekenisvol verband houden met die klassen, maar toevallig wel correleren met de beschikbare voorbeelden in de training set. We zijn ons niet altijd bewust van deze ‘confounding factoren’. Als de AI dan een ongerelateerd object krijgt voorgeschoteld en die correlerende eigenschap toch opmerkt, wordt die tot een verkeerde klasse gerekend en krijgen we een ‘false positive’.

Terug naar ons audio-voorbeeld: het blijkt vrij gemakkelijk om een systeem te bouwen dat klassieke muziek kan onderscheiden van andere genres. De accuraatheid gaat vlot voorbij 95%! Totdat men gaat kijken wat de beslissende factor is geworden: dan wordt bvb enkel berekend hoe luid het gemiddeld volume is - en klassiek wordt nu eenmaal zachter opgenomen. Resultaat: het lijkt alsof goed onderscheid wordt gemaakt tussen klassiek en pop, maar in de praktijk wordt enkel naar het volume gekeken en is er geen enkele kennis verworven over de eigenlijke inhoud van de muziek.

Minder onschuldig is een vrij recente misser in medische beeldvorming, waar een dataset van rontgenfoto's van longen beschikbaar is, die o.a. kan gebruikt worden voor ontwikkeling van diagnostische hulpsoftware. Deze dataset bleek na onderzoek (ook hier: pas nadat iemand de moeite nam eens naar de duizenden afbeeldingen te kijken) deels verkeerd geannoteerd te zijn, en deels te bestaan uit foto’s van patiënten in behandeling - en zo dreigden bepaalde ziektebeelden niet herkend te worden als de behandelingsapparatuur niet op de foto te zien was.

Er blijken dus onverwacht grote semantische kloven te kunnen zijn tussen de formele interne representaties in AI-systemen en de algemenere, vagere concepten die wij als mensen hanteren en zouden willen aanleren aan deze systemen. Bij veel ingewikkelde vormen van AI, zoals deep learning, blijft het vaak een open vraagstuk wat deze systemen nu eigenlijk leren of berekenen. Omdat we ook steeds vaker kritische beslissingen in handen laten van AI-systemen, is er daarom een beweging rond 'explainable AI' op gang gekomen.

Adversarial Examples

Een sterk groeiende tak in de onderzoekswereld rond AI maakt er haast een sport van om te proberen getrainde AI systemen voor de gek te houden. De mogelijkheid daartoe zorgt immers voor problemen bij o.a. biometrische beveiliging. Het blijkt dat de transformatie benodigd om een AI-systeem uit zijn lood te slaan soms minimaal is: 1 pixel wijzigen kan genoeg zijn. Zo kan een zelf-rijdende auto plots moeite hebben met het herkennen van verkeersborden waar stickers op plakken.

Hier is het probleem dat de resultaten van de training niet veralgemeend kunnen worden naar toekomstige onbekende data, zonder enkele vrij zware aannames: dat het systeem statisch is in de tijd, dat alle mogelijke input volledig gedekt wordt door de trainingsset, dat er geen confounding factoren meespelen,… Er schijnt nog geen pasklaar antwoord te zijn: zodra een adversarial example in de trainingset wordt opgenomen, duikt elders wel een andere manier op om de nieuwe AI toch nog voor de gek te houden.

In combinatie met een vorm van reinforcement learning, kunnen we trachten deze adversarial examples te genereren - wat aanleiding geeft tot Generative Adversarial Networks (GAN). Die zijn moeilijk stabiel te krijgen, maar als dat lukt, kunnen ze met succes worden gebruikt om realistisch lijkende gegevens (foto, video, ...) te genereren. Ook met andere generatieve AI-modellen kan al erg realistische data gegenereerd worden (van spraak tot webdesign).

Dit is goed nieuws voor wie in een creatieve industrie werkt, maar voor wie inzit met de beveiliging van AI-systemen een groot probleem. Die laatsten blijken immers plots nogal fragiel te kunnen zijn buiten hun trainingsomgeving. Zo wordt ook robuustheid ongetwijfeld een belangrijk aandachtspunt in de komende jaren.