A pesar de que últimamente las redes de neuronas artificiales han derivado en importantes avances en técnicas de reconocimiento de imágenes y de habla, el conocimiento sobre su funcionamiento exacto es bastante limitado. En su intento por cubrir estas lagunas, un grupo de científicos ha obtenido resultados sorprendentes, como queda reflejado en un artículo publicado Google Research Blog.
Una red de neuronas artificiales se entrena generando millones de ejemplos y ajustando poco a poco sus parámetros hasta que da la clasificación que se necesita. La red suele estar compuesta de entre 10 y 30 capas de neuronas artificiales. Cada imagen se introduce en la capa de entrada que luego se comunica con la siguiente y así sucesivamente, hasta obtener el resultado final.
Lea también: Las 10 tendencias tecnológicas más importantes de 2015
Una manera de visualizar lo que ocurre en cada nivel consistiría en iniciar un proceso opuesto y pedir a la red que mejore una imagen de entrada de tal forma que permita obtener una interpretación particular. Por ejemplo, para saber qué tipo de imagen resultaría en un 'plátano', habría que empezar con una imagen llena de ruido aleatorio y luego modificarla hacia lo que la red considera un plátano.
Sorprendentemente, resulta que las redes de neuronas artificiales que se entrenaron para diferenciar entre distintos tipos de imágenes también cuentan con suficiente información necesaria para generar imágenes. Esto se aprecia en los siguientes ejemplos de ñu, taza medidora, hormiga, estrella de mar, pez anémona, plátano, paracaídas y tornillo.
Las redes se entrenan con un gran número de ejemplos que les permiten extraer la esencia de una cosa y aprender a distinguir los elementos que no son importantes. El proceso descrito arriba ayuda precisamente a comprender si la red aprende las características correctas. Por ejemplo, en la siguiente imagen, la red ha dibujado pesas junto con un brazo, probablemente porque en ninguno de los ejemplos de entrenamiento que se le habían mostrado aparecían por separado. Este resultado ayudaría a corregir errores similares de entrenamiento.
En lugar de prescribir qué característica se quiere que la red amplíe, es posible permitirle a la red decidirlo sola. No obstante, el resultado va a depender en gran parte de la capa de la red a la que se le hace la prueba. Por ejemplo, las capas básicas, que determinan los bordes y su posición en la imagen, van a sobreponer trazos y ornamentos sencillos.
En el siguiente ejemplo, se ve el resultado obtenido en las capas más superiores que buscan objetos enteros en las imágenes. "Cualquier cosa que veas, queremos más de eso", dicen los desarrolladores a la red. Como resultado, por ejemplo, puede acabar encontrando un pájaro inexistente en una nube.
Según muestran los resultados, incluso una red de neuronas relativamente sencilla puede usarse para interpretar con exageración una imagen. La siguiente red, por ejemplo, fue entrenada principalmente a base de imágenes de animales, en consecuencia, tiende a interpretar formas como animales.
La técnica puede aplicarse a cualquier tipo de imagen. En los ejemplos siguientes se ve cómo las montañas se convierten en torres, árboles en edificios, y hojas en pájaros.
Para conseguir unos cuadros realmente interesantes, los investigadores han dado un paso más allá, al introducir una imagen en la red y luego, agregar el resultado, y así sucesivamente, aplicando un 'zoom' en cada etapa. Es posible incluso utilizar una imagen con ruido aleatorio como principal, de modo que el resultado pertenezca por completo a la red de neuronas, como ocurre en las siguientes imágenes.
Las técnicas descritas, además de ayudarnos a comprender mejor el funcionamiento de las redes, también nos hacen pensar si estas redes se podrían convertir en un instrumento para los artistas, o quizás incluso arrojar un poco de luz sobre el origen del proceso creativo en general.