Kernelised k निकटतम पड़ोसी


12

मैं कर्नेल के लिए नया हूं और कर्नेल kNN की कोशिश करते हुए एक रोड़ा मारा है।

प्रारंभिक

मैं एक बहुपद कर्नेल का उपयोग कर रहा हूं:
K(x,y)=(1+x,y)d

आपका विशिष्ट यूक्लिडियन kNN निम्नलिखित दूरी मीट्रिक का उपयोग करता है:
d(x,y)=||xy||

चलो मानचित्र कुछ उच्च आयामी सुविधा अंतरिक्ष में। फिर हिल्बर्ट अंतरिक्ष में उपरोक्त दूरी के मीट्रिक का वर्ग आंतरिक उत्पादों द्वारा व्यक्त किया जा सकता है: f(x)xd2(f(x),f(y))=K(x,x)2K(x,y)+K(y,y)

ध्यान दें कि यदि हम को ऊपर ले जाते हैं तो यह आपके मानक यूक्लिडियन दूरी को कम कर देगा।d=1


प्रश्न

मेरे पास मुख्य समस्या यह है कि मैं यह नहीं देख सकता कि कैसे कर्नेल kNN बेहतर परिणाम देता है जैसा कि प्रायोगिक रूप से दिखाया गया है, उदाहरण के लिए, यह पेपर (चेतावनी, प्रत्यक्ष पीडीएफ लिंक!)।

जवाबों:


25

कवर की प्रमेय: मोटे तौर पर कहा गया है, यह कहता है कि परिमित बिंदुओं के किसी भी यादृच्छिक सेट (मनमाने लेबल के साथ) को दिया जाता है, फिर उच्च संभावना के साथ इन बिंदुओं को एक उच्च आयाम [2] में मैप करके रैखिक रूप से अलग किया जा सकता है [1]।

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

कर्नेल चाल: Let डेटा बिंदुओं के मूल आयाम हो सकता है और नक्शा जो आयाम के एक अंतरिक्ष के लिए इन बातों को नक्शे होना । अब, यदि कोई फ़ंक्शन जो मूल स्थान से इनपुट और लेता है और गणना करता है, तो मैं डॉट उत्पाद की गणना करने में सक्षम हूं उच्च आयामी स्थान में लेकिन बजाय जटिलता ।nfN(>>n)KxyK(x,y)=f(x),f(y)O(n)O(N)

निहितार्थ: इसलिए, यदि वर्गीकरण एल्गोरिथ्म केवल डॉट उत्पाद पर निर्भर है और वास्तविक मानचित्र पर कोई निर्भरता नहीं है , तो मैं लगभग कोई अतिरिक्त लागत के साथ एल्गोरिथ्म को उच्च आयामी अंतरिक्ष में चलाने के लिए कर्नेल चाल का उपयोग कर सकता हूं।f

क्या रैखिक पृथक्करण का अर्थ यह है कि एक ही वर्ग के अंक विभिन्न वर्गों के बिंदुओं से अधिक निकट हो जाएंगे? नहीं, ऐसी कोई गारंटी नहीं है। रैखिक पृथक्करण वास्तव में इसका मतलब यह नहीं है कि एक ही वर्ग से बिंदु करीब हो गया है या कि दो अलग-अलग वर्गों के अंक किसी भी आगे बढ़ गए हैं।

तो kNN काम क्यों करेगा? यह नहीं की जरूरत है! हालाँकि, यदि ऐसा होता है, तो यह शुद्ध रूप से कर्नेल के कारण होता है।

इसका क्या मतलब है? बूलियन फ़ीचर वेक्टर । जब आप डिग्री दो बहुपद कर्नेल का उपयोग करते हैं, तो फीचर वेक्टर को वेक्टर में मैप किया जाता हैx=(x1,x2)x(x12,2x1x2,x22)। बूलियन सुविधाओं के एक वेक्टर से, बस डिग्री दो बहुपद का उपयोग करके, हमने "संयोजन" का एक फीचर वेक्टर प्राप्त किया है। इस प्रकार, गुठली खुद कुछ शानदार फीचर मैप तैयार करती है। यदि आपके डेटा में अच्छी मूल विशेषताएं हैं और यदि आपका डेटा इन कर्नेल द्वारा बनाए गए फ़ीचर मैप से लाभान्वित हो सकता है। लाभ से मेरा तात्पर्य है कि इन फ़ीचर मैप द्वारा निर्मित सुविधाएँ एक ही वर्ग के बिंदुओं को एक-दूसरे के समीप ला सकती हैं और विभिन्न वर्गों से दूर बिंदुओं को धक्का दे सकती हैं, फिर केएनएन गुठली का उपयोग करने से लाभान्वित होता है। अन्यथा, मूल डेटा पर केएनएन चलाने से आपको जो भी मिलता है, उससे परिणाम भिन्न नहीं होंगे।

फिर कर्नेल kNN का उपयोग क्यों करें? हमने दिखाया कि गुठली का उपयोग करने की संगणना जटिलता सामान्य केएनएन की तुलना में थोड़ी अधिक है और यदि गुठली का उपयोग करने से डेटा को लाभ होता है तो फिर भी उनका उपयोग क्यों नहीं किया जाता है?

क्या कोई ऐसा कागज है जिसने अध्ययन किया है कि kNN में गुठली से डेटा का कौन सा वर्ग लाभान्वित हो सकता है? जहाँ तक मुझे पता है, नहीं।

[१] http://en.wikipedia.org/wiki/Linear_separability
[२] http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=4038449&tag/1

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