Explorando el Machine Learning y sus conceptos

El boom de la inteligencia artificial nos ha llevado hoy a hablar de temas como machine learning y deep learning, conceptos que tal vez no están muy claros en el entorno pero que su aplicación ha permitido llegar a avances muy interesantes como la creación de vehículos autónomos, generación de música, arte, detección de sentimientos a través de máquinas, y al apoyo de la inteligencia artificial a otro tipo de industrias cuyo foco no es la tecnología.

En este post ahondaremos en el concepto de Machine Learning, los aspectos detrás de su auge, los tipos de problemas que resuelve, y algunos de sus componentes principales. Además vamos a recorrer con un ejemplo el paradigma que supone trabajar hoy con este tipo de técnicas.

¿Por qué el auge actual de la Inteligencia Artificial?

La IA ha tenido un gran auge en los últimos años debido a tres factores principales: los datos, la capacidad de procesamiento y los algoritmos.

El creciente progreso de la IA se debe en parte a la gran cantidad de datos a los que tenemos acceso hoy. En los últimos años hemos podido centralizar y manipular grandes cantidades de información no solamente estructurada, sino también no estructurada como fotos, videos, audios y otros que se generan diariamente en las redes sociales.

Otro factor importante en el crecimiento de la inteligencia artificial ha sido generado por el crecimiento en la capacidad de cómputo que existe hoy en día. Vemos que cualquier Startup y cualquier empresa, por pequeña que sea tiene la posibilidad de acceder fácilmente a la capacidad de cálculo que usan las grandes compañías del mundo como Netflix, al poder usar los servicios de infraestructura que están ofreciendo AWS, Google Cloud, IBM y Microsoft.

El último de los factores en el crecimiento de la IA ha sido el desarrollo de algoritmos más robustos. Debido a los avances en la capacidad de cómputo, ahora es más factible crear algoritmos complejos que puedan manejar gran cantidad de datos y la gran cantidad de operaciones que se requieren para llegar a buenos resultados; lo que antes no era viable y llevó a un estancamiento en la evolución de la IA.

¿Qué es Machine Learning?

Dentro de la IA, sobresale un conjunto de técnicas bajo el nombre de Machine Learning que se encargan de otorgar a los computadores la habilidad de “aprender” de los datos, sin tener que ser explícitamente programados. Para comprender el concepto de “aprendizaje” en una máquina, supongamos un ejemplo donde queremos reconocer una especie de animal llamada Sunda Colugo, el cual podemos ver a continuación:

El objetivo, es que a partir de una imagen, se pueda determinar si ésta corresponde o no a un Sunda Colugo. Para esto, debemos llevar a cabo un proceso de tres pasos básicos, donde se recolectan datos, se hace un entrenamiento con estos para la obtención de un modelo y por último este modelo nos va a permitir hacer predicciones con nuevos datos.

  1. Recolección de datos. Primero es necesario recopilar una gran cantidad imágenes (entre más y más diversas mejor) de Sunda Colugos, así mismo imágenes que no correspondan a este animal con el fin de poder establecer puntos comparativos de lo que es y no es un Sunda Colugo. Además de obtener las imágenes, es importante realizar las anotaciones (juicio experto) de cuáles de ellas son un Sunda Colugo y cuáles no, con el fin de llegar un conjunto de datos etiquetados.
  1. Entrenamiento El segundo paso consiste en presentarle a un algoritmo de aprendizaje las imágenes recolectadas en el paso anterior, mediante un proceso iterativo denominado entrenamiento basado en la observación de imágenes. El algoritmo trata de establecer un mecanismo que pueda diferenciar un Sunda Colugo.   Pero ¿cómo sabe lo qué es y no es un Sunda Colugo?. En este proceso iterativo de aprendizaje, a medida que el algoritmo va observando imágenes se le debe decir además si la imagen actual corresponde o no a un Sunda Colugo. Este tipo de enfoque donde se le dice al algoritmo que la imagen es “Sunda Colugo” o “No Sunda Colugo” se conoce como aprendizaje supervisado dado que por cada imagen se está realizando esta asociación.
  2. Como resultado del entrenamiento del algoritmo, obtenemos un modelo (podría pensarse como programa) que nos va a ayudar en el siguiente paso.  
  3. Predicción sobre nuevos datos El modelo obtenido nos va a permitir, a partir de una imagen nueva (diferente a con las que fue entrenado el algoritmo)  determinar si se trata o no de un Sunda Colugo con un porcentaje de certeza. Las predicciones que arrojan estos modelos están dadas en un valor de probabilidad, que puede ser mejorado en muchos casos  aumentando el número de datos de entrenamiento (imágenes de Sunda Colugo).  

Con este ejemplo pudimos observar el flujo de un problema machine learning para clasificación de imágenes, donde el resultado es un modelo que puede hacer predicciones sobre si una imagen que se le ingrese es o no de un Sunda Colugo. También observamos cómo mediante aprendizaje supervisado la máquina va a aprendiendo a reconocer imágenes de Sunda Colugo a partir de un proceso que se llama entrenamiento.

¿Qué tipos de problemas se pueden resolver con Machine Learning?

Existen dos tipos de problemas que se pueden resolver usando estas técnicas: clasificación y regresión. Los problemas de clasificación son aquellos donde lo que se intenta es clasificar el dato que se tiene en una de varias de clases o categorías; por ejemplo, clasificar un email en spam o no spam. En este caso, tengo dos posibles clases que son “spam” y  “no spam”. Otro ejemplo puede ser que a partir de una imagen de un animal, pueda identificar de qué animal se trata dentro de una base de animales que se quiere reconocer (por ejemplo el Sunda Colugo). El otro tipo de problemas que se pueden abordar, son los problemas de regresión. En este caso, la idea no es clasificar sino estimar una cantidad. Por ejemplo, en un contexto mobiliario puede ser interesante predecir el valor de una casa basado en factores como el número de habitaciones, el tamaño, localidad, etc. En este caso el precio de la casa es la cantidad (valor numérico) que se quiere predecir usando Machine Learning

En el paradigma de Machine Learning que vimos en el ejemplo, fue importante en nuestros datos tener tanto la información (por ejemplo imagen de una especie de animal) como su respectiva anotación o etiqueta (Sunda Colugo/No Sunda Colugo), pero ¿Qué pasa cuándo no se tienen estas anotaciones o etiquetas en los datos para hacer el entrenamiento? ¿Existe alguna técnica de Machine Learning que permita encontrar patrones en los datos?. La respuesta es sí, dentro de Machine Learning existe algo que se llama aprendizaje no supervisado, en donde la idea es que la técnica por sí sola, por ejemplo clustering pueda encontrar agrupaciones en los datos que sean de valor para la persona que usa este tipo de algoritmos.

Surgimiento del Deep Learning

Hasta ahora hemos solo mencionado algoritmos de aprendizaje, pero ¿qué algoritmos existen?. Algunos de los más comunes son los árboles de decisión, la regresión logística, k-means y las redes neuronales artificiales. Estas últimas,  han estado en constante evolución y han permitido lograr grandes avances en campos como la visión por computador y el procesamiento de lenguaje a tal punto que se creó un nuevo campo llamado Deep Learning. El Deep Learning es un tipo específico de Machine Learning especializado en reconocimiento de patrones y que toma inspiración de la estructura del cerebro, pero bajo ninguna circunstancia diseñadas para ser modelos realistas de éste.

La IA es un campo que hoy tiene mucho auge gracias a factores como la disponibilidad de datos, la capacidad de cómputo y a una serie de técnicas que proponen un nuevo paradigma para la solución de problemas como lo es Machine Learning; en donde, el insumo más importante son los datos. Estas técnicas y una especialización de ellas como lo es el Deep Learning son muy poderosas y hoy nos permiten ejecutar una cantidad de cosas que antes no eran factibles de realizar para una máquina.

Los tipos de problemas que se pueden abordar mediante este paradigma incluyen la clasificación, donde la idea es clasificar el dato que tengo en una de varias posibles categorías; el otro tipo de problemas son de regresión, donde la idea es estimar una cantidad. También existen problemas donde para hacer el entrenamiento no se tienen datos etiquetados, en cuyo caso se podría usar aprendizaje no supervisado, en donde el algoritmo se encarga de establecer los patrones y encontrar las posibles agrupaciones.

Compartir

Share on facebook
Share on twitter
Share on linkedin

Entradas relacionadas

¿Quieres recibir más información sobre tendencias en desarrollo de software, DevOps, innovación o productividad?

Últimas entradas