Apprentissage par renforcement

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

Commencer

Si vous êtes nouveau sur 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 puisse jouer à un petit jeu de société appelé « Plane Strike ». Pour une introduction 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 créé 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 génère le score prédit pour chacune des 64 cellules possibles de la carte. Le modèle est formé à l'aide d'un 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 plateau du joueur humain (le plateau en bas), qui contient des informations sur les précédentes frappes réussies et infructueuses (touchés et ratés). , et utilise le modèle entraîné pour prédire où frapper ensuite, afin qu'il puisse terminer le jeu avant le joueur humain.

Repères 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 Appareil CPU
Dégradé 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 tenseur float32 3D de (1, 8, 8) comme état de la carte.

Les sorties

Le modèle renvoie un tenseur float32 2D 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 de formation .