met zijn concept van een machine die in staat moet zijn om elke wiskundige berekening met een eindig aantal stappen uit te voeren stond alan turing niet alleen aan de wieg van de computer, maar ook aan die van de artificiële of kunstmatige intelligentie. door zijn werk raakte de neurowetenschapper warren s. mcculloch ervan overtuigd dat het menselijke brein eigenlijk ook een machine is die logica, vervat in neurale netwerken, gebruikt om complexe berekeningen te maken. samen met de logicus walter h. pitts legde mcculloch de grondslag voor het latere onderzoek naar artificiële neurale netwerken (ann), waarbij computers – net zoals mensen – kunnen leren uit voorbeelden die ze aangereikt krijgen. wanneer ze daarbij, simpel gesteld, heel veel lagen beschouwen, spreken we van deep learning.
De doorbraak van deep learning
I propose to consider the question ‘Can machines think?’
Met deze vraag startte Alan Turing in 1950 zijn wereldberoemde artikel ‘Computing Machinery and Intelligence’, waarin hij de basis legde voor wat we nu kennen als artificiële (of kunstmatige) intelligentie, kortweg AI. Volgens Van Dale betekent dit het met behulp van een computer nabootsen van het menselijke denken. Turing bedacht namelijk een gedachte-experiment, dat hij The Imitation Game noemde, om de intelligentie van een machine te beoordelen. In één ruimte zit een menselijke ondervrager, in een andere een mens en een computer. De ondervrager communiceert met beiden door middel van een reeks getypte vragen en antwoorden en dient te achterhalen wie de mens is. Wanneer de computer erin slaagt de ondervrager om de tuin te leiden, slaagt die in wat we nu de Turingtest noemen.
Turing was ervan overtuigd dat een computer dit vermogen zou kunnen leren net zoals een kind leert. Hij bespreekt en weerlegt vervolgens een hele resem van mogelijke tegenkantingen over het bestaan van zulke machines en verwijst hierbij ook naar zijn eerdere baanbrekende werk uit 1936 over berekenbaarheid, dat kadert in de toenmalige revolutie in de wiskundige logica en bijgevolg de fundamenten van de wiskunde. Hij conceptualiseerde in dat werk een machine, nu bekend als (universele) Turingmachine, die in staat is om elke wiskundige berekening die bestaat uit een eindig aantal stappen uit te voeren. Hij stond hiermee aan de wieg van de computer, maar ook reeds aan die van AI, want de conceptuele machine inspireerde de neurowetenschapper Warren S. McCulloch.
Turing was ervan overtuigd dat een computer zou kunnen leren net zoals een kind leert
Reeds op het einde van de 19de eeuw wist men dát ons brein werkt met fysisch gescheiden neuronen die met elkaar communiceren via een netwerk, maar niet exact hoe. McCulloch raakte er door Turings werk van overtuigd dat ons brein eigenlijk een machine is die logica, geëncodeerd in menselijke neurale netwerken, gebruikt om complexe berekeningen te maken. Het was de logicus Walter H. Pitts die McCulloch in 1943 hielp om ons brein te modelleren als een Turingmachine waarbij een neuron wordt verondersteld binaire (dus 0 of 1) inputs x1, x2, … , xn te krijgen die worden opgeteld, waarna een drempelwaarde θ beslist over zijn binaire output (zie Figuur 1).
Dit sterk gesimplificeerde model van een neuron kunnen we dus inzetten voor problemen waarbij men op basis van een aantal ja/nee-antwoorden een ja/nee-beslissing wil nemen. Denk bijvoorbeeld aan hoe je beslist een bepaalde film al dan niet te bekijken. Je kan dit doen door een aantal criteria zoals je favoriete genre, acteur, en zo verder af te vinken, waarna je bekijkt of er een voldoende aantal aanwezig zijn om ervoor te gaan. Meer abstract kan het neuron onder andere de logische and, or en not simuleren. Spijtig genoeg is de XOR (exclusieve of), of dus een beslissing nemen over een situatie waarbij slechts aan het ene óf het andere criterium voldaan mag zijn, onmogelijk. Het zou ons te ver leiden om uit te leggen hoe dat komt, maar een machine die geen XOR kan nabootsen kan onmogelijk een universele machine zijn. Dit model lijkt dus terecht te simpel.
Toch kan ‘A Logical Calculus of the Ideas Immanent in Nervous Activity’ van McCulloch en Pitts aanzien worden als de start van artificiële neurale netwerken (ANN). Het was trouwens John McCarthy, een Amerikaanse wiskundige aan Dartmouth College, die de term artificiële intelligentie bedacht in 1955 toen hij een voorstel uitwerkte voor een zomerschool. In 1956 kwam een groepje AI-pioniers samen op die bijeenkomst, het Dartmouth Summer Research Project on Artificial Intelligence. Het plan om AI tijdens een workshop te kunnen ontwikkelen draaide echter anders uit, op zijn zachtst gezegd.
Het plan om AI tijdens een workshop te kunnen ontwikkelen draaide anders uit
Ondertussen werden nog een aantal beperkingen van het McCulloch-Pittsmodel duidelijk, waaronder het feit dat elke binaire input als even belangrijk wordt beschouwd, maar het voornaamste probleem was dat de drempelwaarde θ door de gebruiker moest worden bepaald. Daarom wordt de eer voor het uitvinden van de ann vaker toebedeeld aan de Amerikaanse psycholoog Frank Rosenblatt, die de McCulloch-Pittsconstructie in 1958 veralgemeende, zodat die θ kan leren uit aangereikte voorbeelden. Dit was echt een revolutionair inzicht, dat voortbouwde op het werk van Donald Hebb uit 1949, waarin gesteld werd dat het opslaan van kennis en leren in ons brein gebeurt door het vormen en veranderen van synapsen tussen neuronen. Zo kunnen wij leren uit voorbeelden. Rosenblatts beroemde perceptron werkt daarom met gewichten voor de inputs, die nu ook reële waarden mogen aannemen.
Het idee is dat elke input xi een gewicht wi krijgt, dat zowel positief als negatief kan zijn en dat geleerd wordt uit een gegeven aantal voorbeelden of trainingsdata met bijhorende binaire output, ook label genaamd. Door x0 = 1 met gewicht w0 = −θ aan de input toe te voegen kunnen we ook de drempelwaarde leren. Het algoritme werkt als volgt: begin met willekeurige gewichten wi en maak ermee de gewogen som van x0 en de input (x1, x2, …, xn) uit een voorbeeld. Wanneer het resultaat positief is, wordt je uitvoer 1, anders 0. Is de (gekende) beslissing juist voorspeld, dan verander je niets. Is de beslissing fout voorspeld, dan verander je de gewichten ‘in de juiste richting’ zodat de voorspelling tóch juist wordt. Nadien herhaal je steeds dezelfde procedure totdat alle labels van de trainingsdata juist worden voorspeld. Het is echter niet zeker dat deze procedure altijd zal stoppen (convergeren), maar men kan in sommige eenvoudige situaties wel bewijzen dat dit het geval is. Zo’n algoritme valt in moderne termen onder het gesuperviseerd leren van een (binaire) classifier.
Na de training kan een computer ongeziene input classificeren
Na de training kan een computer ongeziene input classificeren, wat men generaliseren noemt, en mits kleine aanpassingen kan je met deze techniek ook gelijkaardige patronen ontdekken in gegeven voorbeelden, wat men clustering noemt en wat valt onder zogenaamd ongesuperviseerd leren. Hierbij hoef je niet eerst te trainen op basis van gekende labels, omdat je de input enkel wilt verdelen in groepjes van inputs die ‘op elkaar lijken’. Daarnaast kun je, door verschillende perceptrons onder elkaar te plaatsen die dezelfde input ontvangen, ook meer dan twee categorieën leren. De techniek werd voor het eerst geïmplementeerd in software op de ibm 704 en nadien in hardware op het Cornell Aeronautical Laboratory. De Mark 1 Perceptron werd gemaakt voor beeldherkenning en telde 4 000 fotocellen, willekeurig verbonden met perceptrons. De gewichten werden geëncodeerd met potentiometers en werden geüpdatet tijdens het leerproces met elektrische motoren. Op deze manier
konden simpele vormen op een foto van 20 bij 20 pixels correct geclassificeerd worden. Men droomde er toen al van om handschrift op die manier om te zetten in machineleesbare tekst. Zo ontstond in feite de welbekende (M)NIST-test om handgeschreven getallen computermatig te herkennen. Toen IBM’er Arthur Samuel in 1959 de IBM 704 leerde dammen, vond hij trouwens de term machine learning uit.
Het perceptron werd zeer populair en het duurde niet lang vooraleer er een verbetering kwam. Bernard Widrow en zijn doctoraatsstudent Tedd Hoff kwamen in 1960 op de proppen met het Adaptieve Lineaire Neuron of Adaline. De vaststelling was dat het perceptron nogal hard was in zijn oordeel: de output is meteen 0 of 1. De belangrijke evolutie was om het perceptron zodanig aan te passen dat de evaluatie van de gewogen som tijdens het leren gezien kan worden als een kans, en dus elke waarde tussen 0 en 1 kan aannemen. Dit kan door het toepassen van een zogenaamde lineaire activatiefunctie op de gewogen som van de input. Het voordeel van die denkwijze is dat de relatie tussen input en (voorlopige) output afleidbaar wordt, wat enorm helpt bij het leren van de gewichten. Met de afgeleide van de output naar de input, die we berekenen via welgekende concepten uit de calculus (zie de tekst van Giovanni Samaey in Karakter 74), kunnen we het verschil minimaliseren tussen de voorspellingen van ons neuron en de gekende beslissingen die het voor trainingsdata moet reproduceren.
Hoewel deze aanpak vele deuren opende, bleef het probleem dat de xor-functie en andere belangrijke patronen nog steeds niet geleerd konden worden. Dit zorgde voor een verlies aan populariteit of de eerste AI-winter (zie de tekst van Danny De Schreye in Karakter 73), tot men ontdekte dat het verbinden van perceptrons niet alleen onder maar ook achter elkaar, een multilayer perceptron genaamd, veel meer mogelijkheden bood. Wanneer we nu ruwweg heel veel lagen beschouwen, spreekt men van deep learning. Aangezien de gebruiker geen notie hoeft te hebben van de tussenlagen, noemt men die ook vaak de hidden of verborgen lagen. Rosenblatt dacht zelf reeds aan zulke netwerken van perceptrons, maar zijn algoritme liet niet toe om de gewichten in die situatie te leren, omdat hij geen uitdrukking had voor de nodige afgeleiden tijdens het leerproces.
Het verbinden van perceptrons onder en achter elkaar bood veel meer mogelijkheden
Het was Paul Werbos die al in 1975 in zijn doctoraatsthesis het hart van de huidige deep learning ontwikkelde. Het zogenaamde backpropagationalgoritme maakt het mogelijk om gelaagde perceptrons of meer algemene neurale netwerken te trainen steunend op het idee achter Adaline. Hij gebruikte hiervoor opnieuw een welbekende techniek uit de calculus: de kettingregel om afgeleiden van samengestelde functies te berekenen past namelijk wonderwel bij de gelaagde structuur van diepe neurale netwerken, waarbij elke laag een schakel van de ketting vormt. Door de AI-winter raakte de techniek echter ondergesneeuwd. Het zogenaamde connectionismetijdperk werd daardoor pas geboren in 1986, toen David Rumelhart, Geoffrey Hinton en Ronald Williams de techniek populariseerden in ‘Learning Representations by Back-Propagating Errors’, nadat Yann LeCun (later de stichter van het Facebook-AI-onderzoek) en David Parker in 1985 elk onafhankelijk van elkaar ook de techniek opnieuw ontdekt hadden.
Ondanks deze grote vooruitgang moesten er nog steeds enkele horden genomen worden. Wanneer we een groot aantal trainingsdata hebben, wordt het leerproces heel kostelijk. Daarom nemen veel onderzoekers binnenwegen in de hoop de training toch in een redelijke tijd te kunnen uitvoeren. In plaats van alle gewichten te updaten voor alle trainingssamples samen (in batch), kan men ervoor kiezen slechts een deelverzameling (mini-batch) of zelfs een enkel willekeurig gekozen trainingspunt te beschouwen per iteratie in het leerproces. Men kan zo echter moeilijk controle houden over de nauwkeurigheid van de training. Bovendien zijn er bij deeplearningnetwerken door het grote aantal lagen heel veel parameters die geleerd dienen te worden, waardoor het gevaar van overfitting om de hoek loert. Dit is een veelvoorkomende valkuil waarbij de beslissingen op trainingsdata zeer goed nagebootst worden, maar nieuwe input toch vaak foute output oplevert. De moeilijkheden die bij het trainen opdoken, zorgden dan ook voor een tweede AI-winter eind jaren ’80.
Door het dure en tijdrovende leerproces nemen veel onderzoekers binnenwegen
Daar kwam gelukkig weer verandering in, ditmaal door het Neocognitron van Fukushima uit 1980, een netwerkmodel gebaseerd op het visuele systeem van zoogdieren dat, zoals de mens, via voorbeelden abstractie van objecten leert maken op een hiërarchische manier en niet alle details in rekening brengt. Wij leren dit proces al vrij vroeg in onze ontwikkeling: een baby identificeert bijvoorbeeld een echte kat met een foto en met een tekening ervan, los van de kleuren van haar vacht. Aangezien niet alle details ertoe doen, hoeft men dus niet elke inputpixel of output van een neuron aan elk neuron van de volgende laag te presenteren. Fukushima kon echter zijn netwerkmodel niet efficiënt trainen.
Rond de tijd dat LeCun werkte op backpropagation kende ook de digitale beeldverwerking een opmars met onder andere de toepassing van de zogenaamde discrete cosinustransformatie (DCT), afgeleid van de discrete Fouriertransformatie (DFT) in het jpeg-compressieformaat, en kort daarna de krachtige discrete wavelettransformatie van de Belgische wiskundige Ingrid Daubechies, die de basis vormt van de opvolger jpeg2000. Deze wiskundige transformaties rafelen een beeld uiteen in kenmerkende patronen en kunnen daardoor vormen van details onderscheiden, wat onder andere helpt om beelden zuiniger op te slaan of te comprimeren. LeCun zag in dat, voortbouwend op het Neocognitronmodel, een netwerk makkelijk kenmerkende hiërarchisch gestructureerde patronen in een beeld kan ontdekken met het idee achter de compressietransformaties. Daarom beperkte hij in 1989 het aantal parameters van een algemeen ANN door een gelijkaardige structuur doorheen de lagen op te leggen en paste hij opnieuw (aangepaste) backpropagation toe. Deze constructie resulteerde in het eerste echte praktische voorbeeld van een ANN, een netwerk om handgeschreven getallen te herkennen, en leidde tot de nu alombekende convolutionele neurale netwerken (CNN) die over het algemeen sneller trainen én beter veralgemenen. Dit leidde dan weer, samen met de exponentiële groei in de beschikbaarheid van digitale data, tot een hernieuwde interesse in gelaagde neurale netwerken begin jaren 2000.
Het eerste praktische voorbeeld van een ANN was een netwerk om handgeschreven getallen te herkennen
Deze nieuwe techniek laat toe om gradueel patronen te vinden in data, die dieren of gezichten op foto’s kenmerken. De eerste laag kan in de ruwe pixels eerst randen detecteren, vervolgens vormen zoals gebogen lijnen, cirkels, ovalen enz., waarna de volgende lagen met de positionering van deze objecten ten opzichte van elkaar verder kunnen om uiteindelijk een dier of gezicht te herkennen op een foto. Zo kan een computer zelf katten leren herkennen uit aangereikte voorbeelden. De klassieke manier bestond eruit om expliciete regels te programmeren die de computer kan checken, zoals ‘een kat heeft een vacht’ en ‘een kat heeft puntige oren’. Naast het feit dat het moeilijk is om deze kenmerken in computertaal om te zetten, rijden we ons snel vast, want het programma zou op dit moment besluiten dat een tijger een kat is. Daar knelt natuurlijk het schoentje, want hoe ver moet je gaan in het opstellen van regels, en zal elke programmeur op dezelfde manier naar een kat kijken? Nu kunnen we de computer dus heel veel voorbeelden tonen van katten én dieren die dat niet zijn en hem zelf de kenmerkende patronen laten ontdekken door bovenstaande berekeningen uit te voeren. Zo komt hij misschien tot combinaties van structuren waar wij niet aan dachten of nooit aan zouden denken. Het nadeel is natuurlijk dat we bij een netwerk met een groot aantal lagen de patronen die het netwerk ontdekt niet echt meer kunnen interpreteren. Daarnaast heeft de computer die patronen ook enkel geleerd uit de aangeleverde data, met als gevolg dat het netwerk een zogenaamde bias kan hebben waardoor het niet goed kan generaliseren buiten context. Dit werd pijnlijk duidelijk toen Google Photos een Afro-Amerikaans koppel labelde als gorilla’s.
LeCun werkte bijna tien jaar verder aan zijn techniek, terwijl andere machinelearningmethodologieën, zoals support vector machines, aan populariteit wonnen, maar hij kreeg bijval toen begin jaren 2000 de grafische processoren of kaarten (GPU) breder werden ingezet dan het renderen van 3D-beelden in games. Doordat ze ontwikkeld werden voor geheugenintensieve berekeningen op beelden gelijkaardig aan de berekeningen in ANN/CNN werd het eindelijk mogelijk om grote neurale netwerken in de praktijk te trainen.
De huidige golf ging eigenlijk pas goed van start rond 2006
De huidige en derde golf ging eigenlijk pas goed van start rond 2006 met het werk van Hinton et al., waardoor deeplearningnetwerken nog sneller konden worden getraind, terwijl Fei-Fei Li ImageNet ontwikkelde, een database van meer dan 14 miljoen gelabelde beelden vrij te gebruiken voor het trainen van netwerken. Zo doken er deeplearningarchitecturen op met ongeziene performantie, zoals het AlexNet, dat verschillende prijzen won in 2012.
Deep learning heeft ondertussen niet alleen grote impact gehad op computervisie; we vinden de netwerken ook terug in spraakherkenning en taalverwerking. Ook op kleinere schaal vindt de techniek intrede bij bedrijven, doordat er heel wat vrij te verkrijgen softwarepakketten bestaan waardoor de drempel om AI toe te passen verkleind wordt, al moet men hier oppassen voor het ondoordacht kiezen van een architectuur en trainingsdata om problemen met generalisatiefouten te vermijden. Die keuze is echter nog steeds moeilijk te maken, want hoewel we heel goed weten wat een deeplearningnetwerk doet, weten we nog steeds niet waarom het dat vaak zo goed doet. Ingrid Daubechies is er, net om die reden, stellig van overtuigd dat er een goede wiskundige verklaring voor moet bestaan. De wiskundigen uit onder andere de functionaalanalyse, differentiaalmeetkunde, optimalisatie, statistiek en informatietheorie zitten dan ook niet stil en onderzoeken welke functies zulke netwerken nu allemaal kunnen benaderen, wanneer het trainen ervan convergeert, hoe goed ze generaliseren en hoe we hun beslissingen kunnen interpreteren.
De initiële vraag van Turing of machines kunnen denken is dus nog steeds niet beantwoord, maar onderweg zijn machines wel in staat geworden om onze patroonherkenning te imiteren en in zekere zin zelfs te overtreffen dankzij deep learning. Zulke netwerken begrijpen echter niet wat ze herkennen en verhullen door hun gelaagde structuur waaróm ze tot een bepaalde conclusie komen. Hun context leren om hen hun beslissing te laten uitleggen is één van de grootste uitdagingen die voor de boeg liggen. We weten wat gedaan.
We can only see a short distance ahead, but we can see plenty there that needs to be done. (A. M. Turing, 1950)
Ann Dooms is professor Wiskunde aan de VUB. Ze leidt er de onderzoeksgroep Digital Mathematics in de vakgroep Wiskunde en Data Science en is gespecialiseerd in cryptografie, artificiële intelligentie en data science met toepassingen in digitale schilderij- en documentanalyse.
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License