Cómo entrenar a tu IA

  • December 5, 2016
  • cybercaronte
  • https://cyberhades.ams3.cdn.digitaloceanspaces.com/imagenes/31406720546_7496797da3_o_opt.png Fotos: Web OpenAI

    ¿Tienes una IA pero no sabes cómo probarla? 

    Pues ya no tienes que preocuparte, OpenAI te ofrece su nueva plataforma llamada Universe la cual te permite comprobar y entrenar una IA utilizando juegos, páginas web ó incluso aplicaciones como medio de pruebas.

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

    https://cyberhades.ams3.cdn.digitaloceanspaces.com/imagenes/30635483973_5750445183_o_opt.png

     

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

    • Juegos Atari
    • Juegos Flash
    • Juegos con recompensas (juegos con puntuación por ejemplo)
    • Tareas con navegadores (navegar, leer, hacer click, etc).
    • Mini World of Bits (tareas sencillas muy específicas como leer un texto, identificar formas, etc)
    • Tareas con navegadores más reales (reservar un hotel por ejemplo

    Esta infraestructura permite que cualquier aplicación, juegos, página web, etc que pueda integrarse en un contenedor Docker (este es el entorno ideal) ó en una máquina virtual (este no funciona tan bien como Docker) sea susceptible de ser integrada dentro de Universe. Esto abre otro mundo de posibilidades, como el subir tu propia aplicación, juego, página web, etc y que lo prueben los agentes de OpenAI, un verdadero centro de pruebas realmente útil para tareas de testing.

    La instalación es bastante sencilla, sólo necesitas Docker y Universe

    $ git clone https://github.com/openai/universe && pip install -e universe

    Luego instalamos el port de VNC para poder controlar el teclado y el ratón, además incluimos el tipo de entorno, en el ejemplo son juegos flash:

    $ docker run --privileged --cap-add=SYS_ADMIN --ipc=host \ -p 5900:5900 -p 15900:15900 quay.io/openai/universe.flashgames

    Finalmente sólo tenemos que conectarnos con nuestro visor VNC al puerto 5900.

    Pero claro, para poder hacer las pruebas tenemos que crear nuestro propio agente de IA. Tenemos varias opciones utilizando Frameworks como por ejemplo TensorFlow ó Theano (OpenAI te ofrece la opción de comenzar con un agente inicial creado con Theano). Este agente de pruebas utiliza la librería NumPy para el control de los pixels (o en otras palabras, ver la pantalla), y además genera los eventos necesarios para controlar el ratón y el teclado a través de VNC.

    Este es un ejemplo de un agente que activará el juego flash “Dusk Drive” (es un juego de coches) y pulsará la tecla “hacia adelante” (que se realiza con la flecha arriba del teclado) constantemente:

     

    import gym
    import universe # register Universe environments into Gym

    env = gym.make('flashgames.DuskDrive-v0') # any Universe environment ID here
    # If using docker-machine, replace "localhost" with your Docker IP
    env.configure(remotes="vnc://localhost:5900+15900")
    observation_n = env.reset()

    while True:
      # agent which presses the Up arrow 60 times per second
      action_n = [[('KeyEvent', 'ArrowUp', True)] for _ in observation_n]
      observation_n, reward_n, done_n, info = env.step(action_n)
      env.render()

     

    Puedes simplemente estar como observador viendo como juega la AI o puedes unirte también para jugar en modo cooperativo.

    Para que veáis que la cosa va en serio, estos son sólo algunas de las aplicaciones y juegos que dan soporte a OpeanAI para este proyecto:

    Portal, Fable Anniversary, World of Goo, RimWorld, Slime Rancher, Shovel Knight, SpaceChem, Wing Commander III, Command & Conquer: Red Alert 2, Syndicate, Magic Carpet, Mirror's Edge, Sid Meier's Alpha Centauri, y Wolfram Mathematica.

    Un proyecto realmente espectacular sobre el cual tendremos que hacer un seguimiento exhaustivo. Además, seguro que más de uno ya está pensando en cómo sacar partido a esta plataforma para montar un entorno de pentesting para temas de seguridad ¿verdad? ;)

Un teorema para cada día

  • December 4, 2016
  • cybercaronte
  • https://cyberhades.ams3.cdn.digitaloceanspaces.com/imagenes/30599799424_50cb651774_o_opt.png

    Siguiendo la misma filosofía de otras páginas web como por ejemplo, Astronomy Picture of the Day, esta página nos ofrece una breve pero muy completa explicación de un teorema cada día:

    Theorem of the Day

    Además cada teorema se publica en PDF en formato “cheat sheet” el cual suele ocupar una sola página, pero con una completa descripción y explicación del mismo.

    En este enlace puedes ver una lista con todos los teoremas publicados hasta ahora.

Vídeos de App Sec USA 2016