मेरा सबसे अच्छा अनुमान है कि यह गणना समय को कम करने के लिए किया गया है, अन्यथा हमें प्रत्येक क्रिया के लिए q मान का पता लगाना होगा और फिर सर्वश्रेष्ठ का चयन करना होगा।
थोड़ी वृद्धि (दो नेटवर्क द्वारा उपयोग की जाने वाली अतिरिक्त मेमोरी के कारण) के अलावा, गणना समय पर इसका कोई वास्तविक प्रभाव नहीं है। आप मेरे द्वारा लक्षित लक्ष्य नेटवर्क के परिणामों को कैश कर सकते हैं , लेकिन यह संभवतः अधिकांश वातावरण के लिए इसके लायक नहीं होगा, और मैंने ऐसा कार्यान्वयन नहीं देखा है जो ऐसा करता है।
क्या मैं कुछ भूल रहा हूँ?
यह फ़ंक्शन सन्निकटन (यानी तंत्रिका नेटवर्क) का उपयोग करते समय क्यू-लर्निंग एल्गोरिथ्म की स्थिरता के साथ करना है। एक अलग लक्ष्य नेटवर्क का उपयोग करते हुए, नवीनतम सीखे गए मापदंडों की एक प्रति के साथ हर कई चरणों को अपडेट किया जाता है, सिस्टम को संख्यात्मक रूप से वर्चस्व से बूटस्ट्रैपिंग से भागने वाले पूर्वाग्रह को बनाए रखने में मदद करता है, जिससे अनुमानित क्यू मान विचलन का कारण बनता है।
डेटा बिंदुओं में से एक की कल्पना करें (पर S, A, R, S'
) खराब होने के लिए वर्तमान में खराब ओवर-अनुमान का कारण बनता है Q(S', A')
। शायद S', A'
अभी तक दौरा भी नहीं किया गया है, या अभी तक R
देखा गया मूल्य औसत से अधिक है, बस संयोग से। यदि (S,A)
अनुभव रिप्ले में कई बार क्रॉप किया जाता है, तो यह हर बार फिर से खराब हो जाता है, क्योंकि अपडेट Q(S,A)
पर आधारित है R + max_a Q(S',a)
। लक्ष्य नेटवर्क को ठीक करने से उस क्षति को सीमित किया जाता है जो इस तरह के अति-अनुमानों को कर सकती है, जिससे सीखने के नेटवर्क को अभिसरण करने और अपने प्रारंभिक पूर्वाग्रह को खोने का समय मिलता है।
इस संबंध में, एक अलग लक्ष्य नेटवर्क का उपयोग करने के लिए फिर से खेलना का एक समान उद्देश्य है। यह एक एल्गोरिथ्म को स्थिर करता है जो अन्यथा समस्याओं को रूपांतरित करने में होता है।
एक अलग मुद्दे को संबोधित करने के लिए "डबल लर्निंग" के साथ DQN होना भी संभव है: अधिकतमकरण पूर्वाग्रह। उस स्थिति में आप 4 न्यूरल नेटवर्क के साथ DQN कार्यान्वयन देख सकते हैं।