MulaiMulai sekarang secara gratis

Epsilon-greediness

Pada latihan ini, Anda akan mengimplementasikan fungsi select_action() yang menerapkan epsilon-greediness dengan peluruhan.

Epsilon-greediness akan mendorong agen Anda untuk mengeksplorasi lingkungan, yang seharusnya meningkatkan pembelajaran!

Jadwal epsilon-greediness menentukan ambang \(\varepsilon\) untuk setiap step, diberikan oleh rumus: $$\varepsilon = end + (start-end) \cdot e^{-\frac{step}{decay}}$$

select_action() harus mengembalikan aksi acak dengan probabilitas \(\varepsilon\), dan aksi dengan nilai Q tertinggi dengan probabilitas \(1-\varepsilon\).

Latihan ini adalah bagian dari kursus

Deep Reinforcement Learning dengan Python

Lihat Kursus

Petunjuk latihan

  • Hitung ambang epsilon untuk nilai step yang diberikan.
  • Ambil angka acak antara 0 dan 1.
  • Dengan probabilitas epsilon, kembalikan aksi acak.
  • Dengan probabilitas 1-epsilon, kembalikan aksi dengan nilai Q tertinggi.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

def select_action(q_values, step, start, end, decay):
    # Calculate the threshold value for this step
    epsilon = end + (____) * math.exp(____ / ____)
    # Draw a random number between 0 and 1
    sample = random.____
    if sample < epsilon:
        # Return a random action index
        return random.____
    # Return the action index with highest Q-value
    return torch.____.item()
      
for step in [1, 500, 2500]:
    actions = [select_action(torch.Tensor([1, 2, 3, 5]), step, .9, .05, 1000) for _ in range(20)]
    print(f"Selecting 20 actions at step {step}.\nThe action with highest q-value is action 3.\nSelected actions: {actions}\n\n")
Edit dan Jalankan Kode