Técnicas y Algoritmos de Machine Learning

Este artículo es el primero en una serie de posts en los que voy a hablar sobre el tema de Inteligencia Artificial y Machine Learning. En este post hablaré de algunos algoritmos utilizados en Machine Learning. ADVERTENCIA: Post con alto contenido técnico

Introducción El tema de Machine Learning es un tema de sumo interés en la agenda actual debido a los rápidos avances que ha tenido en los últimos años, en particular con técnicas que actualmente se conocen como Deep Learning. Hoy en día todos los grandes jugadores del mercado ofrecen soluciones de Machine Learning, en algunos casos con soluciones de alto nivel ya empaquetadas, y en otros con funciones de más bajo nivel. Los grandes proveedores de Cloud Computing (Google, Amazon, Microsoft, IBM, SAP, etc.) tienen soluciones en la nube, pero también están apareciendo soluciones que funcionan en dispositivos móviles (tanto de parte de Apple como de Google). Si bien con toda esta oferta de servicios de Machine Learning es posible desarrollar una solución sin necesidad de conocer a fondo la tecnología, siempre es bueno tener cierto nivel de conocimiento para poder entender qué es lo que está pasando cuando usamos estos servicios. La idea de esta nota es contar qué tipo de problemas se pueden resolver usando Machine Learning.

Definiciones Para empezar, tenemos que definir tres conceptos que se usan mucho y a veces se mezclan, se confunden o se usan de forma intercambiable: Artificial Intelligence, Machine Learning y Deep Learning. Por un lado, Artificial Intelligence se refiere a la inteligencia que pueden mostrar las máquinas. No se refiere a ninguna técnica en particular. Es el concepto más amplio que engloba todos los demás. Machine Learning, que es sobre lo que vamos a hablar en este post, se dedica a dar a las computadoras la habilidad de aprender sin que haya que programarlas específicamente para la tarea que van a realizar. Por último, Deep Learning es básicamente Machine Learning utilizando un tipo de red neuronal que se llama Deep Neural Networks, con muchos datos. Esta tecnología es la que ha dado lugar a los grandes avances de los últimos años.

Tipos de problemas de Machine Learning Los problemas que se pueden resolver aplicando Machine Learning son básicamente de dos clases:

  • Supervised Learning
  • Unsupervised Learning

Se trata de Supervised Learning cuando lo que tenemos es un conjunto de datos y sabemos para esos datos cuál es la respuesta correcta. Lo que no sabemos es cómo llegar de los datos a la respuesta. En el caso de Unsupervised Learning lo que tenemos es un conjunto de datos, y lo que buscamos es extraer información de los mismos, pero sin que nadie le haya dicho al algoritmo qué es lo que esperamos encontrar. Podríamos decir que estos son los extremos, puede haber matices donde conocemos parte de los valores esperados, y en ese caso tendríamos Partially Supervised Learning, pero nos vamos a concentrar en las categorías principales.

Aprendizaje supervisado Dentro de la categoría de Supervised Learning, tenemos dos clases de problemas: Regression y Classification. Regression es cuando queremos predecir un resultado que varía en un rango contínuo. Por ejemplo, dada la foto de una persona determinar su edad. Otro ejemplo podría ser dadas las características de una casa que está en venta, predecir cuál es el precio adecuado de venta. Classification es para predecir resultados que son discretos. Por ejemplo, dado un paciente con un tumor, determinar si el tumor es maligno o no. Otro problema que entra en esta categoría es por ejemplo, dada la imagen de un número de un dígito escrito a mano, identificar de qué dígito se trata.

Aprendizaje no supervisado Con Unsupervised Learning, buscamos identificar estructuras en los datos. No tenemos la respuesta conocida para cada caso, por lo que es necesario que el algoritmo busque las relaciones entre las variables involucradas. Un ejemplo de esto puede visualizarse así:  dado un conjunto de genes, encontrar una forma de agruparlos de acuerdo a las relaciones entre ellos. Una de las técnicas usadas de aprendizaje no supervisado es la de Clustering, donde el algoritmo agrupa los valores de entrada según determinado criterio. Esto se puede usar por ejemplo para sugerir productos relacionados en un sitio o aplicación de venta de productos. En este caso los clusters pueden ser los productos relacionados, que se usan para sugerirle al usuario que está viendo o compró un producto determinado. Otra técnica que se puede utilizar es la de Anomaly Detection, donde el algoritmo aprende a partir de los datos de entrenamiento cuáles son los valores “normales” de ciertos parámetros, y luego de entrenado puede indicar si algún elemento cae fuera de los rangos normales. Este tipo de algoritmos se puede usar por ejemplo para detectar posibles fraudes en el uso de tarjetas de crédito, o detectar un funcionamiento anómalo en determinada maquinaria.

Este artículo dió una primera mirada a algunos de los algoritmos que se utilizan en Machine Learning, explicando las características de cada uno y dando ejemplos de los casos de uso de los mismos.

En un próximo post vamos a ver qué problemas están ya resueltos usando Machine Learning, y también más adelante contaré qué estamos haciendo en GeneXus para facilitar la integración de los mismos a nuestras aplicaciones.

One thought on “Técnicas y Algoritmos de Machine Learning

Deja un comentario

A %d blogueros les gusta esto: