En este post vamos a ver que esto, aunque perfectamente posible, no es sencillo del todo, y que el así llamado 'deep reinforcement learning', se enfrenta a algunos retos y dificultades.
Repaso: el problema del aprendizaje por refuerzo
Antes, y siguiendo la práctica ya habitual de esta serie, recordamos algunas ideas.
Estamos en la situación en que un agente (por ejemplo, un robot) 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.
Sin embargo, cuando ese espacio de estados exhibe una altísima dimensionalidad (muchísimos estados posibles), como es frecuente en problemas reales, no podemos usar esos métodos tabulares que se basan en disponer de reglas en forma de tablas donde cada estado es un registro (una fila).
En lugar de eso, lo que hacemos es trabajar, no con los estados propiamente dichos, sino con unas características ('features') que, de alguna forma, resumen y caracterizan los estados y utilizamos esas características como entradas para una red neuronal, una red profunda y, por tanto, del campo del deep learning, dando lugar a lo que se suele denominar 'deep reinforcement learning'.
Pues bien, esta práctica se enfrenta a algunos retos que son los que vamos a revisar a continuación.
Bootstrapping
Pero antes de ver los retos, conviene conocer el concepto de 'bootstrapping', algo que ya estaba presente en los algoritmos tabulares, pero que no habíamos comentado.
Recordemos que el aprendizaje por refuerzo es un mecanismo de ensayo y error, donde, por decirlo de alguna manera, el agente 'no sabe lo que se va a encontrar' en el siguiente paso. El agente va construyendo las funciones de valor (V) y valor-estado (Q), que le ayudan a decidir en los siguientes pasos.
Pero, como realmente no 'conoce bien' el entorno, esos valores (que recordemos son la recompensa acumulada esperada) se van ajustando de manera iterativa.
Pues bien, el así llamado 'bootstrapping' es, precisamente, ese proceso de refinamiento progresivo por el que unos valores (una recompensas esperadas) antiguos, son actualizados por unos nuevos valores (unas nuevas recompensas esperadas).
No vamos a detallarlos, pero sólo comentar que existen algoritmos para este bootstrapping como el algoritmo de Bellman o el aprendizaje por diferencias temporales.
El lector interesado puede consultarlos en el libro que me sirve como referencia para este post y, en general, para toda esta serie, a saber, el libro 'Deep reinforcement learning' de Aske Plaat .
El planteamiento del deep reinforcement learning
Retomando nuestro hilo argumental, lo que se pretende en el 'deep reinforment learning' es transformar unas funciones basadas en tablas, las funciones valor (V), valor-estado (Q) y la política (π), en unas redes neuronales que dependen de unos parámetros (los pesos), unos parámetros que en su conjunto denominaremos como θ.
Es decir, queremos implementar y optimizar unas funciones Vθ, Qθ y πθ.
Los tres retos del deep reinforcement learning
En el libro de Aske Plaat se identifican tres retos para conseguir este objetivo:
- La convergencia a un valor óptimo de la función valor-estado (Q), que dependería de una cobertura total del espacio de estados, debe conseguirse teniendo en cuenta que es imposible muestrear totalmente ese espacio de estado
- Existe una gran correlación entre las muestras de entrenamiento consecutivas, con un alto peligro de llegar a un óptimo local, no global, en el proceso de optimización
- Cuando aplicamos (como habitualmente en redes neuronales) el algoritmo de descenso de gradiente sobre una función de pérdida como mecanismo para luego ajustar pesos, nos encontramos con que esa función de pérdida va variando, con lo que nos estamos ante una especie de 'blanco móvil'.
El problema del blanco móvil y la convergencia
El problema del blanco móvil es especialmente interesante así que lo comento brevemente.
En un aprendizaje supervisado se utiliza un conjunto de datos ('dataset') estático durante todo el entrenamiento. Por tanto la función de pérdida o error ('loss function'), es estable durante el entrenamiento.
Sin embargo, en el caso del aprendizaje por refuerzo, el aprendizaje de una política, se apoya en los valores de la función Q, que también está evolucionando durante el aprendizaje mediante una forma de 'bootstrapping').
Eso es lo que constituye el 'blanco móvil' y la dificultad que esto supone.
Spoiler: hay solución
No voy a complicar ni alargar más este post explicando cómo se superan esos retos, seguramente lo haga en el siguiente post de la serie, pero sí puedo adelantar, como el lector ya se habrá imaginado, que para estos retos se han encontrado soluciones.
Conclusiones
Hemos visto cómo, en el 'deep reinforcement learning'. las funciones de valor, estado valor y política (V, Q y π), las implementamos mediante redes neuronales profundas.
Y hemos visto que eso plantea tres retos que tiene que ver con la imposibilidad de muestrear todo el espacio de estado, con la correlación y con que durante la optimización apuntamos a un 'blanco móvil').
Por suerte, y gracias al trabajo de científicos e ingenieros, para estos retos se ha encontrado solución.
Artículos de este blog relacionados
- Notas sobre el aprendizaje por refuerzo (V): deep reinforcement learning
- Notas sobre aprendizaje por refuerzo (IV): Métodos tabulares. SARSA Y Q-Learning
- Notas sobre aprendizaje por refuerzo (III): recompensas, trazas y valores
- Notas sobre aprendizaje por refuerzo (II): Visualizando el aprendizaje en procesos de Markov
- Notas sobre aprendizaje por refuerzo (I): Procesos de decisión de Markov
No hay comentarios:
Publicar un comentario