Cómo Globant está resolviendo los desafíos de la IA empresarial con la ayuda del software de NVIDIA
The integration of NVIDIA AI Enterprise and GeneXus Enterprise AI provides a complete toolkit for end-to-end enterprise AI solutions
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
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.
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.
Los problemas que se pueden resolver aplicando Machine Learning son básicamente de dos clases:
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.
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.
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.
[…] This article is the second in a series of articles I’m going to write about Machine Learning. In the first one, I talked about the different algorithms of Machine Learning. […]
You wrote a very good This is a very good and knowledgeable article sir. You’re doing absolutely awesome job Sir.