aproximadamente
Publicado el 11 de marzo de 2020

Cómo abordar proyectos de machine learning con TensorFlow en Python

Cómo abordar proyectos de machine learning con TensorFlow en Python

El furor que despierta el machine learning ha colocado a TensorFlow, el software de código abierto de Google para proyectos de aprendizaje automático, en la cresta de la ola, especialmente cuando se combina con el lenguaje de programación Python. El último informe The State of the Octoverse de GitHub subraya que TensorFlow ha sido uno de los proyectos que más movimiento ha registrado en la plataforma de coding durante 2019. 9.900 usuarios contribuyeron a su crecimiento planteando preguntas e incidencias; y, hasta la fecha, se han abierto 46.000 repositorios que utilizan TensorFlow, como los de las librerías NumPy o PyTest.

Qué es TensorFlow y para qué se utiliza

  • TensorFlow es una plataforma de código abierto para computación numérica basada en grafos. Cuenta con el sello de Google y permite desarrollar, con relativa facilidad, aplicaciones de machine learning que nos ofrecerán predicciones, clasificaciones o recomendaciones basadas en el análisis de un conjunto de datos. A medida que el sistema recoge más y más información, aprende de manera automática y la fiabilidad de sus resultados aumenta. TensorFlow puede correr en una o en múltiples CPU y GPU, así como en dispositivos móviles.

    TensorFlow tiene múltiples usos. Uno de los más destacados es el desarrollo de redes neuronales artificiales empleadas en:

    • El reconocimiento y la clasificación automática de imágenes, identificando a las personas y objetos que aparecen en ellas.
    • La comprensión de señales de audio y búsquedas por voz (muy en boga por el auge de los altavoces inteligentes).
    • El análisis de series temporales para evaluar comportamientos y prever qué ocurrirá a continuación. Muy útil en marketing para ofrecer recomendaciones de productos a potenciales clientes o para adelantarse a las cancelaciones del servicio; en salud para prevenir patologías; o en el mercado de los seguros, para calcular el riesgo de que el tomador experimente un percance.

Proyectos de machine learning: ¿por qué TensorFlow en Python?

Combinar TensorFlow y Python es una de las fórmulas más eficaces y sencillas para el desarrollo de aplicaciones de machine learning. ¿Por qué?

Ventajas de Python en el campo del machine learning

Python será uno de los lenguajes de programación más usados en el año 2020. Ocupa el segundo lugar entre los más populares en la última Developer Survey de Stack Overflow y el tercero en el índice TIOBE. Usar Python en el ámbito del machine learning ofrece grandes ventajas porque:

  • Es amigable, fácil de utilizar y aprender. Ideal para principiantes en el mundo del desarrollo.
  • Es un lenguaje full stack, apto para programar tanto desde el lado del servidor como desde el cliente.
  • El gestor de paquetes de Python, PyPi, cuenta ya con más de 10.000 paquetes de uso científico a disposición de los usuarios.

codigo-lenguaje-programacion-python

Ventajas de TensorFlow para proyectos de machine learning

Por su parte, de TensorFlow cabe destacar:

  • Su interoperabilidad. Un mismo modelo de machine learning escrito en un lenguaje puede extrapolarse fácilmente a otro.
  • La gran cantidad de modelos ya desarrollados por la comunidad TensorFlow que favorecen que, para construir el tuyo, no tengas que empezar desde cero.
  • El elevado volumen de recursos que ofrece Google, en forma de tutoriales o redes neuronales ya creadas, que allanan el aprendizaje.
  • Su versatilidad. Se trata de una biblioteca de computación genérica, no solo enfocada al deep learning, como es el caso de Keras o PyTorch. Sirve tanto para proyectos pequeños como para desafíos complejos y de gran calado.

Conceptos clave en los proyectos de machine learning con TensorFlow

A la hora de desarrollar proyectos de machine learning con TensorFlow en Python, es necesario familiarizarse con algunos conceptos clave como:

  • Tensores: estructuras algebraicas que contienen diferentes valores numéricos y por las que van a fluir los datos en nuestro sistema.
  • Modelos: funciones que persiguen obtener un resultado determinado a partir de unos datos de entrada.
  • Épocas: número de veces que el modelo recibe los mismos datos de entrada durante su proceso de entrenamiento.
  • Función de pérdida: calcula la fiabilidad del resultado obtenido en cada iteración.

De forma sucinta, podríamos decir que con TensorFlow se persigue desarrollar un modelo de machine learning que, con un data set de entrada y entrenamiento de por medio, sea capaz de establecer generalizaciones. Antes de agregar el conjunto de datos, es preciso preprocesarlos para que el sistema pueda sacarles partido. Después, para el entrenamiento, habrá que prever un número de épocas suficiente, para que el modelo aprenda; pero no excesivo, ya que esto podría viciar los resultados.

En los proyectos de machine learning con TensorFlow en Python es posible recurrir a librerías adicionales que harán más sencilla la tarea de programación. Nos referimos a, por ejemplo, NumPy y SciPy para funciones matemáticas; Pandas y Seaborn, para la explotación estadística y la visualización de datos; o Matplotlib para la generación de gráficos.

 


 

Etiquetas: Informática

Artículos Relacionados

¿Qué es el overfitting en machine learning y cómo evitarlo?

En cierto punto del aprendizaje del machine learning, la mayoría de los principiantes se encuentra con el mismo problema. Y entonces, surge una pregunta unánime. ¿Por qué, con el ...

Topics: Informática

Técnicas de desarrollo seguro de software

¿A que te suena esta historia? Trabajas como desarrollador o desarrolladora en un proyecto de diseño e implantación de software. Los plazos de entrega son ajustados y, en ...

Topics: Informática

HTTP/3, el protocolo que nos traerá (por fin) un Internet más rápido

Desde su nacimiento en los años 80 del siglo pasado, Internet ha utilizado siempre TCP como columna vertebral de su HTTP (Hypertext Transfer Protocol), el protocolo que organiza ...

Topics: Informática