Derin pekiştirmeli öğrenmeye giriş

Python ile Deep Reinforcement Learning

Timothée Carayol

Principal Machine Learning Engineer, Komment

Neden Derin Pekiştirmeli Öğrenme

 

  • Geleneksel RL düşük boyutlu görevler için uygundur

 

 

  • Birçok uygulamada yüksek boyutlu durum ve/veya eylem uzayı vardır

 

Frozen Lake ortamını keşfeden bir aracı

Klasik Space Invaders oyununu oynayan bir aracı

Python ile Deep Reinforcement Learning

DRL’nin bileşenleri

 

  1. Pekiştirmeli Öğrenme kavramları
  2. Derin Öğrenme ve PyTorch

 

  • DRL, bu kavramları derin sinir ağlarıyla birleştirir

 

Malzemeleri karıştıran bir aşçının piksel sanatı illüstrasyonu

Python ile Deep Reinforcement Learning

RL çerçevesi

 

  • Adım t:

 

İçinde 'Agent' ve 'Environment' yazılı iki küçük kutu bulunan büyük bir kutu

Python ile Deep Reinforcement Learning

RL çerçevesi

 

  • Adım t:
    • Aracı durum $s_t$ gözlemler

 

Durum s_t etki alanından aracıya giden, üzerinde State s_t etiketi olan kırmızı bir ok.

Python ile Deep Reinforcement Learning

RL çerçevesi

 

  • Adım t:
    • Aracı durum $s_t$ gözlemler
    • Aracı eylem $a_t$ alır

 

Üzerinde action a_t etiketi olan kırmızı bir ok araçtan etki alanına gider. Durum oku artık siyah.

Python ile Deep Reinforcement Learning

RL çerçevesi

 

  • Adım t:
    • Aracı durum $s_t$ gözlemler
    • Aracı eylem $a_t$ alır
  • Adım t+1:
    • Ortam ödül $r_t$ verir
    • Durum $s_{t+1}$ olur

 

Durum s_t oku etiketini state s_t+1 olarak günceller ve tekrar kırmızı olur. Üzerinde reward r_t+1 etiketi olan yeni kırmızı ok ortamdan aracıya gider. Eylem oku artık siyah.

Python ile Deep Reinforcement Learning

RL çerçevesi

 

  • Adım t:
    • Aracı durum $s_t$ gözlemler
    • Aracı eylem $a_t$ alır
  • Adım t+1:
    • Ortam ödül $r_t$ verir
    • Durum $s_{t+1}$ olur
  • Bölüm bitene kadar tekrarla

 

Önceki slayttakiyle aynı görsel, ancak tüm oklar siyah.

Python ile Deep Reinforcement Learning

Politika $\pi(s_t)$

 

  • Durumdan eyleme eşleme; aracı, verilen $s_t$ durumunda nasıl davranır

 

  • Deterministik:
    • Seçilen eylemi döndürür
  • Stokastik:
    • Eylemler üzerinde bir dağılım döndürür
    • Politika, olası eylemler üzerinde bir olasılık dağılımıdır
Python ile Deep Reinforcement Learning

Yörünge ve bölüm getirisi

 

Yörünge tau: Bir bölümdeki tüm durum ve eylemlerin dizisi; tau = ((s0, a0), (s1, a1), ... (sT, aT))

 

Bölüm getirisi Rtau: tau yörüngesi boyunca biriken toplam (iskontolu) ödüller. Rtau = t üzerinde toplam, gamma üzeri t çarpı r_t

Python ile Deep Reinforcement Learning

Ortamı kurma

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)
Python ile Deep Reinforcement Learning

Temel döngü

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

 

  • Dış döngü: bölümler üzerinde yineleme
  • İç döngü: adımlar üzerinde yineleme
    • Bir eylem seçin
    • Yeni durumu ve ödülü gözlemleyin
    • Kayıp hesaplayın ve ağı güncelleyin
    • Durumu güncelleyin
  • (Kayıp?)
Python ile Deep Reinforcement Learning

Sırada ne var

 

 

  • DRL güçlüdür!
  • Değer tabanlı ve politika tabanlı yaklaşımlar
  • DQN ve iyileştirmeler
  • Politika gradyanı yöntemleri

Derin Pekiştirmeli Öğrenmenin sırlarını keşfetmek için denize dalan bir Datacamp öğrencisi

Python ile Deep Reinforcement Learning

Ayo berlatih!

Python ile Deep Reinforcement Learning

Preparing Video For Download...