View on GitHub

Appunti di Reinforcement Learning

< Torna all’indice dei conenuti

Lecture 1 - MDPs, Exact Solution Methods, Max-ent RL

Motivation


Markov Decision Process

RL

Markov Decision Process (definizione): Un Markov Decision Process è una settupla $(S,A,P,R,s_0,\gamma,H)$ tale che:

Goal del MDP:

\[\max_\pi E \left[ \left. \sum_{t=0}^H \gamma^tR(S_t, A_t, S_{t+1}) \right\vert \pi \right]\]

Esempi di MDP:


Value iteration

\[V^\ast(s) = \max_\pi E \left[ \left. \sum_{t=0}^H \gamma^tR(S_t, A_t, S_{t+1}) \right\vert \pi, s_0 =s\right]\]

Esempio Gridworld. Nota: appena l’agente ottiene una ricompensa (positiva o negativa) il processo termina.

Gridworld

Esempio $\gamma=1$, $H=100$:

Esempio $\gamma=0.9$, $H=100$:

Esempio $\gamma=0.9$, $H=100$ e probabilità di successo delle azioni pari a $0.8$:

Computazione di $V_t^\ast(s)$ :

\[\left\lbrace \begin{aligned} & V_0^\ast(s)=0 \qquad \forall s \vphantom{\sum^k_b} \\ & V_k^\ast(s)= \max_a \sum_{s'} P(s'\vert s,a)\cdot ( R(s,a,s') + \gamma V_{k-1}^\ast(s')) \qquad k > 0 \phantom{\sum^k} \end{aligned} \right.\]

Algoritmo:

algo

Si può ricostruire ciascuna azione per ogni stato con il Bellman backtrace oppure aggiornando ad ogni passo l’azione ottimale.

Esempio con noise $0.2$ e discout $0.9$:

Esempio

Teorema: Value iteration converge al valore ottimo della funzione $V^\ast$ per il discounted infinite horizon problem, che soddisfa le equazioni di Bellman:

\[V^\ast(s)= \max_a \sum_{s'} P(s'\vert s,a)\cdot ( R(s,a,s') + \gamma V^\ast(s')), \qquad \forall s \in S\]

Alla convergenza (per ogni $s \in S$, $V^\ast(s)= \lim _{k \rightarrow \infty} V_k^\ast(s)$) si ha:

Intuizione sulla convergenza di Value iteration:

\[\sum_{k=1}^\infty \gamma^{H+k} R(s_{H+k}) \le R_{max} \cdot \sum_{k=1}^\infty \gamma^{H+k} \stackrel{(\ast)}{=} \frac{\gamma^{H+1}}{1-\gamma}R_{max} \qquad (\ast) \text{ serie geometrica}\]

Siccome $\gamma < 1$ si ha che $\lim_{H \rightarrow \infty}\frac{\gamma^{H+1}}{1-\gamma}R_{max} = \frac{R_{max}}{1-\gamma}$, quindi $V_H^\ast$ converge a $V^\ast$

Intuizione sulla convergenza di Value iteration con contractions:

Esempi

$\gamma = 0.1, noise=0 \quad \Longrightarrow \quad$ preferisci l’uscita vicina, rischiando la rupe

Esempio 1

$\gamma = 0.1, noise=0.5 \quad \Longrightarrow \quad$ preferisci l’uscita vicina, non rischiando la rupe

Esempio 2

$\gamma = 0.1, noise=0 \quad \Longrightarrow \quad$ preferisci l’uscita lontana, rischiando la rupe

Esempio 3

$\gamma = 0.1, noise=0 \quad \Longrightarrow \quad$ preferisci l’uscita lontana, non rischiando la rupe

Esempio 4


Q-values

Definizione (Q-values): $Q^\ast(s,a)$ valore atteso di utilità partendo da $s$ e commettendo l’azione $s$, e poi agendo ottimalmente. Equazione di Bellman:

\[Q^\ast(s,a) = \sum_{s'} P(s'\vert s,a)\cdot(R(s,a,s') + \gamma \max_{a'} Q^\ast(s',a'))\]

Q-value iteration:

\[Q_k^\ast(s,a) = \sum_{s'} P(s'\vert s,a)\cdot(R(s,a,s') + \gamma \max_{a'} Q_{k-1}^\ast(s',a'))\]

Q-value converge nello stesso modo con cui converge Value iteration.

Esempio:

Q-values


Policy iteration

Policy evaluation: si utilizza la stessa equazione di Value iteration, ma non scegliendo l’azione che massimizza il valore, bensì un’azione di un particolare piano $\pi$.

Valutazione di una policy deterministica:

\[V_k^\pi(s) = \sum_{s'} P (s'\vert s,\pi(s))\cdot (R(s,\pi(s),s')+\gamma V_{k-1}^\pi(s))\]

Alla convergenza:

\[V^\pi(s) = \sum_{s'} P (s'\vert s,\pi(s))\cdot (R(s,\pi(s),s')+\gamma V^\pi(s))\]

Stochastic policy: $\pi(a\vert s)$ probabilità di commettere l’azione $a$ nello stato $s$. Valutazione:

\[V_k^\pi(s) = \sum_{s'} \sum_{a} \pi(a\vert s)\cdot P(s'\vert s,a) \cdot (R(s,a,s') + \gamma V_{k-1}^\pi(s'))\]

Si può utilizzare la policy evaluation come misura di qualità di una policy, e cercare nello spazio delle policy la migliore.

Algoritmo di policy iteration:

Policy evaluation

Osservazioni:

Teorema (convergenza e ottimalità di policy iteration): Policy iteration converge e la valutazione della policy trovata è ottimale.

Convergenza:

Ottimalità:

\[\pi(s) = \arg \max_a \sum_{s'} P(s,a,s') \cdot (R(s,a,s') + \gamma V^\pi(s')) \qquad \forall s\]

equazione di Value iteration. Sapendo che Value iteration trova il valore ottimale, abbiamo dimostrato l’ottimalità della policy alla convergenza di Policy iteration.


Maximum Entropy Formulation

Motivazioni:

Entropia:

\[H(X)=-\sum_i P(X=x_i) \log P(X=x_i)\]

Formulazione classica MDP:

\[\max_\pi E\left[\sum_{t=0}^H r_t \right]\]

Maximum entropy MDP:

\[\max_\pi E\left[\sum_{t=0}^H r_t + \beta H(\pi(\cdot\vert s_t)) \right]\]

si introduce un termine che punta a massimizzare l’entropia. In particolare, più alto è $\beta$, più l’ottimizzazione è focalizzata sul massimizzare l’entropia, quindi che risulterebbe nella raccolta di meno reward. Alta entropia implica alta stocasticità.

Ottimizzazione del problema con maximum entropy formulation:

Calcolo del duale lagrangiano:

\[\begin{aligned} & \max_{\pi(a)} \left\lbrace E[r(a)] + \beta H(\pi(a)) \left\vert \sum_{a'} \pi(a')=1 \right. \right\rbrace\\ & \max_{\pi(a)} \left\lbrace E[r(a)] - \beta \sum_{a'} \pi(a') \log \pi(a') \left\vert \sum_{a'} \pi(a')=1 \right. \right\rbrace \\ & \max_{\pi(a)} \min_\lambda \mathcal{L}(\pi(a),\lambda)= E[r(a)] - \beta \sum_{a'} \pi(a') \log \pi(a') + \lambda \left( \sum_{a'} \pi(a')-1 \right) \end{aligned}\]

Calcolo del massimo di $\mathcal{L}$ rispetto a $\pi(a)$:

\[\begin{aligned} & \frac{\partial}{\partial \pi(a)}\mathcal{L}(\pi(a),\lambda)=0\\ & \frac{\partial}{\partial \pi(a)} \left(\sum_{a'} \pi(a')r(a') - \beta \sum_{a'} \pi(a')\log \pi(a') + \lambda \left( \sum_{a'} \pi(a')-1\right) \right)=0\\ & r(a)- \beta \log \pi(a) - \beta + \lambda = 0\\ & \beta \log \pi(a) = r(a) - \beta + \lambda\\ & \pi(a) = \exp \left( \frac{1}{\beta}(r(a) - \beta + \lambda) \right) \end{aligned}\]

Calcolo del minimo di $\mathcal{L}$ rispetto a $\lambda$:

\[\begin{aligned} & \frac{\partial}{\partial \lambda} \mathcal{L}(\pi(a), \lambda) = 0\\ & \sum_a \pi(a) - 1= 0\\ \end{aligned}\]

si ottiene che qualsiasi $\lambda > 0$ permette di ottenere il minimo. Ponendo $\lambda = \beta$ e normalizzando:

\[\pi(a) = \frac{1}{Z} \exp \left( \frac{1}{\beta}r(a) \right), \qquad Z = \sum_a \exp \left( \frac{1}{\beta}r(a) \right)\]

la normalizzazione è accettabile perché monotona crescente.

Osservazioni:

Valore $V$ associato alla policy $\pi(a)$:

\[\begin{aligned} V &= \sum_a \left[ \frac{1}{Z}\exp \left( \frac{1}{\beta}r(a) \right) r(a) \right] - \beta \sum_a \frac{1}{Z}\exp \left( \frac{1}{\beta}r(a) \right) \log \left[ \frac{1}{Z}\exp \left( \frac{1}{\beta}r(a) \right) \right ]\\ &= \sum_a \frac{1}{Z} \exp \left( \frac{1}{\beta} r(a) \right) \underbrace{\left[ r(a) - \beta \log \left( \exp\left(\frac{1}{\beta}r(a)\right) \right)\right]}_0 - \beta \log \frac{1}{Z}\underbrace{ \sum_a \frac{1}{Z} \exp \left( \frac{1}{\beta}r(a) \right)}_1\\ &= - \beta \log \frac{1}{Z}\\ &= \beta \log \sum_a \exp \left( \frac{1}{\beta}r(a) \right) \equiv \text{softmax} \end{aligned}\]

One-step update di max-ent value iteration:

\[V_k(s)=\max_\pi E \left[ \sum_{t=H-k}^H r(s_t,a_t) + \beta H(\pi(a_t\vert s_t)) \right]\] \[\begin{aligned} V_k(s)&=\max_\pi E \left[ r(s,a,s') + \beta H(\pi(a\vert s)) + V_{k-1}(s') \right]\\ &=\max_\pi E \left[ Q_k(s,a) + \beta H(\pi(a\vert s)) \right]\\ \end{aligned}\]

che equivale a sostituire $r(a)$ al posto di $Q_k(s,a)$ nella formulazione del problema di ottimizzazione. Si ottiene quindi

\[V_k(s) = \beta \sum_a \exp \left( \frac{1}{\beta} Q_k(s,a) \right), \qquad \pi_k(s) = \frac{1}{Z} \exp \left( \frac{1}{\beta} Q_k(s,a) \right)\]