Pengantar deep Q learning

Deep Reinforcement Learning dengan Python

Timothée Carayol

Principal Machine Learning Engineer, Komment

Apa itu Deep Q Learning?

 

 

Gambar yang merepresentasikan Q(state, action), dengan state digambarkan sebagai Bumi dan action sebagai joystick

Deep Reinforcement Learning dengan Python

Ulasan Q-Learning

 

Fungsi nilai-aksi Q_pi(s,a): jumlah reward masa depan jika aksi a diambil pada state s, dengan asumsi kebijakan pi diikuti setelahnya. Q_pi(s,a) = nilai harapan atas lintasan masa depan saat kebijakan pi diikuti dari R_tau dengan s_t=s dan a_t=a

 

 

  • Mengetahui $Q$ memungkinkan kebijakan optimal: $$ \pi(s_t) = {\arg\max}_a Q(s_t, a) $$

  • Tujuan Q-learning: mempelajari $Q$ seiring waktu

Deep Reinforcement Learning dengan Python

Ulasan Q-Learning

Persamaan Bellman (dalam Q-learning) pada lingkungan deterministik: Q_pi(s_t, a_t) = reward r_t+1 + tingkat diskonto gamma * maks atas a_t+1 dari Q_pi(s_t+1, a_t+1))

Target perbedaan temporal (TD-target), juga disebut Q-target atau target Q-value: sisi kanan persamaan Bellman, digunakan sebagai nilai target untuk aturan pembaruan Q-learning. r_t+1 + gamma * maks atas a_t+1 dari Q_pi(s_t+1, a_t+1))

  • Persamaan Bellman: rumus rekursif untuk $Q$
  • Sisi kanan Persamaan Bellman: "TD-target"
  • Gunakan TD-target dari Persamaan Bellman untuk memperbarui $\hat{Q}$ tiap langkah

Aturan pembaruan Q-learning: Q_baru = (1-alpha) Q_lama + alpha * TD-target

Deep Reinforcement Learning dengan Python

Q-Network

Tabel Q dengan 4 state dan 4 aksi, total 16 sel untuk diisi

Deep Reinforcement Learning dengan Python

Q-Network

Tabel Q dengan 9 state dan 4 aksi, total 36 sel untuk diisi

Deep Reinforcement Learning dengan Python

Q-Network

Tabel Q dengan puluhan state dan 4 aksi, sekitar ~100 sel untuk diisi

Deep Reinforcement Learning dengan Python

Q-Network

  • Inti Deep Q Learning: jaringan saraf

Ilustrasi neural network fully connected dengan dua hidden layer

Deep Reinforcement Learning dengan Python

Q-Network

  • Inti Deep Q Learning: jaringan saraf

Ilustrasi neural network fully connected dengan dua hidden layer, gambar Bumi dari slide sebelumnya masuk ke layer input

Deep Reinforcement Learning dengan Python

Q-Network

  • Inti Deep Q Learning: jaringan saraf yang memetakan state ke Q-value

Ilustrasi dari slide sebelumnya, tiap node di layer output terkait dengan aksi yang ditunjukkan arah pada joystick. Atas = aksi 0, kanan = 1, bawah = 2, kiri = 3.

  • Jaringan yang mendekati fungsi nilai-aksi disebut 'Q-network'
  • Q-network umum dipakai di algoritma Deep Q Learning, seperti DQN.
Deep Reinforcement Learning dengan Python

Mengimplementasikan Q-network

class QNetwork(nn.Module):

def __init__(self, state_size, action_size): super(QNetwork, self).__init__()
self.fc1 = nn.Linear(state_size, 64) self.fc2 = nn.Linear(64, 64) self.fc3 = nn.Linear(64, action_size)
def forward(self, state): x = torch.relu(self.fc1(torch.tensor(state))) x = torch.relu(self.fc2(x)) return self.fc3(x)
q_network = QNetwork(8, 4)
optimizer = optim.Adam(q_network.parameters(), lr=0.0001)
  • Dimensi input ditentukan oleh state
  • Dimensi output ditentukan oleh jumlah aksi yang mungkin

  • Contoh ini:

    • 2 hidden layer, masing-masing 64 node
    • Aktivasi ReLU
Deep Reinforcement Learning dengan Python

Ayo berlatih!

Deep Reinforcement Learning dengan Python

Preparing Video For Download...