BaşlayınÜcretsiz Başlayın

Epsilon-açgözlülüğü

Bu egzersizde, azalan epsilon-açgözlülüğü uygulayan bir select_action() fonksiyonu yazacaksın.

Epsilon-açgözlülüğü, aracının ortamı keşfetmesini teşvik eder ve bu da öğrenmeyi iyileştirir!

Epsilon-açgözlülüğü çizelgesi, verilen her step için aşağıdaki formülle bir eşik \(\varepsilon\) belirler: $$\varepsilon = end + (start-end) \cdot e^{-\frac{step}{decay}}$$

select_action() \(\varepsilon\) olasılıkla rastgele bir eylem ve \(1-\varepsilon\) olasılıkla en yüksek Q-değerine sahip eylemi döndürmelidir.

Bu egzersiz

Python ile Deep Reinforcement Learning

kursunun bir parçasıdır
Kursu Görüntüle

Egzersiz talimatları

  • Verilen step değeri için epsilon eşiğini hesapla.
  • 0 ile 1 arasında rastgele bir sayı çek.
  • epsilon olasılıkla rastgele bir eylem döndür.
  • 1-epsilon olasılıkla en yüksek Q-değerine sahip eylemi döndür.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

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")
Kodu Düzenle ve Çalıştır