विलक्षण मूल्य अपघटन (SVD) की गणना करने के लिए कुशल एल्गोरिदम क्या हैं?


17

प्रमुख घटक विश्लेषण पर विकिपीडिया लेख बताता है कि

मैट्रिक्स बनाने के बिना के एसवीडी की गणना करने के लिए कुशल एल्गोरिदम मौजूद हैं , इसलिए एसवीडी की गणना अब डेटा मैट्रिक्स से एक प्रमुख घटक विश्लेषण की गणना करने का मानक तरीका है, जब तक कि केवल मुट्ठी भर घटकों की आवश्यकता न हो।XXTX

कोई मुझे बता सकता है कि कुशल एल्गोरिदम क्या लेख के बारे में बात कर रहे हैं? कोई संदर्भ नहीं दिया गया है (गणना के इस तरीके का प्रस्ताव करने वाले लेख का URL या उद्धरण अच्छा होगा)।


4
एक Google खोज एकवचन मूल्य अपघटन एल्गोरिथ्म प्रासंगिक जानकारी को उजागर करने का एक अच्छा काम करता है।
whuber

1
PCA के लिए SVD से पहले माध्य हटाना न भूलें!
18

Lanczos SVD की कोशिश करो!
गिरि

जवाबों:


12

एसवीडी की गणना के पीछे मुख्य कार्य-घोड़ा क्यूआर एल्गोरिदम है । कहा गया है कि जेनेरिक -by- N मैट्रिक्स A के एकवचन मान के अपघटन की गणना करने के लिए कई अलग-अलग एल्गोरिदम हैं । यहां उपलब्ध समस्या पर इंटेल के MKL के प्रलेखन से एक महान योजनाबद्ध निम्नलिखित है:MNAयहाँ छवि विवरण दर्ज करें

जैसा कि आप अपने उपयोग के मामले के आधार पर देखते हैं कि अलग-अलग दृष्टिकोण हैं (नियमित नामकरण परंपराएं यहां पाई जा सकती हैं )। ऐसा इसलिए है, उदाहरण के लिए, मैट्रिक्स के रूप हैं जहां एक हाउसहोल्डर की कमी जीवंस रोटेशन (क्यूआर प्राप्त करने के दो "स्पष्ट" तरीके) से अधिक महंगी हो सकती है । इस मामले पर एक मानक संदर्भ गोलूब और वैन लोन की मैट्रिक्स संगणना है (मैं कम से कम 3 संस्करण का उपयोग करने का सुझाव दूंगा)। मैंने भी Å पाया है। Björck के न्यूमेरिकल मेथड्स फॉर लीस्ट स्क्वेयर प्रॉब्लम उस मामले पर बहुत अच्छे रिसोर्स हैं; जबकि SVD पुस्तक का प्राथमिक फोकस नहीं है जो इसे उपयोग को संदर्भित करने में मदद करता है।

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


XA

1
MNAXTX

2
हां, मैं गलत था: क्यूआर वर्ग मैट्रिसेस तक सीमित नहीं है। +1, वैसे। यह सवाल pca टैग के साथ सबसे अधिक मतदान किए गए अनुत्तरित प्रश्नों में से एक था , इसलिए अंत में इसका उत्तर देखकर अच्छा लगा।
अमीबा का कहना है कि मोनिका

आपके उत्तर में विभिन्न प्रकार के पुनरावृत्त एल्गोरिदम का उल्लेख नहीं है। क्या यह उद्देश्य पर था? किसी ने पुनरावृत्त SVD एल्गोरिदम के बारे में एक प्रश्न पूछा, देखते हैं कि SVD की गणना के लिए कौन से तेज़ एल्गोरिदम मौजूद हैं? , और मैंने एक उत्तर पोस्ट किया जिसमें कुछ अवलोकन प्रदान करने की कोशिश की गई। शायद हमें कम से कम अपने उत्तरों को क्रॉस-लिंक करना चाहिए। और यह निश्चित रूप से बहुत अच्छा होगा यदि आप क्यूआर एल्गोरिदम बनाम पुनरावृत्त एल्गोरिदम की कुछ चर्चा के द्वारा अपना विस्तार कर सकते हैं।
अमीबा का कहना है कि

नहीं, यह आकस्मिक था। आपने अपनी पोस्ट में अपने सवाल का जवाब दिया; काटे गए SVD अनिवार्य रूप से काटे गए eigendecompositions (उदाहरण के लिए ARPACK देखें ) हैं। कुछ ठीक अंतर हैं लेकिन वे ठीक हैं ; कुछ सॉफ्टवेयर (जैसे। MATLAB की svds) अपने छंटनी किए गए eigendecomposition ( eigs) दिनचर्या के लिए एक आवरण के रूप में उनके छंटनी की गई SVD फ़ंक्शन का उपयोग करते हुए बस तक जाते हैं।
us --r11852
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.