In ons dagelijks leven worden meer en meer algoritmes ingezet, bijvoorbeeld om verkeersborden, dieren of mensen te herkennen. AI is de laatste jaren zoveel vooruitgegaan, dat die algoritmes verrassend goed lijken te werken. Maar er bestaan eenvoudige technieken om ze te verschalken…

denkwerkKoen Vervloesem

Stel je voor: je bent je in je net aangekochte zelfrijdende auto aan het verplaatsen. Tot de ingebouwde snufjes behoort onder andere een systeem dat automatisch verkeersborden herkent en daarop reageert, door bijvoorbeeld te stoppen bij een stopbord. Verwonderd over de mogelijkheden van de techniek rijd je naar huis, eerst nog goed oplettend, daarna begin je Facebook op je smartphone te checken. Tot je plots met een grote smak tegen een andere auto botst…

Wat is er gebeurd? Op het scherm van je auto zie je nog net nadat je van de eerste schrik bekomen bent, dat die het stopbord heeft herkend als een verkeersbord dat je je op een voorrangsweg bevindt. Hoe is dat mogelijk? Is de techniek dan echt zo slecht? Nee, je bent het slachtoffer van iemand die het verkeersbord met een sticker met ‘ruis’ heeft beplakt, waardoor het er voor ons hetzelfde uitziet, maar voor een computer helemaal anders.

 Blinde vlekken
Dit voorbeeld is niet uit de lucht gegrepen: het is een vorm van wat onderzoekers een adversarial example (vijandig voorbeeld) noemen. De term werd in 2013 bedacht door enkele onderzoekers van Google, Facebook, New York University en University of Montreal. In hun artikel (https://arxiv.org/abs/1312.6199) beschrijven ze hoe ze door nauwelijks waar te nemen verstoringen in een beeld aan te brengen, een classificatie-algoritme het beeld verkeerd kunnen laten classificeren.

Een neuraal netwerk dat getraind is om specifieke objecten te herkennen, herkent niet alleen de objecten waarop het getraind is, maar ook objecten die erop lijken. Je verwacht dan ook dat na een kleine verstoring in een beeld van een stopbord, het neurale netwerk dit beeld nog altijd als een stopbord herkent.

De onderzoekers vonden echter een manier om speciaal uitgedokterde en voor mensen nauwelijks waarneembare verstoringen in het beeld aan te brengen die het neurale netwerk in het beeld een willekeurig ander object laten herkennen. Dat kan doordat deze kleine verstoringen de neuronen van het netwerk foutief kunnen activeren en dat de combinatie van een groot aantal van die kleine foutjes er precies voor zorgt dat het netwerk het beeld van de ene naar de ander herkenningsklasse verschuift. Een klein verschil in de invoer kan dus resulteren in een groot verschil in de uitvoer.

Ze ontdekten zelfs meer: de vijandige voorbeelden die ze op deze manier konden genereren voor één neuraal netwerk, bleken in veel gevallen ook andere neurale netwerken te kunnen verschalken, zelfs als die netwerken met andere parameters of zelfs andere voorbeelden getraind waren. Het lijkt erop te wijzen dat neurale netwerken intrinsieke ‘blinde vlekken’ hebben waarop ze slecht presteren.

negative1 2

Links staan de beelden die het neuraal netwerk dient te classificeren,
in het midden (uitvergroot) de verstoringen en rechts de beelden
met de verstoringen op toegepast. In alle rechtse beelden
herkent het neuraal netwerk een struisvogel

Efficiënt vijandige voorbeelden genereren
Twee van de auteurs zijn verder op onderzoek gegaan en publiceerden een jaar later een artikel (https://arxiv.org/abs/1412.6572) waarin ze meer inzicht gaven in wat er misloopt. Volgens hen wijst het bestaan van vijandige voorbeelden erop dat neurale netwerken, zelfs de meest geavanceerde die we hebben en die heel goed presteren, niet de onderliggende concepten leren in de data.

De techniek van neurale netwerken lijkt op het eerste gezicht goed te werken omdat dit type algoritme goed presteert op natuurlijk voorkomende gegevens. Maar zodra je ze ‘kunstmatige’ gegevens voert, loopt het mis. De onderzoekers van Google ontwikkelden een algoritme om heel efficiënt van een gegeven voorbeeld een vijandig voorbeeld te maken. Daarmee slaagden ze er bijvoorbeeld in om een neuraal netwerk een panda in een foto als een gibbon te laten herkennen. En wat nog sterker is: het netwerk heeft maar liefst 99,3% vertrouwen in zijn herkenning van de gibbon, terwijl het maar 57,7% vertrouwen had in zijn herkenning van de panda.

In de jaren erna hebben allerlei onderzoekers hun eigen methodes ontwikkeld om vijandige voorbeelden te genereren. Een groep Japanners is er zelfs in geslaagd om door het aanpassen van één pixel neurale netwerken om de tuin te leiden (https://arxiv.org/abs/1710.08864).

panda gibbon 2

Door een heel klein verschil herkent het neurale netwerk
het beeld niet meer als een panda, maar als een gibbon

Optische illusie
Deze blinde vlekken van neurale netwerken kunnen we ook een soort optische illusies voor machines noemen. Net zoals een optische illusie ons brein om de tuin kan leiden, doet een vijandig voorbeeld dat met een neuraal netwerk. Het grote verschil: wij beseffen meestal nog wel dat iets een illusie is. En zoals het voorbeeld van het verkeersbord aantoont, is het bestaan van optische illusies voor machines niet zomaar een theoretisch weetje, maar kan het in de praktijk tot grote problemen leiden.

Zo beschrijven onderzoekers van Google en OpenAI in hun artikel (https://arxiv.org/abs/1607.02533) dat de vijandige voorbeelden zelfs nog werken als je een foto met een vijandig voorbeeld afdrukt, fotografeert, uitknipt en dan weer aan het neuraal netwerk voert. Kortom, de veranderingen die je aanbrengt om een neuraal netwerk om de tuin te leiden, zijn heel stabiel. In een demonstratie (https://arxiv.org/abs/1602.02697) slaagden onderzoekers er effectief in om verkeersborden verkeerd te laten herkennen.

Verwarrende sticker
Een andere onderzoeksgroep van Google slaagde erin om AI in de echte wereld te ‘hacken’ met een sticker met een speciaal patroon op: de adversarial patch (https://arxiv.org/abs/1712.09665). Je plaatst eenvoudigweg de sticker naast het object dat je door een camera wilt laten herkennen. Het neurale netwerk is daardoor zo van slag dat het iets heel anders herkent. Zo denkt het plots dat een banaan (waarvan het 97% zeker is) een broodrooster (waarvan het maar liefst 99% zeker is) is.

Dit is uiteraard niet meer zo subtiel: de sticker ziet er heel vreemd uit en wij mensen zien onmiddellijk dat er iets verdachts aan de gang is. Maar in veel gevallen doen neurale netwerken volledig geautomatiseerd hun werk zonder dat er nog mensen aan te pas komen. Zo kun je bijvoorbeeld een beveiligingscamera om de tuin leiden die erop is getraind om gezichten te herkennen en alleen video’s opslaat wanneer er mensen te zien zijn. Je draagt gewoon een vijandige sticker op je jas die de camera laat denken dat je een (bewegende) boom bent… Achteraf is er dan geen enkel bewijsmateriaal te vinden van je activiteiten, want de camera zag geen mens.

Hoe werkt dit? Elk beeld kan meerdere objecten bevatten en classificatie-algoritmes zijn erop getraind om slechts één object in een beeld te herkennen. Ze focussen zich dan ook op het ‘belangrijkste’ of ‘meest opvallende’ object in het beeld. En laat die vijandige sticker nu precies een heel opvallend object zijn, dat de aandacht van het algoritme volledig naar zich toe trekt én ook nog eens speciaal ontworpen is om het om de tuin te leiden.

banana toaster 2

Is het een banaan? Nee, een broodrooster volgens de AI!

Dit is geen schildpad
Enkele studenten van het MIT gingen nog een stapje verder: in een artikel (https://arxiv.org/abs/1707.07397) legden ze een methode uit om 3d-objecten te ontwerpen die er vanaf bijna elke hoek als een vooraf gekozen object uitzien voor een neuraal netwerk.

Zo 3d-printten ze een schildpad die in veel gevallen als een geweer gedetecteerd wordt. Beeld je nu eens in wat het omgekeerde teweeg zou kunnen brengen…

turtle rifle 2

Deze 3d-geprinte schildpad wordt in veel gevallen als een geweer gedetecteerd

Tegenmaatregelen?
Er bestaat een relatief eenvoudige aanpak om een neuraal netwerk tegen vijandige voorbeelden te beschermen: train het netwerk op een mix van natuurlijke en kunstmatige voorbeelden. Daardoor leert het netwerk het verschil te zien tussen een echte panda en een kunstmatig aangepaste panda om het netwerk om de tuin te leiden. Maar zelfs met deze extra training kun je vijandige voorbeelden nooit volledig uitsluiten. Hoe meer computerkracht de aanvaller tot zijn beschikking heeft, des te subtielere vijandige voorbeelden hij kan genereren die het neuraal netwerk toch nog verschalken.

Zo zijn er nog allerlei voorstellen gedaan van technieken om neurale netwerken tegen vijandige voorbeelden te beschermen, maar even vaak zijn er daarop tegenmaatregelen ontdekt en nieuwe types vijandige voorbeelden. Sommigen argumenteren daardoor zelfs dat voor sommige klassen van problemen vijandige problemen onvermijdelijk zijn (https://arxiv.org/abs/1809.02104). Hun conclusie? Voor complexe beelden is de robuustheid tegen vijandige voorbeelden heel wat slechter dan onze intuïtie ons vertelt.

Vogel-of-fiets-chanllenge
Google heeft een wedstrijd uitgeschreven om de beste vijandige voorbeelden te construeren: de Unrestricted Adversarial Examples Challenge (https://ai.googleblog.com/2018/09/introducing-unrestricted-adversarial.html). De wedstrijd heet unrestricted omdat er geen beperkingen zijn op de waarneembaarheid van je wijzigingen. Je kunt als aanvaller deelnemen en dan een vijandig voorbeeld aanleveren, of als verdediger en dan een algoritme ontwikkelen dat een vogel van een fiets kan onderscheiden en dat ook met vijandige voorbeelden moet kunnen.

image1 2

Vijandige voorbeelden kun je op diverse manieren construeren:
door ruis toe te voegen, door te roteren, door het gezichtspunt te veranderen…