कृपया, मुझे एक जेनेरिक और एक भेदभावपूर्ण एल्गोरिथ्म के बीच के अंतर को समझने में मदद करें, यह ध्यान में रखते हुए कि मैं सिर्फ एक शुरुआत हूं।
कृपया, मुझे एक जेनेरिक और एक भेदभावपूर्ण एल्गोरिथ्म के बीच के अंतर को समझने में मदद करें, यह ध्यान में रखते हुए कि मैं सिर्फ एक शुरुआत हूं।
जवाबों:
मान लें कि आपके पास इनपुट डेटा है x
और आप डेटा को लेबल में वर्गीकृत करना चाहते हैं y
। एक उत्पादक मॉडल सीखता संयुक्त संभाव्यता वितरण p(x,y)
और एक विवेकशील मॉडल सीखता सशर्त प्रायिकता वितरण p(y|x)
- जो आप के रूप में पढ़ना चाहिए "की संभावना y
को देखते हुए x
" ।
यहाँ एक बहुत सरल उदाहरण है। मान लें कि आपके पास फॉर्म में निम्नलिखित डेटा है (x,y)
:
(1,0), (1,0), (2,0), (2, 1)
p(x,y)
है
y=0 y=1
-----------
x=1 | 1/2 0
x=2 | 1/4 1/4
p(y|x)
है
y=0 y=1
-----------
x=1 | 1 0
x=2 | 1/2 1/2
यदि आप उन दो मैट्रिसेस को घूरने में कुछ मिनट लेते हैं, तो आप दोनों संभावना वितरण के बीच अंतर को समझेंगे।
वितरण p(y|x)
एक दिए गए उदाहरण x
को एक वर्ग में वर्गीकृत करने के लिए प्राकृतिक वितरण है y
, यही वजह है कि एल्गोरिदम जो इसे सीधे मॉडल करते हैं उन्हें भेदभावपूर्ण एल्गोरिदम कहा जाता है। जेनेरिक एल्गोरिदम मॉडल p(x,y)
, जिसे p(y|x)
बेयस नियम लागू करके और फिर वर्गीकरण के लिए इस्तेमाल किया जा सकता है। हालाँकि, वितरण का p(x,y)
उपयोग अन्य उद्देश्यों के लिए भी किया जा सकता है। उदाहरण के लिए, आप संभावित जोड़े उत्पन्नp(x,y)
करने के लिए उपयोग कर सकते हैं (x,y)
।
उपरोक्त विवरण से, आप सोच रहे होंगे कि सामान्य मॉडल अधिक उपयोगी होते हैं और इसलिए बेहतर होते हैं, लेकिन यह उतना सरल नहीं है। यह पेपर भेदभावपूर्ण बनाम जेनरेटिव क्लासिफायर के विषय पर एक बहुत लोकप्रिय संदर्भ है, लेकिन यह बहुत भारी है। कुल मिलाकर यह है कि भेदभावपूर्ण मॉडल आमतौर पर वर्गीकरण कार्यों में सामान्य मॉडल को बेहतर बनाते हैं।
p(y|x)
उस एल्गोरिदम का अर्थ है कि इसे "भेदभावपूर्ण मॉडल" कहा जाता है।
एक जेनरेटर एल्गोरिथ्म मॉडल कैसे एक संकेत को वर्गीकृत करने के लिए डेटा उत्पन्न किया गया था। यह सवाल पूछता है: मेरी पीढ़ी की धारणाओं के आधार पर, इस संकेत को उत्पन्न करने के लिए कौन सी श्रेणी सबसे अधिक संभावना है?
एक भेदभावपूर्ण एल्गोरिथ्म इस बात की परवाह नहीं करता है कि डेटा कैसे उत्पन्न किया गया था, यह बस दिए गए संकेत को वर्गीकृत करता है।
कल्पना करें कि आपका कार्य किसी भाषा के लिए भाषण को वर्गीकृत करना है।
आप इसे या तो कर सकते हैं:
या
पहला एक जेनेरिक एप्रोच है और दूसरा एक एप्रिक्टिव अप्रोच है।
अधिक जानकारी के लिए इस संदर्भ की जाँच करें: http://www.cedar.buffalo.edu/~srihari/CSE574/Discriminative-Generative.pdf ।
व्यवहार में, मॉडल निम्नानुसार उपयोग किए जाते हैं।
में विशेषक मॉडल , लेबल भविष्यवाणी करने के लिए y
प्रशिक्षण उदाहरण से x
, आप का मूल्यांकन करना चाहिए:
जो केवल चुनता है सबसे अधिक संभावना वर्ग है y
पर विचार x
। यह ऐसा है जैसे हम कक्षाओं के बीच निर्णय सीमा को मॉडल करने की कोशिश कर रहे थे । तंत्रिका नेटवर्क में यह व्यवहार बहुत स्पष्ट है, जहां गणना की गई भार को अंतरिक्ष में एक वर्ग के तत्वों को अलग करने वाले एक जटिल आकार के वक्र के रूप में देखा जा सकता है।
अब, बेयस नियम का उपयोग करते हुए, आइए समीकरण को इसके द्वारा प्रतिस्थापित करें । चूँकि आप सिर्फ arg max में रुचि रखते हैं , आप हर को मिटा सकते हैं, जो हर एक के लिए समान होगा y
। तो, आप के साथ छोड़ दिया जाता है
जेनेरिक मॉडल में आपके द्वारा उपयोग किया जाने वाला समीकरण है ।
जबकि पहले मामले में आपके पास सशर्त संभाव्यता वितरण था p(y|x)
, जिसने कक्षाओं के बीच की सीमा को मॉडल किया था, दूसरे में आपके पास संयुक्त संभावना वितरण था p(x, y)
, क्योंकि p(x | y) p(y) = p(x, y)
, स्पष्ट रूप से प्रत्येक वर्ग के वास्तविक वितरण को मॉडल करता है ।
संयुक्त संभाव्यता वितरण समारोह के साथ, एक y
, आप इसकी गणना ("उत्पन्न") कर सकते हैं x
। इस कारण से, उन्हें "जेनेरेटिव" मॉडल कहा जाता है।
यहाँ से सबसे महत्वपूर्ण हिस्सा है व्याख्यान नोट्स CS299 की (एंड्रयू एनजी द्वारा) विषय है, जो करने के लिए संबंधित वास्तव में मुझे के बीच अंतर समझने में मदद करता विवेकशील और उत्पादक सीखने वाले एल्गोरिदम।
मान लीजिए हमारे पास जानवरों के दो वर्ग हैं, हाथी ( y = 1
) और कुत्ता ( y = 0
)। और एक्स जानवरों की विशेषता वेक्टर है।
एक प्रशिक्षण सेट को देखते हुए, लॉजिस्टिक रिग्रेशन या परसेप्ट्रॉन एल्गोरिथ्म (मूल रूप से) की तरह एक एल्गोरिथ्म एक सीधी रेखा को खोजने की कोशिश करता है - अर्थात, एक निर्णय सीमा - जो हाथियों और कुत्तों को अलग करती है। फिर, एक नए जानवर को हाथी या कुत्ते के रूप में वर्गीकृत करने के लिए, यह जांच करता है कि वह किस सीमा के किनारे पड़ता है, और उसी के अनुसार अपनी भविष्यवाणी करता है। हम इन भेदभावपूर्ण शिक्षण एल्गोरिथ्म कहते हैं ।
यहाँ एक अलग दृष्टिकोण है। सबसे पहले, हाथियों को देखते हुए, हम एक मॉडल बना सकते हैं कि हाथी क्या दिखते हैं। फिर, कुत्तों को देखते हुए, हम एक अलग मॉडल बना सकते हैं कि कुत्ते क्या दिखते हैं। अंत में, एक नए जानवर को वर्गीकृत करने के लिए, हम हाथी मॉडल के खिलाफ नए जानवर का मिलान कर सकते हैं, और कुत्ते के मॉडल के खिलाफ मैच कर सकते हैं, यह देखने के लिए कि क्या नया जानवर हाथी की तरह दिखता है या अधिक कुत्तों की तरह जो हमने प्रशिक्षण सेट में देखा था । हम इन जेनेरिक लर्निंग एल्गोरिदम को कॉल करते हैं ।
आम तौर पर, मशीन लर्निंग कम्युनिटी में एक ऐसी प्रैक्टिस की जाती है, जिसमें आप ऐसा कुछ नहीं सीख सकते जो आप नहीं चाहते। उदाहरण के लिए, एक वर्गीकरण समस्या पर विचार करें जहां किसी का लक्ष्य किसी दिए गए x इनपुट पर y लेबल असाइन करना है। अगर हम जेनेरेटिव मॉडल का उपयोग करते हैं
p(x,y)=p(y|x).p(x)
हमें p (x) को मॉडल करना होगा जो हाथ में कार्य के लिए अप्रासंगिक है। डेटा विरलता जैसी व्यावहारिक सीमाएँ हमें p(x)
कुछ कमजोर स्वतंत्रता धारणाओं के साथ मॉडल करने के लिए मजबूर करेंगी । इसलिए, हम वर्गीकरण के लिए सहज ज्ञान युक्त विवेकशील मॉडल का उपयोग करते हैं।
एक अतिरिक्त जानकारीपूर्ण बिंदु जो ऊपर StompChicken द्वारा उत्तर के साथ अच्छी तरह से चला जाता है।
मौलिक अंतर के बीच विवेकशील मॉडल और उत्पादक मॉडल है:
भेदभावपूर्ण मॉडल कक्षाओं के बीच कठिन (नरम या नरम) सीमा सीखते हैं
पीढ़ीगत मॉडल व्यक्तिगत वर्गों के वितरण का मॉडल बनाते हैं
संपादित करें:
जेनरेटिव मॉडल वह है जो डेटा उत्पन्न कर सकता है । यह दोनों सुविधाओं और वर्ग (यानी पूरा डेटा) को मॉडल करता है।
यदि हम मॉडल करते हैं P(x,y)
: मैं डेटा बिंदुओं को उत्पन्न करने के लिए इस संभावना वितरण का उपयोग कर सकता हूं - और इसलिए सभी एल्गोरिदम मॉडलिंग जनरेटिव P(x,y)
हैं।
उदाहरण के लिए। जनरलों के मॉडल
Naive Bayes मॉडल P(c)
और P(d|c)
- जहां c
वर्ग है और d
फीचर वेक्टर है।
इसके अलावा, P(c,d) = P(c) * P(d|c)
इसलिए, कुछ रूपों में Naive Bayes, P(c,d)
बेयस नेट
मार्कोव नेट्स
एक भेदभावपूर्ण मॉडल वह है जिसका उपयोग केवल डेटा बिंदुओं को भेदभाव / वर्गीकृत करने के लिए किया जा सकता है । आपको केवल P(y|x)
ऐसे मामलों में मॉडल करने की आवश्यकता है , (यानी फीचर वेक्टर को दिए गए वर्ग की संभावना)।
उदाहरण के लिए। भेदभावपूर्ण मॉडल:
रसद प्रतिगमन
तंत्रिका जाल
सशर्त यादृच्छिक क्षेत्र
सामान्य तौर पर, जेनेरिक मॉडल को विवेकशील मॉडल की तुलना में बहुत अधिक मॉडल करने की आवश्यकता होती है और इसलिए कभी-कभी यह उतना प्रभावी नहीं होता है। तथ्य की बात के रूप में, सबसे (निश्चित नहीं अगर सभी) अव्यवस्थित सीखने एल्गोरिदम जैसे क्लस्टरिंग आदि को जेनरेटिव कहा जा सकता है, क्योंकि वे मॉडल P(d)
(और कोई वर्ग नहीं हैं: पी)
यहां दिए गए कई उत्तर, व्यापक रूप से प्रयुक्त गणितीय परिभाषा पर निर्भर करते हैं [1]:
- भेदभावपूर्ण मॉडल सीधे सशर्त भविष्य कहनेवाला वितरण सीखते हैं
p(y|x)
।- पीढ़ीगत मॉडल संयुक्त वितरण
p(x,y)
(या बल्कि,p(x|y)
औरp(y)
) सीखते हैं ।
p(y|x)
बेयस के नियम के साथ भविष्य कहनेवाला वितरण प्राप्त किया जा सकता है।
यद्यपि बहुत उपयोगी है, यह संकीर्ण परिभाषा पर्यवेक्षित सेटिंग को मानती है, और अनुपयोगी या अर्ध-पर्यवेक्षित विधियों की जांच करते समय कम उपयोगी होती है। यह गहरी जेनेरिक मॉडलिंग के लिए कई समकालीन दृष्टिकोणों पर भी लागू नहीं होता है । उदाहरण के लिए, अब हमारे पास जेनेरिक एडवांस्ड मॉडल, जैसे जेनरेटिव एडवरसियर नेटवर्क्स (जीएएन) हैं, जो सैंपलिंग-आधारित हैं और संभावना घनत्व को स्पष्ट रूप से मॉडल नहीं करते हैं p(x)
(इसके बजाय डिस्क्रिमिनेटर नेटवर्क के माध्यम से एक विचलन माप सीखते हैं)। लेकिन हम उन्हें "जेनेरेटिव मॉडल" कहते हैं क्योंकि वे (उच्च-आयामी [10]) नमूने बनाने के लिए उपयोग किए जाते हैं।
एक व्यापक और अधिक मौलिक परिभाषा [2] इस सामान्य प्रश्न के लिए समान रूप से उपयुक्त लगती है:
- भेदभावपूर्ण मॉडल कक्षाओं के बीच सीमा सीखते हैं।
- इसलिए वे विभिन्न प्रकार के डेटा इंस्टेंस के बीच भेदभाव कर सकते हैं ।
- जनरेटिव मॉडल डेटा के वितरण को सीखते हैं।
- इसलिए वे नए डेटा इंस्टेंस उत्पन्न कर सकते हैं ।
फिर भी, यह प्रश्न कुछ हद तक एक झूठे द्वैतवाद [3] का है। जेनेरिक-भेदभावपूर्ण "डाइकोटॉमी" वास्तव में एक स्पेक्ट्रम है जिसे आप [4] के बीच आसानी से प्रक्षेपित कर सकते हैं।
नतीजतन, यह अंतर मनमाना और भ्रमित हो जाता है, खासकर जब कई लोकप्रिय मॉडल बड़े करीने से एक या दूसरे [5,6] में नहीं आते हैं, या वास्तव में हाइब्रिड मॉडल (शास्त्रीय रूप से "भेदभावपूर्ण" और "उदार" मॉडल के संयोजन) हैं ।
फिर भी यह अभी भी एक बहुत ही उपयोगी और आम भेद है। हम जेनेरिक और भेदभावपूर्ण मॉडल के कुछ स्पष्ट उदाहरणों को सूचीबद्ध कर सकते हैं, दोनों विहित और हाल ही में:
जेनेरिक-भेदभावपूर्ण विभाजन [7] और स्पेक्ट्रम [4,8] की गहराई से जांच करने और यहां तक कि भेदभाव करने वाले मॉडल को जेनेरिक मॉडल [9] में बदलने के लिए भी बहुत सारे दिलचस्प काम हैं।
अंत में, परिभाषाएं लगातार विकसित हो रही हैं, विशेष रूप से इस तेजी से बढ़ते क्षेत्र में :) उन्हें नमक की एक चुटकी के साथ लेना सबसे अच्छा है, और शायद उन्हें अपने और दूसरों के लिए फिर से परिभाषित करना भी है।
पिछले सभी उत्तर बहुत अच्छे हैं, और मैं एक और बिंदु में प्लग करना चाहूंगा।
जनरेटिव एल्गोरिथ्म मॉडल से, हम किसी भी वितरण को प्राप्त कर सकते हैं; जबकि हम केवल भेदभावपूर्ण एल्गोरिथ्म मॉडल से सशर्त वितरण पी (वाई | एक्स) प्राप्त कर सकते हैं (या हम कह सकते हैं कि वे केवल वाई के लेबल को भेदभाव करने के लिए उपयोगी हैं), और इसीलिए इसे भेदभावपूर्ण मॉडल कहा जाता है। विवेकशील मॉडल यह नहीं मानता है कि X के स्वतंत्र हैं Y ($ X_i \ perp X _ - - i} | Y $) दिया गया है और इसलिए आमतौर पर उस सशर्त वितरण की गणना के लिए अधिक शक्तिशाली है।
मेरे दो सेंट: भेदभावपूर्ण दृष्टिकोण मतभेदों को उजागर करते हैं पीढ़ीगत दृष्टिकोण मतभेदों पर ध्यान केंद्रित नहीं करते हैं; वे एक मॉडल बनाने की कोशिश करते हैं जो कक्षा का प्रतिनिधि है। दोनों के बीच एक ओवरलैप है। आदर्श रूप से दोनों दृष्टिकोणों का उपयोग किया जाना चाहिए: एक समानता खोजने के लिए उपयोगी होगा और दूसरा असमानताओं को खोजने के लिए उपयोगी होगा।
एक जेनेरिक एल्गोरिथम मॉडल पूरी तरह से प्रशिक्षण डेटा से सीखेगा और प्रतिक्रिया की भविष्यवाणी करेगा।
एक भेदभावपूर्ण एल्गोरिदम का काम सिर्फ 2 परिणामों के बीच वर्गीकरण या अंतर करना है।
इस लेख ने मुझे अवधारणा को समझने में बहुत मदद की।
संक्षेप में,
कुछ अच्छी पठन सामग्री: सशर्त संभावना , संयुक्त पीडीएफ