¿Para qué sirve TensorFlow?

¿Qué es TensorFlow?

TensorFlow es una biblioteca de software de código abierto para computación numérica, que utiliza gráficos de flujo de datos. Los nodos en las gráficas representan operaciones matemáticas, mientras que los bordes de las gráficas representan las matrices de datos multidimensionales (tensores) comunicadas entre ellos.

TensorFlow es una gran plataforma para construir y entrenar redes neuronales, que permiten detectar y descifrar patrones y correlaciones, análogos al aprendizaje y razonamiento usados por los humanos.

La arquitectura flexible de TensorFlow le permite implementar el cálculo a una o más CPU o GPU en equipos de escritorio, servidores o dispositivos móviles con una sola API. TensorFlow fue desarrollado originalmente por investigadores e ingenieros que trabajaban en el equipo de Google Brain Team, dentro del departamento de investigación de Machine Intelligence, con el propósito de llevar a cabo el aprendizaje automático y la investigación de redes neuronales profundas.

Sin embargo, el sistema es lo suficientemente general como para ser aplicable a una amplia variedad de otros dominios igualmente.

tensorflow.org

En mayo de 2016 Google anunció TPU (Tensor Processing Unit). Se trata de una construcción ASIC específica para el aprendizaje automático y adaptada para TensorFlow.

El TPU es un acelerador de Inteligencia Artificial programable, orientado para utilizar o correr modelos más que para entrenarlos. Google anunció que habían usado TPUs en sus centros de datos durante más de un año, descubriendo que su rendimiento era 10 veces mayor (energéticamente) en tareas de aprendizaje automático que los sistemas tradicionales.

¿Cómo comenzó TensorFlow?

TensorFlow es el sistema de aprendizaje automático de segunda generación de Google Brain, liberado como software de código abierto en 9 de noviembre del 2015.

TensorFlow, que ya es la plataforma de código abierto para Machine Learning de Google, es la herramienta más utilizada en el mundo del Deep Learning. Parte del éxito es la cultura de Google: «código primero, código siempre». Hay muchos más ingenieros de software que expertos en Machine Learning (ML), por lo que TensorFlow (TF) ayuda a los desarrolladores a acercarse al ML a través del código.

En 2011, el equipo de Google Brain Team trabajó en la primera plataforma de Deep Learbing, que llamaron DistBelief. Dedicaban como un 20% de su tiempo a este provecto. El equipo fue creciendo y la plataforma tomó una buena forma. Ya en 2014, decidieron empezar a construir TensorFlow como sucesor de DistBelief.

Algunos ejemplos de aplicación de TensorFlow

1. Para mejorar la fotografía de los smartphones

Una de las aplicaciones más interesantes está en los teléfonos. Por ejemplo, el Pixel 2 que se lanzó este año, incluye efecto bokeh con una sola cámara. Se crea un modo retrato que separa a la persona del fondo, cuando esto era algo reservado para dispositivos con doble cámara. Y esto se consigue con el TensorFlow de Machine Learning, entrenando un modelo de TensorFlow en el backend, pero también ejecutándolo en el propio teléfono. No es tarea sencilla.

girl-with-the-orange-hat-s.jpg

Se trata un área muy interesante. Otras empresas necesitan múltiples cámaras para lograr básicamente el mismo resultado. La rapidez de la solución y el fantástico resultado que tiene es todo un hito tecnológico. Google ha sido capaz de imitar un efecto propio de la física óptica con sólo software y aprendizaje profundo.

2. Para ayudar al diagnóstico médico

El sector de la salud es uno de los campos que más se están revolucionando y que mayor impacto tendrá para todos nosotros como sociedad en los próximos años.

TensorFlow ya está mejorando las herramientas que utilizan los médicos, por ejemplo ayudándoles a analizar radiografías. El Deep Learning va a permitir a los facultativos médicos pasar más tiempo con los pacientes, además de permitirles hacer actividades más interesantes y emocionantes.

deep-learning-applications-in-medical-imaging-10.png

El Deep Learning podría estar en los dispositivos que llevan los médicos con ellos, por lo que definitivamente hay necesidad de que TensorFlow funcione en gran variedad de dispositivos.

3. Procesamiento de imágenes

Una de las aplicaciones más conocidas de TensorFlow es el software automatizado de procesamiento de imágenes, DeepDream. Se trata de un programa de visión artificial creado por el ingeniero de Google Alexander Mordvintsev, que utiliza una red neuronal convolucional para encontrar y mejorar patrones en imágenes mediante pareidolia algorítmica, creando así una apariencia alucinógena, similar a un sueño, creando imágenes deliberadamente sobreprocesadas.

3048941-poster-p-1-why-google-deep-dreams-of-dogs.jpg

Google popularizó el término Deep Dreaming, simulando la idea de «sueño profundo». Curiosamente, también se ha demostrado que el modelo DeepDream tiene aplicación en el campo de la historia del arte; algo de lo que hablaremos próximamente en otro artículo.

Flexibilidad y software libre

TensorFlow se construyó pensando en el código abierto y en la facilidad de ejecución y escalabilidad. Permite ser ejecutado en la nube, pero también en local. La idea es que cualquiera pueda ejecutarlo. Se puede ver a personas que lo ejecutan en una sola máquina, un único dispositivo, una sola CPU (o GPU) o en grandes clústeres. La disparidad es muy alta.

Y si realmente se desea escalar, la nube es un gran lugar para hacerlo. Se puede obtener mucha automatización. Google quiere asegurarse de que todo el mundo utilice TensorFlow, no necesariamente empujarlos hacia una u otra dirección.

edge-computing-diagram-1024x512.png

El futuro de TensorFlow en el IoT

El Internet of Things (IoT) empieza a crecer y despegar. Hay un importante número de startups que están intentando crear lugares para la recolección de datos y que realmente están llevando el aprendizaje automático al límite. El IoT es un área muy interesante, pues desembocará en el Edge Computing.

Por un lado, cuantos más datos y más heterogéneos e indefinidos, más interesante para el futuro del Deep Learning. Por otro lado, TensorFlow va enfocado a ejecutarse en distintos dispositivos y arquitecturas. Empresas como IBM o Atos tienen esta integración en el punto de mira.

TensorFlow seguirá dando que hablar. La comunidad de desarrolladores sigue aumentando y las librerías no paran de crecer y mejorar. Si quieres adentrarte de verdad en el mundo de la Inteligencia Artificial, TensorFlow es una plataforma básica para seguir avanzando.

Fuentes: Puentes Digitales   Cicero.AI