Tema: IKT
Kunstig intelligens i sjakk: Algoritmenes tidsalder er over
Det selvlærende sjakk-programmet AlphaZero har trent seg selv opp til å bli verdens beste sjakkspiller – på bare fire timer. Ikke bare signaliserer dette et tronskifte blant sjakkprogrammer, det innebærer også et teknologiskifte: Spesialiserte, menneskeskapte algoritmer som var finpusset gjennom tiår, har måttet gi tapt for kunstig intelligens.
Det selvlærende sjakk-programmet AlphaZero har trent seg selv opp til å bli verdens beste sjakkspiller – på bare fire timer. Ikke bare signaliserer dette et tronskifte blant sjakkprogrammer, det innebærer også et teknologiskifte: Spesialiserte, menneskeskapte algoritmer som var finpusset gjennom tiår, har måttet gi tapt for kunstig intelligens.
Spilte seg selv god
Sjakkprogrammer har for lengst distansert menneskene i spillestyrke. Men utviklingen har blitt styrt av – og begrenset av – menneskenes evner til å lage stadig bedre algoritmer. Med AlphaZeros oppsiktsvekkende resultater har hele denne tilnærmingen fått et alvorlig skudd for baugen.
Sjakkfaglig startet AlphaZero helt på null; den visste ingenting annet enn reglene. Den visste ikke at dronningen er mer verdt enn en bonde. Den visste ikke hva som er et godt eller dårlig førstetrekk. Den visste ingenting om taktiske eller posisjonelle offer. Den bare startet å spille mot seg selv.
Etter skarve fire timer hadde den «skjønt» alt som er nevnt over og mer til. Den hadde langt på vei gjenskapt og bekreftet hundrevis av år med sjakkteori (mer om det senere), og den hadde utviklet en spillestyrke vi ikke har sett maken til. Uten menneskelig hjelp. Uten å se på tidligere partier. Og uten å bruke noen av de spesialiserte sjakkalgoritmene.
Kunstig intelligens mot sjakk-algoritmer
Akkurat det siste, at AlphaZero ikke bruker spesialiserte algoritmer eller tidligere kunnskap om sjakk, er kanskje det mest overraskende for undertegnede (som er en ganske middels klubbspiller med FIDE-rating på så vidt over 1800, men med litt over middels interesse for sjakkprogrammer).
Mange har forventet at kunstig intelligens snart skulle gjøre et gjennombrudd også innenfor sjakkens verden, blant annet fordi mønstergjenkjenning er viktig i sjakk. Samtidig har mange ment at konkrete taktikkberegninger er så avgjørende at rene nevralnett neppe er i stand til å utkonkurrere dagens «beregningstunge» og spesialiserte algoritmer på kort sikt.
Tidligere forsøk på å bruke kunstig intelligens i sjakk har heller ikke vært i nærheten av å oppnå spillestyrken til de etablerte sjakk-programmene. For to år siden ble det rapportert at kunstig intelligens hadde blitt brukt til å oppnå en spillestyrke omtrent tilsvarende sjakktittelen IM («International Master», som er en slags bekreftelse på spillestyrke som deles ut etter bestemte kriterier).
Men å spille på IM-nivå er noe som «gammeldagse», algoritmebaserte sjakkprogrammer klarte å gjøre så langt tilbake som i 1978, for nesten førti år siden.
Etter det har både algoritmer og datakraft tatt mange og store steg. Som kjent måtte tidenes kanskje beste sjakkspiller Kasparov bite i gresset mot IBMs Deep Blue rundt tjue år senere, først i enkeltpartier i 1996 og deretter sammenlagt over seks partier i 1997.
Sjakkprogram som verktøy
I dag, enda tjue år senere, er vi for lengst forbi det stadiet der det er noe poeng for mennesker – inkludert vår egen verdensmester Magnus Carlsen – å spille mot sjakkprogrammene.
I stedet har sjakkprogrammene blitt viktige verktøy for både profesjonelle og amatører. Alt fra elitespillere til klubbspillere bruker dem til å forberede og analysere partiene sine. Instruktører, skribenter og forfattere bruker dem til å dobbeltsjekke materialet sitt. Sjakk-kommentatorer og tilskuere på sjakkturneringer (live og ikke minst online) bruker dem for å se hvilke spillere som står best og hvilke muligheter som til enhver tid finnes i stillingene.
Det har også vokst frem en egen interesse for selve sjakk-programmene. Det finnes i dag over 300 av dem, og ulike programmerere kiver om å lage det beste sjakkprogrammet. Et av de sterkeste er Stockfish som er delvis norsk-utviklet (av Tord Romstad) og basert på åpen kildekode. Stockfish har vunnet flere sesonger av «det uoffisielle verdensmesterskapet for sjakkprogrammer» TCEC (et mesterskap som for øvrig ble startet av norske Martin Thoresen).
Og det var nettopp Stockfish som AlphaZero ble testet mot, ved at de to partiene spilte 100 partier mot hverandre. 72 partier ble remis, mens AlphaZero vant 28, stort sett med hvite brikker. Stockfish vant ikke ett eneste parti.
Hvordan ble AlphaZero lært opp?
DeepMind, selskapet som står bak AlphaZero, la denne uken ut en 19 siders rapport om hvordan AlphaZero oppnådde spillestyrken sin. Samme selskap skapte for øvrig overskrifter allerede i starten av 2016 da en tidligere versjon av programmet først overvant Europas beste Go-spiller og senere en av verdens beste, Lee Sedol. Siden den gang har selskapet generalisert programmet og utviklet AlphaZero som er i stand til å lære flere ulike spill, som Go, sjakk og japanske shogi.
Helt konkret er AlphaZero et nevralt nettverk (deep convolutional neural network). Det ble gitt komplette sjakkregler, men måtte ellers starte med blanke ark («tabula rasa») og lære seg selv – gjennom maskinlæring / dyp læring – hvordan det var best å spille. Programmet spilte mot seg selv, prøvde ut ulike trekk (Monte-Carlo-simulering) og observerte hva som ga gode og dårlige resultater. Disse resultatene ble så brukt fortløpende til å oppdatere det nevrale nettverket og dermed «lære seg» hva som er gode og dårlige trekk (reinforcement learning).
AlphaZero gjennomgikk ni timers trening med totalt 700 000 «treningsrunder» før matchen mot Stockfish. AlphaZero ble rapportert å nå Stockfish sin spillestyrke etter ca. fire timers opplæring. Merk for øvrig at økningen i spillestyrken da var i ferd med å flate ut, og at de påfølgende timene med trening så ut til å gi relativt begrenset økning i spillestyrke.
I rapporten kommenterer for øvrig utviklerne selv at spillestyrken nok kan forbedres ved å ta i bruk noen av de samme teknikkene som Stockfish og andre konvensjonelle sjakkprogrammer bruker.
Det er verdt å merke seg at AlphaZero kjørte på maskinvare spesiallaget av Google for maskinlæring (TPU-er – tensor processing units), mens Stockfish kjørte på standard maskinvare. I matchen mot Stockfish undersøkte AlphaZero 80 000 stillinger i sekundet, mens Stockfish så på 70 millioner stillinger i sekundet.
AlphaZero bekreftet kjent åpningsteori
Et siste, og sjakkfaglig veldig interessant poeng i rapporten, er hvilke åpningstrekk som så ut til å være de beste. Mens AlphaZero var under opptrening kunne utviklerne observere at programmet langt på vei gjenskapte hundrevis av år med sjakkteori og «gjenoppdaget» alle de mest kjente sjakkåpningene, en for en.
Noen falt imidlertid bedre i smak enn andre, og det endret seg over tid. En lang periode spilte for eksempel AlphaZero mye Caro-Kann, men når spillestyrken økte, begynte programmet å bruke denne åpningen mindre igjen. I stedet ble det tydelig at to av de mest populære åpningene i moderne sjakk, engelsk åpning og dronning-gambit, også ble hyppig valgt av AlphaZero.
Det gjenstår dog å se om utviklerne har noen skjulte sjakkteoretiske gullkorn på lager til senere.
Det gjenstår også å se om – og i hvilken form – AlphaZero blir tilgjengelig for allmennheten. Det er ingen tvil om at programmet vil bli et spennende verktøy for sjakkspillere verden rundt hvis det blir gjort offentlig tilgjengelig.
Sannsynligvis vil AlphaZero (eller andre sjakkprogrammer inspirert av den) også være veldig interessant for utviklere. Personlig tror jeg ikke AlphaZero markerer slutten på sjakk-programmering, kun en overgang til en ny fase. En fase der mye kommer til å dreie som om kunstig intelligens og maskinlæring.
Les mer:
– På fire timer slo Googles kunstige intelligens en av verdens beste sjakkmotorer (TU)
– Kunstig intelligens knuste verdens beste sjakkcomputer (NRK)
– DeepMind’s AlphaZero crushes chess (Chess24)
– AlphaZero: Reactions From Top GMs, Stockfish Author (chess.com)