एक बार, इंटरनेट की गहराई की खोज करते हुए, मैं एक वीडियो पर ठोकर खाई जहां एक व्यक्ति एक आनुवंशिक एल्गोरिथ्म का उपयोग करके एक साँप को प्रशिक्षित करता है। और मुझे वही चाहिए था। लेकिन सभी को समान रूप से लेना और अजगर में लिखना दिलचस्प नहीं होगा। और मैंने प्रशिक्षण एजेंट प्रणालियों के लिए एक और अधिक आधुनिक दृष्टिकोण का उपयोग करने का निर्णय लिया, अर्थात् क्यू-नेटवर्क। लेकिन शुरू से शुरू करते हैं।
सुदृढीकरण प्रशिक्षण
मशीन लर्निंग में, आरएल (सुदृढीकरण सीखना) अन्य क्षेत्रों से काफी अलग है। अंतर यह है कि क्लासिक एमएल एल्गोरिथ्म तैयार आंकड़ों से सीखता है, जबकि आरएल, इसलिए बोलने के लिए, यह डेटा खुद के लिए बनाता है। आरएल का विचार है कि एल्गोरिथ्म के अलावा, जिसे एक एजेंट कहा जाता है, एक वातावरण है जिसमें यह एजेंट रखा गया है। प्रत्येक चरण में, एजेंट को कुछ कार्रवाई (कार्रवाई) करनी चाहिए, और पर्यावरण एक इनाम (इनाम) और उसके राज्य (राज्य) के साथ प्रतिक्रिया करता है, जिसके आधार पर एजेंट कार्रवाई करता है।
DQN
एल्गोरिथ्म कैसे काम करता है, इसका स्पष्टीकरण होना चाहिए, लेकिन मैं एक लिंक छोड़ दूंगा जहां स्मार्ट लोग इसे समझाते हैं।
सर्प क्रियान्वयन
सी आरएल का पता लगाने के बाद, हमें एक ऐसा वातावरण बनाने की जरूरत है जिसमें हम एजेंट को जगह देंगे। सौभाग्य से, पहिया को सुदृढ़ करने की कोई आवश्यकता नहीं है, क्योंकि ओपन-एआई जैसी कंपनी पहले से ही जिम लाइब्रेरी लिख चुकी है, जिसके साथ आप अपना खुद का वातावरण लिख सकते हैं। पुस्तकालय में वे पहले से ही बड़ी संख्या में हैं। सरल अटारी खेल से लेकर जटिल 3 डी मॉडल तक। लेकिन इस सबके बीच सांप नहीं है। इसलिए, हम इसके निर्माण के लिए आगे बढ़ते हैं।
मैं जिम में एक पर्यावरण बनाने के सभी क्षणों का वर्णन नहीं करूंगा, लेकिन केवल मुख्य वर्ग को दिखाऊंगा, जिसमें कई कार्यों को लागू करना आवश्यक है।
import gym class Env(gym.Env): def __init__(self): pass def step(self, action): """ . , """ def reset(self): """ """ def render(self, mode='human'): """ """
लेकिन इन कार्यों को लागू करने के लिए, हमें पुरस्कार की एक प्रणाली के साथ आने की आवश्यकता है और हम पर्यावरण के बारे में किस रूप में जानकारी देंगे।
राज्य
वीडियो में, एक आदमी ने सांप को दीवार, सांप और सेब को 8 दिशाओं में दूरी दी। वो 24 नंबर हैं। मैंने डेटा की मात्रा कम करने का फैसला किया, लेकिन उन्हें थोड़ा जटिल कर दिया। सबसे पहले, मैं दूरी को दीवारों के साथ सांप की दूरी के साथ जोड़ूंगा। सीधे शब्दों में, हम उसे निकटतम वस्तु की दूरी बताएंगे जो टकराव में मार सकता है। दूसरे, केवल 3 दिशाएँ होंगी और वे साँप की गति की दिशा पर निर्भर करेंगे। उदाहरण के लिए, शुरू करते समय, सांप दिखता है, इसलिए हम इसे ऊपरी, बाईं और दाईं दीवारों की दूरी बताएंगे। लेकिन जब सांप का सिर दाईं ओर मुड़ता है, तो हम पहले से ही दाईं, ऊपरी और निचली दीवारों की दूरी की रिपोर्ट करेंगे। सादगी के लिए, मैं एक तस्वीर दूंगा।

मैंने भी सेब के साथ खेलने का फैसला किया। हम इसके बारे में (x, y) समन्वय प्रणाली में निर्देशांक के रूप में जानकारी प्रस्तुत करेंगे, जो सांप के सिर पर उत्पन्न होती है। समन्वय प्रणाली भी सांप के सिर के पीछे अपने अभिविन्यास को बदल देगी। तस्वीर के बाद, मुझे लगता है कि यह निश्चित रूप से स्पष्ट हो जाना चाहिए।

पुरस्कार
यदि आप राज्य के साथ कुछ प्रकार की विशेषताओं के साथ आ सकते हैं और आशा करते हैं कि तंत्रिका नेटवर्क इसका पता लगाएगा, तो पुरस्कार के साथ सब कुछ अधिक जटिल होगा। यह उस पर निर्भर करता है कि क्या एजेंट सीखेगा और क्या वह सीखेगा कि हम क्या चाहते हैं।
मैं तुरंत इनाम प्रणाली दूंगा जिसके साथ मैंने स्थिर प्रशिक्षण हासिल किया है।
- प्रत्येक चरण पर, इनाम -0.25 है।
- मृत्यु के समय -10।
- मरने पर, 15 कदम -100 तक।
- जब एक सेब sqrt ( सेब खाया की संख्या ) * 3.5।
और यह भी उदाहरण देते हैं कि एक खराब इनाम प्रणाली क्या होती है।
- यदि आप पहले कुछ चरणों में मृत्यु के लिए एक छोटा सा पर्याप्त इनाम नहीं देते हैं, तो साँप दीवार के खिलाफ मारना पसंद करेगा। सेब की तलाश से आसान है :)
- यदि आप चरणों के लिए सकारात्मक इनाम देते हैं, तो सांप अंतहीन रूप से घूमना शुरू कर देगा। क्योंकि उसकी राय में यह सेब की तलाश से अधिक लाभदायक होगा।
- और कई अन्य मामले जहां सांप बस नहीं सीखेंगे।
खैर, 2000 एपिसोड में सांप ने क्या सीखा, इसका एक उदाहरण परिणाम
सांप को लिखने में मुख्य रुचि यह देखने की थी कि सांप अपने पर्यावरण के बारे में इतना कम जानकर कैसे सीखता है। और उसने अच्छी तरह से अध्ययन किया, क्योंकि खाया सेब की औसत दर 23 तक पहुंच गई, जो, मुझे ऐसा लगता है, बहुत बुरा नहीं है। इसलिए, प्रयोग सफल माना जा सकता है।
स्रोत कोड