शुरू करेंमुफ़्त में शुरू करें

Epsilon-greediness

इस अभ्यास में, आप एक select_action() फंक्शन इम्प्लीमेंट करेंगे जो decayed epsilon-greediness लगाता है.

Epsilon-greediness आपका एजेंट वातावरण को एक्सप्लोर करने के लिए प्रेरित करेगा, जिससे सीखना बेहतर होना चाहिए!

Epsilon-greediness शेड्यूल किसी भी दिए गए step के लिए थ्रेशोल्ड \(\varepsilon\) निर्धारित करता है, जो निम्न सूत्र से दिया गया है: $$\varepsilon = end + (start-end) \cdot e^{-\frac{step}{decay}}$$

select_action() को संभावना \(\varepsilon\) के साथ एक रैंडम एक्शन लौटाना चाहिए, और संभावना \(1-\varepsilon\) के साथ सबसे ऊँचे Q-value वाला एक्शन.

यह अभ्यास पाठ्यक्रम का हिस्सा है

Python में Deep Reinforcement Learning

पाठ्यक्रम देखें

अभ्यास निर्देश

  • दिए गए step मान के लिए epsilon थ्रेशोल्ड की गणना करें.
  • 0 और 1 के बीच एक रैंडम संख्या निकालें.
  • संभावना epsilon के साथ, एक रैंडम एक्शन लौटाएँ.
  • संभावना 1-epsilon के साथ, सबसे ऊँची Q-value वाला एक्शन लौटाएँ.

इंटरैक्टिव व्यावहारिक अभ्यास

इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।

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")
कोड संपादित करें और चलाएँ