Machine Learning: cuando las computadoras aprenden y mejoran su comportamiento
16 de Enero de 2019Escribe Leonardo Seminara, Líder Técnico y Arquitecto de Software en Liveware
El término “Machine Learning” (ML) engloba diversas técnicas para programar algoritmos computacionales de forma que aprendan a reconocer patrones desde datos disponibles, en otras palabras, aprendizaje a partir de ejemplos existentes. Esto contrasta con la programación tradicional de computadoras donde se expresa explícitamente lo que el programa debe realizar. Un ejemplo de ML utilizado a diario son los gestores de correo electrónico que aprenden a detectar SPAM de forma automática a partir de otros correos previamente identificados como tal por los usuarios.
Los programas que utilizan ML se incluyen normalmente en las siguientes categorías: clasificación de una muestra para determinar a qué tipo pertenece (por ejemplo, detectar en una imagen si hay un vehículo o no), agrupamiento de tipos en un conjunto de datos para identificar nuevos patrones en los mismos, o extrapolación de datos (regresión). Esta clase de programas son mucho más cortos, fáciles de mantener y más certeros utilizando ML que utilizando programación imperativa tradicional; y en la mayoría de los casos son intratables de otra forma.
Claramente existen casos donde el algoritmo falla. Utilizando el ejemplo anterior del filtro de SPAM, quizás le haya ocurrido al lector el caso donde un correo electrónico deseado fue derivado automáticamente a la casilla de SPAM. En estos casos el algoritmo detecta palabras u otro contenido dentro del correo perteneciente a la clasificación de SPAM. Cuando el usuario recupera este email y lo marca como NO-SPAM, el algoritmo puede reajustarse para mejorar su comportamiento.
Las técnicas de ML existen desde hace décadas en aplicaciones especializadas y que usualmente estaban alejadas del usuario hogareño como por ejemplo el OCR (Optical Character Recognition) o el Reconocimiento Facial. Estos sistemas tenían un costo alto computacional en términos de entrenamiento del algoritmo. Con el incremento del poder de cálculo de las computadoras modernas, el entrenamiento se tornó un problema tratable.
Este poder de cálculo, incluso en dispositivos pequeños como celulares, y el aumento de la velocidad de comunicaciones permite que las técnicas de ML hayan sido incorporadas en la vida diaria. Aplicaciones que se utilizan cotidianamente aplican técnicas de ML, como por ejemplo, mejores recomendaciones en sitios de búsqueda (Amazon), buscadores de internet con reconocimiento de voz (Google), y operación de celulares mediante la voz (como Siri de Apple).
Si bien es poco probable que veamos en un futuro cercano un Skynet – nombre de la entidad de inteligencia artificial en la película Terminator - que controle un ejército de robots en guerra contra la humanidad, ya son un hecho las aplicaciones de relevancia para la vida actual, como detección de anomalías en imágenes médicas, detección de fraudes en tarjetas de crédito, y según afirman algunas fuentes, vehículos autónomos, serán de uso común en menos de una década.
(*) Leonardo Seminara: Líder Técnico - Arquitecto de Software para Liveware