zondag 15 september 2019

Schaakprogramma's testen

Tot enkele maanden geleden heb ik mij nooit bezig gehouden met het testen van schaakprogramma's. Ik zag het nut er ook niet van in. De testen en resultaten die CCRL wekelijks publiceert, zou ik toch nooit individueel kunnen benaderen. Bovendien is het kostenplaatje ook niet min om zoiets goed te kunnen uitvoeren. Tenslotte zijn de meeste computerpartijen allesbehalve opwindend om naar te kijken. Voor creativiteit en drama kijk je beter naar partijen tussen mensen.

Echter zoals ik in het vorig artikel al aangaf, zat ik met een open vraag voor Leela. CCRL noch andere sites boden een antwoord op hoe sterk Leela zou zijn in vergelijking met de klassieke programma's wanneer ze allebei dezelfde hardware zouden gebruiken. Dit was een probleem voor mij. Leela kan ik gratis installeren op mijn PC maar ik wou die slechts gebruiken voor mijn analyses als ik wist dat het programma zou behoren bij de beste 2 die ik bezat. Die zelf opgelegde regel  zie mijn artikel al daterend van 2012 zullen wellicht sommigen idioot vinden maar voor mij is het ergens een houvast om mijn analyses te kunnen vertrouwen in de bordpraktijk.

Dus ik besliste om Leela dan maar zelf te testen. Dan is natuurlijk de vraag hoe doe je zoiets snel, goed en liefst zo goedkoop mogelijk. Ik zou een set puzzels kunnen gebruiken maar dat toont slechts 1 aspect van een schaakprogramma. Partijen spelen leek mij beter maar ik kon/ wou evenmin mijn hardware missen gedurende meerdere maanden. Een rapidmatch met tempo 15 minuten + 10 seconden increment over 100 partijen leek mij nog net haalbaar en zou toch al een goede eerste indicatie moeten opleveren van de speelsterkte. Daar de inzet een plaats was bij de top 2 van mijn schaakprogramma's vond ik het dan ook logisch om de nummer 2: Komodo 11 te kiezen voor de match.

Dan rest er nog de vraag wat te doen met de openingen. Laten we de programma's vrij in de keuze of gebruiken we een reeks stellingen die de programma's met verwisselende kleuren moeten uitspelen zoals TCEC doet?  Een vrij keuze benadert het best hoe mensen tegen elkaar spelen maar er zijn ook nadelen aan deze methode. De openingskeuzes zullen wellicht weinig of niet overlappen met mijn repertoire. Het risico bestaat dat de spanning snel uit de partijen zal verdwijnen met als gevolg een heel hoog ongewenst remisepercentage. Tenslotte Leela zal zonder openingsboek bijna altijd dezelfde openingszetten kiezen waardoor je dus riskeert om meerdere keren dezelfde opening/partij te spelen.

Dus ik koos voor een reeks stellingen maar dan is het opnieuw kiezen. Deze keer had ik snel een slimme oplossing gevonden. Ik maakte een nieuwe database en voegde een selectie toe van 50 recent gespeelde partijen van mezelf. Vervolgens verwijderde ik in alle partijen de zetten na zet 10. Hierdoor had ik een paar duplicaten die ik snel verving door nog enkele extra zelf gespeelde partijen te selecteren. Het eindresultaat was een mooie mix van 50 stellingen waarin soms het evenwicht al verbroken was. Hiermee was het gevaar van te veel remises alvast van de baan. Bovendien zouden steeds openingen gespeeld worden die ik zelf al op het bord heb gehad waardoor het sowieso leuk zou worden om de partijen te volgen.

Eindelijk was alles klaar. Via Fritz startte ik het menu op om de match te initialiseren want ik automatiseerde natuurlijk het hele proces. Eerst selecteerde ik Leela. Daarna Komodo 11. Ik koos het juiste tempo en als laatste stap linkte ik naar de database met mijn 50 stellingen. Na een laatste check van de parameters klikte ik op ok en de match was gestart.
Ongeveer 3 volle dagen duurde de match. Zowel dag als nacht liet ik hiervoor de PC aanstaan maar ik onderbrak wel een paar keer het proces om o.a. de PC eens te laten afkoelen want we zaten toen net in een hittegolf. Het was geen probleem om de draad terug op te pikken waar ik gestopt was waardoor het kinderspel was om zulke match tot een goed einde te brengen.

De match werd een groot succes die het testen oversteeg. Vooreerst bleek al snel dat beide programma's aan elkaar gewaagd waren maar tezelfdertijd ook totaal andere stijlen hadden. Daarnaast ontaardde menig partij in een spektakel bovendien met openingen die rechtstreeks uit mijn repertoire kwamen. Niet zelden soms zelfs met de kinderen erbij gingen we een uurtje 1 of meerdere partijen live volgen. Mijn kinderen vroegen mij ook geregeld naar wat de voorlopige stand was en er ontstond al snel een voorliefde voor kleine Leela die ondanks zijn tactische handicap (meer hierover later) er toch geregeld inslaagde om de reus Komodo te verslaan.

Dit smaakte naar meer en dit deed mij dan ook besluiten om in de maanden daarna nog 2 keer een gelijkaardige match te organiseren met nieuwere versies van Leela. Voor de 3de match verving ik wel enkele stellingen omdat het evenwicht te hard was doorbroken. Als in de 2 vorige matchen 4 keer hetzelfde kleur (dus ongeacht welk schaakprogramma) had gewonnen dan leek het mij toch beter om een andere stelling van een van mijn andere bordpartijen te kiezen.

2 matchen werden nipt verloren door Leela. De 2de match speelde Leela gelijk. Dit vond ik een onverwacht en bijzonder goed resultaat op mijn bescheiden hardware die zeker niet optimaal is voor Lc0. Anderzijds hebben de matchen mijn oorspronkelijke vraag niet kunnen beantwoorden. Het verschil is te klein om zekerheid te hebben wie de nummer 2 is van mijn beste schaakprogramma's. Heel erg vind ik dat niet want uiteindelijk heb ik Leela heel goed leren kennen in 300 partijen waardoor ik nu ook een vrij goed idee heb wanneer Leela het best gebruikt kan worden voor de analyse.

In mijn vorig artikel hebben we al kennisgemaakt met Leela door te kijken hoe het programma reageert in diverse stellingen maar het is pas door haar partijen na te spelen dat je pas echt beseft hoe verschillend het programma wel is t.o.v. de rest. Het is dan ook normaal dat ik het artikel beëindig met een selectie van 3 partijen waarin de kwaliteiten en minpunten het best naar boven komen van Leela. Dit was geen makkelijke opdracht want er was een zeer ruime keuze aan waanzinnig mooie partijen. Ik begin met een fantastische partij die start vanuit de Chigorinvariant van het Spaans (die o.a. aan bod kwam in het recente artikel statistiek). Leela offert heel vroeg een kwaliteit en slaagt daarna als een echte wurgslang heel langzaam zwart te versmachten.
Het bijzondere aan deze partij vind ik dat er geen vast centrum is. De strijd woedt over de ganse breedte van het bord maar nooit krijgt zwart de kans om zijn extra kwaliteit te kunnen gebruiken.

Een 2de partij ontstaat vanuit een Hollandse stonewall die ik o.a. op het bord kreeg eind 2017 tegen de Nederlandse IM Xander Wemmers zie geheim. In deze partij zien we het oprukken van beide randpionnen van Leela die zo typisch is voor zijn stijl. Daarnaast zien we een machtige demonstratie van activiteit. Komodo snapt in de verste verte niet waarmee Leela bezig is.
Leela speelde deze partij zoals vele anderen met een begrip van open lijnen, slechte lopers die vele malen geavanceerder was dan Komodo.

Als je al de vorige 2 partijen hebt nagespeeld dan begin je zelfs af te vragen hoe het mogelijk is dat Leela er niet in geslaagd is om Komodo helemaal te vernietigen in de matchen. Wel te vaak ging het taktisch helemaal fout. Een mooi voorbeeldje is de volgende partij waarin Leela 5 zetten te laat pas de combinatie begreep.
De blogliefhebber zal wellicht de link naar mijn artikel het vlindereffect ontdekt hebben. Alle zetten kwamen daar al aan bod dus het was voor mij wel een verrassing om dit effectief allemaal gespeeld te zien.

Het testen van schaakprogramma's met behulp van dit soort matchen smaakt naar meer. Het zal niet voor direct zijn want voorlopig heb ik nog te veel ander werk. Bovendien werkt Leela aan een totaal nieuw netwerk waarbij terug van 0 is begonnen waardoor het vandaag nog zwakker is dan de netwerken van enkele maanden terug. Het zou ook leuk zijn om tegen een volgende match te kunnen beschikken over nieuwere en sterkere hardware.

Brabo

7 opmerkingen:

  1. Hier toon je echt iets moois!!!! En het is home-cooking.

    BeantwoordenVerwijderen
    Reacties
    1. Home-cooking, daar sla je de nagel op de kop.

      Toen Google eind 2017 met Alpha Zero een handvol fantastische partijen toonde, leek dit soort schaak slechts mogelijk voor een kleine groep mensen in een peperduur laboratorium.

      Met dit artikel toon ik aan dat vandaag iedereen zijn eigen magie kan creëren op een PC met een grafische kaart. Trouwens zoals ik in het artikel schreef, bevat dit artikel slechts een heel klein deeltje van al het moois dat ik ontdekte met Leela.

      Sommige schakers bleven kritisch na mijn vorig artikel over waarom precies Leela want goede zetten spelen kunnen de andere klassieke topprogramma's ook. Na dit artikel lijkt het mij nu toch wel heel duidelijk dat Leela een absolute aanrader is voor elke schaakliefhebber.

      Verwijderen
  2. Wat is jouw mening over Komodo 13 ?

    BeantwoordenVerwijderen
    Reacties
    1. Volgens CCRL zou er maximum 20 elo verschil zijn tussen Komodo 11 en Komodo 13. Dat verschil vind ik veel te klein om (100 euro volgens Chessbase) voor de upgrade te betalen.

      Bovendien zien we dat Komodo 13 in de lopende pro-league van TCEC toch duidelijk iets zwakker is dan Stockfish, Leela en Alliestein. Komodo 13 blijft een interessante engine maar analyseren doe je zeer waarschijnlijk efficiënter als je bv. Leela en Stockfish combineert.

      Verwijderen
  3. Op CB lees je:
    Komodo 13 thinks like no other chess program. Inspired by AlphaZero, Komodo developers GM Larry Kaufman and Mark Lefler have reinvented their engine from scratch over the last two years. The result speaks for itself: The new Komodo 13 MCTS ("Monte Carlo Tree Search") searches for candidate moves in an incredibly innovative way and finds solutions most engines never see!
    Op de Komodosite:
    Zo'n 90 euro met 1 jaar 3-5 updates of 55 euro zonder updates
    Komodo 10 is nu nog gratis en binnenkort wellicht Komodo 11

    Zouden er geen 2 lijsten moeten zijn: speelsterkte en analysesterkte?

    BeantwoordenVerwijderen
    Reacties
    1. Ik ben het eens met de commentaren op hetzelfde CB artikel (https://en.chessbase.com/post/announcing-komodo-13#discuss) dat het vooral een verkoopspraatje is dat we zeker niet blindelings mogen geloven.

      Daarnaast ben ik vooral geïnteresseerd in de analysesterkte van een programma en niet de speelsterkte. De meeste schaakprogramma's worden dan ook getest door openingen te verplichten die ze zelf niet zouden spelen. Zo krijg je ook een goed idee van de sterkte van de schaakprogramma's in stellingen die het zelfstandig nooit zou bereiken. Zo is algemeen geweten dat Lc0 beduidend sterker speelt wanneer ze zelf mag kiezen welke opening te spelen.

      Tenslotte wil ik er ook nog op wijzen dat MCTS eigenlijk al heel lang bestaat voor de analyse. Ik herinner me dat ik het al toepaste voor mijn correspondentieanalyses 20 jaar geleden. Dit heette toen vroeger nog gewoon correspondentiemodus in Fritz. Ik maakte hiervan een vermelding onderaan mijn artikel van 2012: http://schaken-brabo.blogspot.com/2012/05/analyseren-met-de-computer.html

      Verwijderen