Comment former un réseau neuronal pour un jeu de plateau rond?

11

Je me demande comment former un réseau de neurones pour un jeu de plateau rond, comme le tic-tac-toe, les échecs, le risque ou tout autre jeu basé sur le tour. Obtenir le prochain coup par inférence semble être assez simple, en alimentant l'état du jeu en entrée et en utilisant la sortie comme coup pour le joueur actuel. Cependant, la formation d'une IA à cet effet ne semble pas être aussi simple, car:

  1. Il peut ne pas y avoir de note si un seul mouvement est bon ou non, donc la formation des mouvements simples ne semble pas être le bon choix
  2. L'utilisation de tous les états de jeu (entrées) et mouvements (sorties) de l'ensemble du jeu pour entraîner le réseau de neurones ne semble pas être le bon choix, car tous les mouvements d'une partie perdue peuvent ne pas être mauvais

Je me demande donc comment former un réseau de neurones pour un jeu de plateau rond? Je voudrais créer un réseau de neurones pour tic-tac-toe en utilisant tensorflow.

soriak
la source

Réponses:

10

Grande question! NN est très prometteur pour ce type de problème: Giraffe Chess . L'accomplissement de Lai était considéré comme un gros problème , mais malheureusement, il ne s'est produit que quelques mois avant qu'AlphaGo ne soit mis à l'honneur. (Tout s'est bien passé, dans la mesure où Lai a été embauché par la suite par DeepMind, mais pas si bien pour le moteur Giraffe ;)

J'ai trouvé l'approche de Lai très utile et elle est soutenue par des résultats solides.


Vous voudrez peut-être utiliser " séquentiel " par opposition à "basé sur rond" car séquentiel est le terme préféré dans la théorie des jeux et la théorie des jeux combinatoires , et ce sont les champs qui appliquent l'analyse mathématique aux jeux.

Les jeux que vous listez sont également appelés " abstraits " pour les distinguer des jeux de société de stratégie modernes, ou des jeux en général, qui utilisent un thème fort et sont généralement moins compacts que les jeux abstraits en termes de mécanique et d'éléments. Cela implique que les jeux abstraits ne se limitent pas aux jeux séquentiels ou aux jeux de société, ni même spécifiquement aux jeux, comme dans le cas de puzzles comme Sudoku.

Le nom officiel de ce groupe de jeux est généralement «information partisane , séquentielle, déterministe et parfaite », avec la catégorisation supplémentaire de Tic-Tac-Toe comme «trivial» (résolu et facilement résoluble) et non trivial (intraitable et non résolu) pour des jeux comme Chess and Go.

DukeZhou
la source
7

Je suis un joueur d'échecs et ma réponse sera uniquement aux échecs.

Former un réseau neutre avec un apprentissage par renforcement n'est pas nouveau, cela a été fait à plusieurs reprises dans la littérature.

Je vais expliquer brièvement les stratégies communes.

  • Le but d'un réseau est d'apprendre l' évaluation de poste. Nous savons tous qu'une reine est plus forte qu'un évêque, mais pouvons-nous faire connaître le réseau sans programmation explicite? Et la structure du pion? Le réseau comprend-il comment évaluer si une position est gagnante ou non?

  • Maintenant, nous savons pourquoi nous avons besoin du réseau, nous devons le concevoir. La conception diffère radicalement entre les études. Avant que l'apprentissage en profondeur ne soit populaire, les gens utilisaient un réseau peu profond. De nos jours, un réseau à plusieurs couches se démarque.

  • Une fois que nous aurons le réseau, vous devrez créer un moteur d'échecs. Le réseau de neurones ne peut pas jouer aux échecs comme par magie, il doit se connecter à un moteur d'échecs. Heureusement, nous n'avons pas besoin d'écrire de code d'évaluation de position car le réseau peut le faire pour nous.

  • Maintenant, nous devons jouer à des jeux. Nous pourrions commencer avec des bases de données d'échecs de haute qualité ou demander à notre agent IA de jouer à des jeux avec un autre joueur (par exemple lui-même, un autre agent AI ou un humain). C'est ce qu'on appelle l' apprentissage par renforcement .

  • Pendant que nous jouons à des jeux, nous mettons à jour le paramètre réseau. Cela peut se faire par descente de gradient stochastique (ou par d'autres techniques similaires). Nous répétons notre formation aussi longtemps que nous le souhaitons, généralement sur des millions d'itérations.

  • Enfin, nous avons un modèle de réseau neutre formé pour les échecs!

Consultez les ressources suivantes pour plus de détails:

https://chessprogramming.wikispaces.com/Learning

Bonjour le monde
la source
Seuls les petits échecs l'ont ici
quintumnia
Ceci est un exemple de la façon dont la fourniture d'un lien externe, sans résumer, peut être préjudiciable à l'avenir. Comme le lien fourni est maintenant mort
Greg Hilston
4

Je pense que vous devriez vous familiariser avec l'apprentissage par renforcement. Dans ce domaine de l'apprentissage automatique, l'agent interagit avec son environnement et après cela, l'agent obtient une récompense. Maintenant, l'agent est le réseau de neurones, l'environnement est le jeu et l'agent peut obtenir une récompense +1 s'il gagne ou -1 s'il perd. Vous pouvez utiliser cet état, action, récompense le tuple d'expérience pour former l'agent. Je peux également recommander les conférences de David Silver sur YouTube et le livre de Sutton.

Molnár István
la source