पृष्ठभूमि और समस्या
मैं प्रतिगमन और बाद में बायेसियन अनुकूलन (बीओ) के लिए गॉसियन प्रोसेस (जीपी) का उपयोग कर रहा हूं। प्रतिगमन के लिए मैं कई कस्टम-निर्मित संशोधनों के साथ MATLAB के लिए gpml पैकेज का उपयोग करता हूं , लेकिन समस्या सामान्य है।
यह एक सर्वविदित तथ्य है कि जब दो प्रशिक्षण इनपुट इनपुट स्पेस में बहुत करीब होते हैं, तो सहसंयोजक मैट्रिक्स पॉजिटिव निश्चित नहीं हो सकता है (इस साइट पर इसके बारे में कई सवाल हैं)। परिणामस्वरूप, जीपी की विभिन्न संगणनाओं के लिए आवश्यक सहसंयोजक मैट्रिक्स का कोलेस्की अपघटन संख्यात्मक त्रुटि के कारण विफल हो सकता है। यह मेरे साथ कई मामलों में हुआ था जब मैं उपयोग किए जा रहे उद्देश्य कार्यों के साथ बीओ प्रदर्शन कर रहा था, और मैं इसे ठीक करना चाहूंगा।
प्रस्तावित हल
AFAIK, बीमार कंडीशनिंग को कम करने के लिए मानक समाधान कोविरियस मैट्रिक्स के विकर्ण के लिए एक रिज या नग को जोड़ना है। जीपी रिग्रेशन के लिए, यह मात्रा (या बढ़ रही है, अगर पहले से मौजूद है) अवलोकन शोर।
अब तक सब ठीक है। मैंने gpml के सटीक निष्कासन के लिए कोड को संशोधित किया ताकि जब भी चोल्स्की अपघटन विफल हो जाए, मैं फ्रोबेनियस मानदंड में निकटतम सममित सकारात्मक निश्चित (SPD) मैट्रिक्स के लिए सहसंयोजक मैट्रिक्स को ठीक करने का प्रयास करता हूं, जो जॉन डी-एरिको द्वारा इस MATLAB कोड से प्रेरित है । तर्क मूल मैट्रिक्स पर हस्तक्षेप को कम करने के लिए है।
यह वर्कअराउंड काम करता है, लेकिन मैंने देखा कि बीओ का प्रदर्शन कुछ कार्यों के लिए काफी हद तक कम हो गया है - संभवतः जब भी एल्गोरिदम को कुछ क्षेत्र में ज़ूम-इन करने की आवश्यकता होगी (जैसे, क्योंकि यह न्यूनतम के करीब हो रहा है, या क्योंकि लंबाई तराजू है समस्या गैर-समान रूप से छोटी हो जाती है)। जब भी मैं दो इनपुट अंक बहुत करीब आ जाता हूं, तब से यह व्यवहार समझ में आता है, लेकिन निश्चित रूप से यह आदर्श नहीं है। वैकल्पिक रूप से, मैं सिर्फ समस्याग्रस्त बिंदुओं को हटा सकता था, लेकिन फिर से, कभी-कभी मुझे पास होने के लिए इनपुट बिंदुओं की आवश्यकता होती है।
सवाल
मुझे नहीं लगता कि जीपी के सहसंयोजक मैट्रिस के चोल्स्की कारक के साथ संख्यात्मक मुद्दे एक उपन्यास समस्या है, लेकिन मेरे आश्चर्य के लिए मुझे अब तक कई समाधान नहीं मिल पाए हैं, एक तरफ शोर बढ़ाने या बिंदुओं को हटाने जो एक-दूसरे के बहुत करीब हैं। दूसरी ओर, यह सच है कि मेरे कुछ कार्य बहुत खराब व्यवहार वाले हैं, इसलिए शायद मेरी स्थिति इतनी विशिष्ट नहीं है।
कोई सुझाव / संदर्भ जो यहाँ उपयोगी हो सकता है?