The AI Gaming Revolution



De machines hebben gewonnen. Computers kunnen nu mensen verslaan in vrijwel elk spel dat we ooit hebben uitgevonden. En dat allemaal omdat we een paar slimme trucs hebben bedacht voor kunstmatige intelligentie, ook wel AI (Artificial Intelligence). De meest simpele definitie van AI is een computer programma ontworpen om een probleem op te lossen. De meeste programma's, meegerekend degene die je toestaan deze video nu te bekijken, lossen geen problemen op. In plaats daarvan, voeren ze instructies uit, die ze gekregen hebben van menselijke programmeurs. Ze proberen niet om zelf met oplossingen te komen, voor het uitvoeren van hun taak. AI's proberen wel met hun eigen oplossingen te komen. Hoe slimmer een AI is, hoe moeilijker een probleem dat het kan oplossen kan zijn. Sinds het begin van computer programmering, hebben we AI's geleerd hoe ze spellen kunnen spelen. Spellen zoals dammen, schaken, en recentelijk, het Chinese bord spel Go. We doen dit omdat spellen een geweldige manier zijn om te meten hoe slim een AI daadwerkelijk is. Het spelen en winnen van een spel vergt het oplossen van problemen. En het vermogen om problemen op te lossen is één van de grootste kenmerken van intelligentie. Het helpt dat de problemen erg duidelijk bepaald zijn, zowel voor het menselijke publiek als het computer programma. Er zijn geen dubbelzinnige resultaten: de AI kan dammen, of niet. Dit maakt spellen het perfecte lab omgeving voor het creëren van nieuwe soorten AI, dit is waarom de geschiedenis van AI vaak de geschiedenis is van AI's die spellen spelen. Het eerste spel waar een AI ooit speelde en won tegen een menselijke tegenstander was een dam programma, geschreven in de jaren '50, door Amerikaanse computer wetenschapper Arthur Samual, voor the IBM 704 computer. Dit was een machine die je moest programmeren door het magnetische tape te voeren via een grote trommel. Dammen is een simpel spel. Maar de IBM 704 was een behoorlijk simpele machine. Het kon niet de uitkomst van elke mogelijke zet bepalen door middel van "trial and error", om zo de beste zet te vinden. Op z'n minst, niet binnen een redelijke tijd. Als het dit had gekund, dan zou dat het probleem (het spel winnen), oplossen door middel van brute kracht. De "brute kracht" benadering impliceert het vermalen van een heleboel nummers: de computer speelt elk mogelijk spel dat zou kunnen plaatsvinden, na elke zet, en kiest dan de zet waarmee de kans om te winnen het grootst is. Dit is niet erg creatief, maar wel een goede manier om het probleem op te lossen. En daar komen we over een paar minuten op terug. Het probleem is, dat de "brute kracht" benadering een heleboel computer kracht nodig heeft om al deze nummers te verwerken. Deze middelen waren gewoonweg niet beschikbaar in de jaren '50. Dus de eerste spel spelende AI was mede mogelijk gemaakt door iets wat heuristiek heet. En elke AI gebruikt dit sindsdien. Heuristiek is een vuistregel. Het zal niet altijd kloppen… maar het zal wel bijna altijd grotendeels kloppen. In computer wetenschap, heuristiek is een algoritme dat "brute kracht" limiteert door het selecteren van oplossingen die misschien die de beste zijn… maar goed genoeg. Dus een dam algoritme zou kunnen zeggen: Ok, je hebt een zet gevonden die je een eenheid van je tegenstander laat slaan. Je kunt nu stoppen! Gebruik die zet. Simpele heuristische programmering zoals dat is genoeg om dammen aan te pakken. Het volgende spel een AI aan pakte was poker. In de jaren '70 schreef computer wetenschapper Donald Waterman een programma dat "draw" poker kon spelen – de versie waarbij je vijf kaarten krijgt en je er een paar kun vervangen, meestal tot drie kaarten. Hij deed dit door het ontwikkelen van een productie systeem, nog iets dat je nu overal zult vinden in AI's. Productie systemen gebruiken voorgeprogrammeerde regels om symbolen te categoriseren, zoals die op een kaart. Waterman's systeem sorteerde kaarten als meer of minder waardevol afhangend van andere kaarten die het al in zijn hand had. Bijvoorbeeld, een losse klaver vier is niet veel waard, maar wel als je al een ruiten vier en een schoppen vier in je hand hebt. Het systeem kon dan berekenen hoe goed de hand was, en of hij gehouden of ingeruild moest worden, door het vergelijken van de waarde van de hand met de voorgeprogrammeerde waarden van wat een 'goede' of 'slechte' hand was. Heuristiek en productie systemen. Algoritmen die vuistregels aanhouden, en programma's die complexe en comparatieve systemen van regels toepassen. Combineer deze, en het creëren van AI's die simpele bord spellen konden spelen, werd kinderspel. Maar, schaken is niet een simpel bord spel. Het is een volwassen bord spel, en winnen vraagt om net zo'n technologie. De eerst schaak machine werd gebouwd in de jaren '80, op Carnegie Mellon Universiteit. De meest succesvolle van deze vroege machines was Deep Thought, die de uitkomst van 700.000 zetten per seconde kon berekenen. En Deep Thought kreeg het zelfs voor elkaar om een schaak grootmeester te verslaan, in 1988. Maar er is een groot verschil tussen een grootmeester, en de beste schaakspeler in de wereld. Die man, in de jaren '80, '90 en zelfs vandaag, is Garry Kasparov. Deep Thought was niet op Kasparov's niveau. Het verslaan van Kasparov vereiste sterker en sneller worden. En veel ook. Het upgraden van Deep Thought hield een paar verbeteringen in. Nummer één, meer geheugen en multi processoren. Dat is ruwe computer kracht. Deep Blue, Deep Thought's opvolger was simpelweg een krachtigere machine. Nummer twee, betere software. Wanneer je met miljoenen zoek resultaten aan de slag gaat, en ze allemaal gaat vergelijken, is vertragen een groot probleem. Dus, Deep Blue's software was gestroomlijnd voor "parallel processing". Het werd ook geleerd om genuanceerde metingen voor een gewenste schaakpositie mee te rekenen. Betere heuristiek in andere woorden. De zoeksnelheid voor de eerste versie van Deep Blue was zo'n 50 tot 100 miljoen schaak posities per seconde. En wanneer het het opnam tegen Garry Kasparov… verloor het. Behoorlijk ook, met twee overwinningen tegen Kasparov's vier. Het berekenen van de uitkomst van 100 miljoen schaak posities per seconde was niet genoeg om de menselijke wereld kampioen schaken te verslaan. Dus team Deep Blue meer dan verdubbelde het aantal chips in het systeem, en verbeterde de software zodat elke chip zo'n 25% effectiever was. De versie van Deep Blue dat een herkansingstoernoooi speelde tegen Kasparov in 1997 kon meer dan 300 miljoen schaak posities per seconde berekenen. En toen won het. Deep Blue was een geweldige prestatie in computer programmering. Wanner het Garry Kasparov versloeg, was het de meest complexe AI in de wereld. Maar het won vooral door "brute kracht". Het berekende de nummers voor elke mogelijke zet die het en de tegenstander kon maken en koos toen degene die de meeste kans had om naar een overwinning te leiden. Als het niet won, upgraden de programmeurs het zodat het nog meer nummers kon vermalen. Die aanpak zou niet werken bij het spel Go. We hebben het gehad over Go, hier op SciShow, toen Google's AlphaGo programma de Go wereld kampioen versloeg Lee Sedol, in maart van 2016. Maar laten we het hebben over de factoren die het maken van een Go program zo'n ontmoedigende taak maakten. Als je bent opgegroeid in het westen, ben je misschien niet zo bekent met Go. Het is een Chinees spel dat al duizenden jaren onveranderd bestaat. Het wordt soms omschreven als 'Oosters schaken', maar het is veel gecompliceerder dan schaken, zeker voor een computer. Allereerst, een Go bord is groter dan een schaak bord. Go wordt gespeeld op een 19 bij 19 rooster, en schaak maar op een 8 bij 8. Maar dat zou een understatement zijn van de complexiteit van Go, omdat je de stenen (de naam de eenheden in Go) niet speelt binnen de tegels. Je speelt ze op de hoeken. Dit betekent dat elke tegel vier mogelijke posities heeft, die gedeeld kunnen worden met ander aangrenzende tegels. Conclusie: er zijn meer mogelijke bord configuraties in een spel van Go dan er atomen zijn in het universum. Ten tweede, geen enkele Go steen is per definitie waardevoller dan een andere op het bord. Dit is een verschil met schaken, waarbij bijvoorbeeld een koningin, veel meer waard is dan een pion. Zo'n soort relatie is iets wat je kunt programmeren om een AI te laten begrijpen. Je kunt dat invoeren in een productie systeem. Maar een steen in Go krijgt zijn waarde door zijn positie op het bord, vergeleken met de posities van alle andere stenen op het bord. Het doel van Go is om je stenen te gebruiken om meer territorium te omsingelen dan je tegenstander. Dus de waarde van elke zet is subjectief. Zelf Go spelers op een hoog niveau hebben soms moeite om uit te leggen hoe ze een goede en een slechte zet uit elkaar houden. En weet je waar computers heel slecht in zijn? In subjectief zijn. Daarnaast ook het berekenen van posities die in de triljoenen lopen. De "brute kracht" benadering van Deep Blue zou niet werken in Go. Dus AlphaGo is niet een programma dat hier gebruik van maakt. Het gebruikt diepe neurale netwerken: dezelfde soort technologie die ook gebruikt wordt in gezichtsherkenning software. In plaats van het één voor één berekenen van de steen posities, zoekt het naar patronen op het bord. Net als gezichtsherkenning programma's zullen zoeken naar dingen die ogen, neuzen en monden kunnen zijn in een afbeelding, zoekt AlphaGo voor patronen van stenen die sterke of zwakke tactische kansen kunnen bieden. Maar hoe weet het wat een sterke of zwakke kans is? Ik bedoel, we zeiden toch dat de waarde van elke specifieke positie subjectief is? In deze situatie is het nodig om te weten hoe diepe neurale netwerken werken. Een diep neuraal netwerk bestaat uit lagen van verschillende computer systemen, 'neuronen' genoemd, die allemaal op elkaar gestapeld zijn en parallel werken. Dit staat toe dat het netwerk hetzelfde probleem analyseert vanuit verschillende perspectieven, op hetzelfde moment. Elke laag beoordeeld dezelfde afbeelding via verschillende criteria. Dus, één laag zal naar de afbeelding van het Go bord kijken en selecteert alle valide zetten. De volgende laag zal misschien het bord onderzoeken op gebieden die nog niet worden geheerst door geen van de spelers. De laag daar onder zou bij kunnen houden hoe lang het is geweest sinds één van de spelers een zet heeft gemaakt in een specifieke gebied op het bord. Dat verteld het programma over welke gebieden momenteel wordt gevochten, en welk misschien veilig kunnen worden genegeerd. De laag daar onder zou de patronen van witte en zwarte stenen kunnen vergelijken met z'n interne database, om te zien of iets dat momenteel gebeurd op het bord ooit eerder is gebeurd. Et cetera. Alpha Go heeft 48 lagen neurons, elk met zijn eigen manier om het bord te evalueren. Deze lagen sturen informatie door naar alle andere lagen. Zodat als één laag iets veelbelovends vind, ander lagen zich kunnen focussen op dit gebied van het bord. Wanneer alle lagen het eens zijn of een zet voldoet aan de criteria voor een 'goede zet', dan zal AlphaGo steen spelen. Door een diep neuraal netwerk op deze manier te gebruiken, kan het programma menselijke intuïtie en creativiteit naboootsen. AlphaGo versloeg Lee Sedol 4 spellen tegen 1. Sedol is de Garry Kasparov van de Go wereld. En AlphaGo wordt alleen maar slimmer. Dus, wanneer het aankomt op spel spelende AI's… zijn er niet echt meer uitdagingen over. Go was 't: het meest complexe bord spel die mensen ooit hebben bedacht. Ook al zou ik het graag Arkham Horror zien spelen. Maar we hebben AlphaGo gemaakt. We hebben Deep Blue gemaakt. Deze programma's zijn manifestaties van onze intelligentie en nieuwsgierigheid. En als we een AI kunnen creëren die Lee Sedol kan verslaan in het meest gecompliceerde en intuïtive spel ooit gespeeld,wie weet wat we dan nog meer kunnen. Bedankt voor het kijken van deze aflevering van SciShow, die mede mogelijk is gemaakt door onze patrons op Patreon. Als je deze show wilt ondersteunen, dan kun je naar patreon.com/scishow gaan. En als je gewoon nog slimmer wil worden met ons, kun je naar youtube.com/scishow gaan en abonneren!

27 comments

  1. HTML a.k.a. webpages are using a programming language that isn't strict, meaning that the program reading this "mumbo jumbo" has to be smart about handling things, it can't learn so it's noit a true A.I. – it's just making assumptions in as a fixed "state machine" – it will make predictions and render the webpage for you, even if it wasn't necessarily written correctly. Think of this like how people sound when they speak a different language; it's probably not perfect, but usually they can get the message through.

  2. The alien in Alien: Isolation is actually a handicapped AI that for real is trying to find and kill you. It gets clues and has rules so that it often has an idea of which area you're at but it doesn't have enough clues to figure out where you are and so it searches around.

  3. Create an AI that creates an AI that learns and beats Go and Chess.

    All what these AIs did was very narrow. The might beat Chess and Go, but the same algorithm couldn't invent a game like Go, build a boat or solve the financial problems of a company, build an instrument ect, at least not without human interaction that is.

    That's why thes all no true AIs in human terms of intelligence. Humans can figure other things out, educate themself develop traning programs, be creative on any given field and so on.

  4. RTS will be easy playground for AI but the really good test
    for them will be Turn-Based Strategy games ex Civilization game it TBS like
    chess but with much much more complexly ( I called the modern day chess hehe ) for
    CIV 6 for example AI will need a huge amount of additional resources to beat regular
    human and till now there is no chance for any AI to beat an expert human with
    the same resources the game is too complex ( like life ) that AI is almost 0%
    chance with the same resources even if AI will calculate Centillion moves per
    second.Agree ???

  5. The only real problem with Deep Thought turned out to be that its games generally last seven and a half million years, and if you want a rematch, you have to build an even bigger computer.

  6. How come there is no mention of Gerald Tesauro's TD-Gammon Backgammon AI player based on Neural-Net temporal difference learning? I doubt that SciShow is not aware of the importance of TD-Gammon in the revolution of AI gaming and am puzzled by this omission.

  7. The explanation of a deep neural network here is very bad. It's not that each level checks for a specific feature. Each layer checks for something abstract that can't really be understood by humans. With AlphaZero for instance, there is zero human intervention to tell each layer what to check for. During training, the decision of what to check for is randomly made, then mitigated or reinforced through whether that game was won or not. It's hard to explain, but the idea that each layer is some neat and easy to explain feature of the board is dead wrong

Leave a Reply

Your email address will not be published. Required fields are marked *