Notas sobre el aprendizaje por refuerzo (V): deep reinforcement learning

Publicado el 02 octubre 2024 por Ignacio G.r. Gavilán @igrgavilan
Llegamos ya a la quinta entrega de esta serie sobre aprendizaje por refuerzo ('reinforcement learning').

Este post será, creo, algo más sencillo y menos matemático que alguno de los anteriores, pero espero que aporte perspectiva.

En este caso, simplemente, vamos a revisar cuándo tiene interés el aplicar deep learning en el caso del aprendizaje por refuerzo ('reinforcement learning'), lo que dará lugar al denominado deep reinforment learning.

Recordatorio: aprendizaje por refuerzo y métodos tabulares

Antes, y como siempre en esta serie de posts y aun a riesgo de resultar algo repetitivo, un muy breve recordatorio de lo que hemos visto hasta ahora.


La situación en que nos encontramos es la de un agente (que me gusta pensar que es un robot, pero que puede adoptar otras muchas formas), que interactúa con un entorno, para lo cual realiza sobre éste una serie de acciones (a). La situación de ese entorno se define por una serie de estados. Cuando el entorno, que se encuentra en un estado s, recibe la acción, puede producirse en él una transición de ese estado s a otro s'. Esas transiciones están gobernadas por una función Ta, normalmente probabilista (estocástica). Cuando se produce ese cambio de estado el agente recibe del entorno una recompensa r.

El agente decide las acciones a realizar siguiendo una política π.

Lo que buscamos en el aprendizaje por refuerzo es que el agente aprenda la mejor política posible para conseguir maximizar la recompensa acumulada a sus acciones.

En esa labor, muchos algoritmos de aprendizaje por refuerzo se apoyan en las funciones de valor-estado Q, que, para una política dada, nos proporcionan la recompensa esperada acumulada cuando en un estado s comenzamos con una acción a.

Los denominados métodos tabulares, como SARSA y Q-Learning, se apoyan, simplemente, en reglas y tablas de estados para su cálculo.

Funciones y machine learning

No se suelen explicar así, pero los modelos de machine learning, una vez entrenados, resultan ser simplemente unas funciones, es decir una correspondencia que, a cada valor de un dominio de entrada, le hace corresponder el valor del dominio de salida.

En matemáticas sencillas, por ejemplo, la función raíz cuadrada, hace corresponder a un número del dominio de los números reales (entrada) otro número (salida), en este caso también en el dominio de los números reales.

Los algoritmos de machine learning, una vez entrenados, funcionan igual: a un valor de entrada, le hacen corresponder un valor de salida. Por ejemplo, a unos datos de entrada sobre mercado, acciones promocionales, etc, le hacen corresponder una previsión de ventas.

Eso sí, los algoritmos de machine learning tienden a aplicarse en dominios complejos, generalmente expresados como grandes vectores con un 'montón' de elementos o dimensiones, tanto en salida como, sobre todo, en entrada.

Y, más importante aún, y lo que realmente resulta diferencial en el caso del machine learning, esas funciones, la manera de hacer corresponder la salida con la entrada no las definimos por anticipado los humanos, sino que la aprende el propio algoritmo a partir de ejemplos o experiencia.

Y el deep learning no es una excepción a esto, lo cual no es de extrañar teniendo en cuenta que, aunque muy diferenciado, el deep learning no es más que un subconjunto del machine learning.

Aunque nos gusta, a la hora de explicar las redes neuronales y el deep learning, hacer el paralelismo con el cerebro humano, un paralelismo que tiene sentido por otro lado, a efectos prácticos y algorítmicos, las redes neuronales no son más que otro caso de funciones, una funciones que se aprenden. Y lo que ocurre es que las funciones que se pueden implementar mediante deep learning son especialmente complejas, muy complejas y casi misteriosas, pero funciones, al fin y al cabo

Lo que aporta el deep learning al aprendizaje por refuerzo

Vista la explicación anterior, no es difícil comenzar a imaginarse lo que aporta el deep learning en el caso del aprendizaje por refuerzo.

Volvamos al planteamiento del aprendizaje por refuerzo: tenemos un entorno con una serie de posibles estados. En este tipo de problemas es especialmente relevante la dimensionalidad del espacio de estados del entorno.

Cuando el problema es simple y un poco de laboratorio, por ejemplo un juego, el número de estados posibles del entorno, las transiciones posibles, las acciones, etc, son reducidos. Los métodos tabulares, como el Q-Learning, funcionan bien con una dimensionalidad baja y, a la hora de implementarla, se pueden cargar todos los estados en memoria sin problema.

En problemas reales, sin embargo, la dimensionalidad del espacio de estados en inmensa, casi inabarcable y, complejidad aparte, simplemente no podemos cargarlos en memoria y no podemos tampoco memorizar una política adecuada.

La forma de afrontar el problema es renunciar a trabajar con todos los estados como entrada y, en su lugar, representar la situación del entorno mediante unas características ('features') y, con usnado esas características como entrada, calcular valores y acciones. Los estados ya no son, pues, directamente identificables y no los podemos almacenar en tablas donde buscamos, como hacíamos en los métodos tabulares.

La correspondencia entre características como entrada y acciones y valores como salida es una función, una función que en los problemas de alta dimensionalidad es muy compleja, y una función que por tanto implementamos mediante redes neuronales, mediante deep learning.

Deep reinforcement learning

El uso de deep learning en el aprendizaje por refuerzo da lugar a una subdisciplina denominada 'deep reinforcement learning'.

De hecho, el libro de Aske Plaat en que me estoy apoyando para toda esta serie de posts se titula, simplemente así: 'Deep reinforcement learning'. 

Conclusiones

Cuando intentamos aplicar el aprendizaje por refuerzo a problemas reales, nos encontramos con una altísima dimensionalidad del espacio de estados del entorno. Eso imposibilita el utilizar métodos sencillos en que se tabulan los estados y, en su lugar, debemos representar indirectamente mediante características el estado del entorno y calcular estados y valores usando el mejor mecanismo que tenemos para implementar funciones muy compejas: el deep learning.

Esto da lugar al la subdisciplina del deep reinforment learning, donde cabe esperar los resultados más avanzados y espectaculares.

Artículos de este blog relacionados