El proceso de Data Science: modelos de aprendizaje automático en acción

Inteligencia Artificial

,

Data Intelligence

El proceso de Data Science: modelos de aprendizaje automático en acción

Manuel Torres | Jul 12, 2019

Si has estado siguiendo nuestra serie de artículos en el blog sobre el proceso de Data Science, has leído ya a algunas de las voces más reconocibles de la industria sobre el proceso del Data Science y sobre cómo afrontar con éxito los pasos de este camino. Los pasos iniciales a veces pasan inadvertidos, pero son cruciales para el resultado global y sirven de base para analizar y modelar las soluciones; sin una correcta definición del problema, buenos datos que sean fiables y significativos y la capacidad de escuchar con detenimiento lo que los datos tengan que decirnos, los algoritmos y modelos de aprendizaje automático no sirven casi para nada.

En palabras de Moustapha Cisse, Director del Centro de IA de Google en Accra, Ghana: «Somos lo que comemos, y a veces alimentamos nuestros modelos con comida basura».

Suponiendo que estemos sanos y hayamos superado los desafíos planteados por los pasos anteriores, nuestro camino alcanza un nuevo punto crítico. El aprendizaje automático es una de las herramientas de computación más poderosas y está ayudando a todo tipo de empresas a analizar su rendimiento, reducir costes, maximizar ingresos y generar nuevos modelos de negocio.

 

Aplicar el aprendizaje automático

El aprendizaje automático (Machine Learning) consiste en una serie de técnicas que permiten a los sistemas informáticos predecir, clasificar, ordenar, tomar decisiones y, en general, extraer conocimientos de los datos sin necesidad de definir explícitamente las reglas para realizar esas tareas. Es un subcampo de la inteligencia artificial que tiene como objetivo enseñar a los ordenadores la capacidad de realizar tareas basadas en ejemplos sin programación explícita. Debido al continuo crecimiento de la complejidad de los negocios y de la cantidad de datos a analizar, estamos pasando de una inteligencia basada en reglas a una basada en datos, como se muestra en el siguiente esquema.  

Machine Learning: from rule-based to data-driven intelligence

Los datos se utilizan para adiestrar a los modelos y hacer que aprendan a extraer conocimientos. Esos modelos son adiestrados por medio de diferentes algoritmos que están determinados por el tipo de tarea que queramos que realice nuestra solución.


Tipos de aprendizaje automático

La selección del modelo está determinada por el problema del negocio. La fase de definición del problema nos ayuda a precisar el tipo de respuestas que estamos buscando: ¿Vamos a explicar la situación actual? ¿Vamos a predecir los resultados futuros? ¿Estamos tratando de clasificar los aspectos de nuestro negocio?

En función de estas respuestas escogeremos uno entre varios modelos.

Machine Learning model is determined by the business problem

Tan solo un ejemplo para cada tipo de modelo:

  • La clasificación del gasto es el paso crítico de cualquier análisis de aprovisionamiento; las transacciones de gasto se clasifican en un número finito de clases según sus características.

  • El agrupamiento se utiliza ampliamente en marketing y gestión de relaciones con los clientes y permite agrupar a los clientes en grupos no definidos a priori según su comportamiento de compra.

  • Los chatbots y asistentes personales digitales aprovechan la capacidad de los modelos de procesos de lenguaje natural (PNL) para interpretar y entender lo que los usuarios finales escriben o dicen.

  • La previsión de la demanda permite a los proveedores predecir la cantidad de energía que tendrán que proporcionar sobre la base de los consumos de años anteriores y otros regresores, como la temperatura prevista o el índice de irradiación solar.

 

¿Cómo aprende la máquina?

Los procesos de aprendizaje automático a menudo se asimilan a las formas en que aprenden los niños; se trata de un ejemplo bastante efectivo, por lo que podemos utilizarlo para nuestros fines.

Aprendizaje supervisado

Un maestro enseña a escribir a sus alumnos dándoles ejemplos de palabras correctas.

Los conjuntos de datos para adiestramiento contienen etiquetas que indican si cada entrada es «correcta» o no (por ejemplo, si tienen el valor de salida esperado o la clase ya asignada), los modelos se adiestran para que coincidan con los ejemplos y también aprenden a reconocer «situaciones correctas» en nuevos datos. Son ejemplos de aprendizaje supervisado los sistemas de traducción automática. Google Translate cambió a un modelo de redes neuronales en 2016 desde el modelo estadístico anterior, reduciendo el código de 500.000 a 500 líneas.

Aprendizaje no supervisado

Los bebés aprenden a emparejar formas y agujeros jugando con ellos y adquiriendo experiencia; aprenden que el objeto con cuatro esquinas y cuatro lados iguales encaja en el agujero cuadrado.

En el aprendizaje no supervisado, el modelo es adiestrado para extraer las características comunes a varios de los ejemplos (datos de adiestramiento) y luego volver a aplicar estos conocimientos para clasificar o detectar anomalías en nuevos conjuntos de datos.

Los algoritmos de clasificación que clasifican diferentes caras en fotografías para poder etiquetarlas, como los que hay disponibles en Google, iOs Photos y algunas aplicaciones de redes sociales, son ejemplos de aprendizaje no supervisado. 

Aprendizaje de refuerzo

La educación de los cachorros se basa en este concepto; cuando el cachorro responde correctamente a una orden, se le recompensa con una galleta y con el tiempo será capaz de repetir el comportamiento esperado, incluso en un entorno diferente al cual fue entrenado.

En el aprendizaje de refuerzo, se adiestra a los modelos para que emprendan acciones dentro de un entorno definido para maximizar una recompensa o premio objetivo y para mantener esta capacidad incluso cuando cambia el entorno.

Los sistemas de conducción autónoma, como Tesla Autopilot, utilizan el aprendizaje de refuerzo para mover el volante, acelerar y frenar utilizando la información procedente de los sensores del coche y así detectar el entorno y maximizar un funcionamiento que mantiene el coche seguro y en su carril.

Proceso iterativo

El análisis en profundidad suele ser un proceso cíclico en el cual definimos un modelo para nuestro problema, probamos sus resultados y refinamos el modelo (añadiendo parámetros, cambiando pesos, adaptando la arquitectura) o descartamos ese modelo y probamos otro nuevo.

En muchos casos, podemos descubrir que los mejores resultados (que más o menos significa los errores mínimos) no se consiguen con un solo modelo, sino con un conjunto de modelos funcionando juntos. En esta configuración, un modelo puede predecir o clasificar mejor un subconjunto de los datos de entrada, mientras que otro modelo puede funcionar muy bien en otro subconjunto, obteniéndose mejores resultados conjuntamente que con los modelos individuales.

Machine Learning Models: how does machine learn?

Caja de herramientas de aprendizaje automático

Para hacer más ágil este proceso exploratorio iterativo, utilizamos Jupyter Notebook o alternativas de nube similares (Google Colab, Azure Notebooks, Amazon EMR o Sagemaker). En estas aplicaciones notebook podemos combinar texto, gráficos y código Python o R para ejecutar modelos y algoritmos. Las aplicaciones notebook son fructíferas porque crean un «terreno común» para técnicos y empresarios; en Techedge las utilizamos en las ondas ágiles para comprobar nuestros progresos y explicar a los clientes lo que hemos descubierto en sus datos, comparar los resultados de varios modelos e identificar qué algoritmos son los mejores para utilizarlos con determinados conjuntos de datos.

En los últimos años se han presentado herramientas para automatizar el adiestramiento, validación y selección de algoritmos: marcas como DataRobot o C3.ai prometen automatizar muchos pasos del proceso de datos para hacerlos accesibles a quienes no forman parte de la comunidad de científicos de datos. En términos generales, estas herramientas pueden añadir gran valor a tareas específicas (por ejemplo, puntuación y comparación de modelos) y presentan algunas limitaciones obvias debido a su diseño específico y a la automatización que introducen, en resumen, aún no vemos oportuno aplicarlas de forma generalizada en una implantación de aprendizaje automático compleja.

Para construir modelos y ejecutar algoritmos podemos utilizar varias bibliotecas de aprendizaje automático que simplifican la labor del científico de datos en muchas tareas diferentes; todas ellas son gratuitas y de código abierto y nos proporcionan un kit de herramientas muy potente para construir y ejecutar modelos de aprendizaje automático.

Scikit-learn

Scikit-learn es una biblioteca de aprendizaje automático para Python. La utilizamos sobre todo para varios algoritmos de clasificación, regresión y agrupamiento que pueden considerarse algoritmos de aprendizaje automático «clásicos» (máquinas de soporte vectorial o bosques aleatorios, por poner solo unos ejemplos). Es una biblioteca bien mantenida, fiable y fácil de usar que se integra perfectamente con las bibliotecas numéricas y científicas de Python, NumPy y SciPy.

TensorFlow + Keras

TensorFlow es una biblioteca matemática simbólica, construida para el flujo de datos y la programación diferenciable en una amplia gama de tareas. Es probablemente la biblioteca más utilizada para crear y adiestrar redes neuronales. TensorFlow fue desarrollada en un principio por el equipo de Google Brain para uso interno de Google y luego se liberó como recurso de código abierto.

Tensorflow ofrece un gran rendimiento, tanto en adiestramiento como en inferencia, pero su sintaxis puede ser bastante complicada. Keras es una biblioteca de redes neuronales escrita en Python que se ejecuta sobre TensorFlow y abstrae la mayor parte de la complicación de construir redes neuronales en TensorFlow.

TensorFlow 2.0, lanzada en estado alfa en abril, incluye Keras como API de alto nivel por defecto para construir y adiestrar modelos de aprendizaje automático.

PyTorch + Fastai

Al igual que TensorFlow y Keras, PyTorch y Fastai son dos bibliotecas Python que se complementan muy bien.

PyTorch es una biblioteca de aprendizaje automático de Python, utilizada principalmente para aplicaciones como el procesamiento de lenguaje natural y la visión por ordenador, desarrollada originalmente por el grupo de investigación de inteligencia artificial de Facebook. Fastai es una biblioteca que se ejecuta sobre PyTorch y simplifica al máximo el proceso de construir, adiestrar y poner a punto modelos de aprendizaje automático, lo que nos permite crear prototipos y construir modelos con gran rapidez.

Para concluir, el análisis en profundidad (también conocido como modelado) aplica la información obtenida en las fases anteriores para definir, adiestrar, seleccionar y ejecutar los modelos y obtener así las respuestas empresariales que definimos como nuestro propio objetivo al principio de nuestro proceso de ciencia de los datos.

Recuerda siempre que el objetivo no es crear un modelo maravilloso de aprendizaje automático, sino resolver un problema empresarial real y concreto aprovechando el potencial que ofrece el uso de los datos y de las innovaciones digitales.

 

Consigue una verdadera transformación digital

Desde Techedge, debido a nuestra amplia experiencia, nos ofrecemos a ser tu partner en este proceso clave de una adecuada transformación digital. 

¡Quiero saber más!

¡Suscríbete!