Apprentissage par renforcement

Jouez à un jeu de société contre un agent, qui est formé à l'aide de l'apprentissage par renforcement et déployé avec TensorFlow Lite.

Commencer

Si vous débutez avec TensorFlow Lite et que vous travaillez avec Android, nous vous recommandons d'explorer l'exemple d'application suivant qui peut vous aider à démarrer.

Exemple Android

Si vous utilisez une plateforme autre qu'Android, ou si vous connaissez déjà les API TensorFlow Lite , vous pouvez télécharger notre modèle entraîné.

Télécharger le modèle

Comment ça fonctionne

Le modèle est conçu pour qu'un agent de jeu joue à un petit jeu de société appelé "Plane Strike". Pour une présentation rapide de ce jeu et de ses règles, veuillez vous référer à ce README .

Sous l'interface utilisateur de l'application, nous avons construit un agent qui joue contre le joueur humain. L'agent est un MLP à 3 couches qui prend l'état de la carte en entrée et produit le score prévu pour chacune des 64 cellules possibles de la carte. Le modèle est formé à l'aide du gradient de politique (REINFORCE) et vous pouvez trouver le code de formation ici . Après avoir formé l'agent, nous convertissons le modèle en TFLite et le déployons dans l'application Android.

Pendant le jeu réel dans l'application Android, lorsque c'est au tour de l'agent d'agir, l'agent regarde l'état du tableau du joueur humain (le tableau en bas), qui contient des informations sur les frappes précédentes réussies et infructueuses (hits and miss) , et utilise le modèle formé pour prédire où frapper ensuite, afin qu'il puisse terminer le jeu avant que le joueur humain ne le fasse.

Références de performances

Les numéros de référence de performance sont générés avec l'outil décrit ici .

Nom du modèle Taille du modèle Dispositif CPU
Dégradé de politique 84 Ko Pixel 3 (Android 10) 0,01 ms*
Pixel 4 (Android 10) 0,01 ms*

* 1 fils utilisés.

Contributions

Le modèle accepte un float32 3-D de (1, 8, 8) comme état de la carte.

Les sorties

Le modèle renvoie un float32 2-D de forme (1,64) comme scores prédits pour chacune des 64 positions de frappe possibles.

Entraînez votre propre modèle

Vous pouvez entraîner votre propre modèle pour une carte plus grande/plus petite en modifiant le paramètre BOARD_SIZE dans le code d'entraînement .