You Are Browsing ‘Google’ Category

Extensa lista de recursos para convertirte en un buen ingeniero de software

by tuxotron - on Oct 7th 2016 - No Comments


software-eng.jpg

Hace algún tiempo publicamos una entrada sobre una guía creada por Google para convertirte en un buen ingeniero de software.

John Washam tiene un objetivo, y es el de convertirse en un empleado de Google. Para ello a creado en Github un repositorio con una amplia lista de recursos, que según él, debes conocer para que Google te contrate. Como decía, la lista es bastante amplia y va mucho más allá de ser una lista de recursos para ser contratado por Google, con ésta tienes bastante información para convertirte en un gran ingeniero de software.

En dicha guía puedes encontrar: teoría sobre estructura de datos y algoritmos, plan de estudio, libros, vídeos, clases, retos de programación, consejos durante la entrevista de trabajo, etc. El objetivo es prepararte para esa ansiada entrevista de trabajo.

Os dejo aquí el índice para que os hagáis una idea del contenido:

Entradas relacionadas:

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: