Wednesday, November 12, 2014

Datorn kommenterar schack-VM

Nu har VM-matchen i schack mellan norrmannen Magnus Carlsen och indiern Viswanathan Anand kommit igång på allvar. Carlsen tog ledningen genom att vinna söndagens parti, men i går eftermiddag lyckades Anand kvittera och ställningen är nu 1.5 - 1.5 efter tre partier (av 12). 


Man kan förstås följa partierna live med expertkommentatorer (till exempel via NRK), och det twittras och diskuteras flitigt.

Eftersom schackprogrammen är så starka numera, riktas stor uppmärksamhet mot den löpande utvärderingen av partiställningarna som presenteras av program som Houdini och Stockfish. Datorns siffror dryftas som om de vore mellantider i skidåkning. Carlsen förväntas få åtminstone +0.15 i spelöppningen om han har vit, och i går tändes ett fåfängt hopp om remi när Anand rockerade och Stockfish plötsligt omvärderade ställningen från omkring +1.0 (i Anands favör) till runt +0.6. 

Vi är många som retar oss lite på det här, och tycker att det tar bort lite av magin runt VM-matcherna. När en spelare gör ett oväntat drag, är det alltid dåligt. De briljanta kombinationerna har publiken redan sett, och skulle de reproduceras på brädet är det bara vad man förväntar sig.

Samtidigt är det förståeligt att den som ska gälla för expertkommentator vill kunna snegla på datorn, eftersom det annars inte finns en chans att i realtid ge lika relevanta kommentarer.

Det är en kliché bland schackspelare att man inte ska lita på datorernas ställningsvärderingar. Bara för att Stockfish säger -0.28 betyder det inte att svart står bra. Siffrorna ska tas med en nypa salt heter det, och motiveringarna brukar vara:

(a) Datorer är bra på taktik men saknar mänskliga toppspelares förståelse av de mer långsiktliga strategiska aspekterna.

(b) Även om en ställning skulle vara bra för Stockfish, innebär det inte att den är bra för en mänsklig spelare. Kanske är ställningen objektivt vinst för svart, men så full av taktiska blindskär att den i praktiken är fördelaktig för vit när människor spelar.

Stämmer det att mänskliga stormästare fortfarande är bättre än datorn på att bedöma ställningar, eller är det bara önsketänkande?

Förklaring (b) rymmer väl ett uns av sanning, medan (a) egentligen är goddag yxskaft. Som schackprogrammen fungerar, väljer de helt enkelt det drag som får bäst poäng. De siffror Houdini och Stockfish presenterar utgör alltså hela underlaget för vilka drag de skulle välja om de själva spelade. De är så att säga “bara så bra som sin ställningsvärdering” (även om begreppet då måste förstås som att variantanalysen är en del av hur programmet värderar en ställning).

Om siffrorna vore uppåt väggarna fel, borde de leda programmen till dåliga beslut. Men eftersom programmen faktiskt spelar mycket bättre än Carlsen och Anand, är deras sätt att värdera ställningar uppenbarligen effektivt.

Vi kan också se att små skillnader är betydelsefulla. Ibland finns ett helt spektrum av drag från de vassaste, som till exempel bedöms ge en fördel på 0.3, via diverse klåpar- och amatördrag på mellan 0 och 0.25, ner till olika tabbar och bortsättningar som ger motståndaren fördel. Nyanser som värderas till några hundradelar av en bonde är många gånger det enda som skiljer superprogrammen från oss vanliga klubbspelare.  

Det ligger nära till hands att dra slutsatsen att datorns siffror ger ett oerhört exakt mått på Carlsens och Anands utsikter i den aktuella ställningen.

Men som alla vet som någon gång har försökt programmera en dator att spela spel (hm, det kanske inte är så många, men ni borde testa, det är kul!), finns en frustrerande brist på korrelation mellan precision i bedömningen av hur bra en ställning är, och å andra sidan resulterande spelstyrka.

För att förstå det här får man tänka på att spelstyrka bara handlar om att jämföra de ställningar som kan nås i ett drag från den aktuella ställningen. Ett program som konsekvent övervärderar eller undervärderar alla ställningar av en viss typ kan därför ändå fatta bra beslut.

Som ett tankeexperiment kan vi föreställa oss ett program som anser att det är till stor fördel för vit om det finns många pjäser kvar på brädet, och omvänt till stor fördel för svart om det finns få pjäser kvar. Om dess sätt att värdera ställningar är bra i övrigt, skulle det ändå kunna spela i världsklass! Pjäserna försvinner ju bara från brädet en i taget, så i varje given ställning är över- eller undervärderingen i stort sett konsekvent. För det mesta väljer programmet därför rätt drag, och gör aldrig några dundertabbar, trots att det vid förfrågan svarar att vit har förkrossande fördel i utgångsställningen, medan svart står överlägset när bara kungarna är kvar.  

Stockfish och de andra programmen är skrivna för att göra bra drag, inte korrekta ställningsvärderingar. Även om de senare ligger till grund för de förra, är det på något sätt så att helheten får vara fel, bara detaljerna blir rätt. 

Datorns värderingsfunktion är lite som en världsatlas på bokform. I stora drag stämmer det inte. Flyger man från Stockholm till Los Angeles åker man inte över de brittiska öarna, utan över Grönland. Som är stort, men inte som hela Sydamerika.

Men tittar man på ett enskilt land, är den platta kartan fullt användbar. Eftersom alla orter i Spanien ligger fel på ungefär samma sätt i förhållande till resten av europakartan, kan man dra korrekta och användbara slutsatser om hur man tar sig från en spansk ort till en annan (exempelvis Berlin).

På samma sätt kan ett datorprogram göra helt fel bedömning av utsikterna att vinna ett visst slutspel, och ändå spela grymt bra genom att systematiskt göra samma felbedömning i alla ställningar av den typen.

Man skulle kunna tro att det här isolerar schackprogrammens överlägsenhet till att deras taktiska förmåga kompenserar för brister i planering och långsiktligt manövrerande. Men det finns ytterligare en twist!

Att konsekvent följa en plan (eller åtminstone spela som om man hade en) och inte bara flytta pjäserna fram och tillbaka, verkar inte heller hänga på korrekt ställningsvärdering! Det finns klara skillnader mellan människors och datorers sätt att spela schack, men i just det här avseendet är vi ganska lika. Även vi kan många gånger ha lättare att identifiera en plan och välja rätt drag, än att bedöma våra utsikter att vinna. När slutspelet närmar sig, vet vi att kungen ska centraliseras. Vi vet att den står bättre på f2 än på g1, och ännu bättre på e3, men skulle vi försöka bedöma våra utsikter, kanske vi är helt fel ute i alla tre ställningarna. Precis som Stockfish. Och ändå spelar vi som om vi begriper vad vi gör, och går mot centrum med kungen!