View on GitHub

Appunti di Reinforcement Learning

< Torna all’indice dei conenuti

Lecture 2 - Deep Q-Learning

Limitazioni dei metodi esatti:

Q-Learning

$Q^\ast(s,a)$: valore di utilità atteso per l’azione $a$ nello stato $s$ e agendo ottimamente dallo stato seguente in avanti.

Assume:

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

Riscrittura tramite expected value, quindi usare l’esperienza, e non un transition model:

\[Q_{k+1} = E_{s' \sim P(s'\vert s,1)} \left[ R(s,a,s') + \gamma \max_{a'} Q_k(s',a')) \right]\]

Da ciò, l’idea dell’algoritmo:

\[target(s') = R(s,a,s') + \gamma \max_{a'} Q_k(s',a')\] \[Q_{k+1}(s,a) = (1-\alpha) \cdot Q_{k}(s,a) + \alpha \cdot target(s')\]

Algoritmo di Q-Learning:

"Q-Learning"

Come fare sampling sulle azioni?

Osservazioni Q-Learning:

\[\begin{aligned} &\sum_{t=0}^\infty \alpha_t(s,a)=\infty \qquad (\text{abbastanza apprendimento }\forall t)\\ & \sum_{t=0}^\infty \alpha_t^2(s,a)<\infty \qquad (\text{varianza limitata}) \end{aligned}\]

Esempio: box robot; stati continui, bisogna discretizzare

I metodi tabulari sono scalabili? NO. Es. umanoide: $10^{100}$ stati

Approximate Q-Learning

Funzione parametrizzata $Q_\theta(s,a)$:

\[Q_\theta(s,a) = (\theta_0,...,\theta_n)^T (f_0(s,a),...,f_n(s,a))\]

Deep Q Networks (DQN)

\[\begin{aligned} & target(s')=R(s,a,s') + \gamma \max_{a'} Q_{\theta_k}(s',a')\\ & \theta_{k+1} = \theta_k - \alpha \nabla_{\theta_k} \underbrace{\left[ \frac{1}{2}(Q_\theta(s,a) - target(s'))^2 \right]}_{\text{squared error loss}}\\ \end{aligned}\]

per evitare overfitting, si può fare training in batches.

Algoritmo:

DQN

Osservazioni:

Dettagli:

\[L_\delta(a)= \left\lbrace \begin{array}{ll} \frac{1}{2}a^2 & \qquad \vert a\vert \le \delta\\ \delta\left(\vert a\vert -\frac{1}{2}\delta\right) & \qquad \text{otherwise} \end{array} \right.\]

Huber Loss

DQN sui giochi Atari:

Double DQN:

\[L_i(\theta_i) = E_{s,a,s',r,D} \left[ r + \gamma Q(s',\arg \max_{a'}Q(s',a',\theta);\theta_i^-) - Q(s,a;\theta_i) \right]^2\]

Prioritized experience replay:

\[\left\vert r + \gamma \max Q(s',a';\theta^-) - Q(s,a;\theta) \right\vert\]

Variazioni DQN: