दो आयामी अंतरिक्ष में बिंदुओं के एक सेट को देखते हुए, SVM के लिए कोई डिज़ाइन निर्णय कैसे ले सकता है?


10

क्या कोई मुझे समझा सकता है कि कोई एसवीएम निर्णय समारोह को कैसे डिजाइन करता है? या मुझे उस संसाधन की ओर इंगित करें जो एक ठोस उदाहरण पर चर्चा करता है।

संपादित करें

नीचे दिए गए उदाहरण के लिए, मैं देख सकता हूं कि समीकरण अधिकतम मार्जिन वाले वर्गों को अलग करता है। लेकिन मैं वजन कैसे समायोजित करूं और निम्न रूप में हाइपरप्लेन के लिए समीकरण लिखूं।एक्स2=1.5

एच1:w0+w1एक्स1+w2एक्स21के लियेYमैं=+1एच2:w0+w1एक्स1+w2एक्स2-1के लियेYमैं=-1।

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

मैं उच्च आयामों के बारे में सोचने से पहले 2-डी स्पेस (जैसा कि कल्पना करना आसान है) में अंतर्निहित सिद्धांत को प्राप्त करने की कोशिश कर रहा हूं।

मैंने इसके लिए समाधान तैयार किया है क्या कोई कृपया पुष्टि कर सकता है कि क्या यह सही है?

वेट वेक्टर है (0, -2) और W_0 3 है

एच1:3+0एक्स1-2एक्स21के लियेYमैं=+1एच2:3+0एक्स1-2एक्स2-1के लियेYमैं=-1।

यहां आर के साथ एक चित्रण है , लेकिन मुझे लगता है कि एल्गोरिदम पहलू पर आपका प्रश्न अधिक है। इस मामले में, यह मदद करेगा यदि आप इच्छित एप्लिकेशन या उपलब्ध संसाधन के बारे में थोड़ा और विवरण जोड़ सकते हैं।
CHL

@chl मैं विवरण के साथ अद्यतन सवाल है
नरेश

जवाबों:


12

एसवीएम को प्रेरित करने के लिए कम से कम दो तरीके हैं, लेकिन मैं यहां सरल मार्ग अपनाऊंगा।

अब, आप SVM के बारे में जो कुछ भी जानते हैं उसे भूल जाएं और इस समय समस्या पर ध्यान दें। आपको कुछ लेबल ( ) के साथ अंक जो । अब, हम 2D में एक पंक्ति खोजने की कोशिश कर रहे हैं, जैसे कि लेबल साथ सभी बिंदु लाइन के एक तरफ आते हैं और लेबल साथ सभी बिंदु दूसरी तरफ आते हैं।y i { 1 , - 1 } 1 - 1डी={(एक्स1मैं,एक्स2मैं,yमैं)}yमैं{1,-1}1-1

सबसे पहले, यह महसूस करें कि , 2D में एक पंक्ति है और लाइन का "एक तरफ" और प्रतिनिधित्व करता है। लाइन।w 0 + w 1 x 1 + w 2 x 2 > 0 w 0 + w 1 x 1 + w 2 x 2 < 0w0+w1एक्स1+w2एक्स2=0w0+w1एक्स1+w2एक्स2>0w0+w1एक्स1+w2एक्स2<0

ऊपर से हम यह निष्कर्ष निकाल सकते हैं कि हम कुछ वेक्टर जैसे कि, सभी बिंदुओं के लिए with और सभी बिंदुओं के लिए with [1]।डब्ल्यू 0 + डब्ल्यू 1 एक्स मैं 1 + डब्ल्यू 2 एक्स मैं 20 एक्स मैं y मैं = 1 डब्ल्यू 0 + डब्ल्यू 1 एक्स मैं 1 + डब्ल्यू 2 एक्स मैं 2 < 0 एक्स मैं y i = - [w0,w1,w2]w0+w1एक्स1मैं+w2एक्स2मैं0एक्समैंyमैं=1w0+w1एक्स1मैं+w2एक्स2मैं<0एक्समैंyमैं=-1

हमें लगता है कि इस तरह की एक लाइन वास्तव में मौजूद है तो मैं निम्नलिखित में एक क्लासिफायर को परिभाषित कर सकता हूं,

मिनट|w0|+|w1|+|w2|का विषय है:w0+w1एक्स1मैं+w2एक्स2मैं0,एक्समैं साथ में yमैं=1w0+w1एक्स1मैं+w2एक्स2मैं<0,एक्समैं साथ में yमैं=-1

मैंने ऊपर एक मनमाना उद्देश्य फ़ंक्शन का उपयोग किया है, हम वास्तव में उस क्षण की परवाह नहीं करते हैं जो उद्देश्य फ़ंक्शन का उपयोग किया जाता है। हम बस एक ऐसी चाहते हैं जो हमारी बाधाओं को पूरा करे। चूँकि हमने यह मान लिया है कि एक रेखा ऐसी होती है जिससे हम उस रेखा के साथ दो वर्गों को अलग कर सकते हैं, हम उपरोक्त अनुकूलन समस्या का समाधान पाएंगे।w

उपरोक्त एसवीएम नहीं है, लेकिन यह आपको एक क्लासिफायर :-) देगा। हालाँकि यह क्लासिफायर बहुत अच्छा नहीं हो सकता है। लेकिन आप एक अच्छे क्लासिफायर को कैसे परिभाषित करते हैं? एक अच्छा क्लासिफायर आमतौर पर वह होता है जो टेस्ट सेट पर अच्छा करता है। आदर्श रूप में, आप अपने प्रशिक्षण डेटा को अलग करने वाले सभी संभावित पर जाएंगे और देखेंगे कि उनमें से कौन सा परीक्षण डेटा पर अच्छा करता है। हालाँकि, अनंत हैं , इसलिए यह काफी निराशाजनक है। इसके बजाय, हम एक अच्छे क्लासिफायर को परिभाषित करने के लिए कुछ अनुमानों पर विचार करेंगे। एक अनुमानी यह है कि डेटा को अलग करने वाली रेखा सभी बिंदुओं से काफी दूर होगी (यानी अंक और रेखा के बीच हमेशा गैप या मार्जिन होता है)। इनमें से सबसे अच्छा क्लासिफायर, अधिकतम मार्जिन वाला है। यह एसवीएम में उपयोग किया जाता है।डब्ल्यूww

इसके बजाय कि जोर की सभी बिंदुओं के लिए साथ और सभी बिंदुओं के लिए साथ , अगर हम जोर देते हैं कि सभी बिंदुओं के लिए with और सभी बिंदुओं के लिए with , तो हम वास्तव में जोर दे रहे हैं कि बिंदु रेखा से बहुत दूर हैं। इस आवश्यकता के अनुरूप ज्यामितीय मार्जिन ।एक्स मैं y मैं = 1 डब्ल्यू 0 + डब्ल्यू 1 एक्स मैं 1 + डब्ल्यू 2 एक्स मैं 2 < 0 एक्स मैं y मैं = - 1 डब्ल्यू 0 + डब्ल्यू 1 एक्स मैं 1 + डब्ल्यू 2 एक्स मैं 21w0+w1एक्स1मैं+w2एक्स2मैं0एक्समैंyमैं=1w0+w1एक्स1मैं+w2एक्स2मैं<0एक्समैंyमैं=-1w0+w1एक्स1मैं+w2एक्स2मैं1y मैं = 1 डब्ल्यू 0 + डब्ल्यू 1 एक्स मैं 1 + डब्ल्यू 2 एक्स मैं 2- 1 एक्स मैं y मैं = - 1 1एक्समैंyमैं=1w0+w1एक्स1मैं+w2एक्स2मैं-1एक्समैंyमैं=-11w2

तो, हम निम्नलिखित अनुकूलन समस्या प्राप्त करते हैं, यह लिखने का थोड़ा सा रूप है, यह मूल रूप से मूल SVM है। मैंने संक्षिप्तता के लिए काफी चर्चा को छोड़ दिया है। उम्मीद है, मैं अभी भी के माध्यम से सबसे अधिक विचार मिला।

अधिकतम1w2का विषय है:w0+w1एक्स1मैं+w2एक्स2मैं1,एक्समैं साथ में yमैं=1w0+w1एक्स1मैं+w2एक्स2मैं-1,एक्समैं साथ में yमैं=-1
minw2subject to:yi(w0+w1x1i+w2x2i)1,i

उदाहरण की समस्या को हल करने के लिए CVX स्क्रिप्ट:

A = [1 2 1; 3 2 1; 2 3 1; 3 3 1; 1 1 1; 2 0 1; 2 1 1; 3 1 1];
b = ones(8, 1);
y = [-1; -1; -1; -1; 1; 1; 1; 1];
Y = repmat(y, 1, 3);
cvx_begin
variable w(3)
minimize norm(w)
subject to
(Y.*A)*w >= b
cvx_end

परिशिष्ट - ज्यामितीय मार्जिन

ऊपर हमने पहले ही निवेदन किया है कि हम जैसे कि या आम तौर पर । यहाँ जो LHS आपको दिखाई देता है उसे मार्जिन कहा जाता है, इसलिए हमने यहाँ जो अनुरोध किया है, वह है कि मार्जिन । अब, हम इस कार्यात्मक मार्जिन आवश्यकता को देखते हुए ज्यामितीय मार्जिन की गणना करने का प्रयास करेंगे।y मैं ( डब्ल्यू 0 + डब्ल्यू 1 एक्स 1 + डब्ल्यू 2 एक्स 2 ) 1 y मैं ( डब्ल्यू 0 + डब्ल्यू टी एक्स ) 1 1wyi(w0+w1x1+w2x2)1yi(w0+wTx)11

ज्यामितीय मार्जिन क्या है? सकारात्मक उदाहरणों में बिंदुओं और नकारात्मक उदाहरणों के बीच ज्यामितीय मार्जिन सबसे छोटी दूरी है। अब, जिन बिंदुओं में सबसे कम दूरी की आवश्यकता होती है, उनमें कार्यात्मक मार्जिन 1 से अधिक हो सकता है। हालांकि, आइए हम चरम मामले पर विचार करते हैं, जब वे हाइपरप्लेन के सबसे करीब होते हैं, यानी, सबसे कम अंक के लिए कार्यात्मक मार्जिन बिल्कुल बराबर होता है 1. करने के लिए Let होना सकारात्मक उदाहरण पर बिंदु एक बिंदु इस तरह हो कि और नकारात्मक उदाहरण पर बिंदु होना एक बिंदु ऐसा है कि । अब, और बीच की दूरी सबसे कम होगीडब्ल्यू टी एक्स + + डब्ल्यू 0 = 1 एक्स - डब्ल्यू टी एक्स - + डब्ल्यू 0 = - 1 एक्स + एक्स - एक्स + - एक्स -x+wTx++w0=1xwTx+w0=1x+xx+x हाइपरप्लेन के लंबवत है।

अब, उपरोक्त सभी जानकारी के साथ हम खोजने की कोशिश करेंगे, जो कि ज्यामितीय मार्जिन है। x+x2

wTx++w0=1
wTx+w0=1
wT(x+x)=2
|wT(x+x)|=2
w2x+x2=2
x+x2=2w2

[1] यह वास्तव में बात नहीं आप के लिए चयन नहीं करता है जो पक्ष और । आपको बस जो कुछ भी चुनना है उसके अनुरूप रहना होगा।11


1
@ सर्नेश येप, इसे हल करने के लिए cvx में है, मुझे वही समाधान दिया गया है जो आपके पास । w=[0,-2,3]
तेनालीरामन

1
@entropy धन्यवाद मैंने टाइपो तय कर दिया है। मैं ज्यामितीय मार्जिन स्पष्टीकरण जोड़ूंगा।
तेनालीरामन

1
@entropy मैंने ज्यामितीय मार्जिन स्पष्टीकरण के साथ उत्तर को अपडेट किया है।
तेनालीरामन

1
@entropy एक हाइपरप्लेन है जो मूल से गुजर रहा है। सभी रैखिक समीकरणों के स्थान को कवर करने के लिए आपको पूर्वाग्रह शब्द की आवश्यकता होती है। 2 डी में रहने वाले बिंदुओं के बारे में सोचें और हमें बताएं कि आप इन बिंदुओं को अलग करने वाली एक रेखा खोजने की कोशिश कर रहे हैं। हालाँकि ये सभी बिंदु पहले चतुर्भुज में स्थित हैं। अब कोई भी इन बिंदुओं की व्यवस्था कर सकता है जैसे कि वे अलग-अलग हैं लेकिन किसी भी रेखा से नहीं जो मूल से गुजरती हैं। हालांकि, एक उचित पूर्वाग्रह के साथ एक पंक्ति यह कर सकती है। wTx
तेनालीरामन

1
@entropy ने कहा कि उपरोक्त, आप अब तक महसूस कर सकते हैं कि यदि आप ठीक से घुमाते हैं और अंकों को स्थानांतरित करते हैं, तो मूल के माध्यम से गुजरने वाली एक पंक्ति भी कक्षाओं को अलग करने में सक्षम होनी चाहिए। हालांकि, आम तौर पर केवल पूर्वाग्रह शब्द सीखने की तुलना में, यह सही रोटेशन और बदलाव आसान नहीं है।
तेनालीरामन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.