Aprendizaje reforzado

Juegue un juego de mesa contra un agente, que se entrena mediante aprendizaje por refuerzo y se implementa con TensorFlow Lite.

Empezar

Si es nuevo en TensorFlow Lite y está trabajando con Android, le recomendamos explorar la siguiente aplicación de ejemplo que puede ayudarle a comenzar.

Ejemplo de Android

Si está utilizando una plataforma que no sea Android o ya está familiarizado con las API de TensorFlow Lite , puede descargar nuestro modelo entrenado.

Descargar modelo

Cómo funciona

El modelo está diseñado para que un agente del juego juegue un pequeño juego de mesa llamado "Plane Strike". Para obtener una introducción rápida a este juego y sus reglas, consulte este archivo LÉAME .

Debajo de la interfaz de usuario de la aplicación, hemos creado un agente que juega contra el jugador humano. El agente es un MLP de 3 capas que toma el estado del tablero como entrada y genera la puntuación prevista para cada una de las 64 celdas posibles del tablero. El modelo se entrena utilizando gradiente de políticas (REINFORCE) y puede encontrar el código de entrenamiento aquí . Después de entrenar al agente, convertimos el modelo a TFLite y lo implementamos en la aplicación de Android.

Durante el juego real en la aplicación de Android, cuando es el turno del agente de actuar, el agente mira el estado del tablero del jugador humano (el tablero en la parte inferior), que contiene información sobre ataques anteriores exitosos y fallidos (aciertos y fallos). y utiliza el modelo entrenado para predecir dónde atacar a continuación, de modo que pueda terminar el juego antes que el jugador humano.

Puntos de referencia de rendimiento

Los números de referencia de rendimiento se generan con la herramienta que se describe aquí .

Nombre del modelo Tamaño del modelo Dispositivo UPC
gradiente de políticas 84KB Píxel 3 (Android 10) 0,01 ms*
Píxel 4 (Android 10) 0,01 ms*

* 1 hilo usado.

Entradas

El modelo acepta un tensor float32 3-D de (1, 8, 8) como estado del tablero.

Salidas

El modelo devuelve un tensor float32 2-D de forma (1,64) como las puntuaciones previstas para cada una de las 64 posibles posiciones de ataque.

Entrena tu propio modelo

Puede entrenar su propio modelo para un tablero más grande o más pequeño cambiando el parámetro BOARD_SIZE en el código de entrenamiento .