आइए, Nyström सन्निकटन को इस तरह से प्राप्त करें कि आपके प्रश्नों के उत्तर स्पष्ट हो जाएं।
Nyström में प्रमुख धारणा यह है कि कर्नेल फ़ंक्शन रैंक । (वास्तव में हम मानते हैं कि यह लगभग रैंक के , लेकिन सादगी देना सिर्फ बहाना है के लिए यह वास्तव में रैंक अब के लिए।) इसका मतलब है कि किसी भी गिरी मैट्रिक्स ज्यादा से ज्यादा पद के लिए जा रहा है , और विशेष रूप से
है रैंक । इसलिए नॉनज़रो ईजेनवेल्यूज़ हैं, और हम के यूजेंडेकंपोजिशन को रूप में
लिख सकते हैंmmmm
K=⎡⎣⎢⎢k(x1,x1)⋮k(xn,x1)…⋱…k(x1,xn)⋮k(xn,xn)⎤⎦⎥⎥,
mmKK=UΛUT
nigenvectors के साथ में संग्रहित , आकार , और eigenvalues में व्यवस्था की गई , एक विकर्ण मैट्रिक्स।
Un×mΛm×m
तो, चलिए तत्वों को लेते हैं, आमतौर पर समान रूप से यादृच्छिक रूप से लेकिन संभवतः अन्य योजनाओं के अनुसार - इस सरलीकृत संस्करण में जो कुछ भी मायने रखता है वह है कि पूर्ण रैंक का हो। एक बार जब हम ऐसा कर लेते हैं, तो केवल उन बिंदुओं को रीलैब करते हैं ताकि हम ब्लॉकों में कर्नेल मैट्रिक्स के साथ समाप्त हो जाएं:
जहां हम (जो ) और ( ) में प्रत्येक प्रविष्टि का मूल्यांकन करते हैं, लेकिन में किसी भी प्रविष्टि का मूल्यांकन नहीं करना चाहते हैं ।mK11
K=[K11K21KT21K22],
K11m×mK21(n−m)×mK22
अब, हम इस ब्लॉक संरचना के अनुसार भी ईगेंडेकोम्पोजिशन को विभाजित कर सकते हैं: start
जहां है और है । लेकिन ध्यान दें कि अब हमारे पास । इसलिए हम ज्ञात मैट्रिक्स को eigendecomposing करके और पा सकते हैं ।
K=UΛUT=[U1U2]Λ[U1U2]T=[U1ΛUT1U2ΛUT1U1ΛUT2U2ΛUT2],
U1m×mU2(n−m)×mK11=U1ΛUT1U1ΛK11
हम यह भी जानते हैं कि । यहां, हम इस समीकरण में सब कुछ जानते हैं। को छोड़कर , इसलिए हम इस बात का हल सकते हैं कि कौन-से eigenvalues का तात्पर्य है: दोनों पक्षों को प्राप्त करने के लिए
दोनों तरफ से गुणा करें
अब हमारे पास :
का मूल्यांकन करने के लिए आवश्यक सब कुछ हैK21=U2ΛUT1U2(ΛUT1)−1=U1Λ−1
U2=K21U1Λ−1.
K22K22=U2ΛUT2=(K21U1Λ−1)Λ(K21U1Λ−1)T=K21U1(Λ−1Λ)Λ−1UT1KT21=K21U1Λ−1UT1KT21=K21K−111KT21=(K21K−1211)(K21K−1211)T.(*)(**)
(*) में, हमें Nyström एम्बेडिंग का एक संस्करण मिला है जिसे आपने परिभाषा के रूप में देखा होगा। यह हमें प्रभावी कर्नेल मान बताता है, जिसे हम ब्लॉक लिए लागू कर रहे हैं ।K22
(**) में, हम देखते हैं कि सुविधा मैट्रिक्स , जो आकार , इन बाधित कर्नेल मानों से मेल खाती है। यदि हम अंक के लिए करते हैं , तो हमारे पास -dimensional सुविधाएँ
हम बस जल्दी से सत्यापित कर सकते हैं कि सही कर्नेल मैट्रिक्स से मेल खाती है:
K21K−1211(n−m)×mK1211mm
Φ=⎡⎣⎢K1211K21K−1211⎤⎦⎥.
ΦΦΦT=⎡⎣⎢K1211K21K−1211⎤⎦⎥⎡⎣⎢K1211K21K−1211⎤⎦⎥T=⎡⎣⎢K1211K1211K21K−1211K1211K1211K−1211KT21K21K−1211K−1211KT21⎤⎦⎥=[K11K21KT21K21K−111KT21]=K.
इसलिए, हमें केवल अपने नियमित शिक्षण मॉडल को -dimensional features साथ प्रशिक्षित करना होगा । यह वास्तव में साथ सीखने की समस्या के कर्नेलाइज़्ड संस्करण के रूप में (मान्यताओं के तहत) है ।mΦK
अब, के लिए एक व्यक्तिगत डेटा बिंदु , में सुविधाओं पत्र व्यवहार करने के
विभाजन 2 में
एक बिंदु लिए , वेक्टर केवल की प्रासंगिक पंक्ति है , ताकि स्टैकिंग ये हमें - इसलिए विभाजन में बिंदुओं के लिए सहमत होता है। यह विभाजन 1 में भी काम करता है: वहाँ, वेक्टर की एक पंक्ति है , इसलिए उन्हें स्टैक करने से , फिर से साथ सहमत हो जाता हैxΦ
ϕ(x)=[k(x,x1)…k(x,xm)]K−1211.
x[k(x,x1)…k(x,xm)]K21K21K−1211ϕ(x)K11K11K−1211=K1211Φ। तो ... यह अभी भी एक अनदेखी-पर-प्रशिक्षण-समय परीक्षण बिंदु । आप बस एक ही काम करते हैं:
क्योंकि हमने माना कि कर्नेल रैंक , मैट्रिक्स भी रैंक , और का पुनर्निर्माण अभी भी ठीक उसी तर्क द्वारा सटीक है, जैसा कि ।
xnewΦtest=Ktest,1K−1211.
m[KtrainKtest,trainKtrain,testKtest]mKtestK22
इन सबसे ऊपर, हम मान लिया है कि गिरी मैट्रिक्स था
वास्तव में रैंक । यह आमतौर पर मामला नहीं है; एक गाऊसी कर्नेल के लिए, उदाहरण के लिए, है
हमेशा रैंक , लेकिन बाद eigenvalues आम तौर पर बहुत जल्दी छोड़ तो यह होने वाला है
के करीब रैंक के एक मैट्रिक्स है, और के बारे में हमारी पुनर्निर्माण या सही मानों के
करीब होने जा रहे हैं लेकिन वास्तव में समान नहीं हैं। वे बेहतर पुनर्निर्माण करीब की eigenspace हो जाएगा की है कि हो जाता है
KmKnmK21Ktest,1K11Kकुल मिलाकर, यही कारण है कि सही अंक चुनना अभ्यास में महत्वपूर्ण है।
m
यह भी ध्यान दें कि यदि में कोई भी शून्य ईजेंवल है, तो आप व्युत्क्रम को pseudoinverses से बदल सकते हैं और सब कुछ अभी भी काम करता है; आप अभी साथ पुनर्निर्माण में को प्रतिस्थापित करते हैं ।K11K21K21K†11K11
यदि आप चाहें, तो आप eigendecomposition के बजाय SVD का उपयोग कर सकते हैं; चूंकि psd है, इसलिए वे एक ही चीज़ हैं, लेकिन कर्नेल मैट्रिक्स में और थोड़ी सी भी संख्यात्मक त्रुटि के लिए SVD थोड़ी अधिक मजबूत हो सकती है, इसलिए यह डरावना-सीखता है। स्किकिट-लर्न का वास्तविक कार्यान्वयन ऐसा करता है, हालांकि यह बजाय व्युत्क्रम में का उपयोग करता है।Kmax(λi,10−12)