2016-12-13 3 views
2

J'essaie d'apprendre comment faire un réseau de neurones qui peut apprendre la stratégie du jeu de tic-tac-toe et peut jouer contre l'homme. J'ai fait beaucoup de recherches, et j'ai fait un réseau de neurones à propagation de retour avec 9 neurones pour l'entrée, 9 neurones pour la couche cachée, et 9 neurones pour la couche de sortie.Tic Tac Toe réseaux neuronaux

J'ai une interface graphique de tic-tac-toe complète en python, et j'ai connecté tous les 9 blocs de la carte à 9 neurones d'entrée et de sortie. J'utilise un sigmoïde comme fonction d'activation. Ma question principale est comment puis-je former ce réseau de neurones pour jouer contre les humains?

+0

Vous devriez vérifier [AlphaToe] (https://github.com/DanielSlater/AlphaToe), ils ont enseigné une machine à jouer à Tic Tac Toe en utilisant des techniques d'apprentissage en profondeur d'Alpha Go – JMat

+0

Peut-être un meilleur ajustement pour stats.SE? –

+0

@JMat Je suis nouveau dans les réseaux de neurones, donc j'ai décidé d'aller avec les bases.Merci. –

Répondre

0

Pour cette tâche, j'utiliserais un algorithme de généthique, avec le joueur comme fonction de forme physique. L'algorithme génétique appliquera différents ensembles de poids et vous, en tant que joueur, donnez chaque score individuel en fonction de votre opinion sur la qualité de votre adversaire IA.

+0

Merci pour votre réponse .Pouvez-vous expliquer brièvement sur l'algorithme génétique. –

+0

L'algorithme génétique est un algorithme d'optimisation basé sur la biologie. En bref. Vous créez aléatoirement tous les poids de votre réseau, plusieurs fois. Vous jouez à un jeu ou à des jeux avec tous les jeux générés aléatoirement et évaluez les jeux. Certains ensembles auront un score plus élevé et ces ensembles seront optimisés par un algorithme avec pour objectif d'obtenir de meilleurs résultats. [link] (https://www.youtube.com/watch?v=ejxfTy4lI6I). Cette vidéo en simple explique comment GA fonctionne. Car mon point de vue est de mettre en œuvre un algorithme génétique sur cette tâche plus simple que backprop. – viceriel

+0

Merci pour votre réponse. –

0

Vous pouvez utiliser l'approche policy gradients ici. Où vous jouez au hasard (les deux joueurs font des mouvements aléatoires), et dites si le joueur 'O' vous gagne récompense tout 'O' se déplace positivement (réduit par un facteur de réduction, le coup final obtient plus de récompenses et ensuite la récompense diminue d'un facteur) et récompensez 'X' se déplace négativement de la même manière. Si le résultat du jeu est nul, vous pouvez récompenser les deux joueurs avec une récompense positive moindre. Vous pourriez finir par récompenser positivement les coups sous-optimaux et vice versa, mais sur un grand nombre de parties, les choses fonctionnent en votre faveur.