TestAI
1992 skapade Gerald Tesauro TD-Gammon, en datorbaserad agent för backgammon baserad på ett artificiellt neuralt nätverk och 'reinforcement learning'. TD-Gammon var banbrytande dels i hur den togs fram, men även genom att den uppnådde nivåer i sitt spel som utmanade de bästa mänskliga backgammonspelarna vid denna tiden. Det var den bästa artificella backgammon-agenten då, och sannolikt står den sig fortfarande väl mot både mänskliga och artificiella motståndare.
'TD' är en förkortning för Temporal Difference, vilket är en metodik inom reinforcement learning där man skapar en fiktiv reward/penalty baserad på differensen mellan det neurala nätets värdering av ett spel-läge vid två olika tidpunkter. Man anser då att en senare värdering är mer riktig än en tidigare värdering, och denna senare värdering får agera "facit". Denna typ av reward/penalty är viktigt för att kunna lära sig strategier för tidiga skeenden i ett spel, då det är långt kvar till den faktiska reward/penaltyn som infaller när ett spel är slut.
TestAI är en datorbaserad spelare för Svenskt Bräde, skapad med samma metodik som användes för att skapa TD-Gammon. TestAI har lärt sig hitta framgångsrika strategier genom att spela mot sig själv. I senare versioner har TestAI även tränats genom att fiktivt återspela matcher som spelats på sweboard, i syfte att utsätta det neurala nätet för situationer som det inte så ofta hamnar i genom spel mot sig själv. Det är dock inte så att valen som görs av spelare på sweboard ligger till grund för TestAIs bedömning av vad som är en bättre eller sämre flytt.
Utvärderingen av TestAIs spelförmåga sker dels genom spel mot BrädeAI, den enda tidigare kända datorbaserade agenten för Svenskt Bräde, samt spel mot mänskliga spelare på sweboard.com. Nedan visas en översikt över de versioner av TestAI som än så länge varit tillgängliga på sweboard.com. Den version av TestAI som spelar på sweboard.com lär sig inte av ytterligare spel mot sig själv eller mot mänskliga spelare. Dvs, träningen av det neurala nätet sker offline, och när en lovande version erhållits görs den tillgänglig på sweboard.
Det är inte självklart vilket kriterium som bör användas för att utvärdera vilken AI som är bättre eller sämre än en annan. Tittar man på matcher om endast ett parti är det naturligt att titta på hur stor andel av partierna som vinns respektive förloras, men vill man ha en AI med bra förmåga att vinna matcher med flera partier så blir det relevant att väga in hur många poäng som vinns resp förloras i varje parti. Dvs, Förmågan att vinna med t ex Jan och Vackert spel blir viktigare. Det är därför relevant att jämföra medelantalet poäng som en spelare vinner per parti, snittpoäng eller på engelska points per game ('ppg'). Är denna siffra större än 0 så innebär det att en spelare i snitt vinner fler poäng än man förlorar, över tid.
En annan försvårande omständighet för utvärderingen av vilken AI som är bättre eller sämre är att många spel mot TestAI inte avslutas. Det är därför svårt att ta fram statistik på hur bra en AI är på strategier för t ex Jan eller vackert spel, och statistiken för andelen vunna partier resp. snittpoäng blir inte korrekt. Av denna anledning så visas i nedan tabell även estimerade siffror där avbrutna partier inkluderats. Dessa siffror baseras på AI'ns uppskattade värdering av spelläget, dvs den parameter som AI'n använder som bas för att välja vilken flytt den ska göra. De estimerade siffrorna visas inom parentes.
TestAI version | Beskrivning | NN-noder (in/gömda/ut) |
Flytt- policy | Andel vinster mot BrädeAI (av 1000) |
Andel vinster på Sweboard | Fiktiv rating Sweboard | Snitt- poäng |
Aktiv på Sweboard |
0.25 | Som 0.23 upp till 200k tränade partier, därefter 0.001 learning rate till 450k partier. | 218/120/12 | Pruned 1-ply | 92.8% | 58% (60%) av 14593 (18616) |
1871 (1907) | 0.37 (0.46) | 2023-10-05 – |
0.24 | Som 0.23, men med fortsatt träning till 394000 matcher. 0.24 vinner 513 av 1000 matcher more 0.23, med en ppg om 0.095. Trots detta verkar 0.23 prestera bättre på sweboard. | 218/120/12 | Pruned 1-ply | 93.1% | 48% (56%) av 162 (221) |
1537 (1650) | -0.13 (0.04) | 2023-09-23 – 2023-10-04 |
0.23 | Baserad på 0.22, men med fortsatt träning med lägre (0.01) learning rate. | 218/120/12 | Pruned 1-ply | 92.2% | 56% (62%) av 260 (380) |
1686 (1814) | 0.21 (0.27) | 2023-09-09 – 2023-09-22 |
0.22 | Som 0.21, men med nätsymmetri mellan vit&svart, samt viktuppdatering efter avslutat parti (inte efter varje drag) | 218/120/12 | Pruned 1-ply | 91.3% | 55% (61%) av 788 (1117) |
1686 (1821) | 0.23 (0.31) | 2023-08-12 – 2023-09-08 |
0.21 | Samma struktur som 0.20, men med 241000 tränade matcher. Bättre ppg mot brädeAI | 218/120/12 | Pruned 1-ply | 89.5% | 48% (59%) av 339 (564) |
1565 (1784) | -0.12 (0.08) | 2023-07-17 – 2023-08-11 |
0.20 | Samma struktur som 0.19 men med 40% två-stegs TD för stabilitet i träningen. 130 000 tränade matcher | 218/120/12 | Pruned 1-ply | 89.9% | 48% (57%) av 555 (1018) |
1582 (1795) | -0.13 (0.11) | 2023-06-11 – 2023-07-16 |
0.19 | Samma struktur som 0.18 men annat antal tränings-matcher. | 218/120/12 | Pruned 1-ply | 90.1% | 31% (35%) av 13 (17) |
1475 (1475) | -1.15 (-0.89) | 2023-06-10 – 2023-06-10 |
0.18 | 12 utnoder som representerar varje möjligt utfall (6 vinstsätt för resp. spelare). | 218/120/12 | Pruned 1-ply | 90.3% | 42% (48%) av 67 (90) |
1497 (1543) | -0.66 (-0.44) | 2023-06-05 – 2023-06-09 |
0.17 | Som 0.16, men nätet som byts till är tränat enbart för jan-spel. | 218/80/1 | Pruned 1-ply | ? | 48% (59%) av 432 (809) |
1572 (1763) | -0.33 (0.03) | 2023-05-03 – 2023-06-04 |
0.16 | Byt till alternativt nät när jan-läge uppstår (5 band i rad). Detta nät var dock ej bra... | 218/80/1 | Pruned 1-ply | ? | 44% (61%) av 120 (254) |
1492 (1747) | -0.97 (-0.19) | 2023-04-26 – 2023-05-02 |
0.15 | Återspela Jan-matcher från Sweboard, med högre lambda (0.9 vs. 0.7). | 218/80/1 | Pruned 1-ply | 90.7% | 55% (67%) av 2248 (4178) |
1692 (1850) | -0.40 (0.02) | 2022-11-07 – 2023-04-25 |
0.14 | återspela Jan-matcher från Sweboard. | 218/80/1 | Pruned 1-ply | 91.6% | 42% (60%) av 106 (208) |
1481 (1711) | -0.88 (-0.28) | 2022-10-31 – 2022-11-07 |
0.13 | Begränsa 1-ply look-ahead till de 5 bäst rankade flytten (direkt ranking). Ger snabbare flytt utan märkbart försämrad spelstyrka. | 218/80/1 | Pruned 1-ply | 89.9% | 49% (61%) av 1112 (1764) |
1554 (1884) | -0.63 (-0.25) | 2022-08-06 – 2022-10-30 |
0.12 | Flytt-policy baserat på utvärdering efter motståndarens möjliga drag i följande flytt | 218/80/1 | 1-ply look-ahead | 89.8% | 47% (56%) av 219 (298) |
1555 (1693) | -0.93 (-0.57) | 2022-07-24 – 2022-08-05 |
0.11 | In-noder för vackert spel och antal band i följd. | 218/80/1 | Direkt från NN | 86.4% | 67% (59%) av 15 (27) |
1562 (1574) | 0.47 (0.18) | 2022-07-23 – 2022-07-23 |
0.10 | Replika av TD-gammon, med anpassning till flera vinstsätt. | 168/80/1 | Direkt från NN | 85.0% | 45% (50%) av 165 (197) |
1527 (1585) | -0.73 (-0.58) | 2022-07-13 – 2022-07-22 |