Úvod do hlubokého zpevňovacího učení

Deep Reinforcement Learning v Pythonu

Timothée Carayol

Principal Machine Learning Engineer, Komment

Proč hluboké zpevňovací učení

 

  • Tradiční RL je vhodné pro nízkodimenzionální úlohy

 

 

  • Mnoho aplikací má vysokodimenzionální stavový nebo akční prostor

 

Agent prozkoumávající prostředí Frozen Lake

Agent hrající klasickou videohru Space Invaders

Deep Reinforcement Learning v Pythonu

Ingredience DRL

 

  1. Koncepty zpevňovacího učení
  2. Hluboké učení a PyTorch

 

  • DRL kombinuje tyto koncepty s hlubokými neuronovými sítěmi

 

Pixelová ilustrace kuchaře míchajícího ingredience

Deep Reinforcement Learning v Pythonu

Rámec RL

 

  • Krok t:

 

Velký obdélník se dvěma menšími uvnitř, označenými 'Agent' a 'Prostředí'

Deep Reinforcement Learning v Pythonu

Rámec RL

 

  • Krok t:
    • Agent pozoruje stav $s_t$

 

Červená šipka s popiskem Stav s_t směřuje z prostředí k agentovi.

Deep Reinforcement Learning v Pythonu

Rámec RL

 

  • Krok t:
    • Agent pozoruje stav $s_t$
    • Agent provede akci $a_t$

 

Červená šipka s popiskem akce a_t směřuje od agenta k prostředí. Šipka stavu je nyní černá.

Deep Reinforcement Learning v Pythonu

Rámec RL

 

  • Krok t:
    • Agent pozoruje stav $s_t$
    • Agent provede akci $a_t$
  • Krok t+1:
    • Prostředí udělí odměnu $r_t$
    • Stav přejde na $s_{t+1}$

 

Šipka stavu s_t aktualizuje popisek na stav s_t+1 a je opět červená. Nová červená šipka s popiskem odměna r_t+1 směřuje z prostředí k agentovi. Šipka akce je nyní černá.

Deep Reinforcement Learning v Pythonu

Rámec RL

 

  • Krok t:
    • Agent pozoruje stav $s_t$
    • Agent provede akci $a_t$
  • Krok t+1:
    • Prostředí udělí odměnu $r_t$
    • Stav přejde na $s_{t+1}$
  • Opakovat do konce epizody

 

Stejný obrázek jako na předchozím snímku, ale všechny šipky jsou černé.

Deep Reinforcement Learning v Pythonu

Politika $\pi(s_t)$

 

  • Zobrazení ze stavu na akci popisující chování agenta v daném stavu $s_t$

 

  • Deterministická:
    • Vrací vybranou akci
  • Stochastická:
    • Vrací rozdělení přes akce
    • Politika je rozdělení pravděpodobnosti přes možné akce
Deep Reinforcement Learning v Pythonu

Trajektorie a výnos epizody

 

Trajektorie tau: posloupnost všech stavů a akcí v epizodě; tau = ((s0, a0), (s1, a1), ... (sT, aT))

 

Výnos epizody Rtau: celkové (diskontované) odměny nashromážděné podél trajektorie tau. Rtau = součet přes t hodnot gamma na mocninu t krát r_t

Deep Reinforcement Learning v Pythonu

Nastavení prostředí

env = gym.make("ALE/SpaceInvaders-v5")

# Define neural network architecture class Network(nn.Module): def __init__(self, dim_inputs, dim_outputs): super(Network, self).__init__() self.linear = nn.Linear(dim_inputs, dim_outputs) def forward(self, x): return self.linear(x)
# Instantiate network network = Network(dim_inputs, dim_outputs)
# Instantiate optimizer optimizer = optim.Adam(network.parameters(), lr=0.0001)
Deep Reinforcement Learning v Pythonu

Základní smyčka

for episode in range(1000):
  state, info = env.reset()
  done = False

while not done:
action = select_action(network, state)
next_state, reward, terminated, truncated, _ = ( env.step(action)) done = terminated or truncated
loss = calculate_loss(network, state, action, next_state, reward, done) optimizer.zero_grad() loss.backward() optimizer.step()
state = next_state

 

  • Vnější smyčka: iterace přes epizody
  • Vnitřní smyčka: iterace přes kroky
    • Výběr akce
    • Pozorování nového stavu a odměny
    • Výpočet ztráty a aktualizace sítě
    • Aktualizace stavu
  • (Ztráta?)
Deep Reinforcement Learning v Pythonu

Co nás čeká

 

 

  • DRL je výkonné!
  • Přístupy založené na hodnotách a politikách
  • DQN a jeho vylepšení
  • Metody gradientu politiky

Student Datacamp se noří hluboko do moře, aby objevil tajemství hlubokého zpevňovacího učení

Deep Reinforcement Learning v Pythonu

Lass uns üben!

Deep Reinforcement Learning v Pythonu

Preparing Video For Download...