1 - ¿Qué es el Aprendizaje Reforzado o por Refuerzo?

Lección 1 del curso Aprendizaje por Refuerzo Nivel Básico.

Introducción

En esta primera lección del curso vamos a comenzar con lo básico: vamos a entender qué es esto del Aprendizaje Reforzado o por Refuerzo.

Video

En el canal de YouTube puedes ver el video completo de esta primera lección:

Ejemplo intuitivo 1: un bebé aprende a caminar

Cuando hablamos de la naturaleza del aprendizaje, tal vez una de las primeras ideas que se nos viene a la mente es aprender a partir de la interacción.

Por ejemplo, un niño aprende a caminar a través de su interacción con el entorno que lo rodea. El niño ejecuta una serie de acciones dentro de este entorno (como mover los brazos, mover las piernas y coordinar todos estos movimientos desde su cerebro) y posteriormente recibe una recompensa que puede ser positiva (si lo hace bien y no cae) o negativa (si cae al suelo), y progresivamente el niño aprende a identificar la secuencia acciones más benéficas que a la larga le permitirá cumplir con el objetivo final, que es caminar correctamente.

Y acá es importante resaltar dos ideas: (1) el aprendizaje, que lo podemos definir como mapear situaciones (lo que el niño observa cuando se mueve por el entorno) en acciones (que son los movimientos ejecutados por el niño, y (2) que este aprendizaje depende de una recompensa, que en adelante llamaremos refuerzo y que es como una especie de premio o castigo que le indica si lo está haciendo bien o mal.

Ejemplo intuitivo 2: un agente aprende a caminar

Podemos extender el ejemplo anterior al entorno virtual, creando un agente (un personaje con “inteligencia”) que aprenda a caminar.

La lógica de aprendizaje es muy similar al caso anterior: el agente debe aprender a mapear situaciones (las señales que recibe del entorno) en acciones (sus movimientos). Sin embargo acá la diferencia es que, para implementar este agente computacionalmente, debemos crear un refuerzo que sea cuantificable, es decir representado con cantidades numéricas, de manera tal que por ejemplo si el agente lo hace bien le entregaremos una recompensa que será un número positivo, y si lo hace mal la recompensa será un número negativo.

Entonces el objetivo final será que el agente logre obtener la recompensa positiva más alta posible.

Definición del aprendizaje por refuerzo (o reforzado)

Así que podemos definir el aprendizaje por refuerzo como “lograr implementar algoritmos que permitan a un agente mapear de situaciones a acciones con el fin de maximizar una señal de recompensa numérica. Pero este aprendizaje se da por interacción con el entorno, así que no le indicaremos al agente qué acciones tomar, sino que éste debe tomar estas decisiones de manera secuencial por sí sólo para generar la máxima recompensa” (modificado de Reinforcement Learning: an introduction; Richard Sutton and Andrew Barto, 2nd Ed, 2020)

En la próxima lección veremos ejemplos concretos de esta definición, pero por el momento es importante quedarnos con las idea importante de que tendremos un agente computacional (es decir como una Inteligencia Artificial implementada en un computador) que de forma autónoma debe aprender a ejecutar las mejores acciones posibles mediante la exploración que hace de su entorno.

El Aprendizaje por Refuerzo es un campo del Machine Learning

El Machine Learning es un área de la Inteligencia Artificial que busca crear programas de computador capaces de resolver problemas en donde se requiera el aprendizaje a partir de los datos.

Pues el Aprendizaje por Refuerzo es precisamente un área específica del Machine Learning, junto con el aprendizaje supervisado y el no supervisado.

En el aprendizaje supervisado tenemos por ejemplo métodos tradicionales como los árboles de decisión, las máquinas de soporte vectorial o los bosques aleatorios, o herramientas más modernas como las redes neuronales, las convolucionales y las recurrentes. En este tipo de aprendizaje un humano decide qué datos recolectar y cómo etiquetarlos. Por ejemplo, si quiero entrenar una red convolucional para que aprenda a diferenciar gatos de perros, debo recolectar muchísimas imágenes de gatos y perros, etiquetar cada una (es decir indicarle a la red si la imagen pertenece a un gato o a un perror) y presentarle esta información al modelo para que aprenda a hacer la clasificación.

En el aprendizaje no supervisado tenemos por ejemplo métodos como los algoritmos de clustering o agrupación (como k-means) o algoritmos de reducción de dimensionalidad (como el de análisis de componentes principales). A diferencia del aprendizaje supervisado, en este caso los algoritmos aprenden de datos NO etiquetados, es decir que aprenden a detectar patrones en los datos sin necesidad de que el ser humano les indique por ejemplo la categoría a la que pertenecen. Sin embargo en este caso aún es necesaria la recolección de los datos por parte del ser humano. Con este tipo de aprendizaje podemos entrenar un modelo capaz de tomar datos de clientes y dividirlos en diferentes agrupaciones, lo que se conoce como segmentación de clientes.

Pero en el aprendizaje por refuerzo hay una diferencia importantísima con respecto a los otros dos enfoques. Como el aprendizaje se hace por prueba y error (mediante la interacción del agente con su entorno), no hay datos etiquetados y el ser humano no recolecta los datos, el agente determina de forma autónoma qué datos recolectar y cómo usarlos para su aprendizaje. Así que en este sentido, el Aprendizaje por Refuerzo no requiere la intervención humana (más allá de la implementación del algoritmo de aprendizaje) y por tanto es más cercano a ese ideal de la Inteligencia Artificial: que el computador desarrolle su propia “inteligencia” para resolver un problema a partir de la interacción.

El Aprendizaje por Refuerzo y otros campos del conocimiento

A pesar de que el Aprendizaje por Refuerzo es un campo de las Ciencias Computacionales, los avances y desarrollos que ha tenido están íntimamente relacionados con otras áreas del conocimiento, pues todos ellos intentan resolver problemas de toma de decisiones de forma secuencial (que son los tipos de problemas típicos del Aprendizaje por Refuerzo).

Por ejemplo está la teoría de control que convencionalmente se ha usado en vehículos autónomos, pero recientemente el aprendizaje por refuerzo ha demostrado ser una alternativa a esta aplicación.

En matemáticas existe un campo que se conoce como “Investigación de Operaciones” que es un método de solución de problemas y de toma de decisiones muy usado en diferentes empresas y organizaciones, y que usa muchas técnicas como las que veremos más adelante en el Aprendizaje por Refuerzo.

Muchos problemas en el campo de la Economía (como por ejemplo el estudio de las dinámicas de ingreso, consumo y nivel de riqueza de una población) pueden ser también estudiadas usando técnicas de Aprendizaje por Refuerzo

Buena parte de la teoría del aprendizaje por refuerzo, relacionada con este aprendizaje a partir de la experiencia y a través de recompensas, es tomada a partir de los desarrollos en las áreas de Neurociencias y Psicología, que explican el proceso de aprendizaje en humanos y animales a se da a partir de la interacción con el entorno y ese proceso de toma de decisiones está basado en refuerzos (positivos o negativos).

Conclusión

Perfecto, ya tenemos una definición bastante precisa de lo que es el Aprendizaje por Refuerzo, que esencialmente busca implementar algoritmos que permitan a un agente aprender a tomar decisiones de manera óptima mediante su interacción con el entorno.

En la siguiente lección veremos varios ejemplos reales de aplicación del Aprendizaje por Refuerzo que nos permitirán comprender en su totalidad la definición que acabamos de dar y entender además el potencial que este aprendizaje reforzado tiene en diferentes ámbitos de la sociedad.

Ver todas las lecciones de este curso