Op dotAI passeerden verschillende interessante topics. Deze post  focust op 1 van de grote pijnpunten betreft machine learning. Machine learning modellen zijn van nature meestal niet interpreteerbaar. Het model zal je een uitkomst geven maar zal je niet vertellen hoe die uitkomst tot stand is gekomen. In machine learning kent men een afweging betreft interpreteerbaarheid. Eenvoudige algoritmen zoals lineaire regressie of decision trees zijn interpreteerbaar maar dat heeft tot gevolg dat ze vaak minder accuraat zijn dan de minder eenvoudig interpreteerbare algoritmen.

Interpreteerbaarheid

Diepe neurale netwerken die bij grote data hoeveelheden andere supervised machine learning qua accuraatheid voorbij steken zijn amper interpreteerbaar. Het zijn net deze netwerken die op dit moment de grenzen van AI onderzoek verleggen en de interpreteerbaarheid ervan is een achillespees die recent volop aandacht krijgt in AI onderzoek. Bij het opzoeken van de limieten van neurale netwerken in onderzoeksprojecten, is de interpreteerbaarheid vaak niet de eerste doelstelling. De winst van Alpha Go tegen de wereldkampioen van het spel Go is een voorbeeld waar men limieten verlegd heeft en waar de interpreteerbaarheid enkel relevant was voor de researchers om eventuele fouten te begrijpen en hun algoritme te verbeteren.

LIME algoritme

Als AI zijn intrede wil maken in het bedrijfsleven, dan zal de interpreteerbaarheid een grotere rol gaan spelen en in sommige contexten kan het een showstopper zijn als men de black box niet open kan doen. In sectoren zoals de geneeskunde gaat het om mensenlevens en een dokter kan niet handelen puur omdat een model zonder regels een indicatie geeft. Het kunnen begrijpen van een uitkomst zou zeker helpen om mensen te laten beslissen of een resultaat van een machine learning model te vertrouwen is. Het LIME algoritme biedt hier een oplossing en onderstaande afbeelding schetst een mogelijke context voor het gebruik ervan. Stel dat een model kan voorspellen of een patiënt de griep heeft: Deze voorspelling wordt vervolgens door het LIME algoritme verklaard door aan te geven welke symptomen het meest belangrijk waren bij het tot stand komen van een bepaalde voorspelling. De dokter kan dan met zijn praktijkervaring beslissen of deze verklaring logisch lijkt te zijn en kan bijgevolg de voorspelling vertrouwen en erop verder bouwen.
Elke machine learning engineer kan beamen dat de accuraatheid van een model tijdens de training niet altijd een goed indicator is van de performance van een model in productie. Het komt vaak voor dat er in productie voorspellingen gedaan worden die geen steek houden. De integratie van het LIME algoritme als een post processing stap na het aangeven van een voorspelling, is iets wat we bij Continuum gaan opnemen als een valide optie in classificatie projecten. Het LIME algoritme staat voor Local Interpretable Model-Agnostic Explanations.

  • Local: Het algoritme inspecteert enkel het gedrag van het model in de nabijheid van de instantie van de voorspelling die we willen verklaren.
  • Interpretable: De verklaring moet van die aard zijn dat een mens die kan begrijpen zonder kennis van het onderliggende model
  • Model-Agnostic: Het LIME algoritme staat los van het gebruikte algoritme voor de voorspelling.

De denkpiste achter het LIME algoritme is de veronderstelling dat een complex model lineair is op een lokale schaal. Voor elke predictie die we proberen te verklaren, gaat men de input data manipuleren. Stel dat de input van de predictie tekst is, dan zou men bv. willekeurig woorden beginnen te verwijderen van de input en deze gemanipuleerde input laten voorspellen door het model. Het algoritme gaat vervolgens kijken welke gemanipuleerde instanties qua predictie kort in de buurt van de te verklaren predictie ligt. Vervolgens wordt gekeken welke features het beste in staat zijn om het model lokaal te verklaren en vervolgens bouwt men met deze features een simpel lineair model. Het zijn deze features die ten slotte gebruikt worden om de verklaring te doen door naar hun gewichten in het lineaire model te kijken. Te ingewikkeld? 

Deze tekening geeft dit proces grafisch in 2 dimensies weer om dit visueel te kunnen weergeven. In de realiteit gaat het uiteraard niet om 2 dimensies. De originele beslissingsfunctie van het model wordt voorgesteld door de roze/blauwe achtergrond en deze is duidelijk niet lineair. Het heldere rode kruis is de instantie die we gaan verklaren. De gemanipuleerde instanties zijn de blauwe bollen en de rode minder heldere kruisjes. Het geleerde lineaire model is de streepjeslijn.
Het volgende voorbeeld probeert het nog wat duidelijker te maken en geeft aan hoe het LIME algoritme verklaarbaarheid kan geven voor classificatie van afbeeldingen. Het algoritme moet voorspellen of een kikker aanwezig is in de afbeelding. De afbeelding wordt door het LIME algoritme ingedeeld in verschillende regio’s. Elk van die regio’s worden uit de afbeelding gehaald en er wordt een evaluatie gedaan van het algoritme zoals reeds hierboven besproken. Het resultaat is dat enkel het gedeelte dat het belangrijkste was om de kikker te herkennen zichtbaar is voor een gebruiker. De onderstaande verklaring komt intuïtief overeen met hoe wij patroonherkenning doen en het wekt bijgevolg vertrouwen in de uitkomst.
Het LIME algoritme is een eerste stap in de richting waarin de steeds complexer wordende AI modellen niet langer black boxes zijn. Indien we dit probleem verhelpen, dan zal de integratie van AI in de bedrijfswereld nog meer in een stroomversnelling geraken.
Wil jij mee helpen om AI in een stroomversnelling te brengen in het bedrijfsleven? Misschien is werken bij Continuum iets voor jou! Check onze vacatures!

Nieuwsbrief

 

Regelmatig organiseren wij workshops en kennissessies en nodigen we interessante sprekers uit.

Wil je op de hoogte gehouden worden? Schrijf je dan zeker in via dit formulier.

Bedankt voor je registratie!