You Are Browsing ‘Retrocomputer’ Category

Google añade “motivación” a su IA para poder entrenarse con videojuegos

by cybercaronte - on Jun 14th 2016 - No Comments

Si tienes una Inteligencia Artificial (IA) ¿cómo la entrenarías? Antes la base era suministrarle el máximo de información posible para que la IA lo procesara y de esa forma asimilar nuevos conceptos y parecer  inteligente. En cambio esto ya ha cambiado desde hace tiempo. Ahora se aplican nuevas técnicas como  “machine learning” las cuales se centran más en el autoaprendizaje de los sistemas.

Google DeepMind (la misma que venció al campeón de “go” con Alphago) es un referente a día de hoy en los avances relacionados con la IA. Deepmind centra su trabajo precisamente en lo que hemos comentado antes, hacer que la IA analice el entorno que le rodea y decida por sí misma cuales son las mejores opciones para resolver un problema. Para implementarlo ha desarrollado un algoritmo llamado DQN, Deep Q-Networks.

Y lo mejor es que han decidido entrenarla jugando a videojuegos.

El año pasado comenzaron esta nueva etapa de aprendizaje jugando a los juegos clásicos de Atari consiguiendo resultados realmente espectaculares como podéis ver en estos vídeos:

Deepmind jugando a Breakout, al final encuentra que la mejor táctica es hacer un túnel y pasar la bola por allí para destruir los ladrillos que se encuentran “encerrados” en la parte superior.

Si estáis interesados en jugar con la IA en casa, podéis consultar este enlace.

Hasta aquí los resultados son bastantes esperanzadores, pero también tenemos que admitir que los juegos no son especialmente complejos. Las reglas de los mismos son bastante sencillas y ocurren en un escenario más o menos controlado en una sola pantalla.

Así que este año los ingenieros de Google Deepmind decidieron dar un salto aún mayor. Esta vez querían probar la IA con un juego un poco más complicado, de hecho uno de los más difíciles de Atari: Montezuma´s Revenge … y no hizo ni un sólo punto.

Pero no se desanimaron. Y ahora, como podéis ver en el video que encabeza este post, es capaz de saltar, subir escaleras, esquivar esqueletos, utilizando llaves y haciendo una buena puntuación.

Entonces ¿cuál ha sido la diferencia?, pues algo que llaman motivación.

Esta motivación está basada en unos algoritmos llamados “intrinsic motivation” los cuales consisten básicamente en añadir recompensas a la AI al igual que ocurre con el cerebro a modo de “placer químico“. Sólo que esta vez el placer podríamos decir que es matemático.

No penséis que esta nueva IA es un bot más como los de cualquier juego, el cual tiene toda la información posible del mismo y la pone en práctica basándose en patrones definidos. En este caso la IA aprende desde cero a jugar mirando a la pantalla y analizando lo que está viendo, igual que un ser humano, pulsando botones, probando y por supuesto fallando y perdiendo vidas.

Vamos a ver un poco más en detalle cómo funciona centrándonos en el juego Montezuma´s Revenge.

Este juego está dividido en tres niveles, los cuales están a su vez compuestos de 24 habitaciones en forma piramidal. Cada habitación tiene un número de desafíos a completar para poder pasar a la siguiente (la habilidad de la IA se mide en función de las pantallas que ha podido superar). Por ejemplo, para superar la primera pantalla la IA tendrá que subir escaleras, esquivar criaturas, coger una llave y volver sobre sus pasos para abrir una puerta. Para analizar cada pantalla, el agente examina cada habitación capturando fotogramas de la acción en tiempo real (accediendo directamente a la memoria RAM del juego). Durante estas capturas, la IA analiza las ocurrencias o eventos que están sucediendo en ese momento (los cuales se miden con una unidad que llaman “pseudo-count“), creando una serie de parámetros de los cuales hay que destacar uno llamado “salient event“. Este evento se relaciona directamente con las recompensas, ya que implica un aumento en la puntuación al conseguir pasar de pantalla o resolver un problema. Aparte de la puntuación del juego, la IA tiene su propio sistema de puntuación el cual es la base de su motivación, ya que aumenta en +1 cada vez que consigue superar una “salient event“.

Events

Ejemplo del análisis de los eventos en dos juegos, Freeway y Pitfall. Fuente.

Finalmente utilizando esta técnica, después de 50 millones de fotogramas, la IA que utilizaba esta técnica ha podido visitar hasta 15 habitaciones del juego, mientras el mismo agente sin motivación sólo pudo llegar a ver dos. La puntuación conseguida por la primera IA fue de 2461 puntos con 50 fotogramas y 3439 analizando el juego utilizando 100 millones de fotogramas:

BonusMontezuma

Niveles superados sin “bonus” (motivación) o con “bonus”. Fuente.

Este es el documento publicado por Google Deepmind, en él podéis encontrar con todo detalle matemático cómo han conseguido añadir esta característica a su IA.

Aunque pueda parecer que estos resultados no tienen mucha utilidad en el mundo real, el equipo de Google DeepMind ya está trabajando para aplicar esta técnica a modelos reales como el análisis del clima o incluso enfermedades.

Además amigos, la cosa se pone aún más interesante, los nuevos desafíos de Deepmind son ahora los juegos en 3D (¿alguien ha gritado DOOM?) y de estrategia en tiempo real (como el famoso Starcraft).

Ahora sí que empieza el espectáculo.

Enlaces:

Wired

The Verge

Google Deepmind DQN

Bonus:

Código fuente de Montezuma´s Revenge Atari 2600

Entradas relacionadas:

Aprende ensamblador dibujando pixeles

by tuxotron - on Abr 12th 2016 - No Comments


box-256.png

Aprender a jugando es probablemente la mejor forma de aprender. Esto es aplicable, yo diría, que a cualquier materia. En este caso la idea es aprender ensamblador o más bien la “forma de pensar” cuando nos sentamos a escribir código en ensamblador, ya que dependiendo de la arquitectura dicho lenguaje varía, pero las formas y metodología es prácticamente la misma.

En box-256.com podemos pasar un buen rato jugando con un sistema ficticio de 8bits, con 256 bytes de memoria, 16 colores y pantalla de 16×16. En éste, nuestro objetivo es reproducir exactamente el juego de pixeles de la parte inferior de la column output con el número mínimo de ciclos de CPU.

Si te fijas bien en dicha columna, está dividida en dos partes, la parte superior está inicialmente vacía y la parte inferior tiene una serie de pixels formando un gráfico en uno o varios colores. Nuestro objetivo es reproducir una copia exacta escribiendo código en ensamblador en la parte izquierda de la pantalla, la que además representa la memoria. En la columna derecha disponemos de una ayuda abreviada sobre las instrucciones, tipos de datos y colores de los pixeles.

El juego dispone de una ayuda bastante más amplia la cual puedes consultar aquí, donde encontrarás información más detallada sobre el juego en si, el conjunto de operaciones con sus códigos de operación y sintaxis, el uso de valores constantes, direcciones de memoria y punteros, etc

El primer reto ya viene solucionado y puedes ejecutarlo paso a paso para hacerte una mejor idea de como funciona y cuales son tus objetivos. El juego actualmente dispone de un total de 12 niveles o retos.

Aunque puedes jugar perfectamente desde el navegador, ahí una pequeña pega, y es que no puedes copiar el código al portapapeles, si esto es un problema para ti, puedes descargar una versión de dicho juego para Windows.

Entradas relacionadas: