Uitlegbare AI, het brein en wiskundig programmeren
Waar denk ik nu anders over? Interessante vraag. Ik ben sinds 2017 met emeritaat, en aan het eind van een druk en boeiend leven in de (medische) beeldanalyse is daar ineens de explosie van artificiële intelligentie, en ‘deep learning’.
Die werken buitengewoon goed, vooral in herkenning: in beelden, video’s, tekst, audio, DNA, kortom in álle data. Er zijn spectaculaire voorbeelden te over: Google Lens, medische computerondersteunde diagnose (mijn vakgebied), spectaculaire beeld-, kunst- en tekst-generatie met ‘generatieve adverseriële netwerken’ (GAN’s, ‘stable diffusion’), sprekende voorouders op MyHeritage, ontwerpen van nieuwe moleculen, vertalen, etc.
Veel van mijn collega’s zagen (misschien wel met enige verbijstering) dat al het oude handmatige ‘feature’ werk overboord gezet werd: alles wordt immers vanzelf geleerd, vele netwerken zijn kant-en-klaar te downloaden – en direct te trainen op eigen data, als er maar genoeg data en veel rekenkracht is.
Er is echter wel één probleem: we snappen nog steeds niet wat er precies gebeurt binnen in die netwerken. Voor mij, met een levenslange focus op door-het-brein-geïnspireerde medische beeldanalyse (ofwel: afkijken van het brein) brak een soort ‘nieuwe periode’ aan, waarin een kwartje leek te vallen. Met name de wiskundige insteek van de staf in mijn groep en de kennis van het retinale en visuele connectoom bleken een mooie basis om met name de eerste lagen van die netwerken te doorgronden. De lagen in die artificiële netwerken hebben veel overeenkomsten met de lagen in ons visuele systeem.
Ik ben nu bezig met een interactief boek over ‘Explainable Artificial Intelligence’ (XAI). Er bestaan heel veel insteken voor XAI, met methoden uit de statistiek, speltheorie, grafentheorie, etc. Onze insteek was altijd a) vanuit de wiskunde (en dan met name de geometrie) om structuur en vorm te beschrijven, te herkennen en te bewaren; en b) vanuit het brein om de efficiëntie, om zo compact mogelijk te representeren, en om zo weinig mogelijk energie te gebruiken.
De lagen in het netwerk leren incrementeel een steeds grotere context. Het blijkt dat het leren van veel kleine stukjes beeld (de eerste context rond een pixel) al direct de operatoren oplevert om differentiaal-geometrie te kunnen doen. Het is boeiend dat we de filters en lagen in de artificiële netwerken gemakkelijk kunnen visualiseren. In de diepere lagen zien we een steeds complexere representatie, de eerder genoemde stapsgewijze toename van context. Hier komen de werelden van ‘complex clustering’ en ‘perceptual grouping’ bijeen. De compacte code diep in het netwerk, de latente representatie, wordt o.a. gebruikt voor gezichtsherkenning en het genereren van bijv. beelden van tekst (de beroemde ‘stable diffusion’).
Er vallen nu twee zaken op. Ten eerste zijn er heel veel boeken over deep learning en AI, maar er is opvallend weinig connectie tussen de AI-ontwikkelaars en de neuro- en medische wetenschappers: in beide werelden wordt een compleet ander jargon gesproken en worden andere technieken gebruikt, zoals veel nieuw AI-jargon en wiskunde versus bijv. nieuwe cellulaire en farmacologische technieken. De gemiddelde datawetenschapper weet relatief weinig van de moderne neurowetenschap. Toch is er onvoorstelbaar veel bekend over met name het visuele systeem, tot op nanoschaal. Neem het netvlies, het retinale connectoom: dit is geen camera. Een camera brengt beelden alleen van A naar B, en waar begint de analyse dan? Het netvlies is een ‘perceptuele groepering’-voorbereider: het blijkt dat het netvlies al op ieder pixel tenminste 12 verschillende kanalen naar achteren stuurt, gesplitst in vorm, snelheden in verschillende richtingen, kleur en temporele intensiteitsvariatie. In ons visueel systeem in ons achterhoofd zit een geometrische machine, die, zoals eerder opgemerkt, dezelfde structuur lijkt te hebben als een diep neuraal netwerk. En wat doen die honderden miljoenen amacrine-cellen in ons netvlies? En hoe kan het dat ons brein maar 25 Watt aan vermogen gebruikt, met cellen die vuren met enige kilohertz? Datacentra verbruiken megawatts, mijn laptop werkt op 3 gigahertz. Er is dus nog een wereld te leren en te ontdekken, ofwel: AI lijkt nog maar net begonnen. Het werkt ook andersom: De gemiddelde neurowetenschapper of medicus weet weinig van de laatste software en netwerkontwikkelingen in de AI-community, anders dan als gebruikers. Wie kan een generative adverserial netwerk (GAN) uitleggen?
Het tweede dat me opviel: de problemen van Open Source software. De programmeertalen die nu hot zijn, in gebruik bij miljoenen, zijn gratis en hopeloos ouderwets. Typ maar eens ‘Python code’ in Google images. Zo zag het er uit in de 90-er jaren, de tijd van WordPerfect en ASCII terminals. Er zijn tientallen, wellicht honderden, talen zoals Python, R, Julia etc. Deze zijn niet of nauwelijks te lezen door neurowetenschappers of medici. En kijk eens naar de namen van Python-packages op www.pypi.org. Totaal onbegrijpelijk! Hoe vind je daar nu jouw code? De mensen die echt rijk zijn geworden van Open Source zijn de aanbieders van cursussen… Er zijn natuurlijk veel en prachtige applicaties gebouwd, numeriek werkt het allemaal, maar de tocht naar het diep begrijpen, optimaliseren en wiskundig beschrijven vereist mijns inziens toch een omgeving waarin wiskunde veel meer en op natuurlijke wijze een rol speelt.
Ik gebruik al 25 jaar Mathematica, en kan hier echte wiskunde én datawetenschap mee doen. Alles is mooi visueel en modern zoals het hoort: formules, symbolen, alle data science, visualisaties etc., en zeer interactief, en snel. Alles is symbolisch geïmplementeerd, wat een uitermate grote flexibiliteit geeft. Met goed doordachte naamgeving van alles. Het is gemaakt voor mensen: door het ‘functioneel programmeren’ is het net Engels. Het kost geld, zoals iedere professionele service. Het gekke is dat vrijwel alle universiteiten het gratis kunnen aanbieden aan hun staf en studenten. Voor andere gebruikers is het met enige honderden euro’s per jaar een schijntje, met name gezien de tijdwinst die je met het ontwerpen en makkelijk overdragen (‘papers with code’) kunt maken. Ik vind met name fijn dat het stimuleert tot ‘spelen met wiskunde’. Hier blijkt Mathematica uniek: het is niet alleen een waanzinnig uitgebreide handleiding met tutorials, maar alles kan direct geïmplementeerd worden, met dezelfde mooie wiskundige notatie als iedereen gewend is uit de literatuur.
Ik was serieus verbaasd, komend uit de moderne wereld van meer dan 25 jaar Mathematica, de AI-wereld zo op Python te zien storten, voornamelijk ‘omdat het gratis is’, en omdat ‘iedereen het doet’. De grote doorbraken lijken alleen te komen uit de gigantische AI-labs van Google, Meta, Microsoft, Amazon etc. De nadruk ligt wel heel veel op applicaties, want wiskunde is zo moeilijk toegankelijk in deze veel gebruikte talen. Dit houdt mijns inziens de doorbraak van XAI echt begrijpen serieus tegen.
Heel langzaam worden de uitvindingen van Mathematica nu gekopieerd: er zijn nu pas net Jypiter notebooks, waarmee Mathematica al werkt sinds 1988. Dynamics, een ander meesterwerk, komt nu ook pas langzaam in zwang.
Ben ik nu anders gaan denken?
Ja, mijn computer-vision achtergrond is sterk verrijkt met AI en deep learning, een fascinerende doorbraak. En ik hoop nu een soort brug-tutorial te kunnen maken tussen de werelden van AI en neurowetenschappen. Niet als boek, daar is het te interactief voor, maar als ‘computational essay’.
Ik schrijf alles in Mathematica, en nee, hier ben ik gelukkig helemaal niet anders gaan denken. Sterker nog, ik voel me gesterkt, dat ik sneller, begrijpelijker en dieper kan werken, en uitleggen, met deze 21e eeuw software. Voor wie het wil zien, met live coding: www.romeny.ai.