क्यू लर्निंग: आप सभी को सुदृढीकरण सीखने के बारे में जानने की जरूरत है



यह लेख पायथन कोड के माध्यम से सुदृढीकरण सीखने की एक सुंदर सादृश्यता के माध्यम से क्यू-लर्निंग का विस्तृत और व्यापक ज्ञान प्रदान करता है।

तथा कुछ डोमेन हैं जो उद्योग में शीर्ष buzzwords और एक अच्छे कारण के बीच हैं। AI 2020 तक 2.3 मिलियन नौकरियों का सृजन करने जा रहा है, इसका मुख्य लक्ष्य मशीनों को मानव व्यवहार की नकल करने में सक्षम बनाना है। अजीब है ना? इसलिए, आज हम क्यू लर्निंग के बारे में चर्चा करने जा रहे हैं, जो निम्न क्रम में सुदृढीकरण सीखने का निर्माण खंड है:

सुदृढीकरण सीखना क्या है?

आइए हमारे दैनिक जीवन पर एक नज़र डालें। हम पर्यावरण में कई कार्य करते हैं और उन कार्यों में से कुछ हमें पुरस्कार देते हैं जबकि कुछ नहीं करते हैं। हम अलग-अलग रास्तों की तलाश में रहते हैं और यह पता लगाने की कोशिश करते हैं कि कौन सा रास्ता पुरस्कार की ओर ले जाएगा और अपनी कार्रवाई के आधार पर हम लक्ष्यों को प्राप्त करने पर अपनी रणनीतियों में सुधार करेंगे। यह मेरे दोस्त सुदृढीकरण सीखने के सबसे सरल सादृश्य में से एक हैं।





रुचि के प्रमुख क्षेत्र:

  • वातावरण
  • क्रिया
  • इनाम
  • राज्य

सुदृढीकरण अधिगम - q अधिगम



सुदृढीकरण सीखना मशीन सीखने की एक शाखा है जो सिस्टम को अपने स्वयं के निर्णयों के परिणामों से सीखने की अनुमति देती है। यह एक विशेष प्रकार की समस्या को हल करता है जहां निर्णय लेना क्रमिक होता है, और लक्ष्य दीर्घकालिक होता है।

Q- सीखने की प्रक्रिया

हमारे समस्या कथन के साथ Q क्या सीख रहा है, इसे समझने दें। यह हमें सुदृढीकरण सीखने के समाधान के मुख्य घटकों यानी एजेंटों, पर्यावरण, कार्यों, पुरस्कारों और राज्यों को परिभाषित करने में मदद करेगा।

ऑटोमोबाइल फैक्टरी सादृश्य:



हम रोबोट से भरे एक ऑटोमोबाइल कारखाने में हैं। ये रोबोट कार को इकट्ठा करने के लिए आवश्यक आवश्यक भागों को बताकर फैक्टरी के श्रमिकों की मदद करते हैं। ये विभिन्न भाग 9 स्टेशनों में कारखाने के भीतर विभिन्न स्थानों पर स्थित हैं। भागों में चेसिस, पहिए, डैशबोर्ड, इंजन आदि शामिल हैं। फैक्ट्री मास्टर ने उस स्थान को प्राथमिकता दी है जहां चेसिस को सर्वोच्च प्राथमिकता के रूप में स्थापित किया जा रहा है। चलो यहाँ सेटअप पर एक नज़र है:

राज्य:

जिस स्थान पर एक रोबोट एक विशेष उदाहरण पर मौजूद होता है उसे उसका राज्य कहा जाता है। चूंकि नामों द्वारा इसे याद रखने के बजाय इसे कोड करना आसान है। संख्याओं के स्थान को मैप करें।

क्रिया:

क्रियाएँ कुछ भी नहीं हैं लेकिन रोबोट द्वारा किसी भी स्थान पर किए गए कदम हैं। गौर करें, एक रोबोट L2 स्थान पर है और प्रत्यक्ष स्थानों पर जिसे वह स्थानांतरित कर सकता है L5, L1 और L3 हैं। यदि हम इसकी कल्पना करें तो इसे बेहतर तरीके से समझें:

पुरस्कार:

एक राज्य से दूसरे राज्य में सीधे जाने के लिए रोबोट को एक इनाम दिया जाएगा। उदाहरण के लिए, आप L2 से सीधे L5 तक पहुंच सकते हैं और इसके विपरीत। तो, किसी भी मामले में 1 का इनाम प्रदान किया जाएगा। चलो इनाम तालिका पर एक नज़र है:

sql में क्या अड़चनें हैं

याद रखें जब फैक्टरी मास्टर ने चेसिस स्थान को प्राथमिकता दी। यह L7 था, इसलिए हम इस तथ्य को अपनी पुरस्कार तालिका में शामिल करने जा रहे हैं। इसलिए, हम (L7, L7) स्थान पर एक बहुत बड़ी संख्या (हमारे मामले में 999) असाइन करते हैं।

बेलमैन समीकरण

अब मान लीजिए कि रोबोट को बिंदु ए से बी तक जाने की जरूरत है, तो वह उस मार्ग का चयन करेगा जो एक सकारात्मक इनाम देगा। मान लीजिए कि हम इसके अनुसरण के लिए पदचिह्न के रूप में एक इनाम प्रदान करते हैं।

लेकिन क्या होगा अगर रोबोट कहीं से शुरू होता है, जहां वह दो या अधिक पथ देख सकता है। इस प्रकार रोबोट निर्णय नहीं ले सकता है और यह मुख्य रूप से होता है क्योंकि यह एक के पास नहीं है याद । यह वह जगह है जहाँ बेलमैन समीकरण तस्वीर में आता है।

V (s) = अधिकतम (R (s, a) + & # 120632V (s))

कहा पे:

  • s = एक विशेष अवस्था
  • a = क्रिया
  • s = = वह स्थिति जिस पर रोबोट s से जाता है
  • & # 120632 = छूट कारक
  • R (s, a) = एक रिवॉर्ड फंक्शन जो एक स्टेट (s) और एक्शन (a) लेता है और एक रिवार्ड वैल्यू को आउटपुट करता है
  • V (s) = किसी विशेष अवस्था में होने का मूल्य

अब गंतव्य के नीचे के ब्लॉक पर 1 का इनाम होगा, जो सर्वोच्च इनाम है, लेकिन अन्य ब्लॉक के बारे में क्या? खैर, यह वह जगह है जहां डिस्काउंट फैक्टर आता है। मान लें कि 0.9 का डिस्काउंट फैक्टर है और एक-एक करके सभी ब्लॉक भरें।

मार्कोव निर्णय प्रक्रिया

कल्पना कीजिए कि एक रोबोट नारंगी ब्लॉक पर है और उसे गंतव्य तक पहुंचने की आवश्यकता है। लेकिन फिर भी अगर थोड़ी सी भी शिथिलता आती है तो रोबोट उलझन में पड़ जाएगा कि ऊपर जाने के बजाय उसे किस रास्ते पर ले जाया जाए।

इसलिए हमें निर्णय लेने की प्रक्रिया को संशोधित करने की आवश्यकता है। यह होना चाहिए आंशिक रूप से यादृच्छिक तथा आंशिक रूप से रोबोट के नियंत्रण में । आंशिक रूप से यादृच्छिक क्योंकि हम नहीं जानते कि रोबोट कब खराब होगा और आंशिक रूप से नियंत्रण में रहेगा क्योंकि यह अभी भी रोबोट का निर्णय है। और यह मार्कोव निर्णय प्रक्रिया के लिए आधार बनाता है।

मार्कोव निर्णय प्रक्रिया (एमडीपी) एक असतत समय स्टोकेस्टिक नियंत्रण प्रक्रिया है। यह उन स्थितियों में मॉडलिंग निर्णय लेने के लिए एक गणितीय ढांचा प्रदान करता है जहां परिणाम आंशिक रूप से यादृच्छिक होते हैं और आंशिक रूप से निर्णय निर्माता के नियंत्रण में होते हैं।

इसलिए हम अपने मूल बेलमैन समीकरण का उपयोग करने जा रहे हैं और इसमें बदलाव कर रहे हैं। जो हम नहीं जानते वह अगला राज्य है। s '। हम जो जानते हैं वह एक मोड़ की सभी संभावनाएं हैं और समीकरण को बदलने देते हैं।

V (s) = अधिकतम (R (s, a) + & # 120632 V (s))

V (s) = अधिकतम (R (s, a) + & # 120632 & सिग्माs 'पी (एस, ए, एस) V (s))

पी (एस, ए, एस): राज्य से स्थानांतरित होने की संभावना एस सेवा मेरे s ' कार्रवाई के साथ सेवा मेरे

एक जावा कार्यक्रम की संरचना

& सिग्माs 'पी (एस, ए, एस) V (s): रोबोट की यादृच्छिकता की उम्मीद

V (s) = अधिकतम (R (s, a) + & # 120632 ((0.8V (कमरा))यूपी)) + (0.1V (कमरा)नीचे) +…।))

अब, Q के लर्निंग में परिवर्तन करें। क्यू-लर्निंग एक ऐसी कार्रवाई की गुणवत्ता का आकलन करने का विचार करता है जिसे उस राज्य के संभावित मूल्य को निर्धारित करने के बजाय एक राज्य में स्थानांतरित करने के लिए लिया जाता है।

यह वह है जो हमें मिलता है अगर हम एक निश्चित राज्य के लिए जाने के लिए कार्यों की गुणवत्ता का आकलन करने के विचार को शामिल करते हैं। ' अगर हम उन्हें हटा दें तो अपडेटेड बेलमैन इक्वेशन से अधिकतम घटक, हम संभावित कार्रवाई के लिए केवल एक पदचिह्न मान रहे हैं, जो कि कुछ भी नहीं है गुणवत्ता कार्रवाई की।

Q (s), a (= (s, a) + & # 120632 & सिग्माs 'पी (एस, ए, एस) V (s))

इस समीकरण में, जो क्रिया की गुणवत्ता को निर्धारित करता है, हम मान सकते हैं कि V (s) Q (s, a) के सभी संभावित मानों में अधिकतम है। तो चलिए v (s ') को Q () के फंक्शन से बदलते हैं।

Q (s), a (= (s, a) + & # 120632 & सिग्माs 'पी (एस, ए, एस) अधिकतम क्यू (एस), एक)

हम क्यू लर्निंग के अपने अंतिम समीकरण के करीब एक कदम हैं। हम एक परिचय देने जा रहे हैं टेम्पोरल अंतर समय के साथ पर्यावरण में बदलाव के संबंध में क्यू-मूल्यों की गणना करना। लेकिन हम क्यू में बदलाव का निरीक्षण कैसे करते हैं?

टीडी (ए), = (आर (एस, ए) + & # 120632 & सिग्माs 'पी (एस, ए, एस) अधिकतम Q (s), a ()) - Q (a)

हम एक ही सूत्र के साथ नए क्यू (एस) को पुनर्गणना करते हैं, और पहले से ज्ञात क्यू (एस) को उससे घटाते हैं। तो, उपरोक्त समीकरण बन जाता है:

प्रटी(एस, ए) = क्यूटी -1(s) a) + α टीडीटी(एस)

प्रटी(एस, ए) = वर्तमान क्यू-मूल्य

प्रटी -1(एस, ए) = पिछला क्यू-मूल्य

प्रटी(एस, ए) = क्यूटी -1(s, a) + α (R (s, a) + & # 120632 अधिकतम Q (s), (a)-प्रटी -1(एस, ए)

क्यू लर्निंग डेमो: न्यूमपी

मैं उपयोग करने जा रहा हूं क्यू लर्निंग कैसे काम करता है यह प्रदर्शित करने के लिए NumPy।

चरण 1: आयात, पैरामीटर, राज्य, कार्य और पुरस्कार

आयात संख्या np गामा = 0.75 # डिस्काउंट फैक्टर अल्फा = 0.9 # लर्निंग रेट location_to_state = {'L1': 0, 'L2': 1, 'L3': 2, 'L4': 3, 'L5': 4, ' L6 ': 5,' L7 ': 6,' L8 ': 7,' L9 ': 8} क्रियाएँ = [0,1,2,3,4,5,6,7,8] पुरस्कार = np.array ( [[0,1,0,0,0,0,0,0,0], [1,0,1,0,0,0,0,0,0], [0,1,0,0,0,0,0, 0,1,0,0,0], [0,0,0,0,0,1,0,0], [0,1,0,0,0,0,01] , [0,0,1,0,0,0,0,0,0], [0,0,0,1,0,0,0,1,0], [0,0,0,0,0,] 1,0,1,0,1], [0,0,0,0,0,0,1,0]])

चरण 2: स्थानों के लिए मानचित्र इंगित करें

state_to_location = स्थान के लिए तानाशाही ((राज्य, स्थान), स्थान in_to_state.items ())

चरण 3: क्यू लर्निंग प्रक्रिया का उपयोग करके इष्टतम मार्ग प्राप्त करें

तरह पुस्तकालय c ++
def get_optimal_route (start_location, end_location): पुरस्कार_new = np.copy (पुरस्कार) end_state = location_to_state [end_location] पुरस्कार_new [समाप्त करना .state, end_state] = 999 Q = np.array (np.zeros (9,9,9)) I के लिए सीखने की प्रक्रिया रेंज (1000): # एक यादृच्छिक राज्य को चुनने के लिए current_state = np.random.randint (0,9) # पायथन ऊपरी बाध्य playable_actions को शामिल करता है = [] # श्रेणी में जम्मू के लिए नए पुरस्कार मैट्रिक्स के माध्यम से Iterating 9): अगर पुरस्कार_new [current_state, j]> 0: playable_actions.append (j) # एक यादृच्छिक क्रिया चुनें जो हमें अगले राज्य में ले जाएगी अगला_state = np.random.choice (play_actions) # कम्प्यूटिंग टेम्पोरल अंतर TD = पुरस्कार_नया [current_state , next_state] + Gamma * Q [next_state, np.argmax (Q [next_state,])]] - Q [current_state, next_state] # बेलमैन समीकरण Q [current_state, next_state] + = अल्फ़ा * TD # TD # TD का उपयोग करके Q- मान को अद्यतन करना। आरंभिक स्थान मार्ग के साथ इष्टतम मार्ग को आरम्भ करें = [start_location] # अगली बार स्थान_खाली = स्टार के साथ अगला_स्थान बनाएं t_location # हम अंतिम स्थान तक पहुंचने के लिए आवश्यक पुनरावृत्तियों की सटीक संख्या के बारे में नहीं जानते हैं, जबकि लूप पुनरावृत्ति के लिए एक अच्छा विकल्प होगा, जबकि (next_location! = end_location): # शुरू करने वाला राज्य_state = location_to_state [start_location] # प्राप्त करें अगला राज्य शुरू करने के लिए उच्चतम क्यू-मूल्य प्राप्त करें n_state = np.argmax (Q [start_state,]) # हमने अगले राज्य का सूचकांक प्राप्त किया। लेकिन हमें संबंधित पत्र की आवश्यकता है। next_location = state_to_location [next_state] path.append (next_location) # अगले पुनरावृत्ति start_location = next_location वापसी मार्ग के लिए प्रारंभिक स्थान अपडेट करें

चरण 4: रूट प्रिंट करें

प्रिंट (get_optimal_route ('L1', 'L9'))

आउटपुट:

इसके साथ, हम क्यू-लर्निंग के अंत में आते हैं। मुझे आशा है कि आपको क्यू लर्निंग के काम के साथ-साथ विभिन्न निर्भरताओं के साथ लौकिक अंतर, बेलमैन समीकरण और बहुत कुछ पसंद हैं।

एडुर्का की आपको सुपरवाइज्ड लर्निंग, अनसुप्राइज़्ड लर्निंग और नेचुरल लैंग्वेज प्रोसेसिंग जैसी तकनीकों में पारंगत बनाता है। इसमें आर्टिफिशियल इंटेलिजेंस एंड मशीन लर्निंग में नवीनतम प्रगति और तकनीकी दृष्टिकोण पर प्रशिक्षण शामिल है जैसे डीप लर्निंग, ग्राफिकल मॉडल और सुदृढीकरण सीखना।