www.onemagazine.es
Cómo entrenar la Inteligencia Artificial utilizando videojuegos
Ampliar
(Foto: MaxPixel)

Cómo entrenar la Inteligencia Artificial utilizando videojuegos

¿Tienes un bot con una IA y no sabes cómo entrenarlo? Pues ya no tienes que preocuparte, utilizando OpenAI de Google y las plataformas Universe y Gym nos permiten probar y entrenar una IA utilizando juegos clásicos, simulaciones de navegación por páginas web o incluso probar programas.

La base de su funcionamiento es sencilla: hacer que un bot agente (la IA) utilice el ordenador igual que lo haría un ser humano, es decir, mirando a la pantalla (identificando y ubicando pixeles en la pantalla) y utilizando el ratón y el teclado. Por lo tanto, sólo tenemos que elegir en qué entorno queremos probar nuestra IA y dejarla trabajar adquiriendo experiencia poco a poco. Como hemos comentado antes, los agentes utilizan las interfaces comunes, por lo tanto el agente de IA funcionará controlando un escritorio remoto observando los pixeles proyectados en la pantalla (actuando exactamente igual que un ser humano mirando a la pantalla) y generando respuestas tanto en el teclado como en el ratón. El sistema está basado en servidor VNC y la librería propia de Universe permite al agente conectar con ellos.

Estos son los entornos que podemos elegir para realizar nuestras pruebas:

  • Juegos de Atari
  • Juegos variados tipo Flash
  • Otro tipo de juegos (aquí podríamos englobar los FPSpor ejemplo como Doom)
  • Tareas con navegadores web (desplazarnos por la página, hacer click, etc)
  • Mini World of Bits (tareas sencillas muy específicas como leer un texto, identificar formas, etc.)
  • Tareas concretas realizadas con navegadores (reservar un hotel, comprar un artículo, etc).

Esta infraestructura permite que cualquier aplicación, juegos, página web, etc que pueda integrarse en un contenedor Docker (este sería el entorno más idóneo) o en una máquina virtual (un poco más lento que Docker) sea susceptible de añadirse a Universe. Esto abre un mundo de posibilidades, como subir tu propia aplicación para probarla, un juego, etc y que sean probadas por los agentes creados en OpenAI (un entorno de pruebas ideal para nuestra aplicación).

Para crear y dar inteligencia a nuestros bots de IA utilizaremos el framework llamado TensorFlow. Esta colección de librerías nos permite utilizar técnicas de aprendizaje automático y redes neuronales.

Antes de empezar a jugar, tenemos que preparar el terreno de juego. La forma más sencilla y que menos impacto tiene en nuestro entorno actual, ya sea Windows, Linux o Mac, es instalarlo en una máquina virtual. Hemos optado por un Linux Ubuntu 16.04 de escritorio. Eso sí, al ser un entorno virtual, la velocidad de proceso será un poco más lenta pero suficiente para realizar nuestras primeras pruebas. Para ejecutar las máquinas virtuales podemos utilizar VirtualBox, gratuito y disponible en todas las plataformas. No vamos a explicarte cómo instalar la máquina virtual en VirtualBox, existen muchos tutoriales que te pueden echar una mano en esta sencilla tarea.

Una vez tenemos ya preparada nuestra máquina virtual con Linux Ubuntu, comenzamos la instalación de nuestro entorno de pruebas. Primero instalaremos los siguientes paquetes básicos (cuando pregunte si aceptamos la instalación, pulsamos "Enter" de esa manera aceptamos y seguirá con la instalación):

$ sudo apt-get update

$ sudo apt-get install golang python3-dev python-dev libcupti-dev libjpeg-turbo8-dev make tmux htop chromium-browser git cmake zlib1g-dev libjpeg-dev xvfb libav-tools xorg-dev python-opengl libboost-all-dev libsdl2-dev swig

El siguiente paso será descargar e instalar Anaconda Python 3.4(plataforma Open Data Science que contiene prácticamente todas las librerías Python que vamos a necesitar):

$ bash Anaconda3-4.2.0-Linux-x86_64.sh

Anaconda añadirá automáticamente las rutas al fichero .bashrc (en el fichero de arranque) si escribes "yes" justo en este punto de la instalación:

En caso de no funcionar, puedes añadirlas manualmente editando el fichero:

$ gedit ~/.bashrc

Y luego añadimos la ruta:

export PATH="/home/$USER/anaconda3/bin:$PATH"

El siguiente paso será instalar Docker:
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"

$ sudo apt-get update
$ sudo apt-get install docker-ce

Finalmente probamos la instalación:

$ sudo service docker start
$ sudo docker run hello-world

IMPORTANTE: en este punto tenemos que reiniciar la máquina virtual (reboot)

Ahora vamos a probar que todo se ha instalado correctamente creando un entorno propio aislado, así podremos crear diferentes universos:

$ conda create --name universe python=3.5 anaconda

$ source activate universe

Ahora veremos entre paréntesis en la línea de comandos el nombre "(universe)". Esto indicará que estamos trabajando dentro del entorno que hemos creado. El siguiente paso será instalar los paquetes que vamos a necesitar para nuestras pruebas:

(universe) $ conda install pip six libgcc swig

(universe) $ conda install opencv

El siguiente paso será instalar Tensorflow. Podemos elegir entre la versión con GPU activada o sin ella (depende de la tarjeta gráfica que tengamos):

(universe) $ pip install --upgrade tensorflow
(universe) $ pip install --upgrade tensorflow-gpu

Instalamos Gym:

(universe) $ cd ~
(universe) $ git clone https://github.com/openai/gym.git
(universe) $ cd gym
(universe) $ pip install -e '.[all]'

Instalamos Universe:

(universe) $ cd ~
(universe) $ git clone https://github.com/openai/universe.git
(universe) $ cd universe
(universe) $ pip install -e .

Finalmente vamos a probar que todo se ha instalado correctamente ejecutando alguno de los ejemplos que podemos encontrar en OpenAI Gym. El siguiente código (de momento no nos preocupamos por por su funcionamiento, lo veremos más adelante) abre uno de estos entornos y simplemente ejecuta de forma aleatoria la pulsación de las teclas de movimiento (es sólo para probar que todo está ok). Abrimos un editor de textos en Linux (por ejemplo, gedit), pegamos el siguiente código y lo guardamos con un nombre con extensión .py (por ejemplo, test1.py):

import gym
env = gym.make('Breakout-v0')
env.reset()
for _ in range(1000):
env.render()
env.step(env.action_space.sample()) # take a random action

En nuestro caso hemos creado una carpeta dentro de nuestro perfil de usuario llamada "programasOpenAI":

(universe) $ python ~/programasOpenAI/test1.py

En este vídeo podéis ver la ejecución de los dos entornos:

Ya tenemos la 'rejilla de juegos' preparada, pero si quieres saber más sobre cómo entrenar a tu IA jugando videojuegos, puedes consultarlo en LUCA. Y recuerda que para cualquier duda, idea o comentario, puedes acceder también a la comunidad de ElevenPaths donde tenemos un apartado para LUCA.

¿Te ha parecido interesante esta noticia?    Si (0)    No(0)


Normas de uso

Esta es la opinión de los internautas, no de Desarrollo Editmaker

No está permitido verter comentarios contrarios a la ley o injuriantes.

La dirección de email solicitada en ningún caso será utilizada con fines comerciales.

Tu dirección de email no será publicada.

Nos reservamos el derecho a eliminar los comentarios que consideremos fuera de tema.