Tutoriales de Programación
Primeros pasos en Machine Learning con TensorFlow

Primeros pasos en Machine Learning con TensorFlow

por Daniela Gutierrez   |   February 16, 2021   |     6 min. de lectura
facebook twitter linkedin

TensorFlow es la principal biblioteca de Inteligencia Artificial, usada y creada por el equipo de Google Brain. Hace 5 años es pública y, actualmente, es usada por académicos, startups y grandes compañías. 

A esta  tecnología  le debemos poder prender y apagar focos o establecer alarmas con un simple “¡OK, Google!”, también es la responsable de predecir nuestras búsquedas en Google con pocos caracteres — como si fuera un juego de Charadas — y muchas cosas más. 

TensorFlow ofrece una colección de flujos de trabajo para desarrollar y entrenar modelos mediante Python, JavaScript o Swift; para así implementarlos fácilmente en la nube, de forma local, en el navegador o en el dispositivo, más allá del lenguaje que se use.

TensorFlow 2.0 Alpha fue lanzada en marzo del 2019 con nuevas características, así como mejoras en la experiencia de usuario y la integración de Keras como su API. Esta es una de las razones por las que se ha convertido en una gran alternativa para profesionales que quieren incursionar en el campo de la Inteligencia Artificial.

Su principal interfaz es Python, pero su funcionalidad núcleo está escrita en C++, por cuestiones de desempeño. 

TensorFlow tiene una función llamada TensorBoard para la visualización de gráficas. Esto, por ejemplo, le permite  al desarrollador ver una representación de la red neuronal construida y validar la abstracción del modelo.   

Esta biblioteca se maneja bajo la licencia de software abierto Apache 2.0, es decir que su uso no cuesta y que se puede modificar y distribuir dichos cambios sin tener que pagar a Google.

Algunas de las posibilidades que brinda TensorFlow, usando el entrenamiento y ejecución de redes neuronales profundas son:

  • Reconocimiento de imágenes.
  • Clasificación de números escritos a mano.
  • Procesamiento del Lenguaje Natural (PLN).
  • Traducción automática por medio de modelos de secuencia a secuencia.
  • Cumplimiento de predicciones.
  • Refinamiento de resultados futuros.

La NASA descubre planetas con TensorFlow

Esta biblioteca brinda mundos o — mejor dicho — planetas de posibilidades. En el 2017, la NASA construyó un modelo para diferenciar el brillo emitido por un planeta del brillo causado por otros factores. Después de su conceptualización, el modelo se probó y ajustó validando el método con el que separaba planetas reales de falsos positivos. 

El siguiente paso fue traer datos históricos de 670 posibles planetas para su clasificación. Hasta el 2020, 50 nuevos planetas podrían ser identificados utilizando estas técnicas de Inteligencia Artificial y cruce de datos históricos.

¿Cómo usar TensorFlow?

Uno de los retos más comunes al trabajar con aplicaciones de Machine Learning es que requiere una mentalidad distinta a la programación. Aquí el objetivo no es resolver un problema en específico, sino modelar una aplicación capaz de resolver muchos problemas desconocidos. 

¿Cómo estar preparado para esto? El poder de Machine Learning  es descubrir patrones en cantidades considerables de datos y lidiar con probabilidades. Debido a su nivel de abstracción, TensorFlow permite que los desarrolladores se concentren en la lógica general de la aplicación. Por eso hay una gran necesidad de que los desarrolladores estén familiarizados con nuevos conceptos y estructuras de datos.

La arquitectura de TensorFlow trabaja en tres partes:

  1. Pre Procesar la información.
  2. Construir el modelo.
  3. Entrenar y estimar el modelo.

Sus elementos principales son:

TensorVector o matriz multidimensional. Todos los cálculos pasan a través de uno o más tensores.
Placeholder o marcador de posiciónTipo de Tensor que recibe datos de una sesión. Este se alimenta solo durante una sesión.
GráficoContenedor donde se guardan todas las operaciones y tensores.
SesiónEjecuta las operaciones del gráfico. Se deberá ejecutar un operador para crear salida.
Función de pérdidaMétrica utilizada para estimar el rendimiento de la fase de aprendizaje de nuestro modelo. Evaluación de ¿Qué tan buena o mala es la estimación?
OptimizadorEstimación que permite mejorar el aprendizaje mediante la actualización de los conocimientos en la red.

Piedra, Papel o Tijera, TensorFlow en un ejemplo

Un modelo de reconocimiento de imágenes de Piedra, Papel o Tijera, un juego popular y con una lógica rápida de aprender. 

¿Qué pasa en nuestro cerebro al jugarlo? Reconocemos y clasificamos lo que vemos según la forma que toman las manos.

¿Cómo hacer que la computadora actúe igual? Debemos pensar en las variantes de representación de los elementos piedra, papel y tijera. Por ejemplo, Juan puede representar las tijeras ocultando totalmente el pulgar, pero María lo hace con el pulgar un poco angulado.

Con programas tradicionales, esto implicaría muchas líneas de código definiendo y creando reglas de las diferentes variaciones de piedra, papel y tijera.

¿Cómo se optimiza al utilizar TensorFlow? Bajo este esquema alimentamos datos y respuestas a la computadora, permitiendo que esta defina los patrones y las reglas de cuando la imagen es una piedra, es un papel, o una tijera.

Esta es la esencia del Machine Learning. Se obtiene un conjunto de datos con patrones inherentes y la computadora aprende cuáles son esos patrones.

Los pasos básicos:

  1. Cargar los datos de imágenes de piedra, papel, y tijera previamente categorizados.
  2. Definir el número de neuronas dependiendo de las categorías, en este caso 3 (piedra, papel, y tijera). Cada una almacenará las probabilidades de su categoría.
  3. La función de pérdida medirá la distancia entre el resultado actual y el esperado. 
  4. El optimizador generará parámetros nuevos con el fin de mejorar el desempeño, de esta forma en una nueva iteración el modelo nos traerá imágenes que tengan mayor probabilidad de ser el elemento que le pedimos (piedra, papel o tijera).
  5. Evaluar el modelo con nuevas imágenes.

Sin duda, TensorFlow es una de las herramientas más populares y cada versión traerá mayor rango de posibilidades. Una vez pasada la curva de aprendizaje de esta biblioteca — y que los nuevos desarrolladores se familiaricen con los tipos de datos — será muy fácil crear aplicaciones sofisticadas.  

¡Manos a la obra!

3 recursos útiles para empezar a trabajar con TensorFlow

  1. Para revisar las funciones y la estructura de datos se recomienda visitar la documentación oficial.  
  2. Al manejar TensorFlow es vital familiarizarse con los tipos de datos. Una cheat sheet o “acordeón” puede ser consultada aquí.
  3. Para realizar consultas o compartir experiencias de problemas resueltos con otros usuarios, StackOverflow es una gran opción. 
Deja un comentario