domingo, 9 de agosto de 2015

¿Sueñan los programas informáticos con ovejas eléctricas?


Los ordenadores han supuesto una verdadera revolución en numerosos aspectos de nuestra sociedad: desde la investigación en nuevos fármacos hasta el control del tráfico aéreo serían imposibles sin las capacidades de cálculo de estas maquinejas. Sin embargo, aún hay ciertos aspectos en los que los humanos ganamos a los ordenadores: uno de ellos es nuestra habilidad de aprender.



Por si tienes curiosidad, este reto ya ha sido superado.
¿Para qué queremos que una máquina aprenda? Por ejemplo, para poder digitalizar libros escaneando sus palabras y reconociendo las letras. O para fabricar coches que se conduzcan solos y sepan detectar peligros y actuar en consecuencia. O para identificar bosones de Higgs entre infinidad de datos del LHC. O incluso para predecir los gustos de los clientes.

Hay diversos enfoques para conseguir máquinas que aprendan (puedes encontrar una amena intro aquí). Uno de ellos es el de las redes neuronales. La idea es copiar el modelo de procesamiento de un cerebro: la tarea a realizar se divide entre diferentes agentes interconectados que trabajan en paralelo, llamados neuronas. Una posible opción para la conexión de las neuronas es la que se emplea en el Deep Learning: hay distintas capas que se ocupan de los distintos grados de complejidad del problema.

Los chicos de Google estaban diseñando un programa para el reconocimiento de imágenes usando Deep Learning. Iban modificando los parámetros de la red neural a medida que enseñaban al programa mostrándole imágenes de prueba. Todo funcionaba bien, pero en Google tenían una duda: ¿cómo se relacionaban entre sí las capas de neuronas?¿A qué se dedicaba cada una?

Para averiguarlo, retocaron un poco el programa. Le pidieron que, además de reconocer objetos en las imágenes, las distintas capas marcaran los patrones que habían reconocido. Así consiguieron dos cosas. En primer lugar comprendieron mejor el funcionamiento de las diferentes capas: las capas inferiores se dedicaban a reconocer patrones geométricos, mientras que las superiores estaban obsesionadas con ver en todas partes perros, pájaros o coches.


El otro hallazgo es que el programa es capaz de crear imágenes con cierto atractivo artístico, y, la verdad sea dicha, también un toque psicodélico. El caso es que las imágenes se han hecho bastante populares: tienen su propio reddit, e incluso se ha unido el actor Wil Wheaton.

Todas las herramientas necesarias para hacer estas imágenes son de código abierto. Así que si tienes un Linux o Mac y unos conocimientos básicos de programación en Python, puedes trastear un poco con los ajustes. Si no, siempre puedes jugar con páginas web que consiguen los mismos efectos. 
¡Ah, y ten cuidado de no marearte!