L'une des questions les plus populaires posées sur ce site concerne la perspective d' une IA d'échecs purement autodidacte.
Aujourd'hui, ChessBase est distrait de sa couverture du tournoi FIDE Candidates pour signaler qu'une nouvelle IA bat, pour la première fois, un maître de premier plan du jeu de go plutôt différent, qui avait résisté aux IA de type échecs pendant de nombreuses années. Une première lecture du rapport suggère que la nouvelle go go est différente des IA d'échecs, mais est plus une IA de jeu général (GGP). L'article de ChessBase n'utilise cependant pas le terme GGP, mais semble dire que le go AI peut gagner aux jeux vidéo simples.
Y a-t-il une raison pour laquelle une telle IA gagnante ne pourrait pas, avec des ajustements mineurs, gagner également aux échecs? Dans l'affirmative, une telle IA promet-elle d'atteindre l'auto-formation pure dont plusieurs excellentes réponses à la question précédente ont déjà discuté, ce qui n'était pas encore possible à l'époque? Pourquoi ou pourquoi pas?
Je soupçonne qu'aucune réponse vraiment complète et pleinement informée à ma question n'est encore disponible, donc même une réponse partielle basée sur une expertise connexe serait appréciée.
Pour plus d'informations, consultez également cette question et ses réponses.
MISE À JOUR
Lorsque la question ci-dessus a été publiée pour la première fois il y a cinq jours et que certaines des bonnes réponses ci-dessous ont été données, les premières nouvelles concernant la victoire de go AI venaient d'apparaître. Depuis lors, des informations et des commentaires supplémentaires sont apparus.
Depuis lors, une table ronde à cinq volets assez lisible a été particulièrement intéressante dans laquelle Jonathan Schaeffer remarque:
L'apprentissage des jeux humains permet d'accélérer l'apprentissage du programme. AlphaGo pourrait apprendre à devenir un joueur fort par lui-même, sans utiliser les jeux humains. Le processus d'apprentissage prendrait juste plus de temps.
Selon l'animatrice de la table ronde, Schaeffer est "[c] professeur d'informatique à l'Université de l'Alberta et l'homme qui a résolu les dames"; il est donc probable qu'il pourrait être qualifié pour commenter.
Pour plus d'informations, voici le compte rendu d'une autre discussion ouverte, dont beaucoup de participants semblent mieux informés que d'habitude. La discussion a eu lieu pendant le match.
Nouvelle mise à jour, un an et demi plus tard: commentateur @MarkS. écrit:
Ceci est juste un commentaire car il s'agit de Go, pas d'échecs, mais AlphaGo Zero a atteint une "pure auto-formation" juste en se disant qui a gagné (et non le score final) et est plus fort et beaucoup plus efficace que l'IA qui a battu Lee Sedol . Pour plus d'informations, consultez deepmind.com/blog/alphago-zero-learning-scratch
Réponses:
Bien bien bien! DeepMind a publié un article dans lequel ils disent avoir programmé et entraîné un ordinateur de réseau neuronal pour battre Stockfish.
Avec 1 minute de temps de réflexion par mouvement, leur ordinateur AlphaZero a battu Stockfish de +25, = 25, -0 avec du blanc et + 3, = 47,0- comme du noir.
Ils ont "formé" 3 ordinateurs distincts pour jouer aux échecs, au shogi et au go et battre leurs rivaux de silicium de manière convaincante.
Voici comment le document décrit la formation et l'évaluation -
Leur ordinateur a utilisé une nouvelle forme de puce appelée "TPU" ( Tensor Processing Unit ) développée par Google pour les tâches d'apprentissage automatique.
Ils affirment également que leur algorithme de recherche d'arbre Monte Carlo est meilleur et plus "humain" que les algorithmes de recherche alpha-bêta traditionnels -
Voici quelques jeux -
Jeu
Blanc: AlphaZero Noir: Stockfish
la source
D'accord, je dois admettre que j'avais tort. Bien que je soutienne que cela était dû à la connaissance de l'opinion des experts, et non à l'objectivité générale: Pour citer l' article : "Cependant, les programmes d'échecs utilisant les SCTM traditionnels étaient beaucoup plus faibles que les programmes de recherche alpha-bêta (4, 24); tandis que l'alpha -les programmes bêta basés sur des réseaux de neurones n'ont pas pu auparavant rivaliser avec des fonctions d'évaluation plus rapides et artisanales. "
Apparemment, les échecs sont suffisamment profonds stratégiquement pour que vous puissiez élaborer une stratégie avec quelqu'un qui pourrait vous calculer. Pour moi, c'est une grande surprise parce que le développement des moteurs d'échecs allait dans la direction opposée. (Apparemment, il y a encore une légère mise en garde quant à savoir si AlphaZero est vraiment plus fort que Stockfish: Stockfish joué avec seulement 1 Go pour les tables de hachage et 64 cœurs peut ne pas vraiment correspondre à quatre TPU)
C'est aussi une chose vraiment, vraiment excitante, car AlphaZero a très probablement des forces très différentes des moteurs traditionnels.
Cela signifie également que je mets à jour ma conviction de l'importance d'AlphaGo en tant que percée technologique par beaucoup. Fondamentalement, briser le shogi, Go et les échecs avec une seule configuration est complètement incroyable, sans parler de dizaines d'autres jeux qui pourraient probablement être joués à un niveau surhumain par AlphaZero.
Il y a une belle explication pour expliquer pourquoi les SCTM sont en fait une idée décente même pour les échecs par rapport à la recherche alpha-bêta (du papier): "AlphaZero évalue les positions en utilisant une approximation de fonction non linéaire basée sur un réseau neuronal profond, plutôt que linéaire approximation de la fonction utilisée dans les programmes d'échecs typiques. Cela fournit une représentation beaucoup plus puissante, mais peut également introduire des erreurs d'approximation fallacieuses. Les SCTM font la moyenne de ces erreurs d'approximation, qui ont donc tendance à s'annuler lors de l'évaluation d'un grand sous-arbre. En revanche, la recherche alpha-bêta calcule un mini-max explicite, qui propage les plus grosses erreurs d'approximation à la racine du sous-arbre. " (souligné par moi)
Voici mon ancienne réponse, contenant encore quelques points valables, malgré la conclusion étant remplacée par la réalité.
Tout d'abord, Alphago n'est pas un système de jeu général. C'est un programme conçu uniquement pour jouer au go et rien d'autre. Il est cependant construit à partir de certains blocs de construction qui ont une applicabilité beaucoup plus large, tels que les réseaux de neurones convolutifs , qui ont été utilisés dans la reconnaissance d'image et qui ont une application immédiate dans les diagnostics médicaux, et l' apprentissage par renforcement qui a été utilisé pour maîtriser les jeux Atari mentionnés dans l'article.
En outre, les moteurs actuels "apprennent" en jouant eux-mêmes : "Du jour au lendemain, les six ordinateurs de Lefler jouent à plus de 14 000 jeux chacun pendant une période de huit heures." Six machines multipliées par 14 000, c'est beaucoup de jeux ", dit-il. Et avec à chaque partie jouée, la base de données devient plus profonde et plus riche. Il y a même un intérêt sportif à regarder les ordinateurs jouer les uns contre les autres.
Pour en venir à l'essentiel de votre question:
Il y a une différence importante entre les échecs et le go, du moins du point de vue d'un programmeur. Les échecs sont plus un jeu tactique, tandis que le go est plus un jeu stratégique. Cela signifie que dans le calcul des échecs, la profondeur l'emporte sur l'évaluation positionnelle. C'est fondamentalement l'aperçu clé qui distingue les "vieux" moteurs comme Fritz, Shredder, Junior et la nouvelle génération comme Fruit, Rybka, Houdini, Stockfish, Komodo. Parce qu'à la fin de chaque ligne, vous devez évaluer la position et que vous souhaitez calculer le lot de lignes et que la qualité de l'évaluation n'est pas aussi importante que la profondeur de recherche, les moteurs d'échecs ont des fonctions d'évaluation allégées et rapides.
En revanche, la complexité tactique est trop grande même pour les ordinateurs. Par conséquent, évaluer les positions et les mouvements avec précision est essentiel. Ce qu'Alphago apporte de nouveau au jeu, c'est ce pouvoir d'évaluation, basé sur des réseaux de neurones convolutifs .
Pour enfin arriver à mon point: alors que les fonctions d'évaluation des échecs sont maigres et rapides, les réseaux de neurones ont des millions, parfois des milliards de paramètres. Parce que «apprendre» dans ce contexte signifie ajuster les paramètres, il y a beaucoup plus de progrès possibles pour les programmes d'auto-apprentissage.
Donc, oui, vous pouvez utiliser une configuration comme Alphago pour créer un moteur d'échecs, mais ce ne serait pas particulièrement bon. L'exécution de la fonction d'évaluation prendrait tellement de temps que vous auriez à utiliser un énorme cluster de gpus pour atteindre les profondeurs de recherche nécessaires (ce que fait Alphago). Vous pouvez créer une très bonne fonction d'évaluation , mais le compromis de vitesse n'en vaut pas la peine.
la source
Il existe un projet appelé spawkfish qui tente de faire exactement cela. Il s'agit d'un moteur basé sur un réseau de neurones dont le but "est d'explorer comment les progrès récents de l'informatique Go peuvent être appliqués au monde des échecs informatiques".
C'est un projet jeune et le moteur est encore assez faible. Le jouer est intéressant, car son jeu de position est meilleur que sa tactique.
la source
La réponse courte est non!"
Chess and go sont radicalement différents dans leur relative simplicité et leur complexité relative qui découle de leur géométrie et de la façon dont vous gagnez. Celles-ci se combinent pour rendre un programme qui est bon dans l'un inutile à l'autre.
Aux échecs, vous gagnez en matant l'adversaire, les points ne comptent pas. Bien sûr, un adversaire sensé démissionnera souvent avant de livrer échec et mat mais le principe est le même. En jeu, vous gagnez en ayant plus de points à la fin de la partie. Si j'ai un roi et une reine et que vous avez un roi, une tour et un pion, mais que vous avez construit une forteresse, peu importe que j'ai 9 points pour la reine et vous n'avez que 6 points pour votre tour et votre pion. Le jeu est un match nul.
Cela fait une différence fondamentale dans la complexité entre les échecs et le go. En cours, vous pouvez simplement conserver le score et vous saurez qui gagne. Aux échecs, le seul moyen de savoir qui gagne est le calcul pur. En ce sens, les échecs sont beaucoup plus complexes que d'aller.
En même temps, en raison de la géométrie des deux jeux, il y a des ordres de grandeur plus de possibilités en jeu qu'aux échecs. En ce sens, le go est beaucoup plus complexe que les échecs.
Un programme d'échecs fonctionne par calcul de force brute de tous les mouvements possibles jusqu'à une certaine profondeur qui détermine sa force. Un programme go ne peut pas fonctionner comme ça et jouer quelque chose de plus avancé que le niveau débutant go.
L'objectif de base de go est de contrôler plus de territoire que votre adversaire. À la fin d'une partie, peu importe que la différence soit de 1 pierre ou 100 pierres, les deux sont des victoires. Chaque fois que vous placez une pierre, vous faites deux choses. Vous augmentez votre territoire, potentiel ou réel, et vous diminuez celui de votre adversaire.
Parfois, lorsqu'il s'agit d'une augmentation ou d'une diminution réelle du territoire, il est facile de calculer la valeur du déplacement, mais lorsqu'il est potentiel, il est très difficile à évaluer. En tant que joueur de go faible, je comprends le "réel" beaucoup mieux que le "potentiel" et un joueur plus fort me battra en construisant un territoire potentiel beaucoup plus grand au centre tandis que je construis un territoire réel plus petit sur les bords et dans les coins. Le joueur le plus fort aura acquis la capacité de juger par l'intuition et la sensation de jouer à de nombreux jeux et de reconnaître comment construire un territoire "potentiel".
Plus tôt, j'ai dit que chaque fois que je place une pierre, cela augmente mon territoire (réel ou potentiel) et diminue celui de mon adversaire (en fait, si c'est un geste stupide, cela fera le contraire!). Dans une position donnée, tous les mouvements ne sont pas identiques. Une pierre placée dans une position peut valoir beaucoup plus ou beaucoup moins qu'une pierre placée dans une autre.
Typiquement, dans un jeu, il y aura de petits "combats" où les joueurs placeront leurs pierres les uns à côté des autres, délimitant leur territoire et limitant celui de leur adversaire. Pendant ce temps, il existe des possibilités de commencer à jalonner du territoire dans une autre partie du plateau ou de passer à un combat ailleurs où les deux joueurs ont déjà des pierres.
Ce qui est très important dans ces situations, c'est de savoir quand arrêter un combat, car les gains potentiels ont diminué, et de passer à un autre combat ou peut-être de partir en territoire vierge. Parfois, cela dépend d'un calcul difficile, mais souvent il est beaucoup plus nébuleux et n'est pas soumis au calcul. En tant que joueur faible, c'est là qu'un payeur fort m'écrase à chaque fois.
Dans ces situations, l'ordinateur utilise des méthodes probabilistes pour générer un score attendu pour un mouvement particulier. Parfois, la valeur réelle se révélera un peu moins, parfois un peu plus, mais à long terme, elle disparaîtra plus ou moins. Il continuera de choisir le coup avec la valeur attendue la plus élevée, dans l'espoir qu'au cours d'un match, de petites erreurs seront annulées et que sa stratégie gagnera.
Ce n'est pas une stratégie qui semble familière aux joueurs d'échecs et qui ne fonctionnera pas aux échecs. C'est quelque chose qui semble familier à quiconque suit ce qui se passe sur les marchés boursiers. Cela ressemble beaucoup à quelque chose appelé "trading à haute fréquence" où les ordinateurs feront des milliers de petits paris ou juste des paris proposés chaque seconde pour "nickel et dime" le marché et peut-être même le déplacer très marginalement en leur faveur sur des périodes de millisecondes.
Les marchés financiers sont déjà dominés par ce type de trading algorithmique, ce qui suggère que ce type de programme a déjà triomphé dans un domaine beaucoup plus lucratif qu'un jeu de société.
la source
(Quiconque souhaite une discussion technique approfondie pour AlphaGo peut consulter mon article )
Réponse courte : Non
Réponse longue :
Tout d'abord, nous devons comprendre pourquoi Google n'a pas mis en œuvre l'alpha-bêta dans AlphaGo. Stockfish et Komodo (et tous les moteurs d'échecs) ont une alpha-bêta, pourquoi AlphaGo ne le ferait-il pas?
Raison : il n'existe aucun moyen simple et bon marché d'évaluer avec précision une position Go de manière statique.
Aux échecs, nous pouvons toujours compter les matériaux, un moyen très efficace d'évaluer statiquement une position. Bien qu'il ne soit pas parfait, c'est très rapide et un très bon proxy pour les échecs.
La recherche dans l'espace d'état avec Monte-Carlo est une méthode inférieure à l'alpha-bêta. Google aurait mis en œuvre l'alpha-bêta s'ils le pouvaient, mais ils ne le pouvaient pas. Ainsi, ils ont été obligés d'utiliser quelque chose de beaucoup plus lent.
Le moteur d'échecs ne jouerait pas mieux avec Monte-Carlo.
la source
Je suis en désaccord avec les autres réponses. Je suis informaticien qui travaille professionnellement dans le domaine de l'intelligence artificielle et je suis également candidat master en échecs et 3 dan en igo.
Je pense qu'il n'est pas clair pour le moment si les méthodes de Deep Mind pourraient être appliquées aux échecs, mais je pense que c'est possible.
Actuellement, les meilleurs programmes de jeu d'échecs s'appuient de plus en plus sur l'heuristique et tenter d'utiliser l'architecture AlphaGo pour les échecs serait d'une certaine manière dans la même ligne de pensée.
Une caractéristique architecturale clé d'AlphaGo qui devrait être modifiée est sa méthode d'identification des carrés clés (ou des cartes de chaleur), qui est particulière aux jeux de type igo et n'est pas directement applicable aux échecs. Il faudrait développer un analogue de cette méthode pour rendre l'architecture AlphaGo pertinente aux échecs. Par exemple, nous pourrions avoir le concept de "pièces clés" plutôt que de carrés clés.
Je pense que l'argument selon lequel l'architecture AlphaGo n'est pas pertinente pour les échecs parce que les échecs sont plus tactiques n'est pas une très bonne affirmation car, finalement, les deux ont des arbres de recherche dont la forme est assez similaire pour qu'AlphaGo puisse définitivement être adapté aux échecs.
la source
La réponse est oui! Google vient de le prouver hier, quand AlphaZero a battu le meilleur programme d'échecs en utilisant uniquement des connaissances sur les règles et une auto-formation pure sans aucune connaissance des échecs humains. La réponse acceptée est fausse. Le lien vers l'article est ici: lien
la source
Pour voir AlphaZero en action, suivez http://lczero.org/ ou jouez sur http://play.lczero.org/
la source