Très récemment, la nouvelle est venue que l'équipe de recherche DeepMind d'Alphabet a étendu son moteur d'apprentissage automatique pour jouer à la fois au shogi et aux échecs. Apparemment, après seulement quelques heures d'auto-apprentissage, c'est-à-dire qu'en jouant contre lui-même étant donné les règles du jeu, ses performances aux échecs ont déjà dépassé celles des meilleurs moteurs actuels tels que Stockfish 8. Personnellement, je ne sais pas encore exactement comment les matchs ont été organisés, comme dans quelles conditions Stockfish devait être exécuté, car si les temps de calcul sont limités, les moteurs peuvent très mal fonctionner. En tout cas, c'est une réalisation très impressionnante, car même s'il s'avérait que l'on aurait pu configurer Stockfish de manière plus optimale, avec quelques heures de formation supplémentaires, AlphaZero dépasserait à nouveau le niveau de jeu, ce qui signifie qu'AlphaZero est fondamentalement plus fort que n'importe quel autre actuel moteur d'échecs standard basé sur des fonctions d'évaluation heuristique.
Maintenant, à la lumière de ces nouvelles, il serait formidable que quelqu'un puisse expliquer les principales différences dans le fonctionnement d'un moteur d'échecs à apprentissage automatique par rapport aux moteurs standard que nous sommes tous habitués à utiliser. Plus concrètement:
- La fonction d'évaluation qu'AlphaZero utilise, formée par des méthodes d'apprentissage automatique, n'est-elle pas à la fin une autre fonction d'évaluation heuristique? Si oui, serait-il juste de dire que la différence fondamentale entre les fonctions d'évaluation des deux moteurs est le fait que Stockfish a une fonction d'évaluation optimisée réglée manuellement par les humains, ce qui signifie que la définition de la fonction à optimiser est fixe, alors que pour AlphaZero, la fonction d'évaluation de la cible est constamment redéfinie par une formation supplémentaire (par exemple par l'auto-jeu)? Faire de ce dernier une approche beaucoup plus dynamique.
En fin de compte, vaguement, un moteur comme Stockfish, applique sa fonction d'évaluation à l'arbre des mouvements possibles, décidant quelles branches garder et lesquelles abandonner, puis à travers un béton plus profondl'analyse de chaque branche, toujours à travers sa fonction d'évaluation, elle détermine quelle branche a donné la valeur la plus élevée, et cela devient la principale variation (bien sûr, il existe de nombreuses techniques avancées autour de ce processus pour tailler efficacement ce grand arbre). Cela signifie que pour chaque poste, cette routine extrêmement concrète doit être répétée pour que Stockfish prenne une décision. En revanche, j'imagine qu'AlphaZero fait quelque chose de très différent, à savoir qu'il ne s'appuie pas sur une analyse concrète de l'arbre des mouvements possibles à une position donnée, au lieu de cela sa fonction d'évaluation attribue essentiellement une valeur à cette position (ce qui est intuitivement similaire à mettre le poste actuel par analogie avec tous les autres postes pour lesquels il a été formé), sans jamais avoir à réaliser du bétonanalyse comme le fait Stockfish, ou même un joueur humain. S'agit-il du tout d'une image solide du fonctionnement d'AlphaZero ou de moteurs d'apprentissage machine formés de manière similaire?
Nous savons que l'espace des positions d'échecs est suffisamment grand pour que toute tentative d'échantillonnage de toutes les positions qu'il contient serait même en principe complètement vaine (complexité EXPTIME), ce qui suggérerait qu'aucune quantité d'entraînement par auto-jeu ne serait suffisante pour ont exploré toutes les positions, alors comment le résultat final peut-il être bon malgré avoir potentiellement exploré une petite fraction des positions de l'espace via le jeu automatique? Quelle est l'idée clé ici en jeu?
Je suppose que AlphaZero a un moyen très optimal de comparer une position donnée, même nouvelle, à une position précédemment visitée dans son ensemble de formation, plus la comparaison est proche, plus l'évaluation peut être valide à partir de la comparaison. Par exemple, quand il a joué le coup Bg5 dans le jeu 5 , il doit avoir exploré une structure similaire lors de son entraînement, c'est-à-dire qu'il est capable de reconnaître que cette position est essentiellement équivalente (éventuellement complètement) différente à celle étudiée dans son entraînement, en analogie avec la façon dont la reconnaissance des visages est obtenue grâce à l'apprentissage automatique, et en conséquence, il conclut que Bg5 devrait être le meilleur choix, comme ce fut le cas dans (ou dans) d'autres positions similaires. Est-ce une supposition correcte? Je ne sais pas comment cette comparaison est fait, car il n'est sûrement pas possible de stocker toutes les positions entraînées et de les analyser à chaque fois.
Il s'agit simplement d'une tentative pour obtenir un tel aperçu du fonctionnement d'AlphaZero et de la façon dont il prend une décision en fonction d'un poste.