[PYTHON] J'ai essayé de créer Othello AI avec tensorflow sans comprendre la théorie de l'apprentissage automatique ~ Battle Edition ~

Table des matières de la série

Suite de précédent ... Dans ce domaine, moi, un étranger, je n'ai pas du tout étudié «la théorie de l'apprentissage automatique». Je vais faire l'IA d'Othello.

Préparation

L'adversaire est ici fait par un ami ・ PHP Reversi

Tout d'abord, ouvrez le site de l'adversaire et le joueur blanc (sélectionnez le deuxième coup) 対戦1.png

Démarrez l'IA préparée

python


$ python FightWithAI.py

------------- GAME START ---------------
***tour de l'utilisateur ○***
  0  1  2  3  4  5  6  7
  8  9 10 11 12 13 14 15
 16 17 18 19 20 21 22 23
 24 25 26 ○ ● 29 30 31
 32 33 34 ● ○ 37 38 39
 40 41 42 43 44 45 46 47
 48 49 50 51 52 53 54 55
 56 57 58 59 60 61 62 63
Veuillez saisir le numéro
[44, 37, 26, 19]

>>>

Je vais entrer les instructions AI.

Bataille

Premier coup (adversaire) n ° 19

j1.png

Retour (AI) n ° 18

python


***Tour de l'IA ●***
  0  1  2  3  4  5  6  7
  8  9 10 11 12 13 14 15
 16 17 18 ● 20 21 22 23
 24 25 26 ● ● 29 30 31
 32 33 34 ● ○ 37 38 39
 40 41 42 43 44 45 46 47
 48 49 50 51 52 53 54 55
 56 57 58 59 60 61 62 63
Veuillez saisir le numéro
[44, 37, 26, 19]

>>> 18

Premier coup (adversaire) n ° 26

j1.png

Arrière (AI) n ° 34

j2.png

Premier coup (adversaire) n ° 42

j1.png

Arrière (AI) n ° 44

j2.png

Premier coup (adversaire) n ° 43

j1.png

Retour (AI) n ° 12

j2.png

Premier coup (adversaire) n ° 29

j1.png

Arrière (AI) n ° 37

j2.png

Premier coup (adversaire) n ° 21

j1.png

Arrière (AI) n ° 22

j2.png

Premier coup (adversaire) n ° 23

j1.png

Retour (AI) n ° 15

j2.png

Premier coup (adversaire) n ° 7

j1.png

Arrière (AI) n ° 41

j2.png

Premier coup (adversaire) n ° 3

j1.png

Retour (AI) n ° 14

j2.png

Premier coup (adversaire) n ° 5

j1.png

Retour (AI) n ° 6

j2.png

Premier coup (adversaire) n ° 20

j1.png

Retour (AI) n ° 4

j2.png

Premier coup (adversaire) n ° 45

j1.png

Retour (AI) n ° 46

j2.png

Premier coup (adversaire) n ° 11

j1.png

Deuxième (AI) n ° 2

j2.png

Premier coup (adversaire) n ° 1

j1.png

Retour (AI) n ° 13

j2.png

Premier coup (adversaire) n ° 17

j1.png

Arrière (AI) n ° 31

j2.png

Premier coup (adversaire) n ° 39

j1.png

Arrière (AI) n ° 16

j2.png

Premier coup (adversaire) n ° 25

j1.png

Retour (AI) n ° 24

j2.png

Premier coup (adversaire) n ° 32

j1.png

Arrière (AI) n ° 33

j2.png

Premier coup (adversaire) n ° 8

j1.png

Retour (AI) n ° 9

j2.png

Premier coup (adversaire) n ° 0

j1.png

Retour (AI) n ° 10

j2.png

Premier coup (adversaire) n ° 40

j1.png

Passe arrière (AI)

j2.png

Premier coup (adversaire) n ° 47

j1.png

Retour (AI) n ° 49

j2.png

Premier coup (adversaire) n ° 56

j1.png

Retour (AI) n ° 53

j2.png

Premier coup (adversaire) n ° 48

j1.png

Retour (AI) n ° 57

j2.png

Premier coup (adversaire) n ° 58

j1.png

Arrière (AI) n ° 55

j2.png

Premier coup (adversaire) n ° 63

j1.png

Retour (AI) n ° 52

j2.png

Premier coup (adversaire) n ° 62

j1.png

Retour (AI) n ° 61

j2.png

Premier coup (adversaire) n ° 54

j1.png

Retour (AI) n ° 38

j2.png

Premier coup (adversaire) 59e

j1.png

Retour (AI) n ° 30

j2.png

Premier coup (adversaire) n ° 60

j1.png

Retour (AI) n ° 51

j2.png

Premier coup (adversaire) n ° 50

j1.png

résultat

Eh, c’est une défaite totale orz Ou plutôt, j'ai passé un mois à créer l'IA la plus faible qui me permette de prendre les quatre coins.

f6a691dd-7b92-826a-36ea-fddc08fa9fc4.png

Même à la fin de la formation, Q_MAX était de 0,023, ce qui était trop petit, alors j'ai pensé que c'était étrange. Normalement, à la fin de la formation, le journal devrait ressembler à ceci et Q_MAX devrait être proche de 1.

python


player:1 | pos:32 | LOSS: 0.0014 | Q_MAX: 0.9423
player:2 | pos:15 | LOSS: 0.0020 | Q_MAX: 0.9335
…

L'IA de divertissement est prête

Vengeance

La prochaine fois Revenge en passant du tensorflow au chainer.

Apparemment, des optimiseurs.RMSpropGraves, qui ne peut pas être utilisé avec tensorflow, fonctionne J'ai bien appris jusqu'à présent. (Au moment de la rédaction de cet article, ce n'est pas encore fort)

Si vous êtes familier avec cela, veuillez nous en informer. m(_ _)m

Recommended Posts

J'ai essayé de créer Othello AI avec tensorflow sans comprendre la théorie de l'apprentissage automatique ~ Battle Edition ~
J'ai essayé de créer Othello AI avec tensorflow sans comprendre la théorie de l'apprentissage automatique ~ Introduction ~
J'ai essayé de créer Othello AI avec tensorflow sans comprendre la théorie de l'apprentissage automatique ~ Implémentation ~
[Apprentissage automatique] J'ai essayé de résumer la théorie d'Adaboost
J'ai essayé de faire quelque chose comme un chatbot avec le modèle Seq2Seq de TensorFlow
J'ai essayé de faire d'Othello AI que j'ai appris 7,2 millions de mains par apprentissage profond avec Chainer
J'ai essayé de prédire la présence ou l'absence de neige par apprentissage automatique.
J'ai essayé de déplacer l'apprentissage automatique (détection d'objet) avec TouchDesigner
J'ai essayé de compresser l'image en utilisant l'apprentissage automatique
J'ai essayé de comprendre attentivement la fonction d'apprentissage dans le réseau de neurones sans utiliser la bibliothèque d'apprentissage automatique (première moitié)
J'ai essayé de faire une simulation de séparation de source sonore en temps réel avec l'apprentissage automatique Python
J'ai essayé de créer un environnement d'apprentissage amélioré pour Othello avec Open AI gym
J'ai essayé de trouver l'entropie de l'image avec python
J'ai essayé d'implémenter ListNet d'apprentissage de rang avec Chainer
J'ai essayé de réécrire le serveur WEB de la 1ère édition de programmation Linux normale avec C ++ 14
J'ai essayé de comparer la précision des modèles d'apprentissage automatique en utilisant kaggle comme thème.
J'ai essayé de vérifier la classification yin et yang des membres hololive par apprentissage automatique
J'ai essayé l'apprentissage automatique avec liblinear
J'ai essayé de bien le comprendre en implémentant l'algorithme Adaboost en machine learning (+ j'ai approfondi ma compréhension du calcul de tableaux)
J'ai essayé de résoudre l'édition du débutant du livre des fourmis avec python
J'ai essayé d'automatiser l'arrosage du pot avec Raspberry Pi
J'ai essayé de rendre le deep learning évolutif avec Spark × Keras × Docker
J'ai essayé d'améliorer l'efficacité du travail quotidien avec Python
J'ai essayé de créer un mécanisme de contrôle exclusif avec Go
J'ai essayé d'implémenter Autoencoder avec TensorFlow
J'ai essayé de transformer l'image du visage en utilisant sparse_image_warp de TensorFlow Addons
J'ai essayé d'appeler l'API de prédiction du modèle d'apprentissage automatique de WordPress
J'ai essayé de faire un signal avec Raspeye 4 (édition Python)
J'ai essayé d'extraire automatiquement les mouvements des joueurs Wiire avec un logiciel
(Apprentissage automatique) J'ai essayé de comprendre attentivement la régression linéaire bayésienne avec l'implémentation
J'ai essayé d'analyser la négativité de Nono Morikubo. [Comparer avec Posipa]
J'ai essayé de rationaliser le rôle standard des nouveaux employés avec Python
Signifie mémo lorsque vous essayez de faire de l'apprentissage automatique avec 50 images
J'ai essayé d'obtenir les informations sur le film de l'API TMDb avec Python
J'ai essayé l'histoire courante de l'utilisation du Deep Learning pour prédire la moyenne Nikkei
J'ai essayé de prédire le comportement du nouveau virus corona avec le modèle SEIR.
J'ai refactoré "J'ai essayé de faire d'Othello AI lorsque les débutants en programmation ont étudié python"
J'ai essayé de comprendre attentivement la fonction d'apprentissage dans le réseau de neurones sans utiliser la bibliothèque d'apprentissage automatique (deuxième moitié)
J'ai essayé de prédire l'année prochaine avec l'IA
J'ai essayé d'organiser les index d'évaluation utilisés en machine learning (modèle de régression)
J'ai essayé de sauvegarder les données avec discorde
J'ai essayé de corriger la forme trapézoïdale de l'image
Un débutant en apprentissage automatique a essayé de créer un modèle de prédiction de courses de chevaux avec python
J'ai essayé de visualiser facilement les tweets de JAWS DAYS 2017 avec Python + ELK
J'ai essayé la détection d'objets avec YOLO v3 (TensorFlow 2.1) sur le GPU de windows!
J'ai essayé de prédire l'évolution de la quantité de neige pendant 2 ans par apprentissage automatique
J'ai essayé de traiter et de transformer l'image et d'élargir les données pour l'apprentissage automatique
Je veux faire du machine learning même sans serveur - Time Series Edition -
Je n'ai pas compris le redimensionnement de TensorFlow, alors je l'ai résumé visuellement.
Je suis un amateur le 14e jour de python, mais je veux essayer l'apprentissage automatique avec scicit-learn
L'histoire de la fabrication de soracom_exporter (j'ai essayé de surveiller SORACOM Air avec Prometheus)
J'ai créé un jeu ○ ✕ avec TensorFlow
J'ai essayé de créer un modèle avec l'exemple d'Amazon SageMaker Autopilot
J'ai essayé d'envoyer automatiquement la littérature du nouveau virus corona à LINE avec Python
J'ai essayé de vectoriser les paroles de Hinatazaka 46!
J'ai essayé de résoudre le problème d'optimisation du placement de la machine virtuelle (version simple) avec blueqat