Este blogpost forma parte de una serie de 4 blogs, orientados a mostrar el impacto y aplicación de la IA. En esta tercera parte se introducirá el método de aprendizaje reforzado (RL por sus siglas en inglés), que ha tomado fuerza con el surgimiento de los autos autónomos y la navegación en robots. Se explicarán sus postulados básicos, la interpretación detrás de su uso y en qué tipo de situaciones son utilizados.
Una época en donde los autos se manejan solos y la inteligencia artificial (IA) complica a humanos en juegos de video sonaba muy lejana hace 10 años, pero en la actualidad podemos decir que esto está empezando a cambiar. Ejemplo de ello son una nueva liga de carreras de autos autónomos (fuente), una IA que vence humanos en juegos como el Gran Turismo 7 (fuente), o la noticia que plantea que desde junio del 2022 los autos autónomos han podido ser utilizados sin conductor de seguridad en los límites de la ciudad de San Francisco (Robotaxi) (fuente).
Este tipo de Robotaxi, o los otros casos anteriormente mencionados, han sido algunas de las muchas noticias que hemos escuchado sobre automatización en los últimos años, y todo indica que estas no dejarán de aumentar. ¿Cómo es que se entrenan este tipo de automatizaciones? ¿Qué limitaciones tienen? ¿Qué se necesita para implementarlas en América Latina? Estas son algunas de las preguntas que se resolverán a través de este blog de RL.
Cuando se piensa en aprendizaje, lo más probable que se venga a la cabeza es el aprendizaje mediante prueba y error. Esto puede verse claramente en cómo es que aprenden los niños. Cuando un niño juega, o prueba una experiencia nueva, no existe un profesor o un ejemplo previo en el que este se pueda guiar para poder aprender, sino que simplemente aprende intentando. Los seres vivos hacen esto constantemente, están atentos a las respuestas que les envía el entorno y de acuerdo con esto es que corrigen su comportamiento. El aprendizaje reforzado busca emular este tipo de comportamientos.
Cuando se habla de RL, se refiere a un tercer método de entrenamiento de modelos de Machine Learning (ML) que no cae dentro de la categoría de entrenamiento supervisado o no supervisado. En específico, este se diferencia del aprendizaje supervisado en que no es necesario tener datos catalogados para entrenar estos modelos. El objetivo de estos modelos es aprender a interactuar con el ambiente, mientras que en el aprendizaje supervisado el objetivo es que el sistema logre generalizar fuera del conjunto de entrenamiento, esto hace que no sea adecuado para aprender mediante interacciones (Sutton y Barto, 2018). Por otra parte, el aprendizaje no supervisado se diferencia del RL en que su objetivo es encontrar patrones y estructuras en los datos, no aprender el comportamiento mediante interacciones con el ambiente.
Ahora, entendiendo que el RL es un método de entrenamiento diferente, ¿a qué se hace referencia cuando se habla de aprendizaje reforzado? El RL se basa en que un agente debe aprender a realizar una tarea mientras interactúa con el ambiente. Para esto son necesarios seis elementos:
La interacción se realiza mediante la toma de acciones (a). Dichas acciones afectan el ambiente y por ende su estado (S) cambia con cada acción del agente. Se puede pensar como un juego de ajedrez, donde cada vez que se mueve o se elimina una pieza la situación en el tablero cambia, haciendo que la acción que se tome después pueda no ser la misma. De esta forma, cuando un agente realiza una acción, el ambiente se ve afectado, y además, el agente percibe una señal de recompensa/castigo, la cual le permite mejorar los movimientos futuros a realizar. La interacción que se tendrá entre un agente con su ambiente puede verse en la Figura 1.
Figura 1: En la figura se puede ver cómo es que un agente realiza acciones sobre un ambiente el cual cambia el estado en el que se encuentra este ambiente y genera en el agente una señal de recompensa (fuente).
Los algoritmos RL, al contrario de los otros métodos de entrenamiento, tienen un trade off muy importante al momento de entrenar un agente. Este se denomina “explotación vs exploración” y hace referencia a definir qué tanto explorar las acciones para distintos estados, o explotar relaciones existentes entre estados y acciones que el agente ha visto en el pasado le han servido. Explorar mucho hará que el agente no logre consolidar lo aprendido, mientras que explotar mucho la política existente hará que el agente probablemente se quede con una política subóptima.
También al momento de entrenar un modelo de RL es importante considerar qué tan a futuro se espera que el agente esté pensando. Esto se verá reflejado en las decisiones del agente: si este piensa a largo plazo, una acción con una recompensa alta e inmediata será menos tentadora que una acción con una recompensa más alta pero futura. Un ejemplo de esto sería hacer el sacrificio de una pieza en un juego de ajedrez que, a pesar de generar una pérdida de material, permite ganar la partida. En el corto plazo esto se vería como una mala decisión, pero pensando algunas jugadas más adelante es un movimiento óptimo.
Como se mencionó anteriormente, una parte de los métodos de RL es la función Valor. Esta función Valor permite guiar en el largo plazo al agente, permitiendo así que, dado un estado, se pueda saber cuáles serán las recompensas esperadas. Una gran limitante de esta función se encuentra en que, salvo casos de problemas tabulares, no es posible calcular esta función de manera analítica, por lo tanto, es necesario generar una aproximación de dicha función. Lo mismo ocurre si se quisiera entrenar la política del modelo, ya que no existe una única forma de generar estas políticas. Una forma de aproximar estas situaciones es mediante Deep Learning (DL), permitiendo así tener una aproximación de la función Valor o la política del agente, la cual permite tomar decisiones. Es importante considerar que otras técnicas de Machine Learning también serían útiles, pero para efectos de este blog se trabajará con DL.
Estos algoritmos se entrenan utilizando estados del entorno y recompensas pasadas obtenidas por este. Ello permite utilizar esta información para entrenar la red, para así relacionar los estados con los retornos obtenidos y aprender a tomar mejores decisiones. La manera en que se hace uso de esta información es lo que diferencia en gran parte a los distintos algoritmos existentes de RL. Parte importante del entrenamiento de estos modelos es el muestreo de situaciones anteriores con las que se pueda entrenar al agente.
Existen varios métodos para resolver los problemas de RL, sin embargo, para este blog se utilizará el método de Proximal Policy Optimization (PPO) (Schulman et al., 2017), que es un método que se encuentra dentro de la temática de gradiente de política, el cual hace uso de redes neuronales para aprender la política del agente. Esto implica que se busca aprender las probabilidades de tomar una acción dados los estados del entorno, tratando de maximizar la ganancia futura del agente.
Los modelos que buscan aprender las políticas tienen la ventaja de que las acciones no son determinísticas, sino que tienen una probabilidad asociada, por lo que para un estado específico el agente puede elegir una acción distinta. Esto hace que el agente pueda explorar distintas opciones y no quedarse con opciones subóptimas. Otros métodos logran esto tomando pasos aleatorios con cierta probabilidad, pero dependiendo de la tarea que se busque resolver, puede ser una ventaja o una desventaja.
El ambiente consta de un auto en una pista de carreras, como se puede ver en la Figura 2. La tarea que se busca aprender es que el agente aprenda a conducir por el camino y logre terminar una vuelta en el circuito lo más rápido posible. Para esto, el ambiente permite que el agente doble el manubrio, acelere y frene. Estas acciones se pueden combinar de manera tal que el agente pueda, por ejemplo, acelerar y doblar al mismo tiempo, o doblar y frenar.
Como se mencionó anteriormente, para que un agente pueda aprender una tarea en el ambiente es necesario que se defina una función de recompensa la cual guíe el accionar del agente y su toma de decisiones. Este ambiente viene con su propia señal de recompensa, la cual le entrega al agente -0.1 por cada fotograma (frames) que pasa en el ambiente y +1000/N por cada mosaico de la pista de carreras que recorra. Se plantea el siguiente ejemplo: si el agente completa la carrera en 800 frames entonces el puntaje total obtenido por el agente será de 1000-0.1*800 = 920. Por lo tanto, lo que se busca es que el agente maximice el puntaje que obtiene en las carreras considerando este puntaje.
Las observaciones que entrega el ambiente son los frames que muestran donde se encuentra el agente en cada instante. Esta puede verse en la Figura 2. Debido al uso de imágenes, la estructura que emplearemos para modelar el agente es una red convolucional (CNN) [1]. Esta red tomará la imagen como entrada, y la salida consistirá en la media de la distribución de probabilidades. A partir de esta distribución, se seleccionarán aleatoriamente acciones para el giro del manubrio, la aceleración y el freno.
Figura 2: ambiente utilizado para auto de carreras.
Un punto importante por considerar en los problemas de RL es si el agente cuenta con la información suficiente para poder tomar una decisión, con las observaciones del ambiente. Ya que, si al ver una imagen, a priori hay varias preguntas que se podrían hacer como agentes: ¿Qué tan rápido ir? ¿Ya se empezó a frenar? ¿Se debería doblar ahora? Todas estas preguntas no son posibles de resolver contando solamente con una imagen, es por ello que, para este caso, se tomó la consideración de, en lugar de utilizar una sola imagen, se usaron 4, para que el agente pueda ver los últimos 3 frames anteriores y así tomar una decisión informada. La razón de los 4 frames se basa en el artículo de Deep Q learning, el cual logró entrenar agentes para que jugaran de manera competitiva juegos de Atari. Por último, otro preprocesamiento que se le realizó a la imagen antes de entregárselo al modelo fue cambiar los colores a blanco y negro, esto ya que el color de la imagen no es una característica que interesa que el agente utilice para tomar su decisión, por ende, se deja como blanco y negro para evitar esto. También se cortó la barra negra que puede verse en la Figura 2. Una representación de la entrada a la red puede verse a continuación, en la Figura 3.
Figura 3: representación procesamiento ambiente.
A partir del desarrollo, se logra obtener la siguiente política del agente, que se puede observar en la Figura 4.
Figura 4: política del agente.
Al momento de entrenar a los agentes utilizando RL, lo que se busca aprender es el poder de decisión. Esto lo hace muy útil para una gran variedad de casos en la industria, como son los siguientes:
A pesar de traer grandes beneficios en cierto tipo de problemas, los algoritmos de RL tienen limitaciones, las cuales son importantes de conocer, para así diagnosticar la posibilidad de utilizar estos algoritmos. En primera instancia, los algoritmos de RL suelen tener ineficiencias en el muestreo de situaciones. Dado que estos se entrenan mediante muestreos, dependiendo de la complejidad del entorno y la tarea que se busca aprender, es necesario que el agente vea muchas situaciones diferentes, para que así pueda estimar correctamente el valor que implica tomar dicha acción para el objetivo buscado.
En segundo lugar, es necesario generar la señal de recompensa que estos agentes busquen maximizar. Esto definirá si es que el agente logra aprender el comportamiento buscado o no. Este tipo de desarrollos dependen mucho de la aplicación, y por ende, es parte fundamental del proceso de planeación del proyecto. Además, como el agente lo que busca es encontrar una política que maximice las recompensas obtenidas, esto no asegura que dichas políticas no puedan llevar a acciones inseguras o poco éticas de parte del agente. Poder asegurar que esto no ocurra es uno de los desafíos actuales que hay en los modelos de RL.
A través de este blog se explicó en grandes rasgos qué es el aprendizaje reforzado, se detallaron sus casos de uso y se describió un ejemplo de un agente que aprende a conducir siguiendo una calle. Si bien esto es solo una pincelada de lo que es el RL y sus usos, es importante mencionar que este tipo de tecnologías hoy en día ya están siendo incorporadas en variados sectores de la industria, y por ende, es importante estudiar, promover y analizar los beneficios que podría conllevar utilizar modelos de RL, en específico considerando la posibilidad de agentes que puedan tomar decisiones. Empresas como Amazon ya piensan en un futuro tener líneas de producción autónomas donde el hombre tenga un rol de supervisión, y Tesla ya vende autos que pueden manejarse solos. En Brain Food creemos que las posibilidades que se abren al incorporar este tipo de tecnologías son inmensas, generando cambios importantes tanto en los procesos productivos de las empresas como en las tareas cotidianas. Como toda tecnología, RL tiene sus propias limitaciones y riesgos asociados, por lo que es relevante asesorarse por un experto que sepa en qué y cómo utilizarla.
[1] Para saber más de redes convolucionales puedes leer este blog, del capítulo anterior