Leren leren van computers met Matthew Sadler – The Silicon Road to Chess Improvement.

“01101000 01100001 01101100 01101100 01101111” – Hier staat in binair, de taal van de computers: “hallo”.

Voordat ik het boek bespreek gaan wij even terug in de tijd. Als je al bekend met computerschaak en TCEC, sla dit gerust over. Toen ik vier jaar geleden weer geïnteresseerd raakte in schaken, was Stockfish 8 niet alleen de meestgebruikte engine, maar ook de sterkste engine. Een ander groot voordeel was dat het gratis en open source is, dat wil zeggen dat je er zelf ook aan kunt knutselen. Schaakengines bundelen algoritmes die een schaakstelling kunnen evalueren.

Matthew Sadler, naast Natasha Regan met wie hij het bekroonde boek “Game Changer” schreef (foto Lennart Ootes)

Vier jaar geleden waren dit door mensen geprogrammeerde instellingen. Dat wil zeggen, een mens beslist welke stelling beter is: een toren is beter dan een paard en meer ruimte is beter dan minder. Vervolgens wordt er een brute-force methode gebruikt. Dit is een methode waarbij de engine alle mogelijke zetten nagaat om te kijken of de stelling verbetert of verslechtert. De engine doet dit voor beide kleuren om zo te concluderen wat de evaluatie van de stelling is als beide kanten de beste zetten spelen (bijvoorbeeld: +1). De brute-force methode maakt ook gebruik van algoritmes om te beslissen welke zet het beter kan evalueren om zo de slechte zetten niet verder te berekenen, waardoor het meer capaciteit kan gebruiken voor de ‘goede zetten’. Stel, het ziet dat wit in drie zetten een toren verliest, dan worden de opeenvolgende zetten van die reeks minder intensief berekend. Hier kunnen soms echter blinde vlekken vallen, bijvoorbeeld als wit veertien zetten na het verlies van de toren misschien een winnende stelling kan hebben.

“One program to rule them all” was de titel van de abstract in het in Science gepubliceerde artikel van Deepmind, een onderdeel van Google, in 2018. Met de kracht van kunstmatige intelligentie wisten zij een nieuw soort schaakengine te creëren: AlphaZero. Het grote verschil hier is dat zij niet aan AlphaZero vertelden wat goede of slechte zetten waren. AlphaZero kende alleen de spelregels en speelde vervolgens 44 miljoen partijen tegen zichzelf. Elke keer wanneer het een partij verloor leerde AlphaZero dat de zetten die het speelde slecht waren. Stockfish was in die tijd een schaakgod in mijn ogen en ik wist dat de beste schaakspelers geen kans hadden tegen de Stockfish die draaide op mijn mobiele telefoon. Toen kwam AlphaZero… AlphaZero speelde twee wedstrijden tegen Stockfish. In de eerste wedstrijd won het 25 partijen met wit, 3 met zwart, en speelde het 72 partijen remise. In de tweede wedstrijd won het 290 partijen, 886 remise en verloor het maar 24 keer. Dit choqueerde mij: het voelde alsof er een opperschaakgod kwam en mijn schaakgod compleet vernederde.

Ergens bracht het mij ook hoop: er was nog veel meer complexiteit in het schaakspel. Als er zoveel ruimte is voor verbetering op dat hoge niveau, dan is er nog zo veel meer ruimte voor verbetering bij de mens zelf. De twee gespeelde wedstrijden werden echter wel bekritiseerd. Zo vonden critici dat het oneerlijk was hoeveel denkvermogen Stockfish tot beschikking kreeg in vergelijking met AlphaZero. Los van deze kritiek was het een nieuwe bladzijde in het boek van het computerschaak, eentje die het speelveld ging veranderen.

Bron: pixabay.com/images/search/artificial%20intelligence/%5B/caption%5D

Niet veel later kwam er een nieuwe engine uit. Eentje die was gebaseerd op AlphaZero, genaamd Leela Zero of Leela chess zero (Lc0). Lc0 was, en is nu nog steeds, een gratis open-source engine net als Stockfish. Het feit dat het open-source is heeft Lc0 alleen maar sterker gemaakt. Net als AlphaZero leert Lc0 schaken door tegen haarzelf te spelen. De makers van Lc0 hebben echter niet de grote servers van Google om Lc0 te trainen. Hierbij maken zij dus gebruik van (computer)schaak fans en of kunstmatige intelligentie fans, die Lc0 zelf installeren op hun pc om vervolgens Lc0 tegen haarzelf te laten spelen en bij te dragen aan het Lc0-project. Natuurlijk mag en kun je het ook alleen gebruiken voor je eigen schaakevaluaties.

Dit brengt ons bij de Top Chess Engine Championship (TCEC). Dit is een computerschaaktoernooi waar de sterkste schaakengines het tegen elkaar opnemen (mocht je geïnteresseerd zijn: tcec-chess.com/) De TCEC maakt gebruik van zeer sterke computers. Zelfs mijn bovengemiddelde pc calculeert ongeveer 60 keer slomer dan de TCEC pc (met Stockfish). Grofweg elke zet waar de TCEC pc 1 minuut over nadenkt doet mijn pc er 60 minuten over om tot dezelfde conclusie/evaluatie te komen. Daarnaast laat de TCEC ook engines beginnen vanuit een bepaalde opening, om zo een diverse verzameling stellingen te krijgen. Hieronder kun je de winnaars van de afgelopen jaren zien.

Seizoen Periode Winnaar
TCEC Seizoen 15 maart – mei 2019 LCZero
TCEC Seizoen 16 juli – oktober 2019 Stockfish
TCEC Seizoen 17 januari – april 2020 LCZero
TCEC Seizoen 18 mei – juli 2020 Stockfish
TCEC Seizoen 19 augustus – oktober 2020 Stockfish
TCEC Seizoen 20 december – februari 2021 Stockfish
TCEC Seizoen 21 mei – augustus 2021 Stockfish

(en.wikipedia.org/wiki/Top_Chess_Engine_Championship)

Zoals je ziet, heeft Lc0 wat succes gehad al een jaar nadat het uitkwam. Maar Stockfish heeft de kroon weer te pakken. Dit komt doordat de Stockfish-ontwikkelaars niet stil hebben gezeten. Zij hebben geleerd van de evaluaties van kunstmatige-intelligentie-engines en hebben dat verwerkt in hun eigen instellingen (bijvoorbeeld dat een toren niet 5 punten is maar 4.9389 o.i.d., zie tabel hieronder voor de stukwaarderingsverschillen tussen AlphaZero, 2020 en Stockfish, 2018). Daarnaast is ook Stockfish-NNUE uitgekomen, een soort hybride engine die het beste van beide technieken combineert.

Paard Loper Toren Dame Engine Fase
6.11 6.48 10.1 19.76 Stockfish Opening
4.16 4.41 6.625 12.92 Eindspel
3.05 3.33 5.63 9.5 AlphaZero Altijd

(en.wikipedia.org/wiki/Chess_piece_relative_value)

Dit was een lange inleiding en ik hoop dat ik een goed beeld heb geschetst van het computerschaakwereldje. Dit heeft namelijk betrekking op het boek van Grootmeester Matthew Sadler. Zo weet je nu de drie bekendste engines en de bron van de meeste partijen in het boek (TCEC).

Het boek van Sadler “The Silicon Road to Chess Improvement” gaat dus voornamelijk over partijen die gespeeld zijn in de TCEC. Het is niet het eerste boek dat Sadler schrijft over computerschaak, eerder bracht hij “Game changer: AlphaZero’s Groundbreaking Chess Strategy and the Promise of AI” uit. Hiervoor won Sadler de ‘English Chess Federation Book of the Year’-prijs. Dus kunnen wij stellen dat Sadler inmiddels aardig wat ervaring heeft met het begrijpen van computerschaak en het vertalen van de zetten naar informatie en kennis die je kunt gebruiken om je schaakspel te verbeteren. Dit is dan ook het doel van het boek. Tegenwoordig gebeurt het steeds vaker na partijen op de clubavond of na competitiewedstrijden dat er na een partij nog even gekeken wordt wat je beter had kunnen doen of wat niet zo goed ging. “Aha! Als ik mijn toren op b7 had gezet dan had ik een winnende stelling!” wordt er dan geroepen. Dit heeft echter weinig zin: wanneer je niet begrijpt waarom het een winnende stelling is of waarom de zet goed is, kun je foutieve patronen opbouwen. Stel dat de toren op b7 daar alleen maar goed zou zijn omdat in een ver eindspel de koning te ver weg staat. In dat geval moet je weten waarom dat is. Weet je dit niet, dan zou je een patroon kunnen opslaan dat er helemaal niet is, en speel je de volgende keer een soortgelijke zet die dan niet goed blijkt te zijn. Het boek van Sadler geeft je dus ook een idee over hoe je kunt leren van de engine. Ik ben van mening dat als je dit voor elkaar kunt krijgen het equivalent is aan schaakles van een supergrootmeester, hoewel je misschien wel een supergrootmeester moet zijn om het voor elkaar te krijgen. Laten we kijken naar een partij die besproken wordt in het boek.

Een hoofdstuk binnen het boek is ‘Whole board play’: spelen over het hele bord. Dit klinkt makkelijk, maar wij mensen zijn vaak gericht op één punt en daardoor zien wij andere onderdelen van het spel over het hoofd. Sadler geeft toe dat hij graag dit zou willen leren van engines: de vaardigheid om te spelen over het hele bord. In het hoofdstuk geeft Sadler een aantal scenario’s waarbij dit voorkomt, wij zullen er nu een behandelen: “Alternating play on both wings” of “Afwisselend spelen op beide flanken”. Hierbij geeft Sadler aan dat er eerst druk gezet wordt op de ene vleugel, en dan op de andere. Hierdoor worden de defensieve middelen van de tegenstander uitgestrekt en daarmee uitgedund.

(De PGN is van de TCEC-chess website genomen. Dit betekent dat er meer dingen in staan dan alleen de zetten; zo kun je ook de computereigenschappen zien en daarnaast kun je per zet de variant zien die de engine zag als meest waarschijnlijk.)

Hier stopt de opening na 7… a5. Dit betekent dat hierna de engines beginnen te denken. Deze opening was gekozen om wit de tijd te geven om het 5. Le2 en 6. Le3 systeem in te voeren. Door deze twee lopers is het mogelijk om te beginnen met een pionopmars, voornamelijk van de g-pion: 8. g4 9.g5. Dit zorgt er voor dat wit het paard op f6 wegjaagt voordat zwart druk kan zetten op de e4-pion met het b8-paard via a6 en c5. Vervolgens brengt zwart de h-pion naar voren. Sadler geeft aan dat hoe meer zwart bekrompen is aan de kant van de koning, des te zwakker het spel van zwart zal zijn met …f7-f5. Maar, stelt Sadler: terwijl wit bezig was met het bemachtigen van ruimte op de koningsflank, pakte zwart dat op de damevleugel. Hierbij heeft zwart een hele stevige structuur opgesteld met …Pb8-d7-c5, …Pa6, …a7-15,14, …Ld7 en c7, 11…c6. Denk nu even goed na. De laatste zet was 14…f5. Hoe zou je zelf nu spelen? Het is zo ontzettend moeilijk om na te denken in dit soort stellingen. Wetende dat dit geen stellingen zijn van ‘slechts’ grootmeesters, die soms nog foutjes maken. De volgende zet is erg moeilijk te verzinnen, en dit is juist de kracht van engines: laten zien wat voor beeldschone mogelijkheden er mogelijk zijn binnen schaak. 15. b4! Wit offert een pion op en na 15… Pxb4, 16. h6 schuift wit zijn pion naar voren op de andere flank om zwart nogmaals in te perken en de zwartveldige loper van zwart een vervelend leventje te geven op h8. Bovendien heeft de zwarte koning nu ook één veld minder tot zijn beschikking. 16… Lh8, 17. Lxc5; Nu weer terug naar de damevleugel, stelt Sadler; wit geeft het loperpaar op maar voorkomt dat zwart een paard zou kunnen krijgen op c5. 17… dxc5, 18. a3, Dxg5. Stockfish geeft een paard weg om wat problemen te creëren voor wit; de dame breekt door. Sadler stelt hier dat wit enorme compensatie zou krijgen als zwart 18. Pa6 had gespeeld. Een toren op g1 om ervoor te zorgen dat de h8 loper nooit ergens naartoe zal gaan en een toren op b1 om zo gebruik te maken van de open b-lijn. Zoals je ziet zal 18. Pa6 veel ruimte creëren voor wit, dus is het logisch dat Stockfish probeert het initiatief te nemen. 19. axb4, cxb4 20. Pxa4, cxd5 21. Pb6, Txa1 22. Dxa1, Dxd2 23. Pxd7, Tc8 24. Th3, dxe4 25. Pb6, b3 26. Txb3, Dxh6 27. Ke1, Tf8, 28. Pd5… Dit vervolg gaf zwart vier pionnen voor een stuk, maar de kwetsbare zwarte koning en de c-pion van wit die uiteindelijk een vrijpion zal worden door de verovering van de zwakke b7 pion van zwart bleek te veel. Stockfish zelf gaf hier al een evaluatie van 2.13. In computertermen is 2.13 een winnend voordeel.

Een ander onderdeel dat Sadler behandelt is verdedigen. Het hoofdstuk ‘Verdedig als een engine’ gaat daar uitgebreid op in met geweldige partijen die Sadler duidelijk uitlegt. De volgende partij tussen Stockfish Classical en Leela Zero heeft ook betrekking op wat wij gezien hebben in de vorige partij. Er zijn bepaalde ideeën die Stockfish gebruikt als sterke verdedigende middelen. Deze zijn bijvoorbeeld: gebruik de dame om chaos te creëren, dwing je tegenstander om zich te haasten met de aanval en zorg ervoor dat je dame op tijd terug is om te verdedigen. Net als in de vorige partij offerde Stockfish een paard op om chaos te creëren met de dame toen het zich realiseerde dat het een slechte stelling had.

De opening eindigt op 4… Pge7. Leela gaat verder met een ‘Steinitzian approach’ volgens Sadler. …Pg6 en …f6 leiden tot een sterk punt op e5. Stockfish kon niks nuttig doen met de eigen ontwikkelde stukken en ruimtevoordeel. 20… g5 het tegenspel begint! Zwart lanceert de aanval en probeert te kapitaliseren op de zwakte van h3. Het tegenspel van wit op de damevleugel is nog niet vanzelfsprekend volgens Sadler. 21. Dc3, Tg8 22. b4 dit is een zeer gewaagde zet; Stockfish staat de aanval toe om zo zelf tegenspel te creëren met c5. 22… g4 23. Ph4, Df8 24. g3, gxh3 25. Kh2, Dh6 de koningsvleugel van Stockfish is nog steeds redelijk solide en zwart moet aan de bak om deze te ontmantelen. 26. De3 Wit bereidt zich voor op het creëren van chaos met de dame. 24…Tg4 zwart wil de torens verdubbelen om zo meer druk te zetten op de g-pion. 27. Dxb6 Stockfish begint met het creëren van chaos en pakt een pion. De onrust begint; terwijl zwart obstakels probeert te ontmantelen op de koningsflank pakt Stockfish nog een pion: 27… Tag8 28. Dxd6. Hiermee valt het ook gelijk de loper op d7 aan en het paard op e7. Zwart moet omgaan met de chaos en kan daardoor minder goed de aanval voortzetten. 28… Ph5 29. Pdf3, Txg3 30. fxg3, Pxg3 het ziet er naar uit dat de aanval van zwart beslissend zal zijn. Maar, zoals eerder gezegd, de dame moet klaar staan om zo snel mogelijk terug te keren voor de verdediging. 31. Pxe5, Dd2+. Als zwart Df4 speelt dan heeft wit nog Pf7+. Zo ruilt wit de dames nog net op tijd. De partij eindigt uiteindelijk in een remise. Dit komt mede door de dynamische verdediging van Stockfish. Het creëerde chaos met de dame en trok die vervolgens op tijd terug om te verdedigen.

Concluderend: het boek “The Silicion Road to Chess Improvement” van Matthew Sadler neemt je mee door partijen die gespeeld zijn door de beste hedendaagse engines zoals Stockfish, Leela Zero, AlphaZero, Houdini, Komodo, Stoofvlees, etc. In het boek legt Sadler de partijen uitstekend uit en vertaalt hij de zetten gespeeld door deze schaakgoden naar een taal die begrijpelijk is voor ons allemaal. Het boek zit vol met intrigerende partijen en wie deze compleet kan ontcijferen zit erg dicht op de ware ‘juiste zet’. Ik denk dat er een hoop te leren valt van het boek, vooral voor het verbeteren van je eigen spel, maar ook met het leren samenwerken met en leren van engines. Zo zou je dus je eigen partijen op een betere manier kunnen analyseren. Zal dit boek je een meester maken in het begrijpen van engine evaluaties en zetten? Ik moet bekennen dat het boek hier niet de oplossing voor heeft. Je zult, net als met alle andere aspecten van schaak, nog steeds moeten oefenen met het begrijpen van de ongekende complexiteit die je engine geeft. Oefening baart kunst, het boek baart inspiratie.

Tot slot wil ik wat delen. De choquerende vernietiging van mijn schaakgod Stockfish door AlphaZero was iets moois. Ik kwam erachter dat schaken een spel was dat nog lang niet uitgespeeld zal worden. Dit gaf mij hoop en een nieuwe blik op de partijen tussen computers. Ik raad het je aan om even langs te gaan bij tcec-chess.com en even te kijken. Daarnaast streamt Mathew Sadler de partijen soms zelf via zijn YouTube-kanaal. Ja, de computers spelen zeer complex schaak en nee, waarschijnlijk ga je niet alles begrijpen. Maar zelfs de engines maken ‘fouten’ en verliezen. De Stockfish die jijzelf misschien gebruikt om soms een partij te analyseren wordt zo nu en dan verslagen door een andere engine. Dit betekent dat er nog veel te leren valt in de zoektocht naar de ware ‘juiste’ zet.

 

Boek: The Silicon Road to Chess Improvement (2021)
Auteur: Matthew Sadler
Uitgeverij: New In Chess
ISBN-nummer: 978-905-671-983-2 
Pagina’s: 560
Prijs: € 29,95
Hier te vindenwww.newinchess.com/engine-training

Link naar onze recensenten.

6 Reacties

  1. Avatar
    Wim Weehuizen 30 oktober 2021

    In de tweede ronde van de Grand Swiss verloor Jorden van Foreest met wit door een verrassende 34e zet van zijn tegenstander. Die zet leek me toch niet zo heel moeilijk te vinden, maar Stockfish 11 zag die niet en gaf een gelijke stand. Heb je daar een verklaring voor?

    www.chessgames.com/perl/chessgame?gid=2095128

    • Avatar
      Henk Smout 31 oktober 2021

      Als je bovenaan schaaksite.nl de van chess24 overgenomen Live partijen aanklikt, dan ziet Stockfish 14 het ook niet.

      De computer moet zich oriënteren en de stelling aftasten, heeft daarvoor tijd nodig en slaat eerst dwaalwegen in: bij invoer van de zetten op database.chessbase.com is het wachten tot diepte 19, dan heeft de machine ineens 34… Lf8-a3 te pakken.

    • Avatar
      Ariton8 31 oktober 2021

      Hallo!

      In het artikel praat ik over ‘blinde vlekken’. Dit is een heel mooi voorbeeld van zo’n blinde vlek! (Op relatief lage diepte). Als ik naar zet 33 ga, dan duurt het voor mijn Stockfish 14 tot diepte 24 om te zien dat 34. axb5 geen goede zet is, en wit verloren staat. Als ik naar zet 34 ga dan ziet Stockfish het inderdaad nog sneller (diepte 18 voor La3).  Deze blind vlek komt door de manier waarop Stockfish geprogrammeerd is. 

      Mijn hypothese: Stockfish is geprogrammeerd (door mensen) om op een bepaalde manier naar nieuwe zetten te zoeken (algoritme). In dit geval ziet Stockfish dat er tot een bepaalde diepte maar één variant is die ‘goed’ is. Bij het calculeren van de varianten kijkt Stockfish eerst naar de zetten die niet gelijk iets verliezen (zoals ik al aangaf in het artikel). Het idee van zwart is om de loper weg te geven en er niks aan materiaal voor terug te krijgen (niet gelijk in ieder geval). Dus, Stockfish berekent de andere zetten intensiever tot La3 aan de beurt is.

      Overigens heb ik ook even mijn Leela geopend; die zag het gelijk. Dit komt door het feit dat Stockfish, ondanks de nieuwe hybride vorm, nog steeds afhankelijk is van brute-force methodes. Leela daarentegen heeft haarzelf leren schaken en is daardoor qua positionele tactiekjes sterker/sneller (die zijn moeilijker om aan een computer uit te leggen).

      Hoop dat dit helpt, en bedankt voor de leuke reacties!

  2. Avatar
    Wim Weehuizen 31 oktober 2021

    Dank voor je verhelderende uitleg. Ik begin het principe van die engines zoals Stockfish beter te begrijpen. Volgens Stockfish was Jorden’s 28e zet Pf3 al niet zo goed. Daarvoor stond hij duidelijk beter. En ik keek als amateur schaker zelf bedenkelijk bij wit’s 29e zet Pd4x vanwege die verbonden zwarte vrijpionnen. Jammer genoeg is het Jorden’s toernooi niet. Vandaag zondag 31-10 heeft hij ook al weer verloren.

  3. Avatar
    Henk Smout 03 november 2021

    De engine van database.chessbase was geslaagd voor wat ik het ‘Vukovic-examen’ had genoemd.

    De stelling na 1.e4 c5 2.Pf3 d6 3.d4 cxd4 4.Pxd4 Pf6 5.Pc3 g6 6.Le3 Lg7 7.f3 o-o 8.Dd2 Pc6 9.g4 Le6 10.o-o-o Pxd4 11.Lxd4 Da5 12.a3 Tab8 13.h4 Tfc8 14.h5 b5 15.hxg6 hxg6 16.Dg5 a6 17.Td2 Dc7 18.Tdh2 b4 19.Dh6 Lxh6+ 20.Txh6 g5 21.Txf6 (blz. 61, noot 265 in Sicilian Defence Dragon Variation B75-76 uit 1995 door Tivjakov voor Chess Informant), door Vladimir Vukovic bereikt via de volgorde 6.f3 Lg7 7.Le3 o-o 8.Dd2 Pc6 9.o-o-o Pxd4 10.Lxd4 Le6 11.g4 Da5 12.a3 Tfc8 13.h4 Tab8 was volgens Tivjakov, die met 21… exf6 voortzette, gewonnen voor Wit. De engine heeft in luttele seconden de weerlegging 21… Lc4 te pakken die Vukovic al in de jaren ’50 had gevonden. In aanvulling op het reeds door Vukovic gegeven vervolg 22.Th8+ Kg7 23.Tfh6+ e5 geeft de engine 22.axb4 Lxf1 23.Th8+ Kg7 24.Tfh6+ en nu 24… f6.

    Je kunt de foutzet 21.Txf6 invoeren, op zichzelf aangewezen slaat de engine die over, na bij 20… g5 engine aanklikken is het wachten tot diepte 18 op het nog in de jaren ’50 door Vukovic bedachte 21.Lf1-d3!!, bij engine laten beginnen na 18… b4 is het wachten tot diepte 24.

    In het laatste geval komt op diepte 14 19.Dh4, de eerdere dwaalweg van Vukovic wegens 19… Ph5 voorbij van voordat hij op het idee 19.Dh6!! (engine vanaf diepte 17) was gekomen. De indruk die de onderzoekingen van Vukovic maakten, leidde ertoe dat de benaming Joegoslavische aanval opkwam

    De engine vindt probleemloos op 16… Lxg4 het antwoord 17.Pd5!

    Na engine aanklikken bij 16.Dg5 verschijnt op diepte 23 het in 1968 al een keer gespeelde, maar decennia lang aan de deskundigen onbekend gebleven 16… d5!

    Op eerdere mogelijkheden ingaan voert te ver.

  4. Avatar
    Wim Weehuizen 04 november 2021

    Een bijzondere schaker die Vladimir Vukovic. Hij schreef boeken over het offeren. In 1974 werd zijn door H. J. van den Herik vertaalde boek Het Offer in het Schaakspel uitgegeven. Eén partij daaruit is die tussen Spasski en Tal.

    www.chessgames.com/perl/chessgame?gid=1128896

    Vukovic schrijft; De hoogste schaaktitel mag door de grote meesters fel worden betwist; de grootste offerkunstenaar van deze tijd blijft zonder twijfel Tal!

Alleen geregistreerde gebruikers kunnen een reactie achterlaten.