¿Cómo puedo modelar un problema como un MDP si el agente no sigue el orden sucesivo de estados?
En mi problema, el agente no sigue el orden sucesivo de estados, sino que selecciona con $\epsilon$-codicioso el mejor par (estado, acción) de una cola de prioridad. Más específicamente, cuando mi agente va a un estado$s$ y abre sus acciones disponibles $\{ a_i \}$, luego estima cada $(s,a)$pair (regresión con DQN) y lo almacena en la cola. Para que mi agente cambie de estado$s'$, elige el mejor par de la cola en lugar de seguir una de las acciones disponibles $\{ a_i \}$ de $s$. Observo que un estado tiene un conjunto de acciones parcialmente diferente de los demás.
Sin embargo, de esta manera, ¿cómo puedo modelar mi MDP si mi agente no sigue el orden sucesivo de estados?
Más específicamente, tengo un rastreador enfocado que tiene una entrada de algunas URL de semillas. Quiero generar tantas URL relevantes como sea posible con las semillas. Modelo el marco RL de la siguiente manera.
- Estado: la página web,
- Acciones: las URL de enlace de salida de la página web del estado,
- Recompensa: de una fuente externa sé si el contenido de la página web es relevante.
El problema es que, mientras rastrea, si el agente sigue avanzando siguiendo la sucesiva transición de estado, puede caer en trampas de rastreo u óptimos locales. Esa es la razón por la que una cola de prioridad se usa de manera importante en el rastreo. El agente de rastreo ya no sigue el orden sucesivo de transiciones de estado. Cada par de estado-acción se agrega a la cola de prioridad con su valor de acción estimado. Para cada vez, selecciona el par estado-acción más prometedor entre todos los pares en la cola. Observo que cada acción de URL se puede estimar teniendo en cuenta el estado-página web donde se extrajo.
Respuestas
Su problema fundamentalmente es que está confundiendo cuál es el estado y las acciones en este entorno. Las páginas web no son sus estados; su estado es la cola de prioridad completa de (website-outlink)
pares + los (new_website-outlink)
pares. Tu acción es qué par eliges.
Ahora bien, esta es una configuración de problema de espacio de estado de tamaño variable y espacio de acción de tamaño variable al mismo tiempo. Para hacer frente a este Vamos a empezar por señalar que state==observation
la necesidad no sea (en general). Entonces, ¿cuál es tu observación? Su observación es un lote de tamaño variable de:
(website-outlink)
pares onext_website
(donde cada unonext_website
está determinado por su par correspondiente)
Ambas observaciones podrían funcionar bien, elegir entre una u otra es solo una cuestión de si desea que su agente sepa "qué enlaces abrir antes de abrirlos" o "qué enlaces son significativos (después de abrirlos)".
Lo que esencialmente está haciendo su cola de prioridad es simplemente agregar un truco ingenioso que:
- Ahorra la complejidad computacional de mantener el estado ordenado (recuerde que su estado no es un
website
, sino la lista / lote dewebsite-outlink
) - Evita volver a calcular innecesariamente los valores Q para cada una de sus acciones (recuerde que una acción no es seleccionar un enlace de salida
new_website
, sino seleccionar un enlace de salida de todas las opciones disponibles en la cola)
Sin embargo, tenga en cuenta que para tener el segundo ahorro es crucial almacenar los valores Q para cada par.
La última cosa importante a tener en cuenta es que en un escenario en el que usa un búfer de reproducción (que supongo que es probable dado que eligió un DQN), no puede usar la cola de prioridad mientras aprende del RB. Para ver por qué (y para ver en detalle cómo se ve realmente su proceso de aprendizaje), comience por recordar que las actualizaciones de su valor Q vienen dadas por la fórmula aquí ; su estado s_t
es un lote (cuasi-ordenado 1 ) de pares. Q(s_t, a_t)
es simplemente la salida de funcionamiento de su regresión DQN en simplemente la mejor página web / par en este lote (que tienepara agregar un índice para indicar la mejor opción al agregar transiciones al RB, a fin de ser coherente sobre qué acción se tomó desde este estado). Sin embargo, para calcular la estimación del valor futuro óptimo, tendrá que volver a calcular el valor Q de cada sitio / par en el siguiente estado. NO PUEDE usar la cola de prioridad cuando entrena desde el RB.
1 Tiene la cola de prioridad ordenada para todos los sitios web que tenía mientras miraba el último sitio web, pero todos los new_website-outlink
pares que está agregando aún no están ordenados. Todavía tiene que ejecutar el agente en ellos y luego puede ordenarlos con el resto de la cola de prioridad para generar el siguiente estado (que aún no se ordenará porque tendrá new_new_website-outink
pares).