View on GitHub

Appunti di Reinforcement Learning

< Torna all’indice dei conenuti

Trust Region Policy Optimization

Idea:

Caratteristiche TPRO:

Problema di ottimizzazione TPRO

\[\begin{aligned} \max_\theta \quad & \mathcal{L}(\theta_k,\theta)\\ s.t \quad & \overline{D}_{KL}(\theta_k \Vert \theta) \le \delta \end{aligned}\] \[\mathcal{L}(\theta_k,\theta) = E_{a,s \sim \pi_{\theta_k}} \left[ \frac{\pi_\theta(a \vert s)}{\pi_{\theta_k}(a \vert s)} A^{\pi_{\theta_k}} (s,a) \right]\] \[\overline{D}_{KL}(\theta_k \Vert \theta) \stackrel{def}{=} E_{s \sim \pi_{\theta_k}}\left[ D_{KL}(\pi_\theta(\cdot \vert s) \ \vphantom{\sum}\Vert \ \pi_{\theta_k}(\cdot \vert s)) \right]\]

Nota: sia la funzione obiettivo che il vincolo valgono $0$ per $\theta=\theta_k$

Approssimazione del problema teorico

Osservazione: la formulazione di TRPO teorica è complessa dal punto di vista matematico e computazionale, perciò nella pratica si utilizza il seguente problema approssimato

\[\begin{aligned} \max_\theta \quad & g^T(\theta-\theta_k) & (\approx \mathcal{L}(\theta_k,\theta)) \\ s.t.\quad &\frac{1}{2}(\theta-\theta_k)^TH(\theta-\theta_k) \le \delta & (\approx \overline{D}_{KL}(\theta_k \Vert \theta)) \end{aligned}\]

con $g=\nabla_\theta\mathcal{L}(\theta,\theta_k)$.

Nota: $g$ è uguale al policy gradient $\nabla_\theta J(\pi_\theta)$ se si valuta il gradiente con $\theta=\theta_k$.

Soluzione analitica

Tramite la dualità lagrangiana si può trovare la soluzione

\[\theta_{k+1} = \theta_{k+1} + \sqrt{\frac{2 \delta}{g^T H^{-1}g}}H^{-1}g\]

Osservazioni:

Soluzione: usare una backtracking line search

\[\theta_{k+1} = \theta_{k+1} + \alpha^j\sqrt{\frac{2 \delta}{g^T H^{-1}g}}H^{-1}g\]

con $\alpha \in (0,1)$ e $j=0,…$ più piccolo che soddisfa il vincolo e che migliora la surrogate loss.

Evitare il calcolo di $H^{-1}$ e la memorizzazione di $H$

Vale la seguente equazione:

\[Hx=g\]

Problemi:

Soluzioni:

Si può dunque derivare l’hessian-vector product

\[Hx = \nabla_\theta \left( \left( \nabla_\theta \overline{D}_{KL}(\theta \Vert \theta_k) \right)^T x \right)\]

Pseudocodice

TRPO Spinning UP

Osservazioni: