ID.nl logo
Huis

Hoe kunstmatige intelligentie Ms. Pac-Man leerde spelen

Met 999.990 punten heeft een kunstmatige intelligentie de absolute high-score gehaald op het inmiddels 36 jaar oude spel Ms. Pac-Man. De PCM-redactie moest met 13.160 punten genoegen nemen. Wij vroegen de leider van het team achter deze kunstmatige intelligentie hoe ze een computer Ms. Pac-Man hebben leren spelen en waarom.

Kunstmatige Intelligentie is een zeer breed studieveld binnen de informatica. Doel is computers te ontwikkelen die zich bewust zijn van hun omgeving, beslissingen kunnen nemen en aan de hand daarvan leren. Dat hoeft niet te leiden tot zelfdenkende machines die – in de Hollywood-stijl – de wereld overnemen. Realistischer zijn de intelligente computers die zelfrijdende auto’s bedienen. Die zijn zich bewust van de weg, andere auto’s, voetgangers en overige obstakels. Aan de hand daarvan nemen ze stuurbeslissingen en ze leren steeds beter te rijden.

Het in Canada opgerichte bedrijf Maluuba ontwikkelt kunstmatige intelligentie om taal te begrijpen. Het bedrijf is grofweg verdeeld in drie teams. Eén team zorgt dat computers teksten kunnen lezen en daar vervolgens vragen over kunnen beantwoorden. Deze divisie heeft een computer het boek Harry Potter en de Steen der Wijzen laten lezen. Daarna kon de computer inhoudelijke vragen over het boek beantwoorden.

Een tweede team binnen Maluuba richt zich op ‘dialog’. Dat zijn systemen die proberen het juiste antwoord te geven als er tegen ze gepraat wordt. Dat kan bijvoorbeeld gebruikt worden in de telefooncentrale van de eerste hulp. De beller geeft aan wat het probleem is, en de computer zorgt door vragen te stellen dat deze met de juiste hulppost wordt verbonden.

Reinforcement learning

Harm van Seijen (research manager bij Microsoft) werkt voor het derde team in Maluuba, dat zich richt op Reinforcement Learning. Een fundamenteel onderzoeksveld waar de andere twee teams hun voordeel mee doen. Kunstmatige Intelligentie is onderverdeeld in verschillende subvelden waaronder Machine Learning. Binnen dit subveld proberen onderzoekers machines te leren leren. Daar zijn weer onderliggende velden in, bijvoorbeeld Neurale Netwerken die leren op basis van voorbeelden. Daar leert een computer bijvoorbeeld katten op de foto te herkennen door foto’s met en zonder kat te bekijken.

Het veld Reinfocement Learning laat computers leren door beloningen aan beslissingen toe te kennen. De computer probeert door verschillende beslissingen te nemen de hoogst mogelijke score te halen. Dat kan ingezet worden in combinatie met het dialog-systeem van het andere team bij Maluuba, bijvoorbeeld om een systeem te bouwen dat telefonische verkopers argumenten geeft om een product te verkopen.

Volgt na een argument een aankoop, dan genereert dat een positieve beloningsscore. Wordt er niet gekocht, dan is de score nul. Gooit de klant de hoorn op de haak, dan volgt er een negatieve score. Op den duur leert de computer zo welke argumenten goed zijn voor de verkoop en welke minder.

In 2015 is bij de University of Toronto een Reinforcement Learning-onderzoek uitgevoerd met behulp van computerspellen van de (antieke) Atari 2600. Het onderzoeksteam gebruikte daar een zogenaamde Deep Reinforcement Learning techniek om de computer spellen te leren spelen. Met deze nieuwe aanpak wist de computer na training bij zes van de zeven geteste spellen een betere score neer te zetten dan welke andere computer ook. In drie gevallen was de computer zelfs beter dan de beste menselijke spelers.

Verschil met Pac-Man

Het in 1981 gelanceerde spel Ms. Pac-Man zat niet bij de titels die in dit onderzoek met succes gespeeld zijn. Harm: “De techniek bij dat onderzoek doet het heel goed bij zo’n 75 procent van de spellen. Maar bij andere titels, waaronder Ms. Pac-Man, werkte het heel slecht. Waarom was niet duidelijk. We hebben geprobeerd dat uit te leggen, maar konden het niet verklaren. Een doelstelling van ons onderzoek was daarom uitvinden waarom het zo moeilijk was en dat vervolgens op te lossen.”

Ms. Pac-Man is de opvolger van het in 1980 verschenen spel Pac-Man. Voor wie het niet kent (wat we ons nauwelijks kunnen voorstellen): in beide spellen moet de speler het titelkarakter door een doolhof sturen om zo pellets, die in de gangen liggen, op te eten. Is het doolhof leeg, dan begint het volgende level. Vier spoken proberen de speler op zijn beurt op te eten. Door één van de vier in het doolhof aanwezige power pellets op te eten, kan de speler tijdelijk de rollen omdraaien en extra punten scoren door spoken op te eten. Af en toe verschijnt er tijdelijk een stuk fruit in het doolhof. Weet de speler dit op te eten, dan levert dat bonuspunten op.

In werkelijkheid zitten er behoorlijke verschillen tussen Pac-Man en Ms. Pac-Man

-

Op het eerste gezicht lijkt Ms. Pac-Man niet meer aan Pac-Man toe te voegen dan een strik, een oog, lippenstift en een schoonheidsvlek. In werkelijkheid zitten er behoorlijke verschillen tussen de twee titels. Zo beweegt Ms. Pac-Man zich door vier verschillende doolhoven terwijl Pac-Man steeds in hetzelfde doolhof verschijnt. Het fruit beweegt in Ms. Pac-Man, terwijl het in de vorige titel stil lag. Zeker belangrijk voor lerende machines: de spoken in Pac-Man verplaatsen zich relatief aan hoe de speler loopt. Dat maakt het mogelijk om bewegingspatronen te ontdekken en daar de speelstijl op aan te passen. In Ms. Pac-Man bewegen de spoken zich met meer willekeur, waardoor een patroon niet te ontwaren is.

Hoogst mogelijke Pac-Man-score

Pac-Man en Ms. Pac-Man zijn over de afgelopen 37 jaar in een onwaarschijnlijke hoeveelheid varianten op de markt gebracht. De website highscore.com houdt wereldwijd de hoogste scores van computerspellen bij. Een snelle zoektocht op deze site geeft 568 varianten van het spel Ms. Pac-Man. Voor de Atari 2600-variant (die in dit onderzoek gebruikt is) kunnen we kiezen uit een high-score geboekt op een originele Atari 2600 spelcomputer (154.630) of op computer die de Atari emuleert (266.330). Kortom, de score van het team van Harm is 3,75 keer zo hoog als de hoogst genoteerde score in Ms. Pac-Man ooit. Harm: “Dit is de hoogst mogelijke score omdat deze daarna reset naar 0 punten.”

Om dit te bereiken is er een creatieve aanpak van de Reinforcement Learning techniek gebruikt. Het team van Maluuba noemt dit de Hybrid Reward Architecture. Harm: “In Reinforcement Learning heb je te maken met een beloningsfunctie. Normaal heb je één agent die probeert de beloning te maximaliseren. Wij hebben die functie opgesplitst in een hoeveelheid kleinere deelfuncties. We hoeven daarom niet met één agent een complex probleem op te lossen, maar hebben een grote verzameling agents die kleine problemen proberen op te lossen.”

Binnen Ms. Pac-Man maakte het team van allerlei losse onderdelen in het spel een agent. Onder meer de pellets in het doolhof, de spoken, de power-pellets en de ‘eetbare spoken’ (na het eten van een power-pellet) werden agents. In totaal gaven 163 verschillende agents aan of ze vonden dat Ms. Pac-Man omhoog, omlaag, linksaf of rechtsaf moest bewegen.

De beslissing van iedere agent kreeg ook een eigen gewicht. Harm: “Iedere agent spreekt een voorkeur voor actie uit en geeft aan hoe belangrijk hij is. Wat een spook wil is van meer belang dan wat een pellet wil.” Op basis van een zogenaamde ‘lineaire combinatie van Q-waarden’ gebruikt de computer die meningen om een afgewogen beslissing te nemen.

4000 uur later

Hoe beter die beslissing in de eindscore uitpakt, hoe eerder de computer die in een volgend spelletje opnieuw zal nemen. Op die manier leert de machine een steeds hogere score op Ms. Pac-Man te noteren. De computer heeft in totaal bijna 4.000 uur Ms. Pac-Man moeten spelen om de topscore te kunnen noteren. Uitgaande van de vuistregel dat iemand met een 40-urige werkweek gemiddeld per jaar 1.650 uur werkt, vertaalt zich dat naar bijna 2,5 jaar trainen voor een mens. Het spelletje waarbij de topscore behaald werd nam 1 uur en 16 minuten in beslag.

In werkelijkheid heeft het vanzelfsprekend geen 2,5 jaar geduurd voor deze score bereikt werd. Voor het experiment was het niet nodig om de computer op menselijke snelheid te laten spelen. Met behulp van een standaard PC met Intel Core i7-processor is de 4.000 uur training uitgevoerd in 30 uur. Daarvoor was eerst een 20 uur durende optimalisatie nodig in een parallel rekenend netwerk van computers. De totaal benodigde ‘werkelijke’ tijd om Ms. Pac-Man te verslaan werd zo teruggebracht naar 50 uur.

De computer heeft in totaal bijna 4.000 uur Ms. Pac-Man moeten spelen om de topscore te kunnen noteren.

-

Natuurlijk investeren Microsoft en Maluuba niet in Reinforcement Learning om de hoogste score op een computerspel te kunnen claimen. Het team van Harm voert voor de bedrijven fundamenteel onderzoek uit. Op basis van hun bevindingen kunnen de andere twee teams van Maluuba hun toepassingen verder optimaliseren.

Harm: “In het algemeen probeer je met Reinforcement Learning uit data goed gedrag te leren. Dat kun je potentieel voor veel dingen gebruiken. Binnen taal bijvoorbeeld om in dialogs de juiste respons te berekenen. Dat kan bij simpele taken gewoon met de hand gecodeerd worden. Maar als het om ingewikkeld gedrag gaat, kan dat niet meer. Dan wil je dat er zelf geleerd wordt aan de hand van data. Daar wordt Reinforced Learning voor gebruikt.”

Zelf aan de slag

Wil je zelf met kunstmatige intelligentie aan de slag, dan volgen hier enkele tips:

Stap 1: Bezoek de Arcade Learning Environment

De Arcade Learning Environment biedt een framework waarmee onderzoekers en hobbyisten AI agents voor Atari 2600 spellen kunnen bouwen. Om hiermee aan de slag te gaan is Linux of OS X nodig. Daarnaast dien je over kennis van Python en C++ te beschikken.

Stap 2: Bezoek OpenAI Gym

Op de website van OpenAI Gym kun je het gereedschap vinden om zelf een Reinforcement Learning algoritme te ontwikkelen. Om dit gereedschap te gebruiken is kennis van de programmeertaal Python praktisch. Naast de mogelijkheid om te ontwikkelen, biedt de OpenAI Gym ook opties om resultaten van je werk te vergelijken met die van anderen. De site bevat daarnaast documentatie en een forum om vragen te stellen.

Stap 3: Kies je project

OpenAI Gym biedt een keur aan omgevingen om je eigen kunstmatige intelligentie voor te ontwikkelen. Daar zitten beginnersprojecten bij en mogelijkheden om met de standaard bordspellen aan de gang te gaan. Je kunt zelfs je eigen 2D- en 3D-robotsimulaties maken. Eén van de mogelijke omgevingen waar je voor kunt kiezen zijn de klassieke Atari-computerspellen.

Stap 4: Breid je omgeving uit

Een handig aspect van OpenAI Gym is dat het kan overweg met algoritmes die in andere frameworks gemaakt zijn. Zo kun je de deeplearning Python libraries die Theano biedt inzetten. Ook de open-source Machine Intelligence-uitbreidingen van TensorFlow werken goed met OpenAI Gym samen.

▼ Volgende artikel
Overzichtelijke teksten: zo voeg je kop- en voetteksten toe
© Andreas Prott - stock.adobe.com
Huis

Overzichtelijke teksten: zo voeg je kop- en voetteksten toe

Met kop- en voetteksten in Microsoft Word zorg je ervoor dat de lezer de draad niet kwijtraakt in de structuur van lange teksten. Ze bevatten doorgaans belangrijke informatie, zoals de paginanummering, de naam van de auteur en de titel van een hoofdstuk. Ook kun je telkens een andere kop- en/of voettekst instellen voor ieder hoofdstuk.

In dit artikel laten we zien hoe je in drie stappen kop- en/of voetteksten aan je document kunt toevoegen:

  • Eerst plaats je eindemarkeringen (sectie-einden)
  • Vervolgens voeg je kop-/voetteksten toe

Lees ook: Kop- en voettekst in Excel stel je zo in

Eindemarkeringen plaatsen

Om delen van een tekst een andere indeling te geven, gebruik je secties. Op die manier kun je bijvoorbeeld zorgen dat pagina 1 tot 5 uit doorlopende tekst bestaat, maar dat daarna de tekst in twee kolommen moet verschijnen. Secties zijn ook de manier om verschillende kop- en voetteksten in hetzelfde document toe te passen. Denk aan een document dat bestaat uit een inleiding en vijf hoofdstukken. Elk hoofdstuk willen we van aparte koptekst voorzien. Plaats de muisaanwijzer voor het eerste hoofdstuk en voeg een sectie-einde toe. Via het tabblad Indeling en de knop Eindemarkeringen plaats je een sectie-einde, namelijk een Pagina-einde.

Plaats een sectie-einde van het type Pagina-einde.

Eindemarkeringen controleren

Je kunt die sectie-einden beter zien door te klikken op de knop Alles weergeven in het tabblad Start. Deze knop noemt men vaak ook 'onzichtbare tekens'. Je roept deze functie nog gemakkelijker op met Ctrl+Shift+8. Ook bij de volgende hoofdstukken voeg je op dezelfde manier telkens een sectie-einde van het type Volgende pagina toe. Daarbij kun je ook de F4-toets gebruiken. Deze combinatie herhaalt telkens de laatste handeling. Dat gaat dus een stuk sneller.

Door de onzichtbare tekens weer te geven, worden de eindemarkeringen zichtbaar.

Kop- en voetteksten toevoegen

Wanneer je alle sectie-einden hebt toegevoegd, kun je de kopteksten aanbrengen. Op de eerste pagina dubbelklik je op de koptekst. Het tabblad Kop- en voettekst verschijnt dan. In het label lees je dat dit Koptekst (Sectie 1) is. Als je wilt dat de eerste pagina geen koptekst mag hebben, dan zet je een vinkje bij Eerste pagina afwijkend. Met de knop Volgend ga je naar de volgende koptekst. Op die manier kun je telkens een andere tekst invullen als koptekst. Dit werkt trouwens hetzelfde bij voetteksten. Wanneer de knop Aan vorige koppelen actief is, wordt deze koptekst dezelfde als de vorige sectie. Als je dat niet wilt, moet je deze optie uitschakelen. Als je nu door het document gaat, zul je zien dat er verschillende kopteksten staan.

Voeg de nieuwe inhoud aan de kopteksten toe.

▼ Volgende artikel
Waar voor je geld: 5 robotstofzuigers met een hoge reviewscore
© iRobot
Huis

Waar voor je geld: 5 robotstofzuigers met een hoge reviewscore

Bij ID.nl zijn we dol op kwaliteitsproducten waar je niet de hoofdprijs voor betaalt. Een paar keer per week speuren we binnen een bepaald thema naar zulke deals. Ben je op zoek naar een betrouwbare robotstofzuiger met een goede reputatie? Vandaag hebben we vijf interessante modellen voor je gespot.

Rowenta X-Plorer Serie 75 S+ RR8587

Wie deze louter positieve reviews leest, komt tot een duidelijke conclusie. Met een gemiddelde beoordeling van een 9,3 is dit Rowenta-model een absolute topper. Gebruikers waarderen onder meer de duidelijke app, stille werking van 65 decibel en lange accuduur tot ongeveer twee uur. Verder heeft de X-Plorer Serie 75 S+ RR8587 diverse sensoren, zodat de ronde behuizing nergens tegenaan botst. Je hoeft bijna niet naar de robotstofzuiger om te kijken, want er is een leegstation inbegrepen. In een gemiddeld huishouden gaat de stofzak ongeveer twee maanden mee.

De X-Plorer Serie 75 S+ RR8587 manoeuvreert met behulp van lasernavigatie soepel door je huis. Het passeren van drempels van hoogstens 1,8 centimeter is hierbij geen probleem. Behalve een centrale borstel bevat de behuizing ook een zijborstel. Hierdoor blijven er geen kruimels achter langs plinten, meubels en stoelpoten. Een pluspunt is de respectabele zuigkracht van maximaal 4000 Pa. Naast stofzuigen kan het apparaat ook dweilen. Vul hiervoor het reservoir met 260 milliliter water. Je bepaalt aan de hand van vier standen hoeveel vocht deze robotstofzuiger gebruikt tijdens het dweilen. Dit product is eventueel ook zonder leegstation te koop.

iRobot Roomba Combo j9+

Zoek je een robot die goed kan stofzuigen én dweilen? De uitgebreide iRobot Roomba Combo j9+ voldoet zonder twijfel aan alle eisen. De consumentenreviews op Kieskeurig.nl spreken boekdelen. De beweegbare dweilarm spring direct in het oog. Handig, want bij detectie van een zacht vloeroppervlak tilt het apparaat de dweil op. Zo wordt voorkomen dat je vloerbedekking of tapijt nat wordt. De app biedt volop slimme mogelijkheden. Zo zie je na een verkenningsronde een plattegrond van je huis. Dankzij de zogenoemde Dirt Detective-functie neemt de robotstofzuiger eerst de vuilste kamers onder handen.

Een ander voordeel is het bijgesloten leegstation met een capaciteit voor zestig dagen. Na elke schoonmaakronde dumpt de Roomba Combo j9+ stof, haren, kruimels en overig vuil in dit station. Daarnaast is het ook mogelijk om vloeistof automatisch te vullen. Op die manier gaat de dweilrobot volautomatisch voor je aan de slag. De stofzuiger heeft een centrale borstel en zijborstel, waardoor ook randen en hoeken grondig worden schoongemaakt. Meer weten? Lees dan deze uitgebreide review op ID.nl.

Samsung Bespoke Jet Bot Combo Steam (VR7MD96514G/WA)

De Samsung Bespoke Jet Bot Combo Steam heeft een uitgebreid basisstation. Naast het legen van het vuilreservoir en vullen van de watertank maakt dit hulpstuk ook vieze dweilpads schoon. Dat gebeurt met stoom, waarbij de dweilpads op een temperatuur van 55 graden Celsius worden drooggeblazen. Verder laadt het basisstation de geïntegreerde accu op. De robotstofzuiger heeft zelf ook een aantal slimme functies. Zo herkent het apparaat op eigen houtje zachte vloeren, waarna het de zuigkracht automatisch opvoert.

De Bespoke Jet Bot Combo Steam creëert een 3D-plattegrond van je huis. Die bekijk je in de app. Dit product is vergeleken met goedkopere modellen uiterst krachtig. Zo bedraagt de maximale zuigpower 6000 Pa. Houd hierbij wel rekening met een geluidsniveau tot zo'n 74 decibel. Dweilen gebeurt trouwens ook grondig, want de twee roterende pads bewegen op een snelheid van 170 rotaties per minuut. Schrob op deze wijze vlekken weg. Volgens de fabrikant houdt de zuig- en dweilrobot het op een enkele acculading tot ongeveer drie uur vol. Je leest hier enkele ervaringen van andere gebruikers.

Lees ook: Liever lui dan moe? Ga voor een robotstofzuiger

Philips 2000 Series (XU2100/20)

De breed gewaardeerde Philips 2000 Series (XU2100/20) is op het moment van schrijven zéér scherp geprijsd. Ondanks de relatief lage aanschafkosten biedt dit model veel mogelijkheden. Allereerst levert Philips een leegstation mee. Naar eigen zeggen is dat goed voor een capaciteit van ongeveer zeventig dagen. De accu heeft een werktijd van maximaal 130 minuten. Is de batterij bijna leeg, dan rijdt de robotstofzuiger op eigen initiatief naar het oplaadstation. Na een verse oplaadbeurt hervat het apparaat vanzelf weer de schoonmaakronde. Volg in de Philips HomeRun Robot-app op je smartphone de actuele status.

Werk je regelmatig aan de keukentafel? Dan komt het geringe geluidsniveau van 66 decibel goed van pas. De 'geluidsoverlast' valt namelijk mee. Zodra de 2000 Series (XU2100/20) een zachte vloer tegenkomt, wordt de zuigkracht automatisch verhoogd tot een maximum van 2700 Pa. Voor harde vloeren heeft het apparaat ook nog een dweilfunctie. Tot slot is de nauwkeurige lasernavigatie een pluspunt, want hierdoor slaat deze huishoudhulp geen hoekje over. Lees hier wat andere gebruikers van dit product vinden.

Rowenta X-Plorer Serie 65 RR8L65

Zoek je een goedkope robotstofzuiger, dan is dit exemplaar van Rowenta een goede kandidaat. Enkele reviewers zijn over dit product erg enthousiast. Onder andere de laserbesturing en geïntegreerde dweilfunctie worden gewaardeerd. In tegenstelling tot de eerder besproken robotstofzuigers heeft dit model geen leegstation. Je dient het stofreservoir van 0,4 liter dus regelmatig zelf te legen. Dat scheelt overigens ruimte in de woonkamer, al is er wel een bescheiden laadstation inbegrepen.

Zoals we van Rowenta-robotstofzuigers gewend zijn heeft de X-Plorer Serie 65 RR8L65 zowel een hoofd- als zijborstel. Hierdoor blijft er geen vuil in hoekjes en rondom tafelpoten achter. Verder is de behuizing slechts 7,8 centimeter hoog, waardoor het apparaat ook onder de meeste bedden of banken kan stofzuigen. Volgens de productspecificaties bedraagt de maximale zuigkracht 4000 Pa. Je kiest hierbij tussen vier standen.