Column: Lerende machines beheersen

28 februari 2019

JoostVisser.jpg

Grote tech-bedrijven met toegang tot enorme hoeveelheden data hebben geleid tot een hernieuwde interesse in machine learning gecreëerd. Nu steeds meer verschillende taken succesvol door machine learning algoritmes worden opgelost, is het tijd om opnieuw te kijken naar de vraag hoe we veilig van dat vermogen gebruik kunnen maken. Hoe kunnen we betrouwbaar systemen inzetten die gebruik maken van machine learning componenten met de onzekerheden die deze introduceren?

Door Alexandru C. Serban, promovendus bij de Digital Security-groep van de Radboud Universiteit en  werkzaam bij Software Improvement Group (SIG) en Joost Visser (foto), Chief Product Officer bij SIG en bijzonder hoogleraar Large scale software systems bij de Radboud Universiteit, vh lid Adviesraad dcypher.

Een van de invalshoeken van onderzoek naar veilig gebruik van AI en ML zijn de patronen van softwarearchitectuur die worden onderzocht in een samenwerkingsverband tussen de Radboud Universiteit, Software Improvement Group en de Technische Universiteit Eindhoven. Deze patronen stellen ontwikkelaars van softwaresystemen in staat veiligheidsaspecten van systemen te waarborgen bij het bufferen, beperken, kanaliseren en redeneren gerelateerd aan de onzekerheden die worden geïntroduceerd door ML-componenten.

In de laatste decennia is de ontwikkeling van software binnen het DNA van onze informatiemaatschappij in een versnelling geraakt. We realiseren ons vaak niet hoe diep software in onze levens is doorgedrongen. Van het contact onderhouden met vrienden tot het draaien van essentiële bedrijfsprocessen en ondernemingen, software werkt vaak onzichtbaar op de achtergrond. Het is in feite moeilijk om een proces te vinden dat niet door software wordt beïnvloed. Onze transportsystemen, bevoorradingsketens, waterbeheer, energienet en zelfs onze sociale relaties en gewoonten zijn sterk afhankelijk van software. En de reden hiervan is niet ver te zoeken. Vanaf de eerste ontwerpen waren computers en softwaresystemen bedoeld als universele apparaten. In plaats van aparte apparaten voor iedere klus, kunnen we één en hetzelfde apparaat gebruiken voor een breed scala aan taken. Het enige dat gebeuren moet is het programmeren van een set instructies, specifiek voor elke taak, om deze vervolgens uit te voeren op een computer.

Dit proces is deterministisch: computers voeren instructies uit in de volgorde waarin ze dat is opgedragen, geprogrammeerd door de softwareontwikkelaars. Hoewel dit paradigma zijn vruchten heeft afgeworpen bij het oplossen van een breed scala aan taken, komen we nog vaak taken tegen die niet in een reeks instructies kunnen worden uitgedrukt. Het herkennen van voorwerpen, het begrijpen van spraak of het rijden op snelwegen zijn taken die je hersenen eenvoudig leren en zelfstandig kunnen uitvoeren. Het is echter moeilijk om precies te beschrijven wat er gebeurt wanneer je een kat in een foto herkent of besluit een rij manoeuvre uit te voeren. En het is nog moeilijker om deze processen in een reeks instructies te programmeren en ze dan door computers uit te laten voeren.

Dat complexe taken niet deterministisch gecodeerd konden worden in een reeks instructies heeft computerwetenschappers er echter niet van weerhouden om te proberen deze op computers uit te voeren. Per slot van rekening zijn computers als universele apparaten ontworpen en moeten ze dus elke taak uit kunnen voeren. Met een gebrek aan instructies hebben onderzoekers hun paradigma veranderd: in plaats van te specificeren welke instructies moeten worden uitgevoerd, leren computers hoe ze een taak moeten uitvoeren door te kijken naar gegevens die de taak beschrijven. Dit proces, ook wel statistisch of machinaal leren (machine learning) genoemd, maximaliseert de prestaties van de computer op een specifieke taak door te kijken naar ervaringen uit het verleden.

De voornaamste ideeën die ten grondslag liggen aan het moderne machine learning zijn tientallen jaren geleden ontwikkeld. Door gebrek aan gegevens en rekenkracht is echter lange tijd slechts minieme vooruitgang geboekt bij gecompliceerde taken zoals object- en spraakherkenning. Door de brede toepassing van software in onze samenleving, die het mogelijk maakte om enorme hoeveelheden gegevens te verzamelen, en door de toename in rekenkracht, slonken beide beperkingen en maakte machine learning een comeback door. Grote tech-bedrijven met bedrijfsmodellen gericht op gegevens en computing hebben een nieuwe golf van innovaties teweeggebracht door machine learning toe te passen op een breed scala aan taken.

Een specifiek algoritme, geïnspireerd op de werking van het menselijk brein, lijkt goed te presteren op vele taken. Kunstmatige neurale netwerken – een manier om synapsen in het menselijk brein te simuleren – zijn succesvol aangepast om een verscheidenheid aan gegevens zoals afbeeldingen, tekst en geluiden te verwerken en bereiken zeer geavanceerde resultaten in uiteenlopende omgevingen. De hoge mate van complexiteit van deze systemen is voor mensen echter vaak moeilijk te bevatten. In veel gevallen kunnen onderzoekers alleen de inputs en outputs analyseren, met weinig begrip van de inwendige werking van de algoritmen.

In zekere zin stellen de recente successen van machine learning ons in staat om nog verder gespecialiseerde software te bouwen en nieuwe taken te automatiseren. Toepassingen van machine learning wordt bijvoorbeeld onderzocht voor het bouwen van autonome productierobots, zelfrijdende voertuigen, het diagnosticeren en begrijpen van ziektes, het ontwerpen van nieuwe materialen, het ontwikkelen van nieuwe medicijnen, en het vinden van nieuwe deeltjes en zelfs sterren. In brede zin dromen computerwetenschappers ervan om een computer te bouwen die leert zelfstandig te denken en intelligentie ontwikkelt, en in dat laatste mogelijk zelfs de grenzen van het menselijk brein overschrijdt.

Wanneer we kijken naar de commerciële inzet van systemen die van grote invloed zijn op de samenleving, zoals transport- en medische systemen, is het van cruciaal belang om na te denken over de veiligheids- en beveiligingsaspecten van machine learning. Allereerst is het belangrijk om ervoor te zorgen dat mensen dergelijke technologieën niet misbruiken voor geavanceerdere aanvallen. Daarnaast is het belangrijk om algoritmen te ontwerpen die bestand zijn tegen kwaadwillende aanvallen en die ongewenst of schadelijk gedrag kunnen voorkomen. Door deze aspecten te belichten komen nieuwe eigenschappen naar voren.

In ons onderzoek kijken we naar manieren om om te gaan met de onzekerheden die inherent zijn aan complexe machine learning algoritmen. Vooral complexe algoritmen lijken slecht te presteren wanneer ze worden geconfronteerd met gegevens die iets afwijken van waar ze mee getraind zijn. Slechts een kleine verstoring van de inputs kan al leiden tot instabiliteit en afname van prestaties. De eigenschap om met veranderingen in de operationele omgeving om te kunnen gaan zonder modificaties tot gevolg is al eerder bestudeerd  in software engineering. De overgang van deterministische naar probabilistische software brengt echter nieuwe en interessante uitdagingen met zich mee.

Theoretische resultaten suggereren dat er meer middelen nodig zijn om robuuste machine learning algoritmen te trainen. Maar deze middelen zijn vaak schaars. Dit probleem wordt vanuit twee verschillende invalshoeken aangepakt: algoritmeontwerp en softwareontwerp. Enerzijds focussen we op het ontwerpen van algoritmen die robuuste modellen kunnen leren met weinig middelen tot hun beschikking. Anderzijds onderzoeken we hoe we softwaresystemen kunnen ontwerpen zodat ze met onzekerheden om kunnen gaan. We zoeken naar oplossingen op het gebied van software- en systeemarchitectuur die een snelle inzet mogelijk maken van componenten met grote intrinsieke onzekerheid, waarbij tegelijkertijd de risico’s worden geminimaliseerd. Bovendien trekt dit een breder publiek, variërend van machine learning tot softwareontwerpers en ingenieurs.

De ontwikkeling van intelligente systemen zal hoogstwaarschijnlijk een multidisciplinair proces zijn. Mensen met verschillende achtergronden samenbrengen en de juiste kaders bieden voor communicatie en redeneren zal leiden tot robuustere en veiligere oplossingen.