44

Cuatro librerías de Machine Learning: TensorFlow, Scikit-learn, Pytorch y Keras

17561Puntos

hace 6 años

El flujo de trabajo de Machine Learning se puede dividir en 4 pasos: preparación de los datos, representación, aprendizaje y evaluación del modelo utilizado.

  1. Recolectar la información. Existen distintos tipos de datos útiles, por ejemplo las bases de datos públicas, bases de datos de empresas o incluso información libre en internet que se puede obtener con un scraper de datos. En esta etapa se deben limpiar los datos haciendo uniones entre las diferentes bases de datos.

  2. Representación de los datos. No existe una sola forma de representar los datos, en una base hay objetos o ejemplos en las filas, y características en las columnas. Es importante que estas características sean relevantes, útiles y que nos permitan entrenar el modelo.

  3. Aprendizaje. Para esta fase debemos elegir un algoritmo que alimentaremos con datos de entrenamiento. Así se obtiene un modelo que puede generar predicciones basadas en datos.

  4. Evaluación del modelo. Al retomar los datos de una predicción generada por el modelo se pueden comparar con los datos reales que se utilizaron para alimentar el algoritmo. Así se puede obtener una métrica de rendimiento para decidir si el modelo es satisfactorio o si se debe iterar el proceso.

Hace poco tuve una conversación con Will Wolf sobre Machine Learning. Me explicó algunos detalles sobre diferentes librerías y frameworks como Pytorch y TensorFlow, y utilizó una analogía ideal para mi: un restaurante.

Imagina que estás creando el menú de un restaurante y tu meta es crear platos increíbles. Empiezas a diseñar el menú y decides qué tipos de platos vas a tener: un plato fuerte, una bebida y quizás un postre. Esto sería el equivalente a crear la arquitectura de una red neuronal: va a tener una cantidad determinada de capas, ciertos tipos de filtros, algunos parámetros y formas de outputs. Para hacer esto es común utilizar librerías como Keras o Pytorch.

Qué es Keras

Keras es una librería escrita en Python, diseñada específicamente para hacer experimentos con redes neuronales. Permite crear prototipos rápidamente y de manera fácil, pues está pensada para que sea fácil de usar. Tienen una filosofía que la hace ideal para lo que estamos explicando sobre el restaurante:

Tener la posibilidad de pasar de una idea a un resultado con el mínimo retraso posible es clave cuando haces investigación.

Qué es Pytorch

Pytorch es un framework de Python que permite el crecimiento rápido del Deep Learning, con una fuerte aceleración de la GPU. La característica principal de Pytorch es que utiliza grafos computacionales dinámicos. Todos los frameworks de Deep Learning utilizan un lenguaje, como Python en este caso, y un grafo computacional. Esto funciona así por cuestiones de eficiencia y optimización, pues un grafo computacional corre en paralelo en la GPU.

Volviendo a la analogía del menú del restaurante, al utilizar un framework o una librería como Pytorch o Keras, básicamente con eso se empieza a trabajar y funciona muy bien para hacer predicciones. Pero después de decidir cuáles son los platos del menú tienes que saber cómo prepararlos. Esto sería el equivalente a ajustar la red y computar los pesos y los sesgos que puede tener, y se hace con gradientes.

Qué es TensorFlow

Cuando una red neuronal se vuelve más compleja, llena de capas y parámetros, el proceso se vuelve mucho más complejo. Es aquí donde entra TensorFlow, una librería de computación numérica que computa gradientes automáticamente, esto quiere decir que está a un nivel más bajo y profundo que Keras o Pytorch.

TensorFlow fue desarrollada por Google y la utilizan empresas como Airbnb, Dropbox, Uber y Snapchat. Aunque es muy popular es más recomendable para proyectos grandes y quizás más complejos, pues te da mucho control cuando estás construyendo redes neuronales.

Si quieres aprender a diseñar redes neuronales y crear prototipos de manera rápida para entender cómo funcionan, una librería como Keras es ideal, pues incluso ésta utiliza TensorFlow por debajo para computar gradientes, pero sin que tengas que involucrarte con eso. Pytorch combina las dos cosas, pues te ayuda a construir las redes y computa los gradientes automáticamente.

Qué es Scikit-learn

Otra librería ideal para diseñar y entrenar redes neuronales es Scikit-learn, que también está escrita en Python y que utilizan empresas como Spotify, Booking y Evernote. Emplea algoritmos de clasificación (determina a qué categoría pertenece un objeto), regresión (asocia atributos de valor continuo a objetos) y agrupamiento (agrupa objetos similares en conjuntos); y opera de manera simultánea con librerías como NumPy y SciPy.

Al principio del artículo hablé sobre los algoritmos de aprendizaje y cómo evaluar su efectividad. En la documentación de Scikit-learn plantean que el Machine Learning se trata de aprender sobre algunas propiedades o características de un conjunto de datos, para luego aplicarlas en otros nuevos. Una práctica común para evaluar un algoritmo es dividir los datos en dos conjuntos, uno de entrenamiento del cual se aprende sobre las características de los datos, y otro de testing con el que se prueban dichas propiedades.

En el Curso de Machine Learning Aplicado con Python aprenderás cómo definir un problema de Machine Learning, el ciclo de ingeniería, cómo montar un ambiente de trabajo usando NumPy, preparar los datos, implementar y evaluar un modelo de regresión con Scikit-learn.

Nicole
Nicole
maldeadora

17561Puntos

hace 6 años

Todas sus entradas
Escribe tu comentario
+ 2
1
30166Puntos

👏👏👏 Excelente Maldeadora! Muchas gracias!

1

hola, estoy trabajando con tensorflow y me gustaria ver mas opciones de como tensorflow pueda entrenar mas bases de datos por secuencia o simultaneo , dar predicion, soluciones, y resultados , habra algun tutorial ‘’, SALUDOS CODIALES