क्या कर्नेलाइज़्ड SVM के लिए ग्रेडिएंट डिसेंट संभव है (यदि ऐसा है, तो लोग द्विघात प्रोग्रामिंग का उपयोग क्यों करते हैं)?


21

कर्नेलयुक्त SVM से निपटने के दौरान लोग द्विघात प्रोग्रामिंग तकनीक (जैसे SMO) का उपयोग क्यों करते हैं? ग्रेडिएंट डिसेंट में क्या गलत है? क्या यह गुठली के साथ उपयोग करना असंभव है या क्या यह बहुत धीमा है (और क्यों?)।

यहां थोड़ा और संदर्भ दिया गया है: एसवीएम को थोड़ा बेहतर समझने की कोशिश करते हुए, मैंने निम्न लागत फ़ंक्शन का उपयोग करके एक रैखिक एसवीएम क्लासिफायर को प्रशिक्षित करने के लिए ग्रेडिएंट डिसेंट का उपयोग किया:

J(w,b)=Ci=1mmax(0,1y(i)(wtx(i)+b))+12wtw

मैं निम्नलिखित सूचनाओं का उपयोग कर रहा हूं:

  • w मॉडल की विशेषता वज़न है और इसका पूर्वाग्रह पैरामीटर है।b
  • x(i) है प्रशिक्षण उदाहरण के फीचर वेक्टर।ith
  • y(i) उदाहरण के लिए लक्ष्य वर्ग (-1 या 1) है ।ith
  • m प्रशिक्षण उदाहरणों की संख्या है।
  • C नियमितिकरण हाइपरपरेट है।

मैंने इस समीकरण से (सब) ग्रेडिएंट वेक्टर ( और ) के संबंध में व्युत्पन्न किया, और ग्रेडिएंट डिसेंट ने ठीक काम किया।wb

अब मैं गैर-रैखिक समस्याओं से निपटना चाहूंगा। क्या मैं लागत समारोह में साथ सभी डॉट उत्पादों को प्रतिस्थापित कर सकता हूं , जहां कर्नेल फ़ंक्शन है (उदाहरण के लिए) गाऊसी RBF, , फिर पथरी को निकालने के लिए पथरी का उपयोग करें। a (सब) ग्रेडिएंट वेक्टर और ग्रेडिएंट डिसेंट के साथ आगे बढ़ता है? कश्मीर( यू , वी )कश्मीरकश्मीर( यू , वी )=- γ यू - वी 2utvK(u,v)KK(u,v)=eγuv2

यदि यह बहुत धीमा है, तो ऐसा क्यों है? क्या लागत समारोह उत्तल नहीं है? या यह इसलिए है क्योंकि ढाल बहुत तेजी से बदलता है (यह लिप्साचिट्ज निरंतर नहीं है) इसलिए एल्गोरिथ्म वंश के दौरान घाटियों में कूदता रहता है, इसलिए यह बहुत धीरे-धीरे परिवर्तित होता है? लेकिन फिर भी, यह द्विघात प्रोग्रामिंग के समय की जटिलता से भी बदतर कैसे हो सकता है, जो O(nsamples2×nfeatures) ? अगर यह स्थानीय मिनीमाता की बात है, तो स्टोकेस्टिक जीडी को नकली एनालाइज नहीं कर सकते हैं?

जवाबों:


6

सेट ताकि और , with , जहां मूल इनपुट मैट्रिक्स की मैपिंग है , । यह एक को मौलिक निर्माण के माध्यम से एसवीएम को हल करने की अनुमति देता है। नुकसान के लिए अपने अंकन का उपयोग करना:डब्ल्यू टी φ ( एक्स ) = यू टीकश्मीरw=ϕ(x)uwtϕ(x)=utKकश्मीर =φ( एक्स ) टी φ( एक्स )φ(एक्स) एक्सwtw=utKuK=ϕ(x)tϕ(x)ϕ(x)x

J(w,b)=Ci=1mmax(0,1y(i)(utK(i)+b))+12utKu

एम × एम यू एम × K एक मैट्रिक्स है, और एक मैट्रिक्स है। न ही अनंत है।m×mum×1

वास्तव में, दोहरी आमतौर पर हल करने के लिए तेज़ है, लेकिन प्राण के पास इसके फायदे भी हैं, जैसे कि अनुमानित समाधान (जो दोहरे सूत्रीकरण की गारंटी नहीं है)।


अब, दोहरे इतना अधिक प्रमुख क्यों स्पष्ट नहीं है: [१]

जिन ऐतिहासिक कारणों से पिछले दशक में अधिकांश शोध दोहरे अनुकूलन के बारे में हुए हैं वे अस्पष्ट हैं । हम मानते हैं कि ऐसा इसलिए है क्योंकि SVM को पहली बार उनके हार्ड मार्जिन फॉर्मेशन [बोसर एट अल।, 1992] में पेश किया गया था, जिसके लिए एक दोहरी अनुकूलन (बाधाओं के कारण) अधिक स्वाभाविक लगता है। सामान्य तौर पर, हालांकि, सॉफ्ट मार्जिन SVM को प्राथमिकता दी जानी चाहिए, भले ही प्रशिक्षण डेटा अलग-अलग हो: निर्णय सीमा अधिक मजबूत है क्योंकि अधिक प्रशिक्षण बिंदुओं को ध्यान में रखा जाता है [चैपल एट अल।, 2000]।


चैपल ( ) का तर्क है कि दोनों ही समय में मौलिक और दोहरी अनुकूलन की जटिलता है , सबसे खराब स्थिति , लेकिन उन्होंने द्विघात और अनुमानित हिंग के नुकसान का विश्लेषण किया, इसलिए एक उचित काज हानि नहीं है, क्योंकि यह न्यूटन की विधि के साथ उपयोग करने के लिए अलग नहीं है। O ( n 3 )O(nnsv+nsv3)O(n3)


[१] चैपल, ओ। (२०० 2007)। प्रिमल में एक सपोर्ट वेक्टर मशीन का प्रशिक्षण। तंत्रिका संगणना, 19 (5), 1155-1178।


1
+1 शायद आप समय जटिलता पर भी विस्तार कर सकते हैं
seanv507

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

4

यदि हम सभी इनपुट वेट वैक्टर ( ) में एक परिवर्तन लागू करते हैं , तो हमें निम्नलिखित लागत फ़ंक्शन मिलते हैं:एक्स ( मैं )ϕx(i)

जम्मू(w,)=सीΣमैं=1मीटरमीटरएक्स(0,1-y(मैं)(wटीφ(एक्स(मैं))+))+12wटीw

कर्नेल ट्रिक द्वारा जगह लेती है । के बाद से वजन वेक्टर है नहीं बदल, गिरी चाल ऊपर लागत समारोह के लिए लागू नहीं किया जा सकता हैकश्मीर ( यू , वी ) wφ(यू)टीφ(v)कश्मीर(यू,v)w

उपरोक्त लागत समारोह SVM उद्देश्य के मौलिक रूप से मेल खाता है :

मिनटw,,ζसीΣमैं=1मीटरζ(मैं)+12wटीw

के अधीन और लिएζ ( मैं )0 मैं = 1 , , मीटरy(मैं)(wटीφ(एक्स(मैं))+)1-ζ(मैं))ζ(मैं)0मैं=1,,मीटर

दोहरी रूप है:

मिनटα12αटीक्यूα-1टीα

के लिए और लिए0 अल्फा मैंसीमैं=1,2,,मीटरyटीα=00αमैंसीमैं=1,2,,मीटर

जहां एक वेक्टर 1s से भरा और है एक है तत्वों के साथ मैट्रिक्स ।Q m × m Q i j = y ( i )1क्यूमीटर×मीटरक्यूमैंj=y(मैं)y(j)φ(एक्स(मैं))टीφ(एक्स(j))

अब हम को गणना करके कर्नेल ट्रिक का उपयोग कर सकते हैं :क्यूमैंj

क्यूमैंj=y(मैं)y(j)कश्मीर(एक्स(मैं),एक्स(j))

तो कर्नेल ट्रिक का उपयोग केवल SVM समस्या के दोहरे रूप पर किया जा सकता है (साथ ही कुछ अन्य एल्गोरिदम जैसे लॉजिस्टिक रिग्रेशन)।

अब आप इस समस्या को हल करने के लिए ऑफ-द-शेल्फ द्विघात प्रोग्रामिंग पुस्तकालयों का उपयोग कर सकते हैं, या एक अप्रतिबंधित फ़ंक्शन (दोहरी लागत फ़ंक्शन) प्राप्त करने के लिए Lagrangian गुणक का उपयोग कर सकते हैं, फिर ग्रेडिएंट डिसेंट या किसी अन्य अनुकूलन तकनीक का उपयोग करके न्यूनतम खोज कर सकते हैं। सबसे कुशल दृष्टिकोण में से एक libsvmपुस्तकालय द्वारा कार्यान्वित SMO एल्गोरिथ्म (कर्नेलयुक्त SVM के लिए) लगता है।


1
मुझे यकीन नहीं है कि आपने अपना जवाब कम्युनिटी विकी क्यों रखा। यह आपके प्रश्न का पूरी तरह से मान्य उत्तर की तरह लगता है।
साइकोरैक्स का कहना है कि मोनिका

धन्यवाद @GeneralAbrial। मैंने सवाल पूछने से पहले किसी भी संदेह से बचने के लिए अपने जवाब को कम्युनिटी विकी के रूप में चिह्नित किया।
मिनीक्वार

1
आपको हमेशा वही करना चाहिए जो आपको लगता है कि सही है, लेकिन यह आपके अपने सवाल पूछने और जवाब देने के लिए पूरी तरह से कोषेर है।
साइकोरैक्स का कहना है कि मोनिका

प्रतीक्षा करें, क्या आप वेट वेक्टर को ताकि और , with , और फिर नमूना वजन अनुकूलन करें ? डब्ल्यू टी φ ( एक्स ) = यूकश्मीर डब्ल्यू टी डब्ल्यू = यू टी कश्मीर यू कश्मीर = φ टी φw=φ(एक्स)यूwटीφ(एक्स)=यूकश्मीरwटीw=यूटीकश्मीरयूकश्मीर=φटीφयू
फायरबग

2

मैं गलत हो सकता हूं, लेकिन मैं यह नहीं देखता कि कैसे हम डॉट उत्पादों को दोहरी समस्या में बदलने के बिना गुठली के साथ बदल सकते हैं।

कर्नेल इनपुट को कुछ फीचर स्पेस में मैप करते हैं जहां हो जाता है , लॉस फ़ंक्शन तब यदि गॉसियन कर्नेल लागू किया जाता है, तो का अनंत होगा आयाम, तो ।φ ( एक्स ) जम्मू ( डब्ल्यू , ) = सी मीटर Σ मैं = 1 मीटर एक एक्स ( 0 , 1 - y ( मैं ) ( डब्ल्यू टीφ ( एक्स ( मैं ) ) + ) )एक्सφ(एक्स)
φ(एक्स(मैं))wजम्मू(w,)=सीΣमैं=1मीटरमीटरएक्स(0,1-y(मैं)(wटीφ(एक्स(मैं))+))+12wटीw
φ(एक्स(मैं))w

सीधे ढाल वंश का उपयोग करके अनंत आयामों के एक वेक्टर को अनुकूलित करना मुश्किल लगता है।

अपडेट
फायरबग का उत्तर प्राण निरूपण में गुठली के साथ डॉट उत्पादों को बदलने का एक तरीका देता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.