You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ML-For-Beginners/translations/hi/8-Reinforcement/1-QLearning/README.md

59 lines
9.7 KiB

## नीति की जाँच करना
चूंकि Q-Table प्रत्येक स्थिति में प्रत्येक क्रिया की "आकर्षण" सूचीबद्ध करता है, इसलिए इसका उपयोग हमारे विश्व में कुशल नेविगेशन को परिभाषित करने के लिए काफी आसान है। सबसे सरल मामले में, हम उस क्रिया का चयन कर सकते हैं जो Q-Table के उच्चतम मूल्य से मेल खाती है: (कोड ब्लॉक 9)
```python
def qpolicy_strict(m):
x,y = m.human
v = probs(Q[x,y])
a = list(actions)[np.argmax(v)]
return a
walk(m,qpolicy_strict)
```
> यदि आप ऊपर दिए गए कोड को कई बार आजमाते हैं, तो आप देख सकते हैं कि कभी-कभी यह "लटक" जाता है, और आपको इसे बाधित करने के लिए नोटबुक में STOP बटन दबाने की आवश्यकता होती है। ऐसा इसलिए होता है क्योंकि ऐसी स्थितियाँ हो सकती हैं जब दो राज्य इष्टतम Q-Value के संदर्भ में एक-दूसरे की ओर "इशारा" करते हैं, इस स्थिति में एजेंट उन राज्यों के बीच अनिश्चितकाल तक चलता रहता है।
## 🚀चुनौती
> **कार्य 1:** `walk` function to limit the maximum length of path by a certain number of steps (say, 100), and watch the code above return this value from time to time.
> **Task 2:** Modify the `walk` function so that it does not go back to the places where it has already been previously. This will prevent `walk` from looping, however, the agent can still end up being "trapped" in a location from which it is unable to escape.
## Navigation
A better navigation policy would be the one that we used during training, which combines exploitation and exploration. In this policy, we will select each action with a certain probability, proportional to the values in the Q-Table. This strategy may still result in the agent returning back to a position it has already explored, but, as you can see from the code below, it results in a very short average path to the desired location (remember that `print_statistics` को संशोधित करें ताकि यह सिमुलेशन को 100 बार चलाए: (कोड ब्लॉक 10)
```python
def qpolicy(m):
x,y = m.human
v = probs(Q[x,y])
a = random.choices(list(actions),weights=v)[0]
return a
print_statistics(qpolicy)
```
इस कोड को चलाने के बाद, आपको पहले की तुलना में औसत पथ लंबाई बहुत कम मिलनी चाहिए, जो 3-6 की सीमा में होगी।
## सीखने की प्रक्रिया की जांच
जैसा कि हमने उल्लेख किया है, सीखने की प्रक्रिया समस्या स्थान की संरचना के बारे में प्राप्त ज्ञान की खोज और अन्वेषण के बीच एक संतुलन है। हमने देखा है कि सीखने के परिणाम (एक एजेंट को लक्ष्य तक पहुँचने के लिए एक छोटा रास्ता खोजने की क्षमता) में सुधार हुआ है, लेकिन यह भी देखना दिलचस्प है कि सीखने की प्रक्रिया के दौरान औसत पथ लंबाई कैसे व्यवहार करती है:
## सीखने को इस प्रकार संक्षेपित किया जा सकता है:
- **औसत पथ लंबाई बढ़ जाती है**। यहां हम देखते हैं कि पहले औसत पथ लंबाई बढ़ जाती है। ऐसा शायद इसलिए होता है क्योंकि जब हमें पर्यावरण के बारे में कुछ नहीं पता होता है, तो हम खराब राज्यों, पानी या भेड़िये में फंसने की संभावना रखते हैं। जैसे-जैसे हम अधिक सीखते हैं और इस ज्ञान का उपयोग करना शुरू करते हैं, हम लंबे समय तक पर्यावरण का पता लगा सकते हैं, लेकिन हमें अभी भी सेब कहाँ हैं इसके बारे में अच्छी तरह से पता नहीं होता है।
- **जैसे-जैसे हम अधिक सीखते हैं, पथ की लंबाई कम हो जाती है**। एक बार जब हम पर्याप्त सीख लेते हैं, तो एजेंट के लिए लक्ष्य प्राप्त करना आसान हो जाता है, और पथ लंबाई कम होने लगती है। हालांकि, हम अभी भी अन्वेषण के लिए खुले हैं, इसलिए हम अक्सर सबसे अच्छे रास्ते से भटकते हैं, और नए विकल्पों का पता लगाते हैं, जिससे रास्ता इष्टतम से लंबा हो जाता है।
- **लंबाई अचानक बढ़ जाती है**। इस ग्राफ पर हम यह भी देखते हैं कि किसी बिंदु पर, लंबाई अचानक बढ़ जाती है। यह प्रक्रिया की यादृच्छिक प्रकृति को इंगित करता है, और यह कि हम किसी बिंदु पर Q-Table गुणांक को नए मानों के साथ अधिलेखित करके "बिगाड़" सकते हैं। आदर्श रूप से इसे सीखने की दर को कम करके कम किया जाना चाहिए (उदाहरण के लिए, प्रशिक्षण के अंत की ओर, हम Q-Table मानों को एक छोटे मान से ही समायोजित करते हैं)।
कुल मिलाकर, यह याद रखना महत्वपूर्ण है कि सीखने की प्रक्रिया की सफलता और गुणवत्ता काफी हद तक मापदंडों पर निर्भर करती है, जैसे सीखने की दर, सीखने की दर में कमी, और छूट कारक। इन्हें अक्सर **हाइपरपैरामीटर्स** कहा जाता है, ताकि उन्हें **पैरामीटर्स** से अलग किया जा सके, जिन्हें हम प्रशिक्षण के दौरान अनुकूलित करते हैं (उदाहरण के लिए, Q-Table गुणांक)। सर्वोत्तम हाइपरपैरामीटर मानों को खोजने की प्रक्रिया को **हाइपरपैरामीटर ऑप्टिमाइज़ेशन** कहा जाता है, और यह एक अलग विषय का हकदार है।
## [पोस्ट-लेक्चर क्विज़](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/46/)
## असाइनमेंट
[एक अधिक यथार्थवादी दुनिया](assignment.md)
**अस्वीकरण**:
यह दस्तावेज़ मशीन-आधारित एआई अनुवाद सेवाओं का उपयोग करके अनुवादित किया गया है। जबकि हम सटीकता के लिए प्रयास करते हैं, कृपया ध्यान दें कि स्वचालित अनुवादों में त्रुटियाँ या गलतियाँ हो सकती हैं। मूल दस्तावेज़ को उसकी मूल भाषा में प्रामाणिक स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए, पेशेवर मानव अनुवाद की सिफारिश की जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या गलत व्याख्या के लिए हम उत्तरदायी नहीं हैं।