Pengantar policy gradient

Deep Reinforcement Learning dengan Python

Timothée Carayol

Principal Machine Learning Engineer, Komment

Pengantar metode Policy dalam DRL

 

Q-learning:

  • Mempelajari fungsi nilai aksi Q

Sebuah Q-network, dengan state sebagai masukan dan nilai aksi sebagai keluaran

  • Policy: pilih aksi dengan nilai tertinggi

 

Policy learning:

  • Mempelajari policy secara langsung

Sebuah policy network, dengan state sebagai masukan dan probabilitas aksi sebagai keluaran

Deep Reinforcement Learning dengan Python

Policy learning

 

  • Dapat stokastik
  • Menangani ruang kontinu
  • Mengoptimalkan objektif secara langsung
  • Varians tinggi
  • Kurang efisien sampel

 

  • Di Deep-Q learning: policy deterministik

 

$\pi_\theta(a_t | s_t)$:

  • Distribusi probabilitas untuk $a_t$ pada state $s_t$, dengan:
    • $a_t$, $s_t$: aksi dan state pada langkah $t$
    • $\theta$: parameter policy (bobot network)
Deep Reinforcement Learning dengan Python

Policy network (aksi diskret)

class PolicyNetwork(nn.Module):
  def __init__(self, state_size, action_size):
    super(PolicyNetwork, 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))
    action_probs = torch.softmax(self.fc3(x), dim=-1)
    return action_probs

action_probs = policy_network(state) print('Action probabilities:', action_probs)
Action probabilities: tensor([0.21, 0.02, 0.74, 0.03])

Tabel yang memetakan empat aksi ke indeks dan probabilitasnya. Aksi 'up' indeks 0 probabilitas 0,21; aksi 'right' indeks 1 probabilitas 0,02; aksi 'down' indeks 2 probabilitas 0,74; aksi 'left' indeks 3 probabilitas 0,03.

action_dist = (
    torch.distributions.Categorical(action_probs))

action = action_dist.sample()
Deep Reinforcement Learning dengan Python

Fungsi objektif

 

  • Policy harus memaksimalkan expected return

    • Dengan asumsi agen mengikuti $\pi_\theta$
    • Dengan mengoptimalkan parameter policy $\theta$
  • Fungsi objektif:

Sebuah persamaan: J(pi theta) = Nilai harapan atas trajektori tau yang mengikuti pi theta dari R_tau, di mana R_tau adalah return episode

 

  • Untuk memaksimalkan $J$: butuh gradien terhadap $\theta$:

Gradien J(pi_theta) terhadap theta

Deep Reinforcement Learning dengan Python

Fungsi objektif

 

  • Policy harus memaksimalkan expected return

    • Dengan asumsi agen mengikuti $\pi_\theta$
    • Dengan mengoptimalkan parameter policy $\theta$
  • Fungsi objektif:

Definisi J(pi theta), sama seperti slide sebelumnya

 

  • Untuk memaksimalkan $J$: butuh gradien terhadap $\theta$:

Gradien J(pi_theta) terhadap theta disebut policy gradient

Deep Reinforcement Learning dengan Python

Teorema policy gradient

 

  • Memberi bentuk yang terjangkau untuk $\nabla_\theta J(\pi_\theta)$
  • Ekspektasi atas trajektori yang mengikuti $\pi_\theta$
    • Kumpulkan trajektori dan amati return

 

Teorema policy gradient: Gradien J(pi_theta) terhadap theta sama dengan ekspektasi atas trajektori tau yang mengikuti pi_theta dari...

Deep Reinforcement Learning dengan Python

Teorema policy gradient

 

  • Memberi bentuk yang terjangkau untuk $\nabla_\theta J(\pi_\theta)$
  • Ekspektasi atas trajektori yang mengikuti $\pi_\theta$
    • Kumpulkan trajektori dan amati return
  • Untuk tiap trajektori: gunakan return $R_\tau$

 

Teorema policy gradient: Gradien J(pi_theta) terhadap theta sama dengan ekspektasi atas trajektori tau yang mengikuti pi_theta dari return episode dikalikan dengan...

Deep Reinforcement Learning dengan Python

Teorema policy gradient

 

  • Memberi bentuk yang terjangkau untuk $\nabla_\theta J(\pi_\theta)$
  • Ekspektasi atas trajektori yang mengikuti $\pi_\theta$
    • Kumpulkan trajektori dan amati return
  • Untuk tiap trajektori: gunakan return $R_\tau$
  • Kalikan dengan jumlah gradien log-probabilitas aksi yang dipilih
  • Intuisi: dorong $\theta$ agar menaikkan probabilitas semua aksi pada episode yang “bagus”

 

Teorema policy gradient: Gradien J(pi_theta) terhadap theta sama dengan ekspektasi atas trajektori tau yang mengikuti pi_theta dari return episode dikalikan jumlah gradien log-probabilitas aksi, dijumlahkan untuk semua aksi di trajektori.

Deep Reinforcement Learning dengan Python

 

Sebuah gif yang menampilkan permainan Pong

Deep Reinforcement Learning dengan Python

Ayo berlatih!

Deep Reinforcement Learning dengan Python

Preparing Video For Download...