Een lerende muis

Als u een grafische web-browser heeft die in staat en gemachtigd is om JavaScript te draaien, ziet u hieronder twee schermen getekend. Het bewegende grijze voorwerp in het helderblauwe scherm stelt een muis voor, gedwongen eeuwig rond te stuiteren in zijn helderblauwe, rechthoekige, door 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 is interessant om de duidelijke gedragsverandering waartoe dit leerproces leidt, zich enkele malen te zien voltrekken. De muis kan 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.

Het lichtblauwe monitorscherm maakt het mogelijk het leerproces te volgen, door te laten zien wat zich binnenin de muis afspeelt. Een beknopte toelichting is te vinden onder de animatie.

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

Wat is er te zien op het monitorscherm?

De muis is uitgerust met twee ogen en een neuraal netwerk dat een vorm van reinforcement learning realiseert.

  • In het camerabeeld linksboven kijken we als het ware door de ogen van de muis. De muis ziet geen voorwerpen, maar alleen lichthoeveelheden: rood/groen, links/rechts.
  • De gekleurde staafdiagrammen (rood en groen) naast het camerabeeld geven een meting van de lichthoeveelheden die door de muis worden opgevangen.
  • Onder het camerabeeld staat een schema van het neurale netwerk. De cirkeltjes stellen de neuronen ("zenuwcellen") voor, gerangschikt in drie lagen onder elkaar; de lijntjes geven de verbindingen aan waarover de neuronen hun signalen verzenden.
  • De veranderende kleuren van de cirkeltjes geven aan hoe sterk het signaal is dat door het betreffende neuron wordt afgegeven. Voor een duidelijker beeld hiervan (de kleuren maken geen onderscheid tussen positieve en negatieve signalen) is naast elke laag neuronen weer een staafdiagram (met brede, zwarte staven) opgenomen.
  • Naast elke laag verbindingen staat ook een staafdiagram, ditmaal met smalle zwarte staven (vertikale lijnen), dat de positieve of negatieve gewichten — zeg maar: de doorlaatbaarheid voor signalen — van die verbindingen weergeeft. De eerste verbindingslaag, tussen de invoerneuronen in de bovenste laag en de tussenneuronen in de middelste laag, heeft van tevoren vastgestelde, onveranderlijke gewichten. De gewichten van de tweede verbindingslaag, die de signalen van de tussenneuronen aan de beide uitvoerneuronen moet doorgeven, zijn aanvankelijk 0 (nul) en moeten hun waarde door het leerproces krijgen.
  • Onderaan het monitorscherm staan statistische gegevens, die op ieder leermoment (botsing met een plant — aangegeven met een piepgeluidje) worden bijgewerkt. Ze bieden, naast het gedrag van de muis en de gewichten van de tweede verbindingslaag, een extra mogelijkheid om het verloop van het leerproces te volgen. De getallen geven aan hoe vaak de rode plant is bezocht (in rood, natuurlijk), hoe vaak de groene plant is bezocht (in groen), en in zwart het aantal bezoekjes aan de groene plant als percentage van het totaal. Het verloop van dit percentage wordt vastgelegd in de "leergrafiek" links naast de cijfers.

Voor meer technische bijzonderheden over het leerproces wordt verwezen naar het artikel van Aad Hogervorst.

Dit programma is geschreven door Gerard Vriens van de HCC Artificiële Intelligentie interessegroep, naar een artikel en Pascal-programma van Aad Hogervorst. Enkele aanvullende onderdelen op het monitorscherm zijn bedacht door Patrick Molenaar en Gerard Vriens. Copyright ©Augustus 2019.