(Deep) Reinforcement
Learning
VINCENZO DENTAMARO
CEO & CTO NEXTOME S.R.L.
GEORGIA INSTITUTE OF TECHNOLOGY
Apprendimento supervisionato
x: vettore delle features
a: labels (classi)
decision
rule
x a
learner
training set
x1 ⤇ a1
x2 ⤇ a2
x3 ⤇ a3
…
Goal: Costruire una regola di
classificazione
Istruttivo -> come raggiungere il
goal
Apprendimento non supervisionato
x
x: vettore delle featres
a: labels (classi) non presente
decision
rule
learner
esempi
x1 x2
x3
…
Il goal è costruire una regola
che clusterizzi, aggreghi,
esempi simili nello stesso
cluster e esempi differenti in
altri.
Apprendimento per rinforzo
x
x: vettore delle featres
a: labels (classi)
v: valore di feedback per quella
scelta
Il goal è costruire una regola
che massimizzi il valore atteso.
Valutativo -> quanto «bene»
abbiamo raggiunto il goal.
Nel RL descriviamo un
problema non la soluzione.
decision
rule
learner
Esempi
x1, a1 ⤇ v1
x2, a2 ⤇ v2
x3, a3 ⤇ v3
…
Apprendimento per
rinforzo bambini
Vi ricordate come avete imparato a camminare?
Qualcuno vi ha mostrato come si fa?
Trovare il percorso più rapido
Spiaggia
Sabbia bollente
GOAL:
Raggiungere la riva
nel minor tempo
possibile.
Reward?
IPOTESI alla base del
reinforcement learning
I comportamenti intelligenti nascono
dalle azioni del singolo individuo nella
ricerca di massimizzare i segnali di
feedback ricevuti in un ambiente
dinamico e complesso.
Ora siamo pronti ad incominciare… ma dove
vogliamo arrivare?
Conquiste
LA NOSTRA CONQUISTA (KEEP IT SIMPLE)
Ora possiamo incominciare
SCENARIO tipico
Ambiente
Agent
ActionState
Reward
Markov Decision Process (MDP)
Definizione:
S: Insieme di stati
A: Insieme di azioni
Pr(st|st-1,at): probabilità di transitare nello
stato st trovandoci nello stato st-1 e effettuando
azione at
rt : Funzione di Reward
 Discount factor μ ∈ [0,1]
○ Controlla l’importanza di rewards futuri , o =
reward immediati, 1 = tutti i reward egualmente
 Ambienti deterministici vs ambienti
stocastici
Meglio 100 euro adesso o 1000 euro in 1000 anni?
La proprietà markoviana
Il passato non conta
Conta solo il presente
Il presente sintetizza tutte le scelte passate
Policy
 Agente – Sceglie quale azione effettuare
 Policy – Funzione dello stato corrente
 Azione – Il sistema ritorna la migliore azione
da effettuare
Image courtesy: OpenAI Blog on Evolution
Strategies
Famiglie di algoritmi per
mdp
 Model based
1. L’agente conosce il modello
dell’MDP
2. Viene usato dall’agente in
modalità offline, per pianificare
in offline, quale azione
intraprendere a partire da ogni
stato
3. Eg: Value-iteration & policy-
iteration
 Model Free
1. Nessun modello di riferimento
2. L’agente, interagendo con
l’ambiente, migliora una
funzione, chiamata funzione di
qualità, che è il «cervello»
dell’agente e contiene una
rappresentazione imperfetta
dello spazio «state-action» in
ogni momento.
3. Eg: Q-Learning
L’equazione di Richard Bellman
U(s) è la funzione di utilità nello stato s, cioè il valore atteso per tutti i rewards a
partire dallo stato s utilizzando una policy.
R(s) è il reward immediato
è invece il reward dal futuro, l’utilita scontata dello stato s’ raggiunto a
partire dallo stato s mediante azione a
Gamma serve a dare più o meno importanza alla sommatoria dei valori di reward
futuri stimati.
Value Iteration
 Calcola iterativamente l’optimal state value function V(s)
 Convergenza garantita in un numero finito di iterazioni
Policy Iteration
 Ridefinisce la policy ad ogni step (iterativo anch’esso)
 Un metodo per la codifica dell’algoritmo di Policy Iteration prevede
l’utilizzo di Value Iteration per il calcolo della value function.
 Convergenza garantita in un numero di passi << di value iteration
 Costo di ogni passo?
Value vs Policy Iteration
 Usato per planning offline
 Conoscenza a priori di MDP
 In teoria, Policy Iteration è computazionalmente migliore di Value
Iteraiton
○ Minor numero di iterazioni
○ Ogni iterazione è molto costosa
○ siccome la maggiorparte delle implementazioni disponibili usano
value iteration per ogni step di policy iteration, il tempo di
esecuzione di policy iteration è > di value iteration.
Q Learning
 Model free
● Qualità dell’azione che si è deciso di intraprendere trovandosi in un determinato stato
● Bellman equation →
Q'[s, a] = (1 - α) · Q[s, a] + α · (r + γ · Q[s', argmax_a'(Q[s', a'])])
α = learning rate per variare il peso delle nuove esperienze rispetto i valori passati
r = è il reward immediato per aver intrapreso l’azione a trovandosi nello stato s
γ = è il fattore di sconto (discount factor) usato per scontare progressivamente i valori futuri.
s’ = è lo stato in cui finiamo
argmax_a’(Q[s’,a’]) = è l’azione risultante, che massimizza la Q-Value rispetto a tutte le possibili
azioni a’ nello stato s’.
Exploration / Exploitation
Exploitation:
Continua a prendere decisioni basandosi
sulla conoscenza attuale al fine di
massimizzare il guadagno a breve termine.
Exploration: Esplora lo spazio
degli stati. Aumenta la conoscenza
per un guadagno a lungo termine
di solito a spese di un guadagno a
breve termine.
alpha = 0.5
gamma = 0.9
episodes = 10000
epsilon = 0.5
epsilon_decay = 0.99
best_q = None
previous_reward = -10000
# Episodes
for episode in range(episodes):
# Refresh state
state = env.reset()
done = False
t_reward = 0
# Run episode
for i in range(episodes):
if done:
break
current = state
rnd = np.random.uniform(0,1)
action = np.argmax(Q[current])
#choose a greedy action with 1-epsilon
if epsilon >= rnd:
#random action
action = np.random.randint(0, env.action_space.n)
epsilon = epsilon * epsilon_decay
else:
state_action = Q[current]
action = np.argmax(state_action)
if exploration == 'greedy':
if np.random.uniform() < epsilon:
action = np.random.random_integers(0, env.action_space.n - 1)
action = np.argmax(Q[current, :] + np.random.randn(1, env.action_space.n) * (1 / float(episode + 1)))
state, reward, done, info = env.step(action)
t_reward += reward
Q[current, action] += alpha * (reward + gamma * np.max(Q[state, :]) - Q[current, action])
rewards.append(t_reward)
if(t_reward > previous_reward):
previous_reward = t_reward
iterations.append(i)
Q-LEARNING
 R. Sutton dice che Q learning converge se ogni stato è visitato indefinitamente
spesso.
env = gym.make("Taxi-v2")
# Q-function
Q = defaultdict(lambda : 0.) # Q-function
n = defaultdict(lambda : 1.) # number of visits
actionspace = range(env.action_space.n)
greedy_action = lambda s : max(actionspace, key=lambda a : Q[(s,a)])
max_q = lambda sp : max([Q[(sp,a)] for a in actionspace])
import random
epsilon = 0.1
gamma = 0.9
max_episodes = 30000
max_steps = 1000
# Simulation
episodescores = []
for _ in range(max_episodes):
nextstate = env.reset()
currentscore = 0.
for _ in range(max_steps):
state = nextstate
# Epsilon-Greedy
if epsilon > random.random() :
action = env.action_space.sample()
else :
action = greedy_action(state)
nextstate, reward, done, info = env.step(action)
currentscore += reward
# Q-learning
if done :
Q[(state,action)] = Q[(state,action)] + 1./n[(state,action)] * ( reward - Q[(state,action)] )
break
else :
Q[(state,action)] = Q[(state,action)] + 1./n[(state,action)] * 
( reward + gamma * max_q(nextstate) - Q[(state,action)] )
Q-LEARNING
LA VERSIONE TABULARE VA BENE SEMPRE?
Quanto è grande lo state-space di pacman ?
s
Quanti pellet può mangiare Ms.Pac-Man ? circa 250
Lo state-space è grande 2250
più del numero di atomi
presenti nell’universo osservabile.
Come si fa? Usiamo l’approssimazione!
Deep Q-Learning
Deep Q-Learning
Q� (s,a)
s
Convolutional Neural Net
Deep Q-Learning
Convolutional Neural Networks
Deep Q-Learning
Deep Q-Learning
Deep Q-Learning
Deep Q-Learning
Future of Deep Reinforcement Leanring
• Robotica
• Medicina
• Pubblicità
• Gestione Risorse
• Automobili
autonome….
Ma anche….
Equilibri di FoFOE, Nash, Correlati
Deep Q-Learning
Esempio CartPole di OpenAI Gym
Bibliografia
[1] SUTTON, Richard S., et al. Reinforcement learning: An introduction. MIT press,
1998. Anche versione 2 Draft https://goo.gl/3Hz88y
[2] N. Nikovski, Daniel, 1999/02/20, Fast Reinforcement Learning in Continuous
Action Spaces
[3]Volodymyr Mnih, Koray Kavukcuoglu, David Silver, Alex Graves, Ioannis
Antonoglou, Daan Wierstra, and Martin A. Riedmiller. Playing atari with deep
reinforcement learning. CoRR, abs/1312.5602, 2013.
[4] VAN HASSELT, Hado; GUEZ, Arthur; SILVER, David. Deep Reinforcement
Learning with Double Q-Learning. In: AAAI. 2016. p. 2094-2100.
[5]Matiisen Tambet, Demystifying Deep Reinforcement Learning, December 22
2015, Intel AI.
CONTATTI
Vincenzo Dentamaro
Email vincenzodentamaro@gmail.com o
v.dentamaro@nextome.net oppure
vincenzo@gatech.edu
Linkedin
https://www.linkedin.com/in/vincenzodentamaro/

(Deep) Reinforcement Learning

  • 1.
    (Deep) Reinforcement Learning VINCENZO DENTAMARO CEO& CTO NEXTOME S.R.L. GEORGIA INSTITUTE OF TECHNOLOGY
  • 2.
    Apprendimento supervisionato x: vettoredelle features a: labels (classi) decision rule x a learner training set x1 ⤇ a1 x2 ⤇ a2 x3 ⤇ a3 … Goal: Costruire una regola di classificazione Istruttivo -> come raggiungere il goal
  • 3.
    Apprendimento non supervisionato x x:vettore delle featres a: labels (classi) non presente decision rule learner esempi x1 x2 x3 … Il goal è costruire una regola che clusterizzi, aggreghi, esempi simili nello stesso cluster e esempi differenti in altri.
  • 4.
    Apprendimento per rinforzo x x:vettore delle featres a: labels (classi) v: valore di feedback per quella scelta Il goal è costruire una regola che massimizzi il valore atteso. Valutativo -> quanto «bene» abbiamo raggiunto il goal. Nel RL descriviamo un problema non la soluzione. decision rule learner Esempi x1, a1 ⤇ v1 x2, a2 ⤇ v2 x3, a3 ⤇ v3 …
  • 5.
    Apprendimento per rinforzo bambini Viricordate come avete imparato a camminare? Qualcuno vi ha mostrato come si fa?
  • 6.
    Trovare il percorsopiù rapido Spiaggia Sabbia bollente GOAL: Raggiungere la riva nel minor tempo possibile. Reward?
  • 7.
    IPOTESI alla basedel reinforcement learning I comportamenti intelligenti nascono dalle azioni del singolo individuo nella ricerca di massimizzare i segnali di feedback ricevuti in un ambiente dinamico e complesso. Ora siamo pronti ad incominciare… ma dove vogliamo arrivare?
  • 8.
  • 9.
  • 10.
  • 11.
    Markov Decision Process(MDP) Definizione: S: Insieme di stati A: Insieme di azioni Pr(st|st-1,at): probabilità di transitare nello stato st trovandoci nello stato st-1 e effettuando azione at rt : Funzione di Reward  Discount factor μ ∈ [0,1] ○ Controlla l’importanza di rewards futuri , o = reward immediati, 1 = tutti i reward egualmente  Ambienti deterministici vs ambienti stocastici Meglio 100 euro adesso o 1000 euro in 1000 anni?
  • 12.
    La proprietà markoviana Ilpassato non conta Conta solo il presente Il presente sintetizza tutte le scelte passate
  • 13.
    Policy  Agente –Sceglie quale azione effettuare  Policy – Funzione dello stato corrente  Azione – Il sistema ritorna la migliore azione da effettuare Image courtesy: OpenAI Blog on Evolution Strategies
  • 14.
    Famiglie di algoritmiper mdp  Model based 1. L’agente conosce il modello dell’MDP 2. Viene usato dall’agente in modalità offline, per pianificare in offline, quale azione intraprendere a partire da ogni stato 3. Eg: Value-iteration & policy- iteration  Model Free 1. Nessun modello di riferimento 2. L’agente, interagendo con l’ambiente, migliora una funzione, chiamata funzione di qualità, che è il «cervello» dell’agente e contiene una rappresentazione imperfetta dello spazio «state-action» in ogni momento. 3. Eg: Q-Learning
  • 15.
    L’equazione di RichardBellman U(s) è la funzione di utilità nello stato s, cioè il valore atteso per tutti i rewards a partire dallo stato s utilizzando una policy. R(s) è il reward immediato è invece il reward dal futuro, l’utilita scontata dello stato s’ raggiunto a partire dallo stato s mediante azione a Gamma serve a dare più o meno importanza alla sommatoria dei valori di reward futuri stimati.
  • 16.
    Value Iteration  Calcolaiterativamente l’optimal state value function V(s)  Convergenza garantita in un numero finito di iterazioni
  • 17.
    Policy Iteration  Ridefiniscela policy ad ogni step (iterativo anch’esso)  Un metodo per la codifica dell’algoritmo di Policy Iteration prevede l’utilizzo di Value Iteration per il calcolo della value function.  Convergenza garantita in un numero di passi << di value iteration  Costo di ogni passo?
  • 18.
    Value vs PolicyIteration  Usato per planning offline  Conoscenza a priori di MDP  In teoria, Policy Iteration è computazionalmente migliore di Value Iteraiton ○ Minor numero di iterazioni ○ Ogni iterazione è molto costosa ○ siccome la maggiorparte delle implementazioni disponibili usano value iteration per ogni step di policy iteration, il tempo di esecuzione di policy iteration è > di value iteration.
  • 19.
    Q Learning  Modelfree ● Qualità dell’azione che si è deciso di intraprendere trovandosi in un determinato stato ● Bellman equation → Q'[s, a] = (1 - α) · Q[s, a] + α · (r + γ · Q[s', argmax_a'(Q[s', a'])]) α = learning rate per variare il peso delle nuove esperienze rispetto i valori passati r = è il reward immediato per aver intrapreso l’azione a trovandosi nello stato s γ = è il fattore di sconto (discount factor) usato per scontare progressivamente i valori futuri. s’ = è lo stato in cui finiamo argmax_a’(Q[s’,a’]) = è l’azione risultante, che massimizza la Q-Value rispetto a tutte le possibili azioni a’ nello stato s’.
  • 20.
    Exploration / Exploitation Exploitation: Continuaa prendere decisioni basandosi sulla conoscenza attuale al fine di massimizzare il guadagno a breve termine. Exploration: Esplora lo spazio degli stati. Aumenta la conoscenza per un guadagno a lungo termine di solito a spese di un guadagno a breve termine.
  • 21.
    alpha = 0.5 gamma= 0.9 episodes = 10000 epsilon = 0.5 epsilon_decay = 0.99 best_q = None previous_reward = -10000 # Episodes for episode in range(episodes): # Refresh state state = env.reset() done = False t_reward = 0 # Run episode for i in range(episodes): if done: break current = state rnd = np.random.uniform(0,1) action = np.argmax(Q[current]) #choose a greedy action with 1-epsilon if epsilon >= rnd: #random action action = np.random.randint(0, env.action_space.n) epsilon = epsilon * epsilon_decay else: state_action = Q[current] action = np.argmax(state_action) if exploration == 'greedy': if np.random.uniform() < epsilon: action = np.random.random_integers(0, env.action_space.n - 1) action = np.argmax(Q[current, :] + np.random.randn(1, env.action_space.n) * (1 / float(episode + 1))) state, reward, done, info = env.step(action) t_reward += reward Q[current, action] += alpha * (reward + gamma * np.max(Q[state, :]) - Q[current, action]) rewards.append(t_reward) if(t_reward > previous_reward): previous_reward = t_reward iterations.append(i) Q-LEARNING  R. Sutton dice che Q learning converge se ogni stato è visitato indefinitamente spesso.
  • 22.
    env = gym.make("Taxi-v2") #Q-function Q = defaultdict(lambda : 0.) # Q-function n = defaultdict(lambda : 1.) # number of visits actionspace = range(env.action_space.n) greedy_action = lambda s : max(actionspace, key=lambda a : Q[(s,a)]) max_q = lambda sp : max([Q[(sp,a)] for a in actionspace]) import random epsilon = 0.1 gamma = 0.9 max_episodes = 30000 max_steps = 1000 # Simulation episodescores = [] for _ in range(max_episodes): nextstate = env.reset() currentscore = 0. for _ in range(max_steps): state = nextstate # Epsilon-Greedy if epsilon > random.random() : action = env.action_space.sample() else : action = greedy_action(state) nextstate, reward, done, info = env.step(action) currentscore += reward # Q-learning if done : Q[(state,action)] = Q[(state,action)] + 1./n[(state,action)] * ( reward - Q[(state,action)] ) break else : Q[(state,action)] = Q[(state,action)] + 1./n[(state,action)] * ( reward + gamma * max_q(nextstate) - Q[(state,action)] ) Q-LEARNING LA VERSIONE TABULARE VA BENE SEMPRE?
  • 23.
    Quanto è grandelo state-space di pacman ? s Quanti pellet può mangiare Ms.Pac-Man ? circa 250 Lo state-space è grande 2250 più del numero di atomi presenti nell’universo osservabile. Come si fa? Usiamo l’approssimazione!
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
    Future of DeepReinforcement Leanring • Robotica • Medicina • Pubblicità • Gestione Risorse • Automobili autonome….
  • 32.
    Ma anche…. Equilibri diFoFOE, Nash, Correlati
  • 33.
  • 34.
    Bibliografia [1] SUTTON, RichardS., et al. Reinforcement learning: An introduction. MIT press, 1998. Anche versione 2 Draft https://goo.gl/3Hz88y [2] N. Nikovski, Daniel, 1999/02/20, Fast Reinforcement Learning in Continuous Action Spaces [3]Volodymyr Mnih, Koray Kavukcuoglu, David Silver, Alex Graves, Ioannis Antonoglou, Daan Wierstra, and Martin A. Riedmiller. Playing atari with deep reinforcement learning. CoRR, abs/1312.5602, 2013. [4] VAN HASSELT, Hado; GUEZ, Arthur; SILVER, David. Deep Reinforcement Learning with Double Q-Learning. In: AAAI. 2016. p. 2094-2100. [5]Matiisen Tambet, Demystifying Deep Reinforcement Learning, December 22 2015, Intel AI. CONTATTI Vincenzo Dentamaro Email vincenzodentamaro@gmail.com o v.dentamaro@nextome.net oppure vincenzo@gatech.edu Linkedin https://www.linkedin.com/in/vincenzodentamaro/