Een lerende muis

Hieronder ziet u, naast elkaar, twee schermen getekend. Het bewegende grijze voorwerp in het linkerscherm stelt een muis voor, gedoemd eeuwig rond te stuiteren in zijn helderblauwe, rechthoekige, door vier muren begrensde wereld. Deze wereld bevat verder nog twee planten: een lekkere groene en een vieze rode. De muis moet met behulp van een neuraal netwerk leren de rode plant te vermijden en de groene op te zoeken.

Het lichtblauwe monitorscherm rechts laat zien wat zich binnenin de muis afspeelt, en maakt het zo mogelijk het leerproces te volgen. Verdere uitleg is te vinden onder de animatie.

Helaas pindakaas, geen Canvas in deze browser... Helaas pindakaas, geen Canvas in deze browser...

De muis en zijn wereld

De muis kan worden gezien als een learning agent: hij neemt zijn omgeving waar m.b.v. sensors (meetinstrumenten die als zintuig dienen); die waarnemingen sturen zijn gedrag; en dat gedrag verandert in de loop van de tijd als gevolg van de ervaringen die hij opdoet.

De ogen

Elk oog bevat slechts twee lichtgevoelige cellen: een voor rood en een voor groen licht. De muis heeft dus geen fotografisch beeld van zijn omgeving; hij ziet alleen lichthoeveelheden. Doordat de ogen iets zijwaarts naar buiten gericht staan, kan de muis onderscheid maken tussen links en rechts. In het camerabeeld linksboven op het lichtblauwe monitorscherm kijken we als het ware mee door de ogen van de muis. De gekleurde staafdiagrammen ernaast tonen de sterkte van het signaal dat door de sensors wordt afgegeven.

Het neurale netwerk.

Onder het camerabeeld staat een schema van het neurale netwerk. De cirkeltjes stellen de neuronen (hersencellen) voor, de lijntjes ertussen de verbindingen waarlangs de neuronen signalen aan elkaar doorgeven.

De neuronen zijn georganiseerd in drie lagen. De bovenste laag (de invoerneuronen) krijgt zijn signaal van de lichtsensoren; de bijbehorende (bovenste zwarte) staafdiagrammen volgen dan ook precies de fluctuaties van de rood-groene staafdiagrammen erboven. Via een laag verbindingen met vaste, vooraf ingestelde gewichten — getoond in het staafdiagram ernaast, met smalle staven (vertikale lijnen) — arriveren de signalen bij de tussenneuronen (de middelste laag). Daarbij bepalen de gewichten hoe de signalen worden doorgegeven: versterkt, verzwakt, positief of negatief.

De onderste twee neuronen zijn de uitvoerneuronen: zij sturen de muis naar links of naar rechts. Aanvankelijk ontvangen zij geen signalen van de tussenneuronen: de gewichten van die verbindingslaag zijn nul, zij moeten hun waarde krijgen in het leerproces. Om dat mogelijk te maken zitten er willekeurige fluctuaties in de activiteit van de uitvoerneuronen.

Het leerproces

De muis leert d.m.v. reinforcement learning. Telkens wanneer hij op de groene plant botst, werkt de lekkere smaak daarvan als beloning; contact met de vieze rode plant werkt als straf. Op deze leermomenten (aangegeven met een piepje) worden de gewichten in de onderste verbindingslaag aangepast.

Bij beloning heeft de muis blijkbaar iets goeds gedaan, dus het al aanwezige gedrag wordt versterkt (reinforced): verbindingen tussen neuronen die vooral tegelijkertijd actief waren worden iets stimulerender gemaakt, en verbindingen tussen neuronen met tegengestelde werking juist wat minder stimulerend (meer tegenwerkend). Daarentegen duidt straf op gedrag dat vermeden moet worden, zodat eensgezinde neuronen juist wat minder eensgezind worden gemaakt, en tegengestelde neuronen juist iets meer gaan samenwerken.

Na verloop van tijd zien we inderdaad de lijntjes in de staafgrafieken van de onderste verbindingslaag langzaam aangroeien. Ook verandert het gedrag van de muis: hij stuitert steeds meer tegen de groene plant, en de rode wordt met keurige boogjes vermeden. Dit wordt bevestigd door de getallen rechts onderin het monitorscherm: in rood hoe vaak de rode plant is geraakt, in groen hoe vaak de groene, en in zwart het aantal bezoekjes aan de groene plant als percentage van het totaal. Het verloop van dit laatste percentage is af te lezen uit de leergrafiek naast de getallen.

Goed geleerd… ?

Als de muis zijn lesje goed geleerd heeft, zien de staafdiagrammen van de gewichten in de tweede verbindingslaag er zo uit:


Figuur 1: Correct geleerde gewichten

Maar soms wordt hij op het verkeerde been gezet, en leert hij een van de volgende configuraties:


Figuur 2: Foutief geleerde gewichten

In dat geval blijven de vier staafdiagrammen aan de rechterkant ook na geruime leertijd ongeveer nul, zodat er niet wordt gereageerd op de signalen van de rode lichtsensors; we zien dan ook dat de muis regelmatig de rode plant blijft raken.

Om deze verschillende leerpaden met elkaar te vergelijken, kan de muis met een schone lei worden herstart door deze pagina opnieuw in uw webbrowser te laden — meestal met de F5-toets, of door het reload-symbool in uw browserwindow aan te klikken c.q. tikken.

Aad Hogervorst van de HCC Artificiële Intelligentie interessegroep bedacht deze muis in de vorm van een Pascal-programma; hij schreef wat later een toelichtend artikel in Kennisgeving (1991, nr. 2), indertijd het tijdschrift van HCC-AI. Om de muis op de website van de AI-interessegroep te kunnen tonen, maakten Patrick Molenaar en Gerard Vriens er een Java-versie van; daarbij is het monitorscherm, dat bij Aad alleen staafdiagrammen bevatte, uitgebreid met het neurale-netwerkdiagram (naar een idee van Patrick) en het camerabeeld. Omdat later Java door de meeste webbrowsers niet meer werd ondersteund maakte ik deze JavaScript-versie, waarin de statistieken onderaan het monitorscherm zijn toegevoegd.

© GV 17-01-2024


Terug naar leesmij.txt.