एसवीएम को प्रेरित करने के लिए कम से कम दो तरीके हैं, लेकिन मैं यहां सरल मार्ग अपनाऊंगा।
अब, आप SVM के बारे में जो कुछ भी जानते हैं उसे भूल जाएं और इस समय समस्या पर ध्यान दें। आपको कुछ लेबल ( ) के साथ अंक जो । अब, हम 2D में एक पंक्ति खोजने की कोशिश कर रहे हैं, जैसे कि लेबल साथ सभी बिंदु लाइन के एक तरफ आते हैं और लेबल साथ सभी बिंदु दूसरी तरफ आते हैं।y i { 1 , - 1 } 1 - 1डी ={( एक्समैं1, एक्समैं2, वाईमैं) }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< ०
ऊपर से हम यह निष्कर्ष निकाल सकते हैं कि हम कुछ वेक्टर जैसे कि,
सभी बिंदुओं के लिए with और सभी बिंदुओं के लिए with [1]।डब्ल्यू 0 + डब्ल्यू 1 एक्स मैं 1 + डब्ल्यू 2 एक्स मैं 2 ≥ 0 एक्स मैं y मैं = 1 डब्ल्यू 0 + डब्ल्यू 1 एक्स मैं 1 + डब्ल्यू 2 एक्स मैं 2 < 0 एक्स मैं y i = - १[ w0, डब्ल्यू1, डब्ल्यू2]w0+ w1एक्समैं1+ w2एक्समैं2≥ 0एक्समैंyमैं= 1w0+ w1एक्समैं1+ w2एक्समैं2< ०एक्समैंyमैं= - १
हमें लगता है कि इस तरह की एक लाइन वास्तव में मौजूद है तो मैं निम्नलिखित में एक क्लासिफायर को परिभाषित कर सकता हूं,
मिनट | w0| + | w1| + | w2|के अधीन : w0+ w1एक्समैं1+ w2एक्समैं2∀ 0 , ≥ xमैंy के साथ मैं= 1w0+ w1एक्समैं1+ w2एक्समैं2< 0 , ∀ xमैंy के साथ मैं= - १
मैंने ऊपर एक मनमाना उद्देश्य फ़ंक्शन का उपयोग किया है, हम वास्तव में उस क्षण की परवाह नहीं करते हैं जो उद्देश्य फ़ंक्शन का उपयोग किया जाता है। हम बस एक ऐसी चाहते हैं जो हमारी बाधाओं को पूरा करे। चूँकि हमने यह मान लिया है कि एक रेखा ऐसी होती है जिससे हम उस रेखा के साथ दो वर्गों को अलग कर सकते हैं, हम उपरोक्त अनुकूलन समस्या का समाधान पाएंगे।w
उपरोक्त एसवीएम नहीं है, लेकिन यह आपको एक क्लासिफायर :-) देगा। हालाँकि यह क्लासिफायर बहुत अच्छा नहीं हो सकता है। लेकिन आप एक अच्छे क्लासिफायर को कैसे परिभाषित करते हैं? एक अच्छा क्लासिफायर आमतौर पर वह होता है जो टेस्ट सेट पर अच्छा करता है। आदर्श रूप में, आप अपने प्रशिक्षण डेटा को अलग करने वाले सभी संभावित पर जाएंगे और देखेंगे कि उनमें से कौन सा परीक्षण डेटा पर अच्छा करता है। हालाँकि, अनंत हैं , इसलिए यह काफी निराशाजनक है। इसके बजाय, हम एक अच्छे क्लासिफायर को परिभाषित करने के लिए कुछ अनुमानों पर विचार करेंगे। एक अनुमानी यह है कि डेटा को अलग करने वाली रेखा सभी बिंदुओं से काफी दूर होगी (यानी अंक और रेखा के बीच हमेशा गैप या मार्जिन होता है)। इनमें से सबसे अच्छा क्लासिफायर, अधिकतम मार्जिन वाला है। यह एसवीएम में उपयोग किया जाता है।डब्ल्यूww
इसके बजाय कि जोर की सभी बिंदुओं के लिए साथ और सभी बिंदुओं के लिए साथ , अगर हम जोर देते हैं कि सभी बिंदुओं के लिए with और सभी बिंदुओं के लिए with , तो हम वास्तव में जोर दे रहे हैं कि बिंदु रेखा से बहुत दूर हैं। इस आवश्यकता के अनुरूप ज्यामितीय मार्जिन ।एक्स मैं y मैं = 1 डब्ल्यू 0 + डब्ल्यू 1 एक्स मैं 1 + डब्ल्यू 2 एक्स मैं 2 < 0 एक्स मैं y मैं = - 1 डब्ल्यू 0 + डब्ल्यू 1 एक्स मैं 1 + डब्ल्यू 2 एक्स मैं 2 ≥ 1w0+ w1एक्समैं1+ w2एक्समैं2≥ 0एक्समैंyमैं= 1w0+ w1एक्समैं1+ w2एक्समैं2< ०एक्समैंyमैं= - १w0+ w1एक्समैं1+ w2एक्समैं2≥ १y मैं = 1 डब्ल्यू 0 + डब्ल्यू 1 एक्स मैं 1 + डब्ल्यू 2 एक्स मैं 2 ≤ - 1 एक्स मैं y मैं = - 1 1एक्समैंyमैं= 1w0+ w1एक्समैं1+ w2एक्समैं2≤ - 1एक्समैंyमैं= - १1∥ w ∥2
तो, हम निम्नलिखित अनुकूलन समस्या प्राप्त करते हैं,
यह लिखने का थोड़ा सा रूप है,
यह मूल रूप से मूल SVM है। मैंने संक्षिप्तता के लिए काफी चर्चा को छोड़ दिया है। उम्मीद है, मैं अभी भी के माध्यम से सबसे अधिक विचार मिला।
अधिकतम 1∥ w ∥2के अधीन : w0+ w1एक्समैं1+ w2एक्समैं2∀ 1 , ≥ xमैंy के साथ मैं= 1w0+ w1एक्समैं1+ w2एक्समैं2≤ - 1 , ∀ एक्समैंy के साथ मैं= - १
मिनट ∥ w ∥2के अधीन : yमैं(w0+w1xi1+w2xi2)≥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)≥1≥1
ज्यामितीय मार्जिन क्या है? सकारात्मक उदाहरणों में बिंदुओं और नकारात्मक उदाहरणों के बीच ज्यामितीय मार्जिन सबसे छोटी दूरी है। अब, जिन बिंदुओं में सबसे कम दूरी की आवश्यकता होती है, उनमें कार्यात्मक मार्जिन 1 से अधिक हो सकता है। हालांकि, आइए हम चरम मामले पर विचार करते हैं, जब वे हाइपरप्लेन के सबसे करीब होते हैं, यानी, सबसे कम अंक के लिए कार्यात्मक मार्जिन बिल्कुल बराबर होता है 1. करने के लिए Let होना सकारात्मक उदाहरण पर बिंदु एक बिंदु इस तरह हो कि और नकारात्मक उदाहरण पर बिंदु होना एक बिंदु ऐसा है कि । अब, और बीच की दूरी सबसे कम होगीडब्ल्यू टी एक्स + + डब्ल्यू 0 = 1 एक्स - डब्ल्यू टी एक्स - + डब्ल्यू 0 = - 1 एक्स + एक्स - एक्स + - एक्स -x+wTx++w0=1x−wTx−+w0=−1x+x−x+−x− हाइपरप्लेन के लंबवत है।
अब, उपरोक्त सभी जानकारी के साथ हम खोजने की कोशिश करेंगे, जो कि ज्यामितीय मार्जिन है।
∥x+−x−∥2
wTx++w0=1
wTx−+w0=−1
wT(x+−x−)=2
|wT(x+−x−)|=2
∥w∥2∥x+−x−∥2=2
∥x+−x−∥2=2∥w∥2
[1] यह वास्तव में बात नहीं आप के लिए चयन नहीं करता है जो पक्ष और । आपको बस जो कुछ भी चुनना है उसके अनुरूप रहना होगा।1−1