Je pense qu'il est préférable que j'élabore sur votre deuxième point avec un exemple de mouvement dans le jeu 1 entre AlphaZero et Stockfish qui a également servi à satisfaire ma curiosité aujourd'hui.
la limite de temps de 1 min / mouvement (Comment cela désavantagerait-il Stockfish?)
Les performances de Stockfish dépendent à la fois de la limite de temps et de la configuration matérielle, alors pensez à quelqu'un qui double les threads du processeur, alors Stockfish a besoin de moins de temps (pas nécessairement la moitié) pour trouver la solution qu'il ne le ferait avec la première configuration.
Dans le premier rapport publié sur Chess.com, quelqu'un a affirmé que Stockfish ne jouait pas de manière optimale car il ne pouvait pas reproduire les mêmes résultats en utilisant le même Stockfish sur son ordinateur. Il a dit que sur la position ci-dessous (match 1 - coup 11) Stockfish a joué Kg1-h1 (a déplacé son roi), ce qui n'avait aucun sens. En revanche, le stockfish sur son ordinateur a montré un mouvement plus évolutif comme Be3 (déplacer l'évêque carré noir), permet de regarder la position:
Oui, c'était un mouvement passif et il semble que Stockfish aurait dû jouer un mouvement plus développé. Mais il avait tort. Pourquoi? Parce qu'il a couru Stockfish pendant 15 secondes, et s'il l'avait couru pendant une heure, il aurait obtenu Kg1-h1 comme le meilleur mouvement dans cette position. Stockfish change de décision en analysant plus en profondeur tous les mouvements possibles. Voici ce que j'ai initialement dit dans ma réponse :
J'ai dirigé le dernier stockfish sur la position (au coup 11):
- Au début, il donne le b4 comme mouvement optimal lorsque le moteur tourne pendant environ une minute. Après cela, il décide que Be3 est meilleur.
Mais après 5 minutes sur mon matériel qui fonctionne sur 1400 nœuds / s, il décidera de choisir Kh1 comme le mouvement optimal.
Dans le document, il est dit que stockfish calcule 70 000 k positions par seconde et est exécuté pendant 1 minute par mouvement, c'est environ 50 fois mon matériel, donc je vais laisser le mien fonctionner pendant 50 minutes ... Kg1-h1 est toujours le choix pour Stockfish.
La limite de temps est la clé
Dans le cas ci-dessus, cela n'avait probablement pas beaucoup d'importance si Stockfish courait deux fois plus longtemps parce que la décision aurait été la même, mais au prochain coup, cela aurait certainement :
Dans cette position, Stockfish a choisi de déplacer le pion sur le côté gauche ( a4-a5 ). Disons que j'ai un ordinateur qui exécute le moteur Stockfish à une vitesse de 1400 nœuds par seconde, soit environ 50 fois plus bas que le Stockfish dans le jeu réel ( dans le document , il est écrit 70 000kn / s). Je peux donc simuler le jeu si je l'exécute pendant 50 minutes à chaque coup. D'accord.
J'ai effectué une analyse Stockfish sur la position ci-dessus et j'ai obtenu les résultats suivants:
- Stockfish a commencé à suggérer quelques mouvements, mais après 6 minutes sur mon ordinateur (ce qui correspond à 7,2 secondes sur Stockfish dans le vrai jeu), il a préféré a4-a5 au fur et à mesure du jeu .
C'est bien, mais je l'ai fait fonctionner pendant 50 minutes complètes afin d'atteindre les calculs du Stockfish dans le jeu qui était autorisé à 1 minute:
La triste vérité est que je crois que Stockfish a perdu tous ses jeux à cause du délai. Stockfish obtient une recherche et une évaluation plus approfondies au fil du temps et dans le jeu, il n'était pas autorisé à utiliser un livre d'ouverture, ce qui lui permet de considérer de nombreux mouvements dans des profondeurs peu profondes. Notez que dans le jeu réel a4-a5 a été joué, ce qui montre que (en supposant qu'il puisse évaluer 70 millions de positions par seconde) le Stockfish dans le jeu n'a pas passé plus de 21,6 secondes en mouvement. Sinon, il aurait changé sa décision pour ces trois autres mouvements dans le jeu réel. La raison de cela n'est toujours pas claire pour moi car mon Stockfish consomme également moins de mémoire (environ ~ 130 Mo de RAM par rapport aux 1 Go mentionnés dans le document d'origine , en supposant que tout cela va aux tables de hachage).
Conclusion
Le matériel qui exécutait Stockfish, comme je l'ai souligné, était au mieux 18 fois plus rapide que le mien (mise à jour: sur un seul cœur) en fonction du mouvement que j'ai analysé. Je ne sais pas si AlphaZero pourrait vraiment utiliser un tel matériel pour entraîner ses réseaux en 4 heures, je ne peux que supposer qu'il est trop bas pour un jeu comme les échecs. En outre, AlphaZero a passé ces heures à apprendre, ce qui comprend également la construction d'ouvertures solides (et comme le souligne le document, les préférences par rapport à certaines ouvertures). En revanche, Stockfish était handicapé sur les ouvertures, et il n'a pas évalué 70 millions de positions par seconde pendant 60 secondes à chaque mouvement.
Pour terminer, tout ce que j'ai dit était basé sur mes hypothèses. Bien sûr, le résultat d'AlphaZero et des jeux était super intéressant pour moi. Cependant, j'aurais adoré voir un jeu où le jeu Stockfish était comme ce que j'obtiens sur mon ordinateur aussi. Autrement dit, plus de temps et un livre d'ouverture autorisés. Il est également facile d'obtenir les résultats de l'analyse Stockfish à chaque mouvement, et je souhaite qu'ils la libèrent afin de montrer à quel point elle a fonctionné.