Bijeenkomsten gehouden in 2018

Deel dit artikel

,

geen foto beschikbaar

meeting 

Kort verslag van de bijeenkomst op 8 december 2018

Tijdens het informele gedeelte van de bijeenkomst heeft Pieter Frans de nieuwe laptop en beamer uitgepakt en in gebruik genomen. Alles bleek naar behoren te werken, tot en met de draadloze verbinding van computer naar beamer. (Hiervoor moet wel extra software op de computer worden geïnstalleerd.) In de plenaire sessie kwamen de volgende onderwerpen voorbij:

  • Het hexapawn-project, dat vorige maand door Gerard werd afgesloten, kreeg toch nog een staartje: Thijs gaf een interessante presentatie over de experimenten die hij zelf met hexapawn had uitgevoerd, en de resultaten daarvan. Om te beginnen had hij met depth-first search een game-tree gegenereerd, en hiervan m.b.v. het programma graphviz een tekening (graaf) gemaakt. Uit dat diagram blijkt dat zwart, na het leren van een perfecte strategie, nog maar 10 verschillende bordstanden tegen kan komen. Daarna liet hij diverse programma's het tegen zichzelf en elkaar opnemen:
    • een random-speler, die volkomen willekeurige zetten doet;
    • HER, de luciferdoosjesspeler die het studie-object van de projectgroep vormde; en
    • een programma dat het spel onder de knie probeert te krijgen d.m.v. Q-learning.
    Enkele interessante resultaten waren:
    • Wanneer twee random-spelers het tegen elkaar opnemen, wint wit in ±60% van de gevallen — opmerkelijk, omdat zwart bij perfect spel altijd wint! De meeste routes door de spelboom leiden dus tot verlies voor zwart, maar door de goede zetten te doen kan hij ze allemaal vermijden.
    • Als HER een optimaal spel leert spelen, zijn daar gemiddeld 31 spellen voor nodig. Bij Thijs had HER die perfecte strategie in slechts ±40% van de gevallen onder de knie gekregen, hetgeen Gerard nogal verbaasde; het bleek dat Thijs het leeralgoritme van HER niet helemaal goed had geïnterpreteerd.
    • Q-learning vond in 99.8% het optimale beleid, na gemiddeld 11 spellen.
    Ook heeft Thijs nog een MINIMAX-speler geprogrammeerd, die telkens de beste zet kiest door de spelboom te analyseren, en dus geen tegenspeler nodig heeft om het spel te leren. Daarna heeft hij al deze benaderingen ook nog eens toegepast op twee andere spelen: octapawn en boter-kaas-en-eieren. Hiervan deed hij geen verslag, maar misschien komt dat in een latere bijeenkomst nog eens aan de orde.
  • Als vervolg hierop liet Aad aan de hand van een wiskundige formule uit het boek van Barto en Sutton over reinforcement learning zien dat de door HER (de luciferdoosjesspeler) toegepaste leermethode feitelijk een speciaal, simpel geval van Q-learning is.
  • Arjan sloot daar weer naadloos op aan door te vertellen wat er in het eerste gedeelte van het boek van Barto en Sutton zoal te lezen staat. Daarbij verduidelijkte hij o.a. wat jargon (bijvoorbeeld: de value van een actie is de kans dat je wint, en de policy is wat je doet om die kans zo groot mogelijk te maken), en besprak enkele toepassingsvoorbeelden (de keus tussen een driver en een putter bij het golfspel, en het computerspelletje Gridworld).
  • Theo kwam met een aantal nuttige web-adressen van sites waar gratis digitale en e-books zijn te vinden:
    • De home page van Richard. S. Sutton, incompleteideas.net, waar ook het hierboven genoemde boek Reinforcement Learning: An Introduction te downloaden is, dat Sutton samen met Andrew G. Barto schreef;
    • De site bookboon.com, met meest engelstalige boeken over allerlei onderwerpen, waaronder IT & Programmeren, wiskunde, en biologie;
    • goalkicker.com, waar boeken uit de serie Programming Notes for Professionals over diverse programmeertalen en -omgevingen te vinden zijn;
    • Packt met boeken over o.a. machine learning; op deze site moet je wel een account aanmaken.
  • Theo vertelde ook dat de HCC in het kader van het tweede seizoensthema van 2019 iets wil doen met Drones, Robots, en programmeren. Omdat er weinig of geen aandacht zal zijn voor actuele ontwikkelingen in Kunstmatige Intelligentie — het gaat vooral over het zelf programmeren van apparaatbesturingen in bijvoorbeeld Scratch —, zal het bestuur van onze interessegroep dit initiatief belangstellend, maar met enige distantie volgen.
  • Jan wist nog niet op welke plaats hij tijdens de laatste Roborama-wedstrijd met zijn Lego®-karretje was geëindigd, maar was wel op een belangrijke beperking gestuit: hij kon de ultrasone sensoren niet naar wens programmeren, omdat hij geen toegang had tot de ruwe data. Hij wil zich dus meer gaan concentreren op een nieuwe robotwagen, gebouwd uit afvalmateriaal en uitgerust met een aandrijfsysteem met tachogeneratoren. Jan vroeg ons mee te denken over het implementeren van AI-onderwerpen in deze robot. Één idee is om iets te gaan doen met een cameraatje, waarvan de beelden met een Raspberry Pi zouden kunnen worden verwerkt. Zo'n AI-beeldverwerkingssysteem zou bijvoorbeeld goede diensten kunnen bewijzen bij het Roborama-onderdeel blikjes verzamelen. Een suggestie uit de groep is om een neuraal netwerk in te bouwen dat kan worden getraind door activiteiten eerst met handbesturing uit te voeren.


(GV 23 januari 2019)

Kort verslag van de bijeenkomst op 3 november 2018

Gelijktijdig met onze bijeenkomst vonden ook weer de Roborama-wedstrijden van HCC-robotica plaats, zodat enkele vaste klanten vandaag afwezig waren. In de plenaire sessie kwamen de volgende onderwerpen aan de orde:

  • Zoals aangekondigd op de vorige bijeenkomst hebben Aad, Arjan en Gerard op 10 en 11 oktober de World AI Summit 2018 in Amsterdam bezocht. Arjan gaf een korte, met enkele zelfgemaakte foto's geïllustreerde impressie van dit evenement. Twee onderwerpen noemde hij met name: de unicorn story van het bedrijf Darktrace, dat cyberaanvallen wil pareren met een soort immuunsysteem voor computers en netwerken; en de presentatie van autofabrikant Nissan over het streven om auto's te laten gedachtenlezen door het oppikken van de hersenactiviteiten van hun bestuurder. Aad merkte op dat AI-conferenties tegenwoordig minder over theoretische vorderingen gaan, maar vooral over toepassingen — met alle problemen die daarbij komen kijken. Een kort stukje over de AI Summit, geschreven door Aad, verscheen in PC-Active 303 (december 2018 / januari 2019, pag. 81).
  • Roel maakte ons attent op de aflevering Mens in de machine van het VPRO-programma Tegenlicht, uitgezonden op 21 oktober, waarin wordt gesproken over de vraag hoe we richting moeten en kunnen geven aan de toepassing van AI in de wereld. Kunnen we potentieel superintelligente systemen nog wel beheersen, en hun normen en waarden in overeenstemming brengen met die van de mensheid? Roel legde verband met het sprookje van Lilith, die volgens hem de overgang van matriarchaat naar patriarchaat symboliseerde, en liet merken dat hij zelf ook wel twijfels en vraagtekens had. Thijs dacht dat een oplossing misschien kon worden gevonden in het begrenzen van de actiemogelijkheden van artificiële intelligenties, en Ed stelde dat we ons niet specifiek zorgen moeten maken over bewegende robots, maar over intelligente algoritmen in het algemeen.
  • Peter bracht ons op de hoogte van de voortgang m.b.t. de Introductiecursus Neurale Netwerken. Er hebben zich tot nu toe twee mensen opgegeven. Om een kritische massa te bereiken is besloten de cursus ook open te stellen voor belangstellenden uit de HCC-interessegroepen robotica, programmeren en forth. Leden van onze AI interessegroep die zich al in het kader van de studiegroep neurale netwerken in het gebruikte boek van Tariq Rashid hebben verdiept, kunnen zich desgewenst melden als waarnemer, om van de ontwikkelingen op de hoogte te blijven en eventueel vragen van cursisten te helpen beantwoorden.
  • Peter kwam ook nog met een idee voor een mogelijk project. Hij was op het Internet enkele zeer korte programma's tegengekomen om een neuraal netwerk te implementeren, waaronder één in 11-regels Python en een daarvan afgeleid programma in 11 regels JavaScript. Die 11 regels zijn overigens wat geflatteerd: de python-versie maakt gebruik van de wiskundige programmabibliotheek numpy — waarvan je dus in ieder geval de in dit programma gebruikte functies zult moeten snappen — en ook in de JavaScript-versie zijn de definities van de matrixbewerkingen en de sigmoide activeringsfunctie niet meegeteld. Het leek Peter interessant om deze programmaatjes in een projectgroep te analyseren en onderling te vergelijken. Wanneer hij zijn bedoelingen nog wat meer heeft kunnen concretiseren, horen we hier ongetwijfeld meer over.

De rest van de plenaire sessie werd gevuld door leden van de projectgroep hexapawn, die gedurende een maand (in dit geval: 5 weken) aan de slag waren gegaan met een artikel van Martin Gardner in Scientific American van maart 1962. Hierin wordt beschreven hoe je met luciferdoosjes en gekleurde kralen een zelflerend systeem kunt construeren om een eenvoudig spelletje te spelen. Voor dit doel heeft Gardner zelf het spel Hexapawn bedacht, dat gespeeld wordt met 6 schaakpionnen op een 3×3-bordje en waarvoor slechts 19 luciferdoosjes nodig zijn. Ter vergelijking: Tic-Tac-Toe (boter-kaas-en-eieren) vereist zo'n 300 luciferdoosjes!

  • Gerard, die het initiatief tot het project had genomen, legde eerst de spelregels van hexapawn en het doel van het project uit. De opzet was niet om het luciferdoosjessysteem daadwerkelijk te bouwen, maar om het in een zelfgekozen programmeertaal te simuleren, en zo de achterliggende leermethode (een vorm van reinforcement learning) beter te begrijpen. Omdat een hardware-versie echter erg nuttig kan zijn voor demonstratiedoeleinden, had Gerard toch 19 luciferdoosjes opgescharreld en van de benodigde etiketten voorzien; gevuld met M&M's kan dit op diverse evenementen als een leuke aandachttrekker dienen.
  • Daarna demonstreerde Theo zijn versie: een Python-programma dat alle mogelijke bordstanden van hexapawn genereert en vastlegt in een HTML-met-CSS-bestand. Met een browser kan de gebruiker deze game tree doorlopen; programmacode in JavaScript zorgt ervoor dat het systeem zijn tegenzet kiest en slechte zetten afleert. Het resultaat ziet er fraai uit en is (met mogelijke enkele aanpassingen) zeer geschikt om op onze website te worden geplaatst.
  • Otto had een mooi zelflerend hexapawn-programma in Microsoft Excel gemaakt, waarin de gebruiker zetten kan invoeren door de hokjes van herkomst en bestemming aan te geven. Helaas was hij door ziekte verhinderd het zelf te komen demonstreren, en Gerard kon het onder LibreOffice onder Linux niet aan de praat krijgen; maar dankzij de Windows-computer van Rudolf konden we Otto's versie toch in actie zien.
  • Gerards eigen versie was geschreven in C en had een simpele command-line interface. Hij had nog diverse ideeën om zijn eigen programma te verbeteren, en om met alternatieve leerregels te experimenteren, en ook om het spel hexapawn zelf nader te analyseren, waarover we in de toekomst misschien nog wel meer zullen horen. Het huidige project werd door hem echter officieel voor beëindigd verklaard.

Twee onderwerpen kwamen vandaag niet aan bod. Titus had zelfgeschreven BASIC-programma's over neurale netten en duiven en haviken op een USB-stick, maar helaas geen computer bij zich; en Aad wilde iets vertellen over hexapawn i.v.m. het boek van Sutton en Barto over reinforcement learning, maar moest helaas eerder weg. Hopelijk komen deze interessante bijdragen op een volgende bijeenkomst alsnog aan de beurt.
(GV 6 december 2018)

Kort verslag van de bijeenkomst op 6 oktober 2018

Ook deze maand kwamen er in de plenaire sessie weer verscheidene interessante onderwerpen aan bod:

  • Gerard begon met twee korte mededelingen. Ten eerste: hij gaat op 10 en 11 oktober met Aad en Arjan naar de World Summit AI 2018 in Amsterdam. En ten tweede: Enno Diekema, die in het verleden voorzitter van onze AI interessegroep was, hoopt (en verwacht) in november bij de Faculteit der Natuurwetenschappen, Wiskunde en Informatica van de Universiteit van Amsterdam tot doctor gepromoveerd te worden.
  • Daarna nam Gerard het initiatief tot de oprichting van een nieuwe projectgroep. Hij was een oud artikel van Martin Gardner tegengekomen, oorspronkelijk verschenen in Scientific American van maart 1962, en enkele jaren later gebundeld in het boekje Further Mathematical Diversions (dat ook verschenen is onder de titel The Unexpected Hanging). In dit artikel beschrijft Gardner de constructie van een machine, gemaakt van luciferdoosjes en kralen, die leert hexapawn te spelen, een uiterst simpel van het schaakspel afgeleid 2-persoonsspelletje. Gerard heeft geconstateerd dat deze constructie leert d.m.v. reinforcement learning en hoopt dat de projectgroepleden door bestudering van het artikel, programmering van de Hexapawn Educable Robot (HER), en raadpleging van informatie over reinforcement learning (bijv. de Wikipedia-pagina over dit onderwerp) meer van deze leermethode zullen gaan begrijpen. Als deelnemers hebben (naast Gerard zelf) Otto, Roel, Ronald en Theo zich aangemeld; Aad, Ed, Peter en Pieter Frans wilden graag als waarnemer op de hoogte gehouden worden van de vorderingen van de projectgroep. De geplande projectduur is één maand — in dit geval vier weken.
  • Peter vroeg nogmaals of hij het Trello-bord "Introductie Neurale Netwerken" als Massive Open Online Course aan de buitenwereld kon aanbieden. Cursisten zijn daarbij zelf verantwoordelijk voor hun eigen leerproces a.d.h.v. het boek Make Your Own Neural Network van Tariq Rashid; het bord biedt echter enige aanvullende en verdiepende informatie, en moet vooral gaan fungeren als middel om met medeleerlingen en cursusleiding te communiceren. Er is momenteel al wel een online cursus op educative.io op basis van het boek van Rashid, maar daar is weinig inhoudelijke feedback bij. Het plan is om de cursus op Trello voorlopig alleen binnen de HCC aan te bieden en het initiatief na een half jaar te evalueren; tien of meer deelnemers zou een leuk resultaat zijn. Ruim de helft van de aanwezigen betuigde steun aan het plan, niemand uitte er ernstige bezwaren tegen.
  • Roel lichtte nogmaals beknopt zijn ambities toe: kinderen bezig krijgen met techniek in het algemeen, en robotica en AI in het bijzonder, door ze iets moois te laten zien, en vervolgens te laten zien wat de eerste stap is om dat te bereiken. Hij zou daar nog steeds graag onze interessegroep bij willen betrekken.
  • Henk had een BASIC-programma geschreven om rikudo-puzzels op te lossen. Bij zulke puzzels is de opdracht om op een zeshoekig vakjespatroon, waarin sommige vakjes al van een getal zijn voorzien, een doorlopende route van aangrenzende hokjes te construeren waarbij op elke achtereenvolgende stap het getal in het hokje één hoger wordt. De puzzelaar wordt daarbij geholpen (en beperkt!) door een zwart balletje op sommige grenzen tussen twee hokjes, dat aangeeft dat die hokjes opeenvolgende getallen moeten krijgen.
    Henks programma maakt gebruik van backtracking; het afbreken van een probeersel wanneer er een groepje van één of meer vakjes geïsoleerd raakt, werkt daarbij sterk versnellend. Wel vroeg Henk zich af of het programma niet intelligenter kon: alle intelligentie in het programma komt nu van de programmeur, en bovendien is backtracken meestal een tijdrovende methode. Ben suggereerde dat genetisch programmeren of best-first search misschien mogelijkheden bieden, en Ronald vermoedde dat het efficiënter zou kunnen zijn om ergens in het midden van de gezochte keten te beginnen.
  • Theo kwam met een kijktip: het actualiteitenprogramma Nieuwsuur heeft recent enkele reportages over kunstmatige intelligentie uitgezonden.
  • Otto, een nieuwe bezoeker, stelde zich voor. Hij was al langer HCC-lid, maar deed niets meer met zijn oude interesse (videobewerking); en omdat zijn zoon AI studeert wil hij zich, nu hij gestopt is met werken, zelf ook in dat onderwerp verdiepen.
  • Zoals eerder gemeld, heeft Ben zich gestort op Transputer-prolog. Omdat documentatie daarvan ontbrak is hij begonnen zich in te lezen in concurrent programming. In een geschikt (d.w.z. niet te theoretisch) boek hoopt hij binnenkort toe te komen aan de timingsaspecten; deze kennis denkt hij ook te kunnen gebruiken voor Madeleine (zijn robotwagentje), die helaas niet op tijd klaar zal zijn voor de Roborama-wedstrijden volgende maand. Bens verhaal gaf aanleiding tot een discussie over wat deadlock precies is; ook werd de relevante vraag gesteld — maar (nog) niet beantwoord — wat dit alles met AI te maken heeft.
  • Tot slot vertelde Aad waarmee hij momenteel bezig is. Eerst demonstreerde hij zijn lerende muis, die hij naar de Java-programmeeromgeving NetBeans had overgezet. Vervolgens liet hij zien hoe het neurale netwerk van de muis, in de oorspronkelijke versie door hemzelf ontworpen, nu werd geconstrueerd op basis van een bouwplan dat uit genen van 11 bytes bestaat. Het aantal genen en de precieze inhoud ervan zijn het product van een genetisch algoritme (evolutie in de computer), dat probeert m.b.v. crossover en een mutatiekans van 10% de beste netwerkarchitecturen te vinden vanuit een beginpopulatie van 200 random individuen. Interessant was dat er ook netwerken ontstonden die vals spelen door bij de groene (lekkere) plant rondjes te gaan draaien! Naar aanleiding hiervan wees Thijs ons nog op een artikel van Kenneth O. Stanley en Risto Miikulainen over Neuroevolution of Augmenting Topologies (NEAT), waarin ook het (laten) evolueren van neurale netwerken in de computer wordt besproken.

Er werden vandaag dus vooral veel lopende activiteiten gepresenteerd, en hopelijk gaan we daar in de nabije toekomst meer over horen.
(GV 28 oktober 2018)

Kort verslag van de bijeenkomst op 1 september 2018

Voorafgaand aan de plenaire sessie kwam de projectgroep JavaScript voor het laatst bijeen. Er was gedurende de vakantiemaanden nauwelijks per e-mail gecommuniceerd, en Gerard ontbond de groep omdat de houdbaarheidsduur van dit project naar zijn mening was verstreken. De projectdoelstellingen waren niet gehaald, en Gerard moest dan ook bekennen dat die misschien iets te ambitieus waren geweest. Toch is het geen verspilde tijd en moeite geweest: Niek, voor wie dit project de eerste kennismaking met programmeren was, wil zich met hulp van Gerard graag verder in JavaScript bekwamen; Peter had op het Internet veel gezocht naar informatie over JavaScript en JavaScriptprogramma's; en Pieter Frans verwacht bij het programmeren in Processing (dat gebaseerd is op JavaScript) profijt te hebben van de opgedane basiskennis. Gerard liet zien hoever hij gekomen was met de JavaScript-woordenlijst (die niet in de oorspronkelijke projectopzet zat) en het programma (n-grambenaderingen van een Nederlandse tekst). Hoewel onvoltooid, waren deze maaksels toch erg leuk om te zien, en Gerard is vast van plan om ze in de toekomst nog eens af te maken.

In de plenaire sessie kwam verder nog het volgende naar voren:

  • Roel, die in de jaren '90 aktief was in de toenmalige werkgroep neurale netwerken (niet te verwarren met de huidige studiegroep!), las een zelfgeschreven stukje voor als inleiding op een belangrijke vraag die hij aan de groep wou voorleggen: Hoe dragen we onze kennis, met name op AI-gebied, over op de jeugd (en eventuele andere belangstellenden)? Roels vraag had een dubbele achtergrond: de wens om bij zijn kleinkinderen belangstelling voor techniek te wekken en ze daarover van informatie te voorzien; en de gedachte dat de AI interessegroep in zijn 30-jarige bestaan toch wel een schat aan expertise moet hebben verzameld. De uitgebreide discussie die hierop volgde had geen duidelijke slotsom. Niemand bood zich aan om cursussen en/of studieboeken samen te stellen. Daarnaast werd de opvatting geuit dat de jeugd tòch liever zelf op Internet op zoek gaat naar informatie — als ze überhaupt al geïnteresseerd zijn in techniek; veel jongeren kiezen liever rijke en beroemde voetballers, zangeressen of filmsterren als rolmodel. En vermoedelijk is onze deskundigheid veel minder groot dan Roel ons toedicht: 30 jaar lijkt wel lang, maar door het verloop onder de aktieve leden heeft er ook kennisverlies plaatsgevonden; en bovendien is het hobby, vrijetijdsbesteding, en dus veel minder intensief en doelgericht dan een echte studie of beroepsmatige aktiviteit.
  • Pieter Frans demonstreerde een tweetal Processing-programma's die hij had gemaakt naar aanleiding van het YouTube-kanaal The Coding Train van Daniel Shiffman:
    • Het eerste programma toont een soort beestjes in een wereld met spontaan her en der verschijnende voedzame en giftige planten. Omdat de energievoorraad van de beestjes lineair afneemt met de tijd, moeten ze voedzame planten verorberen om op te laden; nuttigen ze echter een giftige plant, dan neemt hun energie ineens nog een stuk verder af. Doordat het langstlevende beestje zichzelf kopieert (met een mutatie), vormen de afstanden waarop ze resp. voedsel en gif bespeuren een selectiecriterium dat hun evolutie stuurt. Dit gaf aanleiding tot enkele reacties: Thijs merkte op dat genetische algoritmen ook wel worden gebruikt om de structuur van een neuraal netwerk te laten evolueren; Ben meldde dat genetic programming bij classificatieproblemen soms beter werkt dan een neuraal netwerk; en Peter vroeg zich af of je een neuraal netwerk ook een programma kunt laten schrijven.
    • Het tweede programma toont een ander soort beestjes, die enkele muren moeten omzeilen om een doel te bereiken. Ze hebben een chromosoom bestaande uit 800 verplaatsingsvectoren. Met een populatiegrootte van 1000 was er een duidelijke vooruitgang zichtbaar: uiteindelijk werd het doel bijna bereikt.
  • Peter vroeg wie er op 29 september namens onze interessegroep aanwezig wilde zijn op de MegaCompUfair die jaarlijks door de HCC-interessegroep CompUsers wordt georganiseerd; Aad bood zich aan om samen met Gerard de stand te bemannen.
  • Peter wilde graag het Trellobord over het boek Make Your Own Neural Network van Tariq Rashid openstellen voor belangstellenden uit andere HCC-interessegroepen. Het bord bevat communicatie van de studiegroep neurale netwerken, en Peter wil het aanbieden als een soort massive open online course. De bedoeling is dat cursisten het boek gebruiken voor zelfstudie, en dat ze over de leerstof vragen kunnen stellen en discussies kunnen voeren via Trello. Gerard vond dat het bord vooralsnog te weinig extra informatie en structuur bevat om als cursus of workshop aangeboden te worden, en Ben vroeg zich af waarom de vraagbaak- en discussiemogelijkheid, die dus blijkbaar de hoofdmoot van het aanbod uitmaakt, dan niet via een forum in bijv. Google Groups kan worden gerealiseerd. Ed stelde voor dat Peter een concept gaat maken van de aankondiging waarmee hij dit bord wil openstellen, en Peter zegde dat toe.
  • Ben memoreerde nogmaals de stand van zaken met Transputer-Prolog, waarvan de voortgang wegens omstandigheden al geruime tijd stagneert. Abraham had Brain Aid Prolog op een Transputersysteem geïnstalleerd. Nu wil Ben hierop de Torens van Hanoi, in Prolog een populaire programmeeropgave, aan de praat krijgen om te kijken of parallel processing een snellere verwerking oplevert. Dit is nog niet zeker, omdat de standaardoplossing gebruik maakt van recursie en de voortzetting best wel eens zou kunnen moeten wachten op de afhandeling van de recursieve aanroep. Ben benadrukte nog dat er verschil is tussen parallel en distributed (zoals server/client) computing.
  • Niek vestigde de aandacht op de interview-reeks Kijken in de ziel, waarin dit seizoen geestelijke leiders aan het woord kwamen. Daarbij kwam natuurlijk ook het geest-lichaamprobleem aan de orde. Hij liet het boek The Animal Spirit Doctrine and the Origins of Neurophysiology rondgaan, dat beschrijft hoe filosofische opvattingen over de werking van de geest na vele eeuwen uiteindelijk plaats maakten voor wetenschappelijke. Roel vroeg zich af of er onderscheid gemaakt moet worden tussen geest en ziel, naar analogie met wijn, waar de ziel bij de fles hoort — de ruimte onder de holle bodem — en de geest (dat is: de alcohol) bij de wijn. Er werd opgemerkt dat de bekende Nederlandse neurobioloog Dick Swaab dit onderscheid niet schijnt te maken.
  • Tenslotte was het woord aan Arjan, die geïllustreerd met wat beelden kort vertelde over zijn vakantiebezoek aan Bletchley Park in Engeland, waar hij in het National Museum of Computing o.a. de gereconstrueerde Bombe en de Harwell Dekatron Computer heeft gezien.


(GV 1 oktober 2018)

Kort verslag van de bijeenkomst op 7 juli 2018

Op deze bijeenkomst werd o.a. het volgende besproken:

  • Een nieuwe bezoeker stelde zich voor: Aad was in de jaren '90 een zeer actief lid van de toenmalige werkgroep Neurale Netwerken, kwam sindsdien niet meer naar onze bijeenkomsten, maar wil deze interesse weer oppakken nu hij daarvoor weer wat meer gelegenheid heeft. Hij is de schrijver van een Pascalprogramma over een lerende muis en het bijbehorende toelichtende artikel (Reinforcement Learning, de moeite van het lezen nog steeds dubbel en dwars waard!), en in onze bibliotheek zijn ook de leesmappen over neurale netwerken nog aanwezig die hij destijds heeft samengesteld.
  • Gerard vertelde dat de projectgroep JavaScript, die hij op de vorige bijeenkomst had opgestart en die een geplande looptijd van één maand zou hebben, niet alle voorgenomen werkzaamheden had kunnen afronden. Omdat dit mede werd veroorzaakt door onvoorziene omstandigheden (waaronder zijn medewerking aan het artikel over onze interessegroep in PC-Active 301), wil hij het project tijdens de vakantiemaanden voortzetten.
  • Arjan heeft Demystifying Deep Reinforcement Learning" van Tambet Matiisen, dat vorige keer door Thijs werd aanbevolen, gelezen en vond het een verhelderend artikel. Hij heeft geprobeerd om het Deep Q netwerk, dat in het artikel wordt uitgelegd, toe te passen op tectonic-puzzels (m.b.v. Keras, NumPy en TensorFlow), maar vooralsnog zonder succes. Dat kan komen door de reward die hij het netwerk bij iedere poging geeft: het aantal toegestane (maar niet per se correcte) cijferplaatsingen. Gerard merkte op, dat naarmate het ingevulde diagram meer toegestane cijfers bevatte, er waarschijnlijk ook een hoger percentage correct is; dus correctheid zou misschien kunnen worden meegenomen door de reward sterker dan lineair te laten toenemen met het aantal toegestane cijfers. Diederik suggereerde om ook naastgelegenheid op een of andere manier in de reward op te nemen.
  • Ed bracht het boek Homo Deus van de Israelische historicus Harari onder onze aandacht. Harari schreef eerder het boek Sapiens, waarin hij het succes van de menselijke soort beschrijft en tracht te verklaren. In Homo Deus (de titel is een variatie op een uitspraak van Spinoza, Natura deus: God, dat is de natuur) borduurt hij hier op voort, en probeert daarbij ook naar de toekomst te kijken. Dat leidt tot vele vragen, van min of meer filosofische aard:
    • De mens streeft naar eeuwig leven en eeuwig geluk; waar zal dat toe leiden?
    • In de Industriële Revolutie is handwerk vervangen door denkwerk; wat komt er binnenkort voor het denkwerk in de plaats?
    • Welk recht hebben wij om door superieure intelligenties beter behandeld te worden dan wij met bijv. varkens en kippen doen?
    • Als mensen algoritmen zijn, waar blijft dan de vrije wil?
    • Is bewustzijn meer dan alleen het verhalende ik? En hoe hard is het nodig, met name voor intelligentie?
  • Henk had QBasic-programma's geschreven voor twee puzzeltypes die regelmatig in de Metro verschijnen:
    • Tentje-boompje, waarin op een vierkant van ruitjespapier een aantal bomen zijn geplaatst. Naast elke boom (horizontaal of vertikaal) moet precies één tentje worden geplaatst, maar tentjes mogen elkaar niet raken, ook niet diagonaal. (Bomen kunnen elkaar wel raken, en doen dat ook dikwijls.)
    • Kamertje verhuur, ook op een ruitjesvierkant, waarbij een gesloten polygonale lijn moet worden getrokken tussen de ruitjes door. De lijn mag zichzelf niet raken of snijden, en diverse vakjes bevatten een cijfer (van 0 tot 3) dat aangeeft hoeveel zijden (van de vier) deel uitmaken van de lijn. Ook kunnen sommige segmenten van de polygonale lijn gegeven zijn.
    Henks maakt hierbij geen gebruik van backtracking, maar van logische gevolgtrekkingsregels die specifiek zijn voor het probleem, en die in zijn BASIC-programma zitten ingebakken. Daardoor vormen die programma's dus een soort expertsystemen. Gerard memoreerde dat Titus al eens, voorlopig zonder succes, geprobeerd heeft om kamertje verhuur aan te pakken met een genetisch algoritme. Zelf vroeg hij zich af of het met een cellulaire automaat zou kunnen; hij had ooit een artikel gelezen waarin cellulaire automaten werden gebruikt om doolhoven op te lossen.
  • Ronald heeft op zijn Arduino-bordje een potentiometer aangesloten: een draaiknop, waarvan de stand door het bordje kan worden uitgelezen. Hij wil deze voorziening, op advies van Gerard, gaan gebruiken om de leerfactor van zijn Kohonennetwerk handmatig te controleren. Dat helpt om een intuïtief gevoel te krijgen voor het effect van die leerfactor, en zodoende te achterhalen welk verloop deze moet hebben om het netwerk in een gewenste toestand tot rust te laten komen.
  • Titus liet weer een interessant programmaatje-in-aanbouw van eigen hand zien: vortaro.bas. Vortaro betekent woordenboek in het Esperanto, een taal die niet is geëvolueerd maar ontworpen, en daardoor meer consistentie en logica vertoont dan andere talen. Dit is ook goed te zien bij de woordvorming, waar ingewikkelde begrippen kunnen worden uitgedrukt met behulp van voor- en achtervoegsels die rondom een stamwoord zijn gegroepeerd. Een voorbeeld is malsanulejo, bestaande uit mal- (niet), san- (gezond, stamwoord), -ul (persoon), -ej (plaats) en de uitgang -o die alle zelfstandige naamwoorden krijgen. De betekenis is dus plaats waar ongezonde mensen zijn: ziekenhuis. En samideano, van sam- (zelfde), ide- (idee, stamwoord), -an (volgeling, aanhanger), en -o, betekent geestverwant. Het programma van Titus moet dergelijke woorden gaan uiteenrafelen in hun samenstellende delen, en die vertalen naar het Nederlands en het Engels.

We zullen in september zien hoe het verder gaat met al deze activiteiten, en welke nieuwe bezigheden er zoal in de vakantie zijn verzonnen.
(GV 24 september 2018)

Kort verslag van de bijeenkomst op 2 juni 2018

Gewoontegetrouw was er voorafgaand aan de plenaire sessie weer een overleg van de studiegroep neurale netwerken. Peter gaf een wat uitgebreidere toelichting op Trello, de website die nu door de studiegroep wordt gebruikt om de activiteiten te plannen en coördineren. In Trello wordt een project of activiteit georganiseerd op een board, de digitale versie van een planningsbord uit de "echte wereld". Op zo'n bord vind je een aantal lijsten, analoog aan de kolommen op een echt planningsbord. Die lijsten kunnen voor van alles gebruikt worden: deeltaken, tijdsperioden, stadia waarin (deel)activiteiten verkeren, enz. In elke lijst kunnen dan weer kaarten worden aangemaakt, met informatie, vragen, opmerkingen, aantekeningen, enz. Een behoorlijk flexibele opzet dus, die door de gebruikers op veel verschillende manieren kan worden ingevuld om vorm te geven aan diverse vormen van samenwerking op allerlei gebieden.
Tijdens dit overleg kwam ook nog een interessante web-link langs: een (Engelstalige) algemene inleiding in de AI. Geen programmacode en nauwelijks wiskunde, maar wel verklaringen van termen, schema's, en lijstjes over zo ongeveer alle deel- en toepassingsgebieden van Kunstmatige Intelligentie — dit alles samengevoegd tot een samenhangend overzicht, zij het in soms wat krom Engels. Een waardevolle informatiebron voor beginners en gevorderden! Op de website waar dit staat, tutorialspoint, kunnen overigens nog veel meer tutorials worden gevonden, ook over AI-onderwerpen en programmeren.

In de plenaire sessie kwamen de volgende onderwerpen ter sprake:

  • Gerard wilde een projectgroep Javascript opstarten. De bedoeling was om de basisbeginselen van deze programmeertaal onder de knie te krijgen aan de hand van een drietal artikelen uit het computertijdschrift c't (november en december 2014, jan/feb 2015). De geplande projectduur was 1 maand (in dit geval 5 weken): één week voor elk artikel, één voor het schrijven van een eigen programmaatje (wat dat moet doen was nog nader te bepalen), en de laatste week als uitloopmogelijkheid (reservetijd). Gerard had naast zichzelf plaats voor drie andere deelnemers; Pieter Frans, Niek en Peter meldden zich aan.
  • Diederik kwam terug op de open source deep learning chess engine Leela Chess. Mensen kunnen m.b.v. hun computer schaakpartijen aanleveren als trainingsdata, hetzij door zelf tegen Leela Chess te spelen, hetzij door via een interface als Arena Chess een (ander) schaakprogramma tegen Leela Chess in te zetten. Ook vestigde Diederik de aandacht op het forum, waarop interessante discussies en informatie te vinden zijn.
  • Niek vertelde zelf een exemplaar van Gödel, Escher, Bach te hebben aangeschaft. Het aantal geïnteresseerden in dit boeiende boek lijkt dus te groeien; misschien zit er in de toekomst een project- of studiegroepje in…?
  • Thijs hield een zeer leerzame presentatie over reinforcement learning, waarbij het systeem niet getraind wordt met een verzameling juiste antwoorden, maar op basis van goed/fout-signalen zelf moet uitzoeken hoe het moet. Daarbij kwamen begrippen aan bod als discounted rewards (je moet acties die verder in het verleden liggen minder zwaar meewegen dan recentere handelingen), exploration (voor een optimaal leereffect moet je af en toe iets anders doen dan de aanbevolen actie), en de Bellman-vergelijking, die een rol speelt bij dit soort optimalisatieproblemen. Wie het naadje van de kous wil weten kan het nalezen in het artikel Demystifying Deep Reinforcement Learning dat door Thijs is geraadpleegd.
    Verder liet Thijs ons kennismaken met de website OpenAI Gym (ook te vinden op GitHub), met allerlei omgevingen om programma's voor reinforcement learning uit te proberen en te trainen. Zelf was hij bezig om met behulp van een SELU (Scaled Exponential Linear Unit) activatiefunctie en TensorFlow de maanlander een zachte landing te laten maken, maar dat was nog niet gelukt.
  • Pieter Frans vertelde dat hij bezig was geweest met een systeem dat Tic-Tac-Toe (boter, kaas en eieren) leerde spelen m.b.v. reinforcement learning, maar had daar (nog) geen echt verhaal over te vertellen. Op Quick-Draw ging hij wel wat uitgebreider in. Dat is een online AI-experiment van Google, waarbij de gebruiker een zestal meestal concrete begrippen krijgt voorgeschoteld, en van elk begrip binnen 20 seconden — en dat is niet erg lang, probeer het maar! — een tekeningetje moet maken. Het achterliggende neurale netwerk probeert dan te achterhalen wat jouw krabbeltjes voorstellen. Wanneer QuickDraw één of meer tekeningetjes goed heeft geïnterpreteerd — dat hangt natuurlijk sterk van jouw tekenkunsten af, en die komen waarschijnlijk een stuk beter uit de verf als je een touchscreen hebt dan wanneer je het met een computermuis moet doen —, wordt de eer geheel aan de tekenaar gegeven: Well drawn, krijg je te lezen. Alleen wanneer geen van de zes probeersels wordt herkend, reageert het systeem met oops. Je kunt ook kijken in de database met tekeningetjes waarmee jouw krabbels worden vergeleken. De tekeningen worden dynamisch opgeslagen, d.w.z. de volgorde waarin de lijntjes, cirkeltjes, enz. op het scherm zijn gezet wordt ook geregistreerd. Behalve als experiment in AI (waarvan Google er nog meer heeft), kan een systeem als dit omgekeerd ook gebruikt worden om te leren tekenen of schrijven…
  • Ben heeft door omstandigheden niets met Prolog voor de Transputer kunnen doen.
  • Theo vroeg de aandacht voor ROS (Robot Operating System), dat het aansturen van robots voor programmeurs moet vereenvoudigen zoals een gewoon Operating System het gebruik van de computer vergemakkelijkt. In tegenstelling tot wat de naam suggereert, is ROS, evenals andere, soortgelijke systemen, echter geen besturingssysteem in de geijkte betekenis van het woord, maar een verzameling middleware. Theo kwam hiermee omdat bij HCC Robotica een studiegroepje is gevormd om zich in dit onderwerp te verdiepen.
  • Arjan is bezig met het boek Deep Learning with Python van Francois Chollet. De eerste vier hoofdstukken vormen een algemene inleiding, het vijfde gaat over convolutionele netwerken voor computer-visie. Een interessant punt is dat de NN-programmabibliotheek keras een image data generator bevat, die de hoeveelheid trainingsdata kan vergroten door van gegeven voorbeelden varianten te verzinnen.
  • Klaas had proefondervindelijk ervaren dat de prestaties van een cijfer-herkennend neuraal netwerk verslechteren als je de trainingsdata op cijfer sorteert. Volgens Peter was dit effect uit de literatuur al wel bekend.


(GV 13 september 2018)

Kort verslag van de bijeenkomst op 5 mei 2018

Voorafgaand aan de plenaire sessie vond weer een overleg van de studiegroep "Neurale Netwerken" plaats. Peter gaf een korte demonstratie van Trello, een website die kan worden gebruikt om de activiteiten binnen (werk)groepen te coördineren. Hij stelde voor om van fleep af te stappen en de communicatie voortaan via Trello te laten verlopen. Er leken geen grote bezwaren tegen deze stap te bestaan; Klaas vond Trello "overzichtelijker dan fleep".
Arjan stelde voor om verder te gaan met Deep Learning with Python van François Chollet na afronding van Tariq Rashids Make Your Own Neural Network. Er was wel belangstelling voor dit boek, maar de meeste deelnemers zijn nog niet zo ver, dus er is nog tijd om ook alternatieven te bekijken.
Tenslotte werd er nog gesproken over de vraag wat we deelnemers aan de studiegroep aanbieden, wat we willen aanbieden, en wat we kunnen aanbieden. Dit onderwerp komt vermoedelijk in de toekomst nog wel vaker ter sprake.

In de plenaire sessie kwamen nog de volgende onderwerpen aan bod:

  • Kees attendeerde ons op een on-line cursus Neural Networks for Machine Learning. De cursus wordt gegeven door Geoffrey Hinton, een grote naam op het gebied van neurale netwerken, en wordt aangeboden door de universiteit van Toronto in het kader van coursera. (Coursera is een samenwerkingsverband waarin universiteiten uit diverse landen on-line cursussen aanbieden.) De cusus start op 14 mei, bestaat uit 16 lessen van één week, en is gratis — tenzij je een certificaat wilt.
  • Gerard zocht nog wat gegadigden om de stand van onze AI-interessegroep te bemannen op de HCC!Expo, te houden op zaterdag 12 mei. Arjan en Edwin waren bereid om namens de studiegroep Neurale Netwerken de bezoekers te woord te staan. Daarnaast zal Peter aanwezig zijn om het onderwerp "AI en ethiek" te belichten, Abraham voor het verband tussen AI en Robotica, en Gerard als "regelneef" (oftewel: coördinator).
  • Arjan vestigde de aandacht op twee YouTube-kanalen:
    • Op Arxiv Insights worden recente wetenschappelijke artikelen over machine learning uitgelegd in video's van ongeveer een kwartier. Arjan toonde een stuk van de uitleg van adversarial examples: datavoorbeelden (zoals afbeeldingen die herkend moeten worden) die speciaal geconstrueerd kunnen worden om een neuraal netwerk het bos in te sturen, terwijl op het oog niet daarvan te onderscheiden plaatjes wèl correct worden geklassificeerd.
    • Een reeks van 18 colleges over machine learning, gegeven door Andrew Ng van Stanford University. Deze cursus is ook te vinden op Coursera.
  • Klaas voegde daar nòg een interessante YouTube-tip aan toe: de MIT-OpenCourseWare lezingenreeks van Patrick Henry Winston over Artificial Intelligence.
  • Ben vertelde dat hij en Abraham nu een werkende Prolog op de Transputer hebben. Het betreft een speciale Prolog-compiler voor concurrent programming uit 1994, gebaseerd op de versie van Clocksin & Mellish (die in de jaren '80 een standaard leerboek over Prolog schreven) met een aantal uitbreidingen. Ben demonstreerde een eenvoudig programmaatje waarbij Prolog een aantal uitspraken over genegenheid tussen personen kreeg voorgeschoteld, en daarover vragen (queries) beantwoordde. Het volgende doel is de Torens van Hanoi in Prolog, waarbij misschien te zien zal zijn of het toevoegen van extra Transputers aan het systeem de oplossing versnelt…
  • Edwin was bezig in het boek Machine Learning for Hackers, van Drew Conway en John Myles White. Er worden technieken als classificatie, rangschikking, regressie, clustering en optimalisatie behandeld, met leuke toepassingen als spam-filtering, het breken van een simpel geheimschrift, en het analyseren van het stemgedrag van Amerikaanse senatoren. Edwin vindt het een leesbaar boek, al wordt er wel een stevig beroep gedaan op kennis van de in het boek gebezigde programmeertaal R.
  • Tot slot demonstreerde Titus zijn droids-programma, geschreven in Liberty BASIC; het werkt ook in het (gratis verkrijgbare) JustBasic 2.0. Droids zijn abstracte wezentjes op het computerscherm — bij Titus beeldt dat scherm een donutvormige torusruimte af —, die zich voortbewegen op grond van enkele eenvoudige regeltjes:
    • vermijd botsingen met je buren
    • probeer naar het centrum van de zwerm te komen
    • beweeg je in dezelfde (gemiddelde) richting als je buren
    • voeg een eigen willekeurige component toe aan je beweging
    • vlucht voor een eventueel roofdier
    Doordat deze regels elkaar in sommige situaties versterken, maar in andere gevallen elkaar tegenwerken, kan er een complex zwermgedrag ontstaan, zoals van een school vissen of een vlucht spreeuwen.

Genoeg ideeën en tips dus om ons weer een maandje bezig te houden!
(GV 20 augustus 2018)

Kort verslag van de bijeenkomst op 7 april 2018

De bijeenkomst begon vandaag met het overleg van de studiegroep "Neurale Netwerken". Besloten werd tot de oprichting van een nieuwe beginnersgroep, voor deelnemers die de aansluiting met de "eerste lichting" kwijt zijn, en ook voor degenen die pas na de oprichting van die studiegroep onze bijeenkomsten zijn gaan bijwonen. Op aandringen van Ed zal de beginnersgroep waarschijnlijk met Skype gaan communiceren.

Daarna stond de Algemene Ledenvergadering (ALV) op het programma. Dit verplichte jaarlijks terugkerende ritueel, voor een belangrijk deel gevuld met formaliteiten, werd in vrij korte tijd afgehandeld.

In de plenaire sessie werden de volgende onderwerpen besproken:

  • Ben en Abraham waren bezig om te kijken of de Transputer ook in de AI-taal Prolog kan worden geprogrammeerd. Voorlopig zonder duidelijk succes; maar ze werkten tijdens de bijeenkomst nog stug door, en boekten daarbij ook wel enige vorderingen.
  • Diederik was er (in het kader van de studiegroep NN) nog niet in geslaagd om een backpropagation neural network, geprogrammeerd in Pascal, goed te laten leren, ook niet met een klein aantal neuronen en lagen. Gerard kwam met het idee om het met een XOR-netwerkje te proberen; niet alleen vanwege het geringe formaat (2 inputneuronen, 2 hidden neuronen, en 1 uitgangsneuron), maar ook omdat de gewichten voor dat probleem goed "met de hand" kunnen worden vastgesteld (en dus gecontroleerd).
  • Verder had Diederik twee web-tips:
    • Op de ontwikkelsite GitHub staat een project dat een open source equivalent voor het schakende neurale netwerk AlphaZero wil bieden, onder de naam Leela-Chess
    • In een interessant opinieartikel op de website van de Britse krant wordt betoogd dat de menselijke geest geen "diepere" lagen en motivaties kent. Dit heeft natuurlijk ook implicaties voor de discussies over de "vrije wil"…
  • Peter wilde graag weten of de web-links, die hij regelmatig in de nieuwsbrief opneemt, ook worden gelezen en op prijs gesteld. Dat bleek inderdaad het geval, waaruit Peter concludeerde dat het zinvol is om deze informatie op deze manier te blijven verstrekken.
  • Ook Arjan had een paar web-tips:
    • Een artikel over een neuraal netwerk dat een auto bestuurt. Het netwerk wordt gevoed met camerabeelden (30 per seconde), en heeft 1 ingangslaag, 5 convolutielagen, en daarna nog 3 lagen om de uiteindelijke uitvoer te produceren.
    • In verband hiermee wilde Arjan tevens de aandacht vestigen op een website over een zelf-sturende boot.
    • Tenslotte wees Arjan op een podcast waarin Jelle Brandt Corstius een bijna 3 uur durend marathon-interview met Max Welling houdt over deep learning en de gevolgen daarvan. Max Welling is professor in Machine Learning aan de Universiteit van Amsterdam.
  • Titus had weer iets geweldigs meegenomen: een door hem jaren geleden uit hout en scharnieren opgebouwd model van een menselijke hand. De bedoeling is dat dit project uiteindelijk een robothand gaat opleveren. Hoewel er in dit model geen motoren zitten, voelt de hand door zijn gewicht en "gewrichten" al opvallend levensecht aan! Momenteel is Titus bezig met een tweede, digitale versie (in POV-Ray), die echter ook nog niet beweegt.
    20180407a  20180407b
  • Verder droeg Titus een nieuw puzzeltje aan: "Kamertje verhuur", af en toe te vinden in de gratis krant Metro (o.a. verkrijgbaar op de grotere treinstations). Hij had geprobeerd dat op te lossen met een genetisch algoritme, voorlopig nog zonder succes.
  • Bovendien had Titus zijn "lijnvolger" meegenomen. Het betreft een standaard LEGO-Mindstorms©-robot, die hij had uitgerust met een extra, schuin naar beneden gerichte afstandssensor om te voorkomen dat hij van de tafel af rijdt. De robot is geprogrammeerd in de EV3-taal, waarin je (net als bijv. in LabVIEW) blokken van parameters voorziet en met elkaar verbindt.
  • Henk had een programmakrant van de ISVW (Internationale School voor Wijsbegeerte) meegenomen, met daarin een lijstje van "Grote Denkers". Hij constateerde teleurgesteld dat Democritus daar niet in voorkwam. Een andere filosoof, Descartes, met specifieke opvattingen over het mind-body-problem, stond er overigens wel bij.
  • Daarna liet Henk de backtrack-programma's zien, die hij had gemaakt om de sudoku mix en de calcudoku's uit de zaterdagbijlage van De Volkskrant op te lossen. Aanvankelijk leek het niet helemaal te werken, door een tikfoutje — in een 4×4 calcudoku kan het getal 95 als rekenkundig product nu eenmaal niet voorkomen, omdat het cijfer 5 er niet in voorkomt —, maar toen dat hersteld was kwam de oplossing er vlot uitrollen!
  • Tot slot kwam Gerard nog met twee recente artikelen uit het tijdschrift Scientific American:
    • In een artikel in het april(2018)-nummer wordt de theorie besproken dat zenuwcellen niet zozeer op elektrische, maar vooral op mechanische wijze pulsen aan elkaar doorgeven, dus door elkaar a.h.w. "aan te stoten".
    • In het maart(2018-)nummer staat een artikel over de poging om robots te laten leren als kinderen, dus door ze de wereld te laten verkennen om te kijken of hun "model" over hoe de wereld in elkaar zit, klopt. Gerard had het idee dat dit zou kunnen worden verwezenlijkt door twee neurale netwerken van elkaar te laten leren.

Er is dus weer ruim voldoende informatie uitgewisseld om een maandje thuis over na te denken en er de volgende bijeenkomst op voort te borduren.
(GV 28 mei 2018)

Kort verslag van de bijeenkomst op 3 maart 2018

In het informele gedeelte van de bijeenkomst waren Albert en Gerard bij elkaar gaan zitten om weer eens naar de programmeertaal occam te kijken. Gerard wou voor het oplossen van logische puzzels alle mogelijke waar/onwaar-combinaties voor een aantal uitspraken genereren. Dit is een tamelijk simpel probleem, dat neerkomt op "binair tellen" en een mogelijkheid biedt om wat te experimenteren met verschillende processen die onderling moeten communiceren. Gerard gaf aan dat je in eerste instantie heel eenvoudig kunt beginnen met twee uitspraken, die elk door één proces worden gerepresenteerd.

Dit idee werd enthousiast begroet door Abraham, die er bij was komen zitten. Het bleek dat Abraham op het Internet de ontwikkelomgeving met bijbehorende documentatie van een occam-versie voor de Arduino had gevonden. De LEDjes op de Arduino kunnen natuurlijk prima worden gebruikt om waarheid (LED "aan") of onwaarheid ("uit") van een uitspraak aan te geven; Abraham zou gaan proberen om een 2-bits versie van Gerards idee in occam te programmeren. Op de onderstaande foto's, gemaakt door Abraham, zijn links Albert en Gerard aan het beraadslagen; vóór hen op de tafel ligt de occam-Arduino van Abraham, die op de rechterfoto nog wat beter te zien is.       20180303b

In de plenaire sessie passeerden onder meer de volgende onderwerpen de revue:

  • Als eerste kreeg een nieuwe bezoeker, Frans, de gelegenheid zichzelf voor te stellen. Hij vertelde o.a. dat hij werkzaam is in de procesindustrie, belangstelling heeft gekregen voor AI door het boek Gödel, Escher, Bach van Douglas Hofstadter, en dat hij wat meer tijd aan die interesse kan besteden nu zijn kinderen ouder zijn.
  • Theo had een nuttige internet-tip: de nieuws-site Reddit, die ook een speciale sectie over AI heeft. Diederik voegde daar een goede tip aan toe: voor nieuws op technisch en wetenschappelijk gebied gaat hij regelmatig naar de site ScienceDaily, ook met een speciale AI-pagina. Wie dagelijks deze beide sites bezoekt, blijft vast en zeker uitstekend op de hoogte van alle actuele ontwikkelingen op het gebied van kunstmatige intelligentie!
  • Zoals ook uit vorige bijeenkomstverslagen blijkt, is Henk o.a. geïnteresseerd in filosofie, en vooral in Democritus, de "geestelijke vader" van de atoomtheorie. Op zoek naar meer informatie over deze onderwerpen las hij De droom der rede van Anthony Gottlieb. Hij kan het boek aanbevelen als een goed overzicht over de vroege westerse filosofie. Wel viel hem op dat filosofie bij Democritus nog simpel was, maar dat het bij Plato en Aristoteles aanzienlijk ingewikkelder werd. Hij vergeleek dit met programmeren: Henk zelf vindt assembly simpel, omdat je het contact met de processor nog hebt; dit i.t.t. een taal als bijv. Scratch, die geen direct verband meer houdt met hoe een computer eigenlijk werkt.
    Ook had Henk zitten lezen in "Het mysterie van de tijd", geschreven door Carlo Rovelli. (Rovelli schreef eerder het boek "Zeven korte beschouwingen over natuurkunde".) Henk bekende dat hij het boek niet helemaal had uitgelezen, en dat hij er ook weinig wijzer van was geworden.
  • De "studiegroep neurale netwerken" had vandaag veel te bespreken: "Waar zijn we mee bezig, en waar gaan we naartoe?". Wederom werd geconstateerd dat fleep als communicatie- en coördinatiemiddel niet aan de verwachtingen beantwoordt ("Fleep is flut!"); maar er werd ook, terecht, opgemerkt dat je er mee moet leren werken, en Gerard voegde er aan toe dat, of het nu via fleep of via e-mail is, een efficiënte communicatie meestal wel gebaat is bij een beetje zelfdiscipline van de deelnemers.
    De vorderingen van de deelnemers lopen nog steeds sterk uiteen, en lijken samen te hangen met de hoeveelheid tijd die ieder in het onderwerp wil c.q. kan steken. Albert, die ergens in het begin van het boek is blijven hangen, zei dat hij vooral wil weten wat een neuraal netwerk nu eigenlijk precies is, en dat het voor hem beter was geweest als de stof in kleine brokjes was bestudeerd – meer als een soort lesprogramma. Edwin vond het gebruikte boek — "An introduction to Neural Networks" van Tariq Rashid — overigens, voor amateurs/hobbyisten zoals wij, wel een goed boek om met het onderwerp "neurale netwerken" kennis te maken.
    Gerard vestigde nog eens de aandacht op het onderscheid dat hij maakt tussen werk- en projectgroepen. Volgens hem had de studiegroep het karakter van een werkgroep: een groep met een (min of meer) gemeenschappelijke interesse waarover regelmatig of bij vlagen van gedachten wordt gewisseld. Naar zijn ervaring leveren dergelijke groepen meestal niet zo veel op omdat ze nogal vrijblijvend van karakter zijn. Hij ziet meer in projectgroepen, met één of meer concrete doelstellingen, een beperkte, vooraf vastgelegde bestaansduur, en een tijdplanning.
    Toch worden er ook door leden van de studiegroep wel degelijk resultaten geboekt: Theo had Anaconda en Jupyter nu werkend; Diederik is druk bezig een klein backpropagation-netwerk in Pascal te programmeren en moet nu gaan debuggen — zijn neuronen geven een output groter dan één, wat theoretisch niet mag kunnen! —; en Edwin kondigde aan nu ook te gaan "bouwen". We zijn dus benieuwd naar de verdere ontwikkelingen.
  • Tot slot verkondigde Gerard de stelling dat neurale netwerken feitelijk geen programma's of algoritmes zijn, maar computers (in de theoretische betekenis van het woord). Dat veroorzaakte nogal wat verwarring, dus deze opvatting zal waarschijnlijk ook in de toekomst nog wel onderwerp van discussie worden…


(GV 1 april 2018)

Kort verslag van de bijeenkomst op 3 februari 2018

Op de plenaire sessie kwamen de volgende onderwerpen aan de orde:

  • Als eerste stelden drie nieuwe bezoekers zich voor: Niek, Thijs en André.
  • Daarna was de studiegroep Neurale Netwerken aan bod; dit keer binnen de plenaire sessie omdat Ed de hele ochtend bij Robotica aanwezig moest zijn. Bij deze discussie werd duidelijk dat niet alleen de vorderingen nog steeds sterk uiteenlopen, maar ook de insteek van de deelnemers: sommigen zijn vooral geïnteresseerd in de theorie; anderen willen juist weten hoe je een neuraal netwerk programmeert zonder al te veel theoretische bagage; terwijl weer anderen uit zijn op toepassing (zoals karakterherkenning, waardoor een robot wegwijzers zou kunnen gaan lezen). Verder was gebleken dat de studiegroep vandaag tijdens het informele gedeelte, vóór de plenaire sessie, wel verhelderende discussies had gevoerd, en dat dit overleg "in real life" efficiënter is dan de berichtenuitwisseling via fleep. Het idee werd opgeworpen om de onderwerpen (vragen en problemen waarmee men zit) wèl van te voren via fleep te communiceren, zodat iedereen van te voren enigzins weet waarover het zal gaan.
  • Jan wilde nog maar eens benadrukken dat de Transputer het enige concurrency-systeem is dat voor de hobbyist bereikbaar is. Daarnaast zijn er alleen maar hele grote, en vooral dure, professionele systemen. In de jaren '80 en '90 was de Transputer voor minder draagkrachtige onderzoeksgroepen dan ook een reëel alternatief voor de grote (Cray) supercomputers. De huidige multi-core processoren zijn niet echt vergelijkbaar, omdat die als één module fungeren, en niet zoals een transputersysteem stapsgewijs tot in het oneindige kunnen worden uitgebreid. En de grafische processoren (GPUs), die tegenwoordig ook veel worden gebruikt voor de matrixberekeningen in neurale netwerken, zijn een specialistische toevoeging aan een "gewone" CPU — ongeveer zoals in de jaren '80 een computer met een Intel-8086- of 8088 processor kon worden uitgebreid met een 8087 numerieke (floating point) coprocessor.
  • Titus had een tweetal computeranimaties gemaakt, die hij graag op het Internet geplaatst wou zien. Hij had ze echter alleen als BASIC-programma beschikbaar; er moesten dus eerst met een screen-captureprogramma filmpjes van worden gemaakt, die dan vervolgens op YouTube konden worden geplaatst. Abraham verklaarde zich bereid om dat te doen, en heeft de beide animaties — één verhaaltje zonder woorden, met de titel Pilko, gebaseerd op een grap die door Titus zelf is bedacht; en één reeks van bewegende mensen, dieren, bomen en voorwerpen — inmiddels op zijn eigen YouTube-kanaal gezet. Op dit kanaal stond al enige tijd een filmpje gemaakt op een van onze vorige bijeenkomsten, waarin Titus al eens wat van zijn animaties presenteerde.
  • Titus had ook nog wat doolhof-programma's geschreven. Als eerste een 3-dimensionaal doolhof van 3×3×3 (in een 6×6×6 ruimte), vanuit het perspectief van iemand die zich er in bevindt en de uitweg moet vinden. En als tweede een 2-dimensionaal doolhof, waarbij het programma niet alleen het doolhof maakt, maar ook de weg er doorheen berekent; dit doolhof werd van boven in beeld gebracht. Helaas kon Titus niet in detail uitleggen hoe zijn programma's werken, omdat hij de doolhofalgoritmen van het Internet had geplukt, maar ze niet in detail had geanalyseerd.
  • Tot slot vertelde Gerard wat hem momenteel bezig hield. Hij had in deel 4 van The Art of Computer Programming van de "algoritme-goeroe" Donald Knuth een beschrijving gevonden van een uit logische poorten opgebouwde automaat die boter-kaas-en-eieren (tic-tac-toe) kan spelen. Zoals gebruikelijk laat Knuth, met zijn bondige wiskundige schrijfstijl, veel aan de lezer over om zelf uit te pluizen; hiermee had Gerard al menig uurtje aangenaam doorgebracht, en hij was er nog lang niet klaar mee — temeer daar Knuth zoals gewoonlijk bepaalde essentiële ontwerpdetails naar de opgaven delegeert. Niettemin had Gerard goede hoop er uiteindelijk uit te komen. Daarna zou het natuurlijk leuk zijn om de machine ook daadwerkelijk te gaan bouwen…

Een demo die Thijs wilde laten zien over reinforcement learning kwam helaas niet meer aan bod; we hopen die op een van de komende bijeenkomsten alsnog te kunnen bekijken…
(GV 22 februari 2018)

Kort verslag van de bijeenkomst op 6 januari 2018

Doordat Peter er in geslaagd was de HCC-seizoensthemalezing naar Hooglanderveen te halen, was het programma wat anders dan gebruikelijk:

Voorafgaand aan de lezing kwam de studiegroep neurale netwerken voor overleg bijeen. Wat vooral duidelijk werd is dat de vorderingen van de deelnemers hemelsbreed uiteenliepen: één persoon was nog niet met het boek begonnen, anderen hadden het theorie-gedeelte al doorgewerkt maar waren nog niet begonnen met het installeren van de software; weer anderen waren daar wel mee bezig maar stuitten op problemen — waarbij misschien ook het hardwareplatform (Raspberry Pi of PC) en het operating system (Raspbian, "gewoon" Linux, Windows) een rol speelde —, terwijl nog weer anderen de software wel hadden geïnstalleerd maar nog niet met programmeren waren begonnen. En één deelnemer (Arjan) was zelfs al helemaal klaar! Daarnaast was het gebrek aan vragen op fleep punt van discussie. Gerard suggereerde dat er ook oefenvragen kunnen worden geformuleerd waarmee leden van de studiegroep hun begrip van de stof kunnen testen; dit zou kunnen gebeuren door Peter of door Gerard zelf, in zijn rol als waarnemer.

De lezing van Rob van Geuns, over het HCC seizoensthema "slimme auto's", werd gehouden voor 29 toehoorders, van de interessegroepen Robotica en AI samen. Er werd een goed inzicht gegeven in de stand van zaken en de huidige activiteiten en plannen van diverse autofabrikanten; tevens werd duidelijk hoe het toevoegen van sensoren aan auto's, en het reageren op die sensorgegevens, zou kunnen leiden tot een bijna naadloze overgang naar "zelfrijdende" auto's. ("Zelfbesturend" zou een betere term zijn, want het woord "auto-mobiel" betekent al "zelf-bewegend"…)

Door de lezing was de plenaire sessie helaas wat korter en zonder beamer, maar daarom niet minder interessant:

  • Jan heeft uitgelegd waarom hij zijn deelname aan de studiegroep neurale netwerken beëindigt. Hij vindt het onderwerp "uitzonderlijk interessant", maar heeft zich voorgenomen om nu echt aan de slag te gaan met transputers en besturingen.
  • Arjan bracht het boek "Elegant SciPy" (van uitgeverij O'Reilly) onder onze aandacht. Dit boek, dat ook online te vinden is, behandelt onder andere beeldherkenning, fouriertransformatie, sparse matrices, en kruistabellen (contingency tables). Verder bood Arjan aan om op een latere bijeenkomst een recapitulatie te geven van zijn lezing over convolutionele neurale netwerken.
  • Henk was bezig met een boek over computerschaak en hoopte daar volgende maand iets meer over te kunnen vertellen.
  • Titus had een "algoritme" bedacht om een minderwaardigheidscomplex te overwinnen:
    1. Vind je talent.
    2. Ontwikkel dat.
    3. Let op je gevoel.
    Omdat het voorschrift niet aan alle strenge eisen van bijv. Knuth voldoet, kan het misschien beter een "recept" worden genoemd dan een "algoritme"; maar het zou zeker interessant zijn om het "therapieprogramma" Eliza uit te rusten met dit soort richtlijnen!
  • Theo kwam met een tip die goed aansloot bij de lezing: in c't van januari/februari 2018 staat een vijftal artikelen over hoe de 3 grote visies, nl. elektrisch, connected en autonoom naar verwachting in de nabije toekomst een revolutie in het autovervoer teweeg gaan brengen, met speciale aandacht voor o.a. parkeren, tanken, auto-ontwerp, en autonoom rijden.
  • Diederik had een artikel van bijna 20 pagina's gelezen over de overwinning van AlphaZero op de open source schaakengine "Stockfish" en wou daarover van gedachten wisselen. Hoewel nog niet alle details van deze match duidelijk zijn — van de 100 partijen zijn er maar 10 gepubliceerd — en er wel iets op af te dingen valt — Stockfish was niet geoptimaliseerd voor de hardware, en kreeg maar 1 minuut per zet bedenktijd toegewezen —, is het toch een interessant resultaat. Zo blijkt uit een analyse van de gepubliceerde partijen door een Amerikeense internationaal schaakmeester, dat AlphaZero eerder wordt gekenmerkt door een "romantische", aanvallende speelstijl dan door risicoloos geschuif dat tracht kleine voordeeltjes om te zetten in winst. Al met al was het intrigerend genoeg om bij Diederik een grotere belangstelling voor neurale netwerken op te wekken…

Het was dus een geslaagde aftrap voor een nieuw jaar gevuld met AI-aktiviteiten!
(GV 12 februari 2018)

 

Actueel

'Meld je aan voor de nieuwsbrief' van HCC!artificieleintelligentie

'Abonneer je nu op de nieuwsbrief en blijf op de hoogte van onze activiteiten!'

Aanmelden