5 votos

Aprendizaje por refuerzo del gradiente de políticas para un espacio continuo de estados y acciones

Soy un novato en el campo del aprendizaje automático, tengo una comprensión de nivel moderado de regresión lineal / no lineal, máquinas de vectores soporte, redes neuronales y q-learning (para espacio finito discreto y espacio de acción). Hace poco leí un artículo titulado "User Scheduling and Resource Allocation in HetNets With Hybrid Energy Supply: An Actor-Critic Reinforcement Learning Approach" publicado en IEEE TRANSACTIONS ON WIRELESS COMMUNICATIONS, VOL. 17, NO. 1.

Aunque el artículo trata sobre el aprendizaje por refuerzo actor-crítico. Sin embargo, lo que no puedo entender es la parte de "gradiente de política". En concreto, si nuestro espacio de acción es continuo y un vector por ejemplo [b1, b2, b3.. bn, c1, c2, c3...cn] cuenta como una acción donde $b1, b2, b3.. bn, c1, c2, c3...cn$ son todas variables continuas, lo mismo ocurre con el espacio de estados. Al igual que en el documento mencionado anteriormente, los autores han considerado la política gaussiana.

$$\pi_{\theta}(s,a)=\dfrac{1}{\sqrt{2 \pi\sigma}}\exp\left(-\dfrac{(a-\mu(s))^2}{2 \sigma^2}\right) \tag{1}$$

Aunque $\mu(s)$ será una cantidad escalar, aún $a$ debe ser un vector, ya que cada acción es un vector ([b1, b2, b3.. bn, c1, c2, c3...cn]). ¿Es (1) una distribución multidimensional de Gauss?

Además, ¿cómo encontrar la distribución de estados necesaria para el gradiente de la política? Si el espacio de estados es continuo, ¿no debería ser la probabilidad de estar en un estado concreto $0$ ? Si no es así, ¿cómo puedo utilizar la política gaussiana para hallar la distribución de estados? ¿Puede alguien explicarme la expresión de la actualización del gradiente de la política, tengo que tomar muestras del espacio continuo de estados y acciones para la actualización? ¿Puede alguien resolverme una sola iteración?

Sé que por mis preguntas se podría pensar que no he intentado encontrar las respuestas por mí misma y que sólo intento descargar mi carga en otra persona. Sin embargo, créanme que he leído muchos tutoriales, muchos documentos, he visto muchas conferencias en línea y tutoriales en youtube, pero todavía estoy confundido. Principalmente porque la mayoría de los tutoriales asumen que el lector ya tiene un conocimiento de cómo encontrar $\delta_{\theta} \pi_{s,a}$ cómo hallar la distribución estatal, etc.

12voto

reneraab Puntos 1

En primer lugar, el actor-crítico es un tipo avanzado de algoritmos de gradiente de políticas. La forma más básica de gradiente de política se llama REINFORCE. Como la mayoría de las cosas en el aprendizaje por refuerzo se construyen unas sobre otras, puede ser útil entender primero la forma simple. En el capítulo 13 de "Reinforcement Learning: An Introduction" de Sutton y Barto (se puede encontrar en el sitio web del autor: http://incompleteideas.net/book/the-book-2nd.html ). Las siguientes explicaciones esperan una comprensión general del aprendizaje por refuerzo. Para más información, consulte el libro o el enlace al final de esta respuesta.

En los métodos de gradiente de política, se dispone de una red neuronal (normalmente) que aproxima la política (es decir, "¿qué acción debe tomarse en qué estado?"). Concretamente, esto significa que dado un estado $s$ la red predice una distribución de probabilidad $\pi(a|s)$ (es decir, "¿Con qué probabilidad debe actuar $a$ tomarse en estado $s$ ?"). Si tienes un conjunto discreto de acciones, podría ser una red neuronal con una capa de salida softmax.

Sin embargo, si tiene acciones continuas (como en su caso), puede utilizar una política gaussiana. Supongamos por ahora que las acciones son escalares (es decir, unidimensionales). En este caso, la red no puede emitir directamente las probabilidades de todas las acciones (son continuas y, por tanto, hay infinitas), sino que emite los parámetros de la política gaussiana: media $\mu(s)$ y (a veces) desviación típica $\sigma(s)$ . La ecuación (1) indica la probabilidad de las distintas acciones (véase la definición de distribución normal). Para ejecutar esta política, se toma una muestra de una acción de la distribución gaussiana definida por (1). También puede hacer lo mismo con $d$ -acciones dimensionales si se desplaza a $d$ Gaussianos (o un $d$ -con una matriz de covarianza diagonal. Esto significa que todos los $d$ las distribuciones gaussianas unidimensionales son independientes entre sí).

Los métodos de gradiente de política aprenden los parámetros de la red neuronal. Esto se hace jugando un juego/episodio con la política actual. Es decir, empiezas en un estado $s_0$ dadas por el entorno. A continuación, predice $\pi(a|s_0)$ utilizando la red neuronal política. A continuación, muestrea la acción $a_0$ de esa distribución de probabilidad y ejecutarla. El entorno le da recompensa $r_1$ y terminas en el estado $s_1$ . Repite esta operación hasta que llegues a un estado terminal. Ahora puede actualizar sus parámetros de red $\theta \leftarrow \theta + \alpha G \nabla\ln\pi(a_t|s_t)$ para todos los pasos temporales $t$ . Tenga en cuenta que $\alpha$ es la tasa de aprendizaje y $G$ es el rendimiento, es decir, la cantidad de recompensa que espera obtener en el futuro tras realizar la acción $a_t$ en el estado $s_t$ . Puede calcularse a partir del episodio que acabas de jugar o estimarse por el crítico en actor-critic (ten en cuenta que actor-critic funciona de forma ligeramente diferente y tiene actualizaciones adicionales para aprender el crítico; consulta el capítulo del libro para más detalles).

Nótese que no hemos visto cómo calcular el gradiente $\nabla\ln\pi(a_t|s_t)$ antes. Es decir, necesitamos conocer el gradiente de la política gaussiana para actualizar la red. El libro viene de nuevo a nuestro rescate: El capítulo 13.7 y el ejercicio 13.4 (al final del capítulo 13.7) dan más detalles sobre cómo realizar métodos de gradiente de política con espacios de acción continuos y cómo calcular el gradiente dados los parámetros y la acción que se muestreó.

"Spinning Up" de OpenAI puede ser otro buen recurso para leer sobre el aprendizaje por refuerzo y los métodos de gradiente de políticas: https://spinningup.openai.com/en/latest/spinningup/rl_intro.html

Espero que esta respuesta aporte algo de contexto a sus preguntas y le sirva de guía para aprender más. Lamentablemente, no hay espacio suficiente para explicar todos los detalles.

0voto

time machine Puntos 11

Expresiones de la política de actualización de gradiente probar esto para una pequeña muestra:

https://stats.libretexts.org/

https://www.youtube.com/watch?v=JvS2triCgOY

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X