Conoce más sobre GeneXus
6 Min.

Técnicas y Algoritmos de Machine Learning: qué tipo de problemas se pueden resolver usando 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

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, entre otros; así como también Alibaba, Baidu y Tencent, en China), 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, ya sea en el ámbito de la automatización, producción o identificación.

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
  • Reinforcement Learning o aprendizaje por refuerzo

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 continuo. 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.

Por último, Reinforcement Learning: 

El aprendizaje por refuerzo es aprender qué hacer – cómo asignar acciones a situaciones – con el fin de maximizar una señal de recompensa numérica. Al alumno no se le dice qué acciones tomar, como en la mayoría de las formas de aprendizaje automático, sino que debe descubrir qué acciones producen la mayor recompensa probándolas. El aprendizaje por refuerzo es diferente del aprendizaje supervisado. El aprendizaje supervisado es aprender de ejemplos proporcionados por un supervisor externo experto. En problemas interactivos, a menudo no es práctico obtener ejemplos del comportamiento deseado que sean correctos y representativos de todas las situaciones en las que el agente tiene que actuar. En un territorio desconocido, donde uno esperaría que el aprendizaje sea más beneficioso, un agente debe poder aprender de su propia experiencia. El aprendizaje por refuerzo es tan conocido en estos días porque es el principal algoritmo utilizado para resolver diferentes juegos y, a veces, lograr un rendimiento sobrehumano. El más famoso debe ser AlphaGo y AlphaGo Zero. AlphaGo, entrenado con innumerables juegos humanos, ya logró un rendimiento sobrehumano mediante el uso de la red de valores y la búsqueda de árboles de Monte Carlo (MCTS) en su red de políticas. Sin embargo, más tarde los investigadores pensaron y probaron un enfoque de aprendizaje de refuerzo más puro: entrenarlo desde cero. Los investigadores dejaron que el nuevo agente, AlphaGo Zero, jugara consigo mismo y finalmente venció a AlphaGo 100-0.

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.

2 respuestas a “Técnicas y Algoritmos de Machine Learning: qué tipo de problemas se pueden resolver usando Machine Learning.”

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Volver al incio