Icone color1 09

Cómo implementar una red neuronal artificial para jugar FIFA 18

Autor: Chintan Trivedi

Linkedin: https://www.linkedin.com/in/chintan-trivedi-78665774/

Traductor: Paula Vidal

 

El A.I. Los bots, es decir, programas capaces de actuar,  son generalmente programados con un conjunto  reglas  prioritarias las cuales se comunican con el juego. En la mayoría de los casos, este enfoque es suficientemente efectivo para que el robot imite el comportamiento humano. Sin embargo, en muchos contextos todavía es muy simple distinguir entre un bot y un ser humano real. Por lo tanto, consideraremos esta pregunta: ¿qué pasaría si dejamos que el robot comprenda de forma autónoma la observación del juego humano, sin usar reglas empíricas?

Esto requiere un juego donde sea posible recopilar este tipo de datos sobre el comportamiento de los jugadores y FIFA 18 (dudas). Al registrar nuestras acciones y decisiones durante la fase de juego nos permite implementar un bot basado en el aprendizaje profundo, sin que sea necesario requerir una programación de cada regla del juego.

 

4 1

4 1

 

El código para este proyecto y el modelo ya entrenado se pueden encontrar aquí.

Mecanismos del juego

Para implementar un tipo de bot no es necesario acceder a ningún código interno. Es mas simple de lo que piensan basta solo una simple captura de pantalla de la ventana del juego para encender nuestro motor. Este último procesa la información visual y realiza sobre la base de ellos una acción que se comunica al juego a través de una simulación de la presión de las teclas. Por lo tanto, el procedimiento se repite para cada paso

 

Ahora que tenemos un input  y el  conjunto de capturas de pantalla es esto que permite que el bot actúe,  la parte interesante es:  como viene constituida la  inteligencia artificial y como esta aprende del juego. Esto se hace primero 1) usando una red neuronal convolucional (CNN) para procesar las pantallas y, en segundo lugar, 2) usando redes de memoria a corto y largo plazo (LSTM) para decidir sobre la acción más apropiada.

 

 

 

Paso 1) entrenar una red neuronal convolucional (CNN)

Los CNN a menudo son conocidos por su capacidad para individuar objetos en una imagen con gran precisión. Al combinarlo con poderosas GPU y arquitecturas de redes inteligentes, podemos obtener un modelo de CNN que opera en tiempo real.

5 2

5 2

 

Para hacer que nuestro bot procese la imagen que se le proporcionó como input, utilizamos una CNN rápida y extremadamente ligera llamada MobileNet. El mapa de las características, extrapolado de la red, representa una comprensión profunda de la imagen, logrando identificar datos tales como la posición de los jugadores y otros objetos de interés en el espacio de la pantalla. Este mapeo se usa luego con una caja múltiple que con una sola toma para identificar a los jugadores en el área de juego, junto con la pelota y el objetivo.

6

6

Paso 2) entrenar redes de memoria a corto y largo plazo (LSTM)

7

7

Ahora que tenemos una comprensión de la imagen, podemos continuar con el siguiente paso, ahora inicia acción. Sin embargo, no podemos limitarnos al estudio de una sola pantalla para decidir cómo actuar, sino que deberíamos mirar una secuencia corta de ellas. Aquí es donde entran en juego los LSTM porque se sabe que modelan una secuencia de tiempo y datos. Cada cuadro consecutivo se utiliza como un paso de tiempo en nuestra secuencia, y para cada uno de ellos se extrae un feature map  utilizando el modelo CNN. Estos últimos se introducen simultáneamente en dos redes LSTM.

La prima rete LSTM ha la funzione di capire quali movimenti il giocatore necessita di fare ed è, quindi, un modello di classificazione “multi-classe”. La seconda LSTM riceve lo stesso input ma deve, invece, decidere quale azione scegliere tra passaggio corto, cross, passaggio filtrante e tiro. È quindi anch’essa un modello multiclasse. Gli output prodotti da queste due classificazioni sono poi convertiti nella pressione dei tasti che controllano le azioni di gioco.

Le reti sono state allenate sulla base di dati collezionati attraverso il gioco manuale, la raccolta delle immagini e la pressione del tasto corretto.

La primera red LSTM tiene la función de comprender qué movimientos necesita hacer el jugador y, por lo tanto, es un modelo de clasificación “multi-clase”. La segunda LSTM recibe la misma entrada, pero en su lugar debe decidir qué acción elegir entre pase corto, cross, pass y un tiro. Por lo tanto, también es un modelo multiclasado. Los resultados producidos por estas dos clasificaciones se convierten luego en la presión de las teclas que controlan las acciones del juego.

Las redes estan capacitadas sobre la base de los datos recopilados a través del juego manual, la recopilación de imágenes y cuando tocas el botón correcto.

Evaluación del rendimiento del bot

No pudimos evaluar el rendimiento del robot, excepto al dejarlo jugar. Después de solo 400 minutos de entrenamiento, el bot ha aprendido a correr hacia la meta del oponente, hacer pases delanteros y tomar una foto de la pantalla cada vez que detecta un gol. En el modo principiante de FIFA 18, ya ha anotado 4 goles en seis partidos, uno más que Paul Pogba durante la temporada 17/18.

Los videos del robot en acción se pueden encontrar aquí.

 

 

conclusiones

Las impresiones de estos enfoques de implementación de bot son ciertamente positivas. Con un entrenamiento bastante limitado, el bot logró comprender las reglas básicas del juego: moverse hacia la meta del oponente y empujar la pelota hacia la red. Sin duda sería capaz de alcanzar el nivel de rendimiento humano cuando se someta a muchas más horas de entrenamiento, lo que podría ser fácilmente recogido por el desarrollador del juego. Además, extender el modelo de entrenamiento al lanzamiento real de juegos haría que el comportamiento del robot fuera mucho más natural y realista.

0 comentarios

Dejar un comentario

¿Quieres unirte a la conversación?
Siéntete libre de contribuir

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *