Kudaw Blog

Aprendizaje por refuerzo ¿Cómo las máquinas aprenden desde cero?

by Heather Andrews / September 24, 2019

El aprendizaje por refuerzo es un área del aprendizaje automático inspirada en la psicología conductista; donde la máquina aprende por sí sola el comportamiento a seguir en base a recompensas y penalizaciones.

Las técnicas de aprendizaje automático supervisado y no supervisado están revolucionando nuestra industria. Estos algoritmos nos permiten modelar y predecir comportamientos de Big Data en base a datos históricos: mirando hacia el pasado. Pero ¿qué pasa si la base de datos históricos no es suficiente como para modelar nuestro problema? Es aquí donde entra en juego el llamado aprendizaje por refuerzo, donde las máquinas exploran su ambiente y van aprendiendo de cero en base a recompensas y penalizaciones. En otras palabras: aprenden mirando hacia el futuro... 

El avance tecnológico, sumado a la gran cantidad de datos hoy en día disponibles, han llevado al boom de la automatización. Si bien los algoritmos de aprendizaje automático (machine learning) han existido desde hace décadas, hoy estamos en posición de poder aplicar estos algoritmos a mayor escala y en menor tiempo. En este sentido, la inteligencia artificial (IA) está cambiando nuestra industria, con algoritmos cada vez más independientes de inspección humana.

En el campo de la IA, los algoritmos de aprendizaje automático son los que llevan la batuta. Técnicas de aprendizaje supervisado y no supervisado están siendo aplicadas para conocer a los usuarios, predecir gustos y comportamientos de subscriptores, pronosticar fallas en sistemas, entre otras cosas. Para llevar a cabo tales tareas, este tipo de algoritmo usualmente requiere una gran cantidad de datos históricos, que registren las distintas características y configuraciones posibles dentro de un contexto dado.  Tomemos como ejemplo el recomendar productos a visitantes de una página web. Consideremos que para cada visitante de la página, queremos destacar una determinada selección de productos, que esperamos sean de su gusto. La idea es atraer al visitante mostrando de buenas a primeras productos que sean de su interés. Una de las maneras de atacar este problema, es llevando a cabo una clasificación de los tipos de clientes que visitan y hacen compras a través de esta página. Una vez claras las distintas categorías de clientes, podemos ver para cada visitante, en qué categoría se encuentra. Y elegir de manera aleatoria productos de interés que calcen con aquella clasificación. Si bien tal tipo de procedimiento funciona, es necesario contar con una base de datos históricos considerable y consistente, donde se hayan registrado las preferencias de todos los clientes que han realizado compras a través de la página. El problema que a veces las empresas experimentan, es que tal cantidad de información no está siempre disponible, o no es suficiente como para que los algoritmos puedan modelar correctamente los gustos de los clientes. Si no contamos con una base de datos informativa, lo menos sesgada posible y con gran cantidad de datos por tipo de usuario, los algoritmos que necesitan datos históricos pueden fallar de manera considerable.

¿No sería mejor entonces usar un algoritmo que aprendiera a aprender? Un tipo de algoritmo que aprenda a conocer a sus clientes; que aprenda a conocer cómo funciona el sistema, y cómo poder llegar al objetivo por sí solo. En otras palabras: un algoritmo que pueda aprender de cero...

Aprendizaje por Refuerzo

Tal tipo de algoritmo de aprendizaje automático existe y es lo que se conoce por aprendizaje por refuerzo (reinforcement learning). En este tipo de técnica, se aprende a partir de lo empírico. De manera similar a cómo los perros aprenden a hacer acrobacias en base a golosinas, o un niño se vuelve experto en un vídeo juego, el aprendizaje por refuerzo funciona en base a prueba y error, recibiendo recompensas o penalizaciones por cada paso que se da para lograr un objetivo determinado. Analicemos esto un poco más

 

Atari_Pong

Caso de uso de aprendizaje por refuerzo. Un agente de IA aprende a  jugar  pong y al cabo de unas horas, el agente se vuelve un experto ( fuente: gym.openai.com).

 

En todo problema de aprendizaje por refuerzo hay: un agente, un ambiente definido por estados, acciones que el agente lleva a cabo (y que llevan al agente de un estado a otro), y recompensas o penalizaciones que el agente obtiene en camino a lograr su objetivo. El siguiente diagrama muestra cómo funciona a grandes rasgos un algoritmo de aprendizaje por refuerzo.

 

Figure_RL

 

A cierto instante de tiempo t, el agente se encuentra en un estado S_{t}. Estando en ese primer estado, el agente observa el ambiente y selecciona una acción A_{t} que lo llevará a un siguiente estado, S_{t+1}. De buenas a primeras, el agente no sabe cómo es el estado siguiente, S_{t+1}. No sabe si estando en ese siguiente estado, obtendrá mejores o peores recompensas que habiendo tomado otra acción. En cada paso que el agente da (cada acción que toma), el agente sólo conoce el aquí y ahora: el estado en el cual se encuentra y las acciones posibles que puede elegir a partir de ese estado. Al ejecutar la acción A_{t}, el ambiente le entrega al agente una recompensa o penalización, R_{t}. Es con la repetición que el valor de las acciones en un estado dado irán variando, y el agente irá aprendiendo en cada estado qué acciones lo llevarán a obtener una mayor recompensa a largo plazo. El aprendizaje entonces no se enfoca en maximizar el objetivo en sí, sino en que el agente aprenda una política óptima para alcanzar el objetivo.

Pero ¿cómo elige el agente cada acción?

En el aprendizaje reforzado entran en juego dos cosas: la exploración y la explotación. Exploración se refiere a la elección de acciones de manera aleatoria. La explotación en cambio, se refiere a tomar decisiones (elegir acciones) en base a cuán valiosa es realizar una acción a partir de un estado dado. Dependiendo de cómo queremos que se desarrolle el aprendizaje, se pueden variar los niveles de exploración y explotación. Por ejemplo, podemos establecer que el agente elija el 30% del tiempo acciones de manera aleatoria para que explore por sí solo el ambiente, y que el 70% del tiempo restante elija las acciones más valiosas para cada estado en que se encuentre. Pero ¿por qué no elegir explotar siempre? Recuerda que el agente comienza a aprender de cero. Por lo que en un comienzo todas las acciones en el estado inicial tienen un valor nulo. Y más aún, el número de acciones disponibles para cada estado puede variar de estado en estado, por lo que el ambiente en general no es conocido de antemano. Es solo a través de la experiencia que las acciones empiezan a adquirir un valor. Por lo que la exploración es crucial y necesaria.

¿Cómo podemos aplicar esto al ejemplo de las recomendaciones mencionado anteriormente? El agente vendría a ser la maquinaria que va a aprender qué producto recomendar para cada visitante de la página. Las acciones serían los diferentes productos que la página ofrece. Los clientes de la página, y las características de cada visita definen el ambiente y los estados. Si el usuario hace click en el producto recomendado (es decir, en la acción elegida por el agente), el agente recibirá una recompensa de 1. Si el usuario no hace click en el producto recomendado, el agente recibirá una penalización de 0. De esta manera el agente irá aprendiendo qué producto recomendar a partir de un estado dado.

Como hemos visto, el aprendizaje por refuerzo tiene el potencial de personalizar soluciones, ofreciendo recomendaciones diseñadas a la medida de cada cliente, sin necesidad de tener un conocimiento previo de los usuarios. ¡Y no sólo eso! Al aprender una política, el agente es capaz de adaptarse al ambiente y funcionar en contextos que varían de manera dinámica. 

Tags: Inteligencia Artificial ML

0 Comments
Next Post Tu vida en línea y tus datos personales
Heather Andrews

Heather Andrews

Heather Andrews. PhD. Data Steward and Data Analyst