Q- लर्निंग और SARSA में क्या अंतर है?


88

हालांकि मुझे पता है कि एसएआरएसए ऑन-पॉलिसी है जबकि क्यू-लर्निंग ऑफ-पॉलिसी है, जब इन दोनों एल्गोरिदम के बीच किसी भी अंतर को देखने के लिए उनके सूत्रों को देखना कठिन है (मेरे लिए)।

पुस्तक के अनुसार सुदृढीकरण सीखना: एक परिचय (सटन और बार्टो द्वारा)। SARSA एल्गोरिथ्म में, एक नीति दी गई है, इसी क्रिया-मान फ़ंक्शन Q (स्थिति s और क्रिया a, टाइमस्टेप t पर), अर्थात Q (s t , a t ), को निम्नानुसार अद्यतन किया जा सकता है।

क्यू (रों टी , एक टी ) = क्यू (रों टी , एक टी ) + α * (आर टी + γ * क्यू (रों t + 1 , एक t + 1 ) - क्यू (रों टी , एक टी ))

दूसरी ओर, क्यू-लर्निंग एल्गोरिदम के लिए अद्यतन चरण निम्नलिखित है

क्यू (रों टी , एक टी ) = क्यू (रों टी , एक टी ) + α * (आर टी + γ * अधिकतम एक क्यू (रों t + 1 , एक) - क्यू (रों टी , एक टी ))

जो भी लिखा जा सकता है

क्यू (रों टी , एक टी ) = (1 - α) * क्यू (रों टी , एक टी ) + α * (आर टी + γ * अधिकतम एक क्यू (रों t + 1 , एक))

जहां where (गामा) छूट कारक है और आर टी पर्यावरण समय पर पर्यावरण से प्राप्त इनाम है।

क्या इन दोनों एल्गोरिदम के बीच अंतर यह है कि SARSA केवल अगली नीति मूल्य को देखता है जबकि Q- अधिगम अगले अधिकतम नीति मूल्य को देखता है ?

TLDR (और मेरा अपना उत्तर)

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

दूसरा मुख्य अंतर यह है कि यह चयन कब हो रहा है (उदाहरण के लिए, ऑनलाइन बनाम ऑफ़लाइन ) और कैसे / क्यों यह सीखने को प्रभावित करता है। यदि आप इसे 2019 में पढ़ रहे हैं और एक हाथ से अधिक व्यक्ति हैं, तो आरएल खिलौना समस्या से खेलना शायद मतभेदों को समझने का सबसे अच्छा तरीका है।

एक अंतिम महत्वपूर्ण बात यह है कि सूटन और बार्टो दोनों के साथ-साथ विकिपीडिया में अक्सर मिश्रित, भ्रामक या गलत फार्मूला निरूपण होता है, जिसके बारे में अगले राज्य सबसे अच्छा / अधिकतम कार्रवाई और इनाम देते हैं :

आर (टी + 1)

वास्तव में है

आर (टी)

आशा है कि यह किसी को भी इस पर अटकने में मदद करता है।

जवाबों:


57

हां, बस यही फर्क है। ऑन-पॉलिसी SARSA उस नीति के सापेक्ष कार्रवाई मूल्यों को सीखता है जो इस प्रकार है, जबकि ऑफ-पॉलिसी Q-Learning यह लालची नीति के सापेक्ष है। कुछ सामान्य परिस्थितियों में, वे दोनों वास्तविक मूल्य फ़ंक्शन में परिवर्तित होते हैं, लेकिन विभिन्न दरों पर। क्यू-लर्निंग थोड़ा धीमा करने के लिए अभिसरण करता है, लेकिन नीतियों को बदलते समय सीखने को जारी रखने की क्षमता है। इसके अलावा, क्यू-लर्निंग को रेखीय सन्निकटन के साथ संयोजित करने के लिए सुनिश्चित करने की गारंटी नहीं है।

व्यावहारिक शब्दों में, ε-लालची नीति के तहत, Q- लर्निंग Q (s, a) और अधिकतम क्रिया मान के बीच अंतर की गणना करता है, जबकि SARSA Q (s, a) और औसत क्रिया के भारित योग के बीच अंतर की गणना करता है। मूल्य और अधिकतम:

क्यू-लर्निंग: क्यू (रों t + 1 , एक t + 1 ) = अधिकतम एक क्यू (रों t + 1 , एक)

सार्सा: क्यू (रों t + 1 , एक t + 1 ) = ε · मतलब एक क्यू (रों t + 1 , एक) + (1-ε) · अधिकतम एक क्यू (रों t + 1 , एक)


4
ठीक है, तो सरसा फिर एक नीति कैसे चुनती है? मैं देखता हूं कि Qlearning हमेशा उस नीति के बाद जाएगी जो वादा करती है कि यह आपको अगली सर्वश्रेष्ठ नीति पर ले जाने के लिए कार्रवाई करती है। सरसा में अगली नीति का चयन करने के लिए क्या मानदंड हैं (मूल रूप से जो मैं जानना चाहता हूं कि पॉलिसी क्यू (एस, ए) के लिए मूल्यांकन कैसे किया जाए) सबसे अच्छी कार्रवाई कैसे चुननी है। क्या यह वही नहीं है, यानी स्टेट एस, ए के लिए चुनना, जिसमें सबसे अधिक (यानी अधिकतम) क्यू '(एस, ए) होगा?
Ælex

7
नीति अगली कार्रवाई का चयन करने के लिए नियम है। यह कुछ ऐसा है जिसे आपको एल्गोरिथ्म को लागू करते समय चुनना होगा। सबसे सरल नीति लालची है - जहां एजेंट हमेशा सर्वश्रेष्ठ कार्रवाई का चयन करता है। इस नीति के साथ, SARSA और Q-Learning समान हैं। सीखने के लिए एक बेहतर विकल्प ε-लालची नीति है, जहां कुछ कार्यों को यादृच्छिक पर चुना जाता है।
डॉन रेबा

2
ठीक है, यही कारण है कि मैंने पहली जगह में सवाल पूछा, इस मामले में वे दोनों एक ही हैं। आपका बहुत बहुत धन्यवाद ! मैं ई-लालची का उपयोग कर रहा हूं। इसलिए Qlearning केवल ऑफ-पॉलिसी के मामले में भिन्न होता है, जहां कार्रवाई को यादृच्छिक रूप से अभी तक चुना जाता है क्यू-शिक्षा के साथ अपडेट करना नीतिगत मूल्यों को अधिकतम करता है?
Ælex

2
Value-लालची नीति के तहत, SARSA के तहत अपेक्षित मूल्य औसत एक्शन वैल्यू और सर्वश्रेष्ठ एक्शन वैल्यू का भारित योग है: क्यू (s_t + 1, a_t + 1) = ε · माध्य (Q (s, a)) + (1-a) · अधिकतम (Q (s, a))। पाठ्यपुस्तक इसे अध्याय 5.4 ऑन-पॉलिसी मोंटे कार्लो कंट्रोल में देती है।
डॉन रेबा

77

जब मैं इस भाग को सीख रहा था, तो मुझे यह बहुत भ्रमित करने वाला लगा, इसलिए मैंने अंतर को स्पष्ट करने की उम्मीद में आर सटन और एजीबार्टो के दो छद्म कोड एक साथ रखे।

यहाँ छवि विवरण दर्ज करें

ब्लू बॉक्स उस हिस्से को उजागर करते हैं जहां दो एल्गोरिदम वास्तव में भिन्न होते हैं। संख्याएँ बाद में बताए जाने वाले अधिक विस्तृत अंतर को उजागर करती हैं।

TL; NR :

|             | SARSA | Q-learning |
|:-----------:|:-----:|:----------:|
| Choosing A' |   π   |      π     |
| Updating Q  |   π   |      μ     |

जहां π एक y-लालची नीति है (उदाहरण के लिए 0> 0 अन्वेषण के साथ), और μ एक लालची नीति है (उदाहरण policy == 0, कोई अन्वेषण)।

  1. यह देखते हुए कि Q- अधिगम अगली कार्रवाई A 'को चुनने और Q को अपडेट करने के लिए विभिन्न नीतियों का उपयोग कर रहा है। दूसरे शब्दों में, यह एक और नीति μ का पालन करते हुए evaluate का मूल्यांकन करने की कोशिश कर रहा है, इसलिए यह एक ऑफ-पॉलिसी एल्गोरिदम है।

  2. इसके विपरीत, SARSA हर समय uses का उपयोग करता है, इसलिए यह एक ऑन-पॉलिसी एल्गोरिथ्म है।

अधिक विस्तृत विवरण :

  1. दोनों के बीच सबसे महत्वपूर्ण अंतर यह है कि प्रत्येक क्रिया के बाद Q को कैसे अपडेट किया जाता है। SARSA क्यू का उपयोग करता है 'ए-लालची नीति का ठीक उसी तरह, जैसे कि ए' से तैयार किया गया है। इसके विपरीत, क्यू-लर्निंग अगले चरण के लिए सभी संभावित क्रियाओं पर अधिकतम Q 'का उपयोग करता है। यह इस भाग में y = 0 के साथ एक लालची नीति का अनुसरण करता है, अर्थात कोई अन्वेषण नहीं है।

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

  3. क्यू-लर्निंग में लूप लॉजिक के बाद, ए 'अभी भी policy-लालची नीति से है।


5
सुंदर ग्राफिक्स और चित्रों के लिए बधाई। इस प्रश्न को पूछने के वर्षों बाद मुझे पता चला कि राज्य और कार्रवाई पुनरावृत्ति, और नीति मूल्य पुनरावृत्ति और अद्यतन, दो अलग-अलग प्रक्रियाएं हैं। अफसोस की बात है, सटन और बार्टो इसे बहुत स्पष्ट नहीं करते हैं। आपके द्वारा बताए गए कार्यों का निर्णय एल्गोरिदम को कैसे प्रभावित करता है। क्यू-लर्निंग में अधिकतम कार्रवाई आमतौर पर अगले सर्वोत्तम क्यू (ए, ए), लालची के साथ कार्रवाई चुनने का अर्थ है। सरसा में ऐसा नहीं है, आप या तो नीति का अनुसरण करते हैं (ऑन-लाइन) या आप एक यादृच्छिक संभावना के आधार पर एक नया खोज करते हैं। आपका विवरण हाजिर है!
Æलेक्स

@SilentCrash, नहीं, यह r का मूल्यांकन कर रहा है। policy केवल कार्रवाई चुनने के लिए लालची नीति है।
zyxue

1
@zyxue लेकिन तालिका में आपने लिखा है कि यह क्यू को अपडेट करता है जैसे कि यह μ (मूल्यांकन करता है μ) जबकि वास्तव में y-लालची नीति g का अनुसरण करता है।
साइलेंटक्रैश

क्या ऑफ-पॉलिसी पद्धति मानव व्यवहार (and) से ए 'चुन सकती है और लालची नीति (μ) से क्यू को अपडेट कर सकती है?
रॉबर्ट

1
एक और बिंदु जो मैं बनाना चाहता हूं, हालांकि अगली कार्रवाई चुनने में, SARSA और Q- लर्निंग दोनों ही एप्सिलॉन-लालची नीति का उपयोग करते हैं, यदि सभी Q मान समान हैं, तो उन्हें समान कार्रवाई का चयन करना चाहिए, यदि epsilon में यादृच्छिक भागों को अनदेखा किया गया हो- लालची। हालाँकि, सीखने के दौरान कुछ बिंदुओं पर क्यू मान अधिक भिन्न हो जाएंगे क्योंकि SARSA और Q- अधिगम के लिए अद्यतन समीकरण अलग-अलग हैं, इस प्रकार वे समान ईप्सिलॉन-लालची नीति सुधार रणनीति का उपयोग करते हुए भी अलग-अलग क्रियाओं को चुन सकते हैं। दूसरे शब्दों में, पुनरावृत्त नीति अलग हो जाएगी।
स्टेफिशिश

18

गणितीय रूप से क्या अंतर है?

जैसा कि पहले से ही अधिकांश अन्य उत्तरों में वर्णित है, गणितीय रूप से दो अपडेट्स के बीच का अंतर वास्तव में है, जब एक स्टेट-एक्शन जोड़ी (S t , A t ) के लिए Q -value अपडेट करते हैं :

  • Sarsa व्यवहार नीति का उपयोग करता है (अर्थ, एजेंट द्वारा उपयोग की जाने वाली नीति जो वातावरण में अनुभव उत्पन्न करने के लिए उपयोग की जाती है, जो आमतौर पर epsilon -greedy है) अतिरिक्त कार्रवाई A t + 1 का चयन करने के लिए , और फिर Q (S t + 1 , A t) का उपयोग करता है +1 ) ( गामा द्वारा रियायती ) अद्यतन लक्ष्य की गणना में अपेक्षित भविष्य के रिटर्न के रूप में।
  • Q -Learning अतिरिक्त नीति A t + 1 का चयन करने के लिए व्यवहार नीति का उपयोग नहीं करता है । इसके बजाय, यह अद्यतन नियम में अधिकतम क्यू (एस टी + 1 , ए) के रूप में अपेक्षित भविष्य के रिटर्न का अनुमान लगाता है । अधिकतम यहां इस्तेमाल ऑपरेटर "निम्न" पूरी तरह से लालची नीति के रूप में देखी जा सकती है। हालांकि एजेंट वास्तव में लालची नीति का पालन नहीं कर रहा है ; यह केवल कहता है, अद्यतन नियम में, "मान लीजिए कि मैं अब से लालची नीति का पालन करना शुरू कर दूंगा, तो भविष्य में मेरे संभावित रिटर्न क्या होंगे?"

इसका सहज अर्थ क्या है?

जैसा कि अन्य उत्तरों में बताया गया है, तकनीकी शब्दावली का उपयोग करते हुए, ऊपर वर्णित अंतर, कि सरसा एक ऑन-पॉलिसी लर्निंग एल्गोरिथम है, और क्यू-लर्निंग एक ऑफ-पॉलिसी लर्निंग एल्गोरिथम है।

सीमा में (अनुभव और सीखने के लिए अनंत समय दिया गया है), और कुछ अतिरिक्त मान्यताओं के तहत, इसका मतलब है कि सरसा और क्यू-लर्निंग विभिन्न समाधानों / "इष्टतम" नीतियों में परिवर्तित होते हैं :

  • सरसा एक समाधान के लिए अभिसरण करेगा जो इस धारणा के तहत इष्टतम है कि हम उसी नीति का पालन करते हैं जिसका उपयोग अनुभव उत्पन्न करने के लिए किया गया था । यह प्राय: एप्सिलन -ग्रेडी की तरह (बल्कि "बेवकूफ") यादृच्छिकता के कुछ तत्व के साथ एक नीति होगी , क्योंकि अन्यथा हम यह गारंटी देने में असमर्थ हैं कि हम किसी भी चीज़ में परिवर्तित हो जाएंगे।
  • क्यू-लर्निंग एक ऐसे समाधान में परिवर्तित होगा जो इस धारणा के तहत इष्टतम है कि, अनुभव और प्रशिक्षण पैदा करने के बाद, हम लालच नीति पर स्विच करते हैं

कब किस एल्गोरिथ्म का उपयोग करें?

सरसा की तरह एक एल्गोरिथ्म आमतौर पर उन परिस्थितियों में बेहतर होता है जहां हम सीखने / अनुभव उत्पन्न करने की प्रक्रिया के दौरान एजेंट के प्रदर्शन की परवाह करते हैं । उदाहरण के लिए, विचार करें कि एजेंट एक महंगा रोबोट है जो टूट जाएगा यदि यह एक चट्टान से नीचे गिरता है। हम नहीं बल्कि यह सीखने की प्रक्रिया के दौरान अक्सर नीचे गिर जाएगा, क्योंकि यह महंगा है। इसलिए, हम सीखने की प्रक्रिया के दौरान इसके प्रदर्शन की परवाह करते हैं। हालांकि, हम यह भी जानते हैं कि हमें कभी-कभी यादृच्छिक रूप से कार्य करने की आवश्यकता होती है (जैसे एप्सिलॉन-लालची)। इसका मतलब यह है कि यह चट्टान के साथ-साथ चलने वाले रोबोट के लिए अत्यधिक खतरनाक है, क्योंकि यह बेतरतीब ढंग से (संभावना एप्सिलॉन के साथ) कार्य करने और नीचे गिरने का फैसला कर सकता है। इसलिए, हम इसे जल्दी से सीखना पसंद करेंगे कि यह चट्टान के करीब होना खतरनाक है;यहां तक ​​कि अगर कोई लालची नीति ठीक से गिरने के साथ-साथ चलने में सक्षम होगी, तो हम जानते हैं कि हम यादृच्छिकता के साथ एक एप्सिलॉन-लालची नीति का पालन कर रहे हैं, और हम अपने प्रदर्शन के अनुकूलन के बारे में परवाह करते हैं कि हम जानते हैं कि हम कभी-कभी बेवकूफ होंगे । यह एक ऐसी स्थिति है जहां सरसा बेहतर होगा।

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


2
यह एल्गोरिदम की परवाह किए बिना पूरी तरह से सबसे अच्छी व्याख्या नीति है
ईजी

4

क्यू-लर्निंग के लिए आपके सूत्र में एक सूचकांक गलती है। सटन और बार्टो के पृष्ठ 148।

Q (st, at) <- Q (st, at) + Alpha * [r (t + 1) + गामा * max Q (st + 1, a) - Q (st, at)]

टाइपो अधिकतम के तर्क में है:

अनुक्रमणिका st + 1 और a हैं, जबकि आपके प्रश्न में वे st + 1 और at 1 हैं (ये SARSA के लिए सही हैं)।

उम्मीद है इससे कुछ मदद मिली होगी।


1

क्यू-लर्निंग में

यह आपका है: क्यू-लर्निंग: क्यू (सेंट, एट) = क्यू (सेंट, एट) + एक [आर (टी + १) + छूट * अधिकतम क्यू (सेंट + १, एट ) - क्यू (सेंट, एट)]

Q- लर्निंग में बदला जाना चाहिए: Q (St, At) = Q (St, At) + a [R (t + 1) + डिस्काउंट * max Q (St + 1, a ) - Q (St, At)]

जैसा कि आपने कहा था, आपको अपडेट eq के लिए अधिकतम Q- मान खोजना होगा। बदलकर एक , तो आप एक नया क्यू (सेंट, पर) होगा। CAREFULLY, एक ऐसा जो आपको अधिकतम Q- मूल्य देता है, अगली क्रिया नहीं है। इस स्तर पर, आप केवल अगले राज्य (St + 1) को जानते हैं, और अगले दौर में जाने से पहले, आप St + 1 (St <- St + 1) द्वारा St को अपडेट करना चाहते हैं।

प्रत्येक लूप के लिए;

  • Q- मान का उपयोग करके St से चुनें

  • At ले और Rt + 1 और St + 1 का निरीक्षण करें

  • Eq का उपयोग करके Q- मूल्य को अपडेट करें।

  • सेंट <- सेंट + 1

जब तक सेंट टर्मिनल है


दरअसल, उन्होंने दर्शकों को भ्रमित किया है; यह R [t + 1] नहीं है, यह R [t] है, लेकिन वे वास्तव में पुस्तक में एक बिंदु पर R [t + 1] के रूप में दिखाते हैं। हालाँकि, यदि आप इसके लिए अपना शब्द नहीं लेते हैं, तो इसे स्वयं आज़माएँ) यदि आपने R [t + 1] सेट किया है, तो इनाम मान 0 से 1 के बीच में नहीं आते हैं, और इससे भी बदतर कि आप एल्गोरिथ्म पुनरावृत्तियों की समस्याओं में भाग लेते हैं, क्योंकि Q [t ] = R [t] जब राज्य टर्मिनल है, जो R [t + 1] का उपयोग करने पर कभी भी सही नहीं होगा। विकिपीडिया में यह गलत था (मैंने इसे संपादित किया है) और सटन और बार्टो ने पुस्तक में दो भिन्नताओं का उपयोग किया है, जो वास्तव में यह समझाए बिना है।
Ælex

0

SARSA और Qlearning के बीच एकमात्र अंतर यह है कि SARSA वर्तमान नीति के आधार पर अगली कार्रवाई करता है जबकि qlearning अगले राज्य की अधिकतम उपयोगिता के साथ कार्रवाई करता है


यह सच नहीं है। दोनों विधियां एक ही सटीक कार्रवाई ()-लालची) करती हैं। अंतर यह है (जैसा कि अन्य उत्तरों में वर्णित है) कि वे क्यू-फ़ंक्शन को अपडेट करने के लिए एक अलग नीति का उपयोग करते हैं।
mobeets
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.