Every-Visit Monte Carlo लागू करना
Every-Visit Monte Carlo विधि, First-Visit वैरिएंट से अलग है क्योंकि यह केवल पहले बार मिलने पर नहीं, बल्कि जब भी कोई state-action जोड़ी आती है, हर बार मानों को अपडेट करती है. यह तरीका एपिसोड्स से मिलने वाली पूरी जानकारी का उपयोग करके पॉलिसी का व्यापक मूल्यांकन देता है, लेकिन क्योंकि यह एपिसोड में किसी भी समय आने वाले सभी सैंपल शामिल करता है, इसलिए value estimates में variance अधिक हो सकता है. आपका कार्य every_visit_mc() फंक्शन का इम्प्लीमेंटेशन पूरा करना है, जो num_episodes एपिसोड्स पर action-value फंक्शन Q का अनुमान लगाता है.
डिक्शनरीज़ returns_sum और returns_count (जिनमें state-action जोड़ियाँ key के रूप में हैं) आपके लिए इनिशियलाइज़ और प्री-लोड की गई हैं, साथ ही generate_episode() फंक्शन भी उपलब्ध है.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में Gymnasium के साथ Reinforcement Learning
अभ्यास निर्देश
generate_episode()फंक्शन का उपयोग करके एक एपिसोड जनरेट करें.- एक एपिसोड के भीतर प्रत्येक state-action जोड़ी के लिए returns और उनकी काउंट्स अपडेट करें.
- अनुमानित Q-values की गणना करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
Q = np.zeros((num_states, num_actions))
for i in range(100):
# Generate an episode
episode = ____
# Update the returns and their counts
for j, (state, action, reward) in ____:
returns_sum[(state, action)] += sum(____)
returns_count[(state, action)] += ____
# Update the Q-values for visited state-action pairs
nonzero_counts = ____
Q[nonzero_counts] = ____
render_policy(get_policy())