De quelles connaissances ai-je besoin pour écrire un simple programme d'IA pour jouer à un jeu?

8

Je suis diplômé du B.Sc. L'un de mes cours était «Introduction à l'apprentissage automatique», et j'ai toujours voulu faire un projet personnel dans ce sujet.

J'ai récemment entendu parler de différentes formations à l'IA pour jouer à des jeux tels que Mario, Go, etc.

Quelles connaissances dois-je acquérir pour former un programme d'IA simple pour jouer à un jeu? Et quel jeu recommandez-vous pour un débutant?

C'est ce que je sais jusqu'à présent dans le Machine Learning -

  • Introduction au cours et à l'apprentissage automatique. Algorithme K-Nearest Neighbour et algorithme K-means
  • Inférence statistique
  • Modèle de mélange gaussien (GMM) et maximisation des attentes (EM)
  • Modèle probablement approximativement correct (PAC), y compris les limites de généralisation et la sélection du modèle
  • Algorithmes d'hyperplan de base: Perceptron et Winnow.
  • Machines à vecteurs de support (SVM)
  • Graines
  • Stimuler les apprenants faibles en apprenants forts: AdaBoost
  • Margin-Perceptron
  • Régression
  • PCA
  • Arbres de décision
  • Élagage des arbres et forêts aléatoires
Niv Hoffman
la source

Réponses:

8

Il existe plusieurs façons d'aborder la résolution des problèmes de jeu. Certains jeux peuvent être résolus par des algorithmes de recherche par exemple. Cela fonctionne bien pour les jeux de cartes et de société jusqu'à un certain niveau de complexité. Par exemple, Deep Blue d'IBM était essentiellement une recherche heuristique rapide pour des mouvements optimaux.

Cependant, l'algorithme d'apprentissage automatique le plus générique pour former un agent à effectuer une tâche de manière optimale est probablement l'apprentissage par renforcement . Techniquement, ce n'est pas un algorithme, mais une famille étendue d'algorithmes connexes qui résolvent tous une formalisation spécifique du problème d'apprentissage.

De manière informelle, l'apprentissage par renforcement (RL) consiste à trouver des solutions optimales aux problèmes définis en termes d' agent qui peut observer l' état d'un environnement , prendre des mesures dans cet environnement et obtenir des récompenses qui sont en quelque sorte liées à l'état et à l'action. Les solveurs RL doivent être conçus pour faire face à des situations où les récompenses sont reçues plus tard que lorsque des actions importantes ont été prises, et cela est généralement réalisé par l'algorithme apprenant une attente interne de récompenses ultérieures associées à des paires d'état et / ou d'état-action.

Voici quelques ressources pour étudier l'apprentissage par renforcement:

Vous constaterez que le sujet lui-même est assez grand car des variantes de plus en plus sophistiquées des algorithmes sont nécessaires car le problème à résoudre devient plus difficile.

Le démarrage de jeux pour étudier l'apprentissage par renforcement peut inclure:

  • Tik-tac-toe (alias Noughts et croix) - cela peut être résolu facilement en utilisant la recherche, mais cela permet de résoudre un problème de jouet simple en utilisant des techniques de base RL.

  • Labyrinthes - dans la littérature sur l'apprentissage par renforcement, il existe de nombreux exemples de jeux de type "grille" où un agent se déplace par étapes N, E, S, O sur une petite planche pouvant être remplie de dangers et d'objectifs.

  • Blackjack (alias 21)

Si vous souhaitez travailler avec des agents pour jouer à des jeux vidéo, vous voudrez également en savoir plus sur les réseaux de neurones et probablement en détail - vous aurez besoin de réseaux de neurones profonds et convolutionnels pour traiter les graphiques d'écran.

OpenAI Universe est une ressource relativement nouvelle pour RL . Ils ont fait beaucoup de travail pour créer des environnements prêts à former des agents, ce qui signifie que vous pouvez vous concentrer sur l'étude des algorithmes d'apprentissage, par opposition à l'effort de configuration de l'environnement.


Concernant votre liste de compétences actuelles: Aucune d'entre elles n'est directement pertinente pour l'apprentissage par renforcement. Toutefois:

  • Si vous pouvez comprendre les mathématiques et la théorie de votre cours précédent, vous devriez également être en mesure de comprendre la théorie de l'apprentissage par renforcement.

  • Si vous avez étudié des techniques d'apprentissage en ligne ou supervisées par lots, celles-ci peuvent être utilisées comme composants dans un cadre RL. En règle générale, ils peuvent être utilisés pour approximer une fonction de valeur de l'état du jeu, sur la base des commentaires des succès et des échecs jusqu'à présent.

Neil Slater
la source
7

Cela dépend fortement du type de jeu et des informations sur l'état du jeu disponibles pour votre IA.

Certains des jeux d'IA les plus célèbres de ces dernières années sont basés sur l'apprentissage par renforcement profond (par exemple, jouer à Atari avec l'apprentissage par renforcement profond ), qui est un apprentissage par renforcement normal (par exemple Q-learning) avec un réseau neuronal profond comme approximation de la fonction de valeur de récompense. Ces approches reçoivent les pixels bruts du jeu plus les points du joueur, et émettent les actions d'une manette de jeu, un peu comme un humain. Pour faire quelque chose comme ça, vous devez maîtriser l'apprentissage par renforcement (voir le livre séminal de Sutton et Barto ) et l'apprentissage profond (voir le livre de Ian Goodfellow et al. ), Puis comment les fusionner en apprentissage par renforcement profond (rechercher "renforcement" apprentissage "dans une liste organisée de documents d'apprentissage en profondeur comme celui-ci).

Cependant, si les informations sur le jeu disponibles pour votre IA sont plus structurées que cela (par exemple, la position du joueur, la description de l'environnement), vous pouvez bien faire avec des approches plus classiques où vous décomposez votre jeu en problèmes exploitables et résolvez chacun algorithmiquement, par exemple en recherchant avec A * .

ncasas
la source
3

Ce que vous recherchez s'appelle l' apprentissage par renforcement . Dans mon université, il y a un cours complet (153h=45h) uniquement pour initier les étudiants à ce sujet. Voici mes notes de cours (principalement allemandes) sur la planification probabiliste . Je dirais que c'est définitivement un sujet avancé pour l'apprentissage automatique.

Topcis pour en savoir plus

  • Processus de décision de Markov (PDM)
    • Stratégie et itération de valeur
    • Projet: Rock-Paper-Scissors / Tic-Tac-Toe
  • Processus décisionnels de Markov partiellement évitables
    • Projet: Black Jack
  • Apprentissage par renforcement
    • Q-Learning
    • SARSA

Autres jeux simples

Autres ressources

Martin Thoma
la source