Seleccionar página

Aprendiendo sobre sistemas de Machine Learning

Lee Sedol tenía solo 12 años cuando se convirtió en uno de los jugadores profesionales de Go más jóvenes de la historia. Cuando el 9 de marzo de 2016 cruzó las puertas del Hotel Four Seasons de Seúl tenía 33 años y era 18 veces campeón del mundo. Le esperaban cinco intensas partidas contra un duro contrincante. Ante el asombro general perdió 4-1. Ese día pasaría a la historia como el día en que el campeón del mundo de Go perdió contra AlphaGo, un programa informático perteneciente a la división DeepMind de Google. Lee Sedol también pasaría a la historia como el único humano que ha ganado una partida a AlphaGo (aunque posteriormente reconocería que fue debido a un error en su programa).

Gran parte de la magia negra de AlphaGo proviene del uso de técnicas y sistemas de Machine Learning e Inteligencia Artificial. Los sistemas de Machine learning (ML) o aprendizaje automático, están detrás de muchos de los productos de alta tecnología que nos rodean, de los motores de búsqueda de webs, del reconocimiento de habla de nuestros dispositivos, nos recomienda películas y series en nuestras plataformas de streaming favoritas, y hasta detecta el spam de nuestros correos.

¿Pero qué ventajas ofrece el uso de ML frente a otras técnicas de programación tradicionales?

Utilizando el caso de uso del anti-spam de correo anterior, gracias al enfoque basado en técnicas de Machine Learning el sistema se centrará en aprender para adelantarse al problema, en lugar de ir siempre a remolque. Es lo que se denomina “entrenar” nuestro modelo, que estudiará qué palabras o frases aparecen con mayor frecuencia en correos etiquetados como spam, en comparación con correos “buenos”. El objetivo es clasificar con autonomía los nuevos correos que nos lleguen.

Además, supongamos que nuestro inteligente spammer compulsivo detecta que le bloqueamos aquellos correos donde aparece la palabra “gratis” y empieza a sustituirla por la palabra “gratuito”, y así sucesivamente, cambiando las reglas. Un enfoque tradicional nos obliga a tener un equipo de programadores constantemente cambiando nuestros patrones de detección y haciendo re-entregas. Sin embargo, con el enfoque basado en sistemas de Machine Learning, se detectan automáticamente estos patrones inusualmente frecuentes en los correos marcados como spam, aprende y pasa a marcarlos sin intervención humana.

¿Sustituirán estos sistemas de ML el trabajo de los programadores?
Interesante campo, hablaremos de ello en próximas entregas.

Otro campo donde brillan espectacularmente los sistemas de Machine Learning es en el reconocimiento de escritura manual (o del habla). Podríamos escribir un programa que detectara determinados trazos o incluso el alfabeto completo, pero esto no escalaría a los miles de combinaciones escritas por millones de personas en el mundo. La mejor forma es entrenar un modelo de ML, proporcionándole cientos de ejemplos de diferentes tipos de letras y patrones escritos a mano.

Como vemos, los sistemas de Machine Learning se están aplicando masivamente en procesos con un gran número de reglas, en soluciones de negocio donde haya que adaptarse instantáneamente a nuevos datos, o para tratar información no estructurada (sonidos, imágenes). Han venido para quedarse.

Clasificando los sistemas de Machine Learning

Existen formas muy diversas de clasificar los sistemas de Machine Learning. Las más aceptadas son las siguientes:

    • Si son entrenados con supervisión humana, se clasifican en: supervisados, no supervisados, semi-supervisados y aprendizaje por reforzamiento.
    • Si pueden aprender incrementalmente “al vuelo”, se clasifican en aprendizaje online y aprendizaje por lotes.
    • Según la forma de aprender tenemos el aprendizaje basado en instancia, donde los sistemas aprenden ejemplos “de memoria” y después generalizan a nuevos ejemplos usando medidas de similitud, vs el aprendizaje basado en modelo, donde el sistema crea un modelo a partir de ejemplos de entrenamiento que usará posteriormente para realizar predicciones.

Estas tipologías no son excluyentes. Nuestro sistema de anti-spam es un caso de aprendizaje [supervisado] [on-line] [basado en modelo], si lo entrenamos con una red neuronal.

Veamos un caso de sistema ML con supervisión humana: ¡Los préstamos bancarios! Una mañana cualquiera nos acercamos (bueno … nos conectamos) a nuestro “banco amigo” a pedir un préstamo para montar nuestro soñado puesto de castañas. Después de rellenar varios formularios con datos de todo tipo, el director de la sucursal nos convoca para la semana siguiente, donde nos comunicará si nos concede dicho préstamo.

¿Cómo sabe el banco si devolveremos el préstamo? El banco tiene información de otros cientos de miles de operaciones similares a la nuestra y conoce si el cliente devolvió el préstamo o no (es decir, tiene datos etiquetados para alimentar un aprendizaje supervisado). Con los datos que le hemos proporcionado y sus modelos de clasificación, el banco puede predecir con un cierto nivel de probabilidad en qué medida seremos capaces de devolver el préstamo. Queda a criterio del director de la sucursal si confiar ciegamente en lo que pronostican dichos modelos… ¿O es al revés? ?

En el aprendizaje no supervisado no disponemos de datos etiquetados, por lo que el sistema debe aprender sin contar con un profesor. Los algoritmos no supervisados son invencibles para detectar relaciones o agrupaciones entre los datos, algo que a una persona le resultaría muy difícil detectar. Así, los modelos detrás de las empresas de venta on-line detectan que las personas que compran un determinado producto X también suelen comprar el producto Z, por lo que nos suelen hacer sugerencias (“Tal vez le interese…”, “Otros clientes también compraron…”, etc.) durante el proceso de compra ¿Te suena?

Este tipo de algoritmos no supervisados también se usan para la detección de anomalías (básico en la prevención del fraude bancario o en la detección de defectos de fabricación). El sistema está entrenado con ejemplos normales, por lo que es capaz de determinar si una nueva instancia (operación bancaria, producto fabricado) es o no una anomalía.

Detectar anomalías es el primer paso de un camino que nos lleva a poder predecir comportamientos. La detección anticipada es un campo apasionante que exploraremos en un próximo artículo.

Los sistemas de clasificación de imágenes son ejemplos de aprendizaje semi-supervisado: son capaces de detectar personas y probablemente determinará que la persona X aparece en el siguiente grupo de imágenes. Tan solo hay que ayudarle indicándole quién es esa persona para que a la siguiente ocasión sepa etiquetarla correctamente. Así aprenden Adobe Lightroom (espectacular) o Google Fotos.

Por último, el aprendizaje por reforzamiento es un tipo muy diferente a los anteriores y la tendencia más fuerte actualmente. El sistema obtiene recompensas o penalizaciones en función de sus acciones, definir y afinar estos cálculos es el reto de los diseñadores del sistema. Debe poder aprender a partir del resultado de las acciones, eligiendo cuál sería la mejor estrategia (denominada política) para obtener la mayor recompensa a lo largo del tiempo. AlphaGo es un ejemplo notable de aprendizaje por refuerzo. Aprendió su política ganadora estudiando millones de partidas y durante su combate con el campeón del mundo aplicó las políticas que había aprendido. ¡Apuesta segura!

Si quieres seguir profundizando, en posteriores entregas os explicaremos algunos de los lenguajes más idóneos y su por qué o las combinaciones de herramientas que tenemos a nuestra disposición como Python, Jupyter Notebook, Scikit-Learn, Tensor-Flow, Keras, etc. Todo ello con ejemplos prácticos, es nuestro ADN.

 ¡Bienvenidos al mundo del Machine Learning!

Por cierto, apenas 3 años después de su derrota por AlphaGo, Lee Sedol se retiró de las competiciones oficiales. Si tenéis oportunidad no dejéis de ver el documental AlphaGo – The movie, que narra la apasionante crónica del combate entre ambas “mentes”.

Antonio Méndez

Antonio Méndez

Antonio es Director de Operaciones en Panel Sistemas. Sigue a @steiner_69 en Twitter, o visita su perfil en Linkedin. También puedes contactar con él vía e-mail en esta dirección.

Déjanos tu comentario

2 Comentarios

  1. Miguel Angel Nicolao

    ¡Quiero más! El Machine Learning está cada vez más presente en los negocios y me parece muy necesario para adaptarlos rápidamente en escenarios de alta incertidumbre.

    Gracias por compartir tu sabidruría Antonio.

    Saludos,
    MAN

    Responder
    • Antonio Méndez

      Cocinando nuevas historias… Devolviendo a la comunidad una pequeña parte de lo que ella te aporta. 😉

      Responder

Enviar un comentario

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

Share This