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

Multi-armed bandit में convergence का आकलन

Multi-armed bandit समस्या में रणनीतियों के प्रदर्शन और convergence का मूल्यांकन उनकी प्रभावशीलता समझने के लिए ज़रूरी है। समय के साथ प्रत्येक arm को कितनी बार चुना गया है, इसका विश्लेषण करके हम लर्निंग प्रक्रिया और सर्वश्रेष्ठ arm की पहचान व उसका लाभ उठाने की क्षमता का अंदाज़ा लगा सकते हैं। इस अभ्यास में आप iterations के साथ प्रत्येक arm की selection percentage को visualize करेंगे ताकि epsilon-greedy रणनीति की convergence आँकी जा सके।

selected_arms array, जो हर iteration में कौन-सा arm खींचा गया दर्शाता है, आपके लिए पहले से लोड किया गया है।

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

Python में Gymnasium के साथ Reinforcement Learning

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

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

  • selections_percentage नाम का एक array शून्यों से initialize करें, जिसके आयाम समय के साथ प्रत्येक bandit की selection percentage ट्रैक करें।
  • प्रत्येक bandit के लिए iterations पर selections का cumulative sum निकालकर, उसे iteration संख्या से भाग दें और समय के साथ selections_percentage प्राप्त करें।
  • प्रत्येक bandit की cumulative selection percentages plot करें, ताकि दिखे कि iterations के साथ हर bandit कितनी बार चुना गया।

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

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

# Initialize the selection percentages with zeros
selections_percentage = ____
for i in range(n_iterations):
    selections_percentage[i, selected_arms[i]] = 1
# Compute the cumulative selection percentages 
selections_percentage = np.____(____, axis=____) / np.arange(1, ____).reshape(-1, 1)
for arm in range(n_bandits):
  	# Plot the cumulative selection percentage for each arm
    plt.plot(____, label=f'Bandit #{arm+1}')
plt.xlabel('Iteration Number')
plt.ylabel('Percentage of Bandit Selections (%)')
plt.legend()
plt.show()
for i, prob in enumerate(true_bandit_probs, 1):
    print(f"Bandit #{i} -> {prob:.2f}")
कोड संपादित करें और चलाएँ