¿Qué es?
El término programación dinámica (PD) se refiere a una colección de algoritmos que pueden utilizarse para calcular políticas óptimas dado un modelo perfecto del entorno como un proceso de decisión de Markov (PDM).
Los algoritmos DP clásicos son de utilidad limitada en el aprendizaje de refuerzo, tanto por su suposición de un modelo perfecto como por su gran gasto computacional, pero siguen siendo importantes teóricamente.
La idea clave del aprendizaje por refuerzo es el uso de funciones de valor para organizar y estructurar la búsqueda de buenas políticas. Veremos cómo se puede utilizar el aprendizaje por refuerzo para calcular las funciones de valor. Podemos obtener fácilmente políticas óptimas una vez que hayamos encontrado las funciones de valor óptimas,
Evaluación de política (Predicción)
En primer lugar, analizamos cómo calcular la función de valor de estado
Consideremos una secuencia de funciones de valor aproximado
Se puede probar que la sucesión
En el cuadro siguiente se muestra en pseudocódigo una versión completa de la evaluación iterativa de políticas. Observe cómo maneja la terminación. Formalmente, la evaluación iterativa de políticas converge solo en el límite, pero en la práctica debe detenerse antes de llegar a este punto. El pseudocódigo prueba la cantidad
Evaluación iterativa de política, para estimar .
Entrada:
Parámetros: Un pequeño umbral
Inicializar
Bucle. Para cada
Hasta que
Mejora de política
Nuestra razón para calcular la función de valor de una política es ayudar a encontrar mejores políticas. Supongamos que hemos determinado la función de valor
Teorema de mejora de política. Sean
Hasta ahora hemos visto cómo, dada una política y su función de valor, podemos evaluar fácilmente un cambio en la política en un solo estado para una acción particular. Es una extensión natural considerar los cambios en todos los estados y en todas las acciones posibles, seleccionando en cada estado la acción que parezca mejor según
La política codiciosa adopta la acción que parece mejor en el corto plazo (después de un paso de previsión) de acuerdo con
Por lo tanto, la mejora de la política debe darnos una política estrictamente mejor, excepto cuando la política original ya sea óptima.
Iteración de política
Una vez que la política
Se garantiza que cada política será una mejora estricta de la anterior (a menos que ya sea óptima). Debido a que un MDP finito tiene solo una cantidad finita de políticas, este proceso debe converger hacia una política óptima y una función de valor óptima en una cantidad finita de iteraciones.
Esta forma de encontrar una política óptima se denomina iteración de políticas. En el cuadro siguiente se ofrece un algoritmo completo.
Iteración de política (usando evaluación de política iterativa) para estimar
Inicializar
Evaluación de política
Bucle:
Para cada
Hasta
Mejora de política
Para cada
Si
Si
Iteración de valor
Una desventaja de la iteración de políticas es que cada una de sus iteraciones implica una evaluación de políticas, que puede ser en sí misma un cálculo iterativo prolongado que requiere múltiples barridos a través del conjunto de estados. Si la evaluación de políticas se realiza de manera iterativa, entonces la convergencia exacta a
De hecho, el paso de evaluación de políticas de la iteración de políticas se puede truncar de varias maneras sin perder las garantías de convergencia de la iteración de políticas. Un caso especial importante es cuando la evaluación de políticas se detiene después de un solo barrido (una actualización de cada estado). Este algoritmo se llama iteración de valor. Se puede escribir como una operación de actualización particularmente simple que combina los pasos de mejora de políticas y evaluación de políticas truncadas:
Otra forma de entender la iteración de valor es mediante la referencia a la ecuación de optimalidad de Bellman. Nótese que la iteración de valor se obtiene simplemente convirtiendo la ecuación de optimalidad de Bellman en una regla de actualización. Nótese también que la actualización de la iteración de valor es idéntica a la actualización de la evaluación de la política excepto que requiere que se tome el máximo en todas las acciones.
Por último, consideremos cómo termina la iteración de valor. Al igual que la evaluación de políticas, la iteración de valor requiere formalmente un número infinito de iteraciones para converger exactamente a
Iteración de valor, para estimar
Parámetros del algoritmo: un umbral pequeño
Inicializar
Bucle:
Para cada
Hasta
Salida: una política determinista,
La iteración de valor combina efectivamente, en cada uno de sus barridos, un barrido de evaluación de políticas y un barrido de mejora de políticas. A menudo se logra una convergencia más rápida interponiendo múltiples barridos de evaluación de políticas entre cada barrido de mejora de políticas. En general, toda la clase de algoritmos de iteración de políticas truncadas se puede considerar como secuencias de barridos, algunos de los cuales utilizan actualizaciones de evaluación de políticas y otros de los cuales utilizan actualizaciones de iteración de valor.
Como la operación máxima en la ecuación es la única diferencia entre estas actualizaciones, esto simplemente significa que la operación máxima se agrega a algunos barridos de la evaluación de políticas. Todos estos algoritmos convergen a una política óptima para MDP finitos descontados.
Programación dinámica asincrónica
Una desventaja importante de los métodos DP que hemos analizado hasta ahora es que implican operaciones sobre todo el conjunto de estados del MDP, es decir, requieren barridos del conjunto de estados. Si el conjunto de estados es muy grande, entonces incluso un solo barrido puede ser prohibitivamente costoso.
Por ejemplo, el juego de backgammon tiene más de
Los algoritmos asíncronos son algoritmos iterativos en el lugar que no están organizados en términos de barridos sistemáticos del conjunto de estados. Estos algoritmos actualizan los valores de los estados en cualquier orden, utilizando los valores de otros estados que estén disponibles. Los valores de algunos estados pueden actualizarse varias veces antes de que los valores de otros se actualicen una vez.
Sin embargo, para converger correctamente, un algoritmo asíncrono debe continuar actualizando los valores de todos los estados: no puede ignorar ningún estado después de cierto punto en el cálculo. Los algoritmos asíncronos permiten una gran flexibilidad a la hora de seleccionar los estados que se actualizarán.
Por supuesto, evitar los barridos no significa necesariamente que podamos salirnos con la nuestra con menos cálculos. Simplemente significa que un algoritmo no necesita quedar atrapado en un barrido desesperanzadamente largo antes de poder avanzar en la mejora de una política. Podemos intentar aprovechar esta flexibilidad seleccionando los estados a los que aplicamos actualizaciones para mejorar la tasa de progreso del algoritmo. Podemos intentar ordenar las actualizaciones para permitir que la información de valores se propague de un estado a otro de manera eficiente. Es posible que algunos estados no necesiten que se actualicen sus valores con tanta frecuencia como otros. Incluso podríamos intentar omitir por completo la actualización de algunos estados si no son relevantes para el comportamiento óptimo.
Los algoritmos asincrónicos también facilitan la combinación de computación con interacción en tiempo real. Para resolver un MDP determinado, podemos ejecutar un algoritmo de DP iterativo al mismo tiempo que un agente está experimentando el MDP. La experiencia del agente se puede utilizar para determinar los estados a los que el algoritmo de DP aplica sus actualizaciones. Al mismo tiempo, la información más reciente sobre valores y políticas del algoritmo de DP puede guiar la toma de decisiones del agente.
Por ejemplo, podemos aplicar actualizaciones a los estados a medida que el agente los visita. Esto permite centrar las actualizaciones del algoritmo de DP en las partes del conjunto de estados que son más relevantes para el agente. Este tipo de enfoque es un tema recurrente en el aprendizaje por refuerzo.
Iteración de política generalizada
La iteración de políticas consiste en dos procesos simultáneos que interactúan entre sí: uno hace que la función de valor sea coherente con la política actual (evaluación de la política) y el otro hace que la política sea codiciosa con respecto a la función de valor actual (mejora de la política). En la iteración de políticas, estos dos procesos se alternan, y cada uno se completa antes de que comience el otro, pero esto no es realmente necesario. En la iteración de valor, por ejemplo, solo se realiza una única iteración de evaluación de políticas entre cada mejora de políticas. En los métodos de DP asincrónicos, los procesos de evaluación y mejora se intercalan con un nivel de detalle aún más fino. En algunos casos, se actualiza un solo estado en un proceso antes de volver al otro. Mientras ambos procesos sigan actualizando todos los estados, el resultado final suele ser el mismo: convergencia a la función de valor óptima y una política óptima.
Utilizamos el término iteración de políticas generalizadas (GPI) para referirnos a la idea general de permitir que los procesos de evaluación y mejora de políticas interactúen, independientemente de la granularidad y otros detalles de los dos procesos.
Casi todos los métodos de aprendizaje por refuerzo se describen bien como GPI. Es decir, todos tienen políticas y funciones de valor identificables, y la política siempre se mejora con respecto a la función de valor y la función de valor siempre se dirige hacia la función de valor para la política, como lo sugiere el siguiente diagrama. Si tanto el proceso de evaluación como el proceso de mejora se estabilizan, es decir, ya no producen cambios, entonces la función de valor y la política deben ser óptimas. La función de valor se estabiliza solo cuando es coherente con la política actual, y la política se estabiliza solo cuando es codiciosa con respecto a la función de valor actual.
Los procesos de evaluación y mejora en la GPI pueden considerarse como procesos que compiten y cooperan entre sí. Compiten en el sentido de que tiran en direcciones opuestas. Hacer que la política sea codiciosa con respecto a la función de valor normalmente hace que la función de valor sea incorrecta para la política modificada, y hacer que la función de valor sea coherente con la política normalmente hace que la política ya no sea codiciosa. Sin embargo, a largo plazo, estos dos procesos interactúan para encontrar una única solución conjunta: la función de valor óptima y una política óptima.