En lo profundo del aprendizaje automático

La inteligencia artificial está de moda. Desde visiones más apocalípticas hasta la aparición de nuevas aplicaciones y frameworks que hacen más fácil a los desarrolladores este tipo de aplicaciones. Y hoy precisamente, vamos a hablar de uno de estos frameworks: TensorFlow. En el artículo, TensorFlow: Large-Scale Machine Learning on Heterogeneous Distributed Systems Google nos enseña su evolución y su funcionamiento.

¿Qué es TensorFlow?

Cómo ellos mismos describen, es una biblioteca de software de código libre para la computación numérica usando grafos de flujos de datos. En el artículo, destacan cómo en 2011 empezaron a trabajar en el proyecto «Google Brain», con el objetivo de explorar el uso de las redes neuronales profundas de gran escala, tanto desde el punto de vista de investigación como desde el punto de vista de producto. TensorFlow es la evolución de la primera aproximación que realizaron en este campo, obteniendo un modelo de programación más flexible y un rendimiento significativamente mejor.

Los conceptos básicos

Dentro del framework, la computación es descrita como un grafo dirigido, compuesto por una serie de nodos. Cada uno de estos nodos puede tener múltiples entradas y múltiples salidas, siendo los tensors los valores que fluyen a través de los arcos del grafo. Por otro lado, las operaciones representan una operación abstracta (por ejemplo, una suma) mientras que los kernels es una implementación concreta de una operación que puede ser ejecutada en un dispositivo concreto (por ejemplo, una GPU). Finalmente, las sesiones es el mecanismo en el que los clientes interactúan con el sistema.

Ejemplo de código: Hola Mundo

Si estáis interesados en ver como se construyen estos sistemas han empezado a aparecer ejemplos de código. Uno de los más interesantes (además del de la propia página web de TensorFlow) es el creado por Aymeric Damien en el que se puede acceder al código de ejemplo, así como a los cuadernos de iPython para ver el código con mayor nivel de detalle. A modo de ejemplo, vamos a mostrar aquí el código correspondiente al clásico «Hola Mundo», sacado de sus ejemplos.

import tensorflow as tf
# Create a Constant op
 # The op is added as a node to the default graph.
 # The value returned by the constructor represents the output of the Constant op.
 hello = tf.constant('Hello, TensorFlow!')

# Start tf session
 sess = tf.Session()

print sess.run(hello)

Como se puede observar, crea una operación constante que almacena el string «Hello, TensorFlow!». Posteriormente genera una sesión y lanza la operación hello anteriormente creada en la sesión instanciada.

El futuro de la inteligencia artificial

TensorFlow no es más que un ejemplo del desarrollo que se está produciendo en los últimos años en esta área. Aplicaciones punteras de uso común, como Facebook, Google o Airbnb tienen buena parte de sus sistemas monitorizados con este tipo de algoritmos para recomendarnos el mejor alojamiento, la mejor búsqueda, o localizar a amigos de nuestra infancia.

Los miedos de gente tan reputada como Elon Musk o Stephen Hawking se basan en el espectacular crecimiento de este tipo de sistemas en los últimos años y, en general, en la experiencia pasada de convertir grandes avances de la humanidad en grandes peligros para nosotros mismos.

Borja Sanz
Acerca de
Investigador de S3lab
Expertise: Malware, Artifical Intelligence, Mobile Security, Android