बड़े डेटा सेटिंग के लिए समानांतर / वितरित तरीके से रैखिक प्रतिगमन कैसे चलाएं?


13

मैं एक बहुत बड़ी रैखिक प्रतिगमन समस्या पर काम कर रहा हूं, जिसमें डेटा का आकार इतना बड़ा है कि उन्हें मशीनों के एक समूह पर संग्रहीत किया जाना है। यह सभी नमूनों को एक मशीन की मेमोरी (यहां तक ​​कि डिस्क) में एकत्रित करने के लिए बहुत बड़ा होगा

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

क्या इसका कोई मतलब है ? यदि हां, तो मुझे प्रत्येक व्यक्ति R 2 से कुल अपेक्षित कैसे प्राप्त करना चाहिए ?R2R2

जवाबों:


10

संक्षिप्त जवाब:

हां, समानांतर में रेखीय प्रतिगमन चल रहा है। उदाहरण के लिए, जियानग्रुई मेंग एट अल। (2016) अपाचे स्पार्क में मशीन लर्निंग के लिए। जिस तरह से यह काम करता है स्टोचैस्टिक ग्रेडिएंट डिसेंट (SGD) का उपयोग कर रहा है। खंड 3, मुख्य विशेषताओं में, लेखक ने उल्लेख किया है:

सामान्यीकृत रेखीय मॉडल अनुकूलन एल्गोरिदम के माध्यम से सीखे जाते हैं जो तेजी से C ++ - कार्यकर्ता संगणना के लिए रेखीय बीजगणित पुस्तकालयों का उपयोग करके ढाल संगणना को समानांतर करते हैं।

इस बात पर एक उदाहरण है कि किस तरह से काम करता है यहाँ मेरे जवाब में पाया जा सकता है: स्टोकेस्टिक ग्रेडिएंट वंश कैसे मानक ढाल वंश की तुलना में समय बचा सकता है?


लंबा जवाब:

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

एक रैखिक प्रतिगमन करने के लिए हम करने की कोशिश कर रहे हैं

minimize Xβy2

व्युत्पन्न है

2XT(Xβy)

0X

Xsys2XsT(Xsβys)β

R2R2

यह कैसे काम करता है इस पर अंतर्ज्ञान (मानचित्रण प्रतिमान):

मैं एक सबसेट का उपयोग करते हुए अनुमान लगाता रहता हूं; इस काम के लिए अंतर्ज्ञान को निम्न उदाहरण में वर्णित किया जा सकता है: मान लीजिए कि मेरे पास 100 बिलियन डेटा बिंदु हैं और हम सभी डेटा बिंदुओं के औसत की गणना करना चाहते हैं। मान लीजिए कि इस तरह के ऑपरेशन का संचालन करने में बहुत लंबा समय लगता है, और आगे कि पूरे डेटा को मेमोरी में संग्रहीत नहीं किया जा सकता है।

हम क्या कर सकते हैं, बस एक सबसेट लेने के लिए, 1 बिलियन आइटम कहें, और इनमें से औसत की गणना करें। इस प्रकार उत्पन्न सन्निकटन सत्य से दूर नहीं होना चाहिए (यानी, संपूर्ण डेटा का उपयोग करके)।

समानांतर करने के लिए, हम 100 कंप्यूटर का उपयोग कर सकते हैं, जिनमें से प्रत्येक 1 बिलियन डेटा बिंदुओं का एक अलग सबसेट ले रहा है और इनमें से औसत की गणना कर रहा है। (आमतौर पर एमएपी कदम के रूप में जाना जाता है)। अंत में, इन 100 नंबरों (उर्फ REDUCE कदम) पर एक और औसत चलाएं।

mean(<x,y>)=mean(x)+mean(y)xy

संदर्भ:

जियानग्रुई मेंग एट अल। (२०१६) है । MLlib: Apache Spark में मशीन लर्निंग


8

जैसा कि @ hxd1011 ने उल्लेख किया है, एक दृष्टिकोण एक अनुकूलन समस्या के रूप में रैखिक प्रतिगमन को तैयार करना है, फिर एक पुनरावृत्त एल्गोरिथ्म (जैसे स्टॉचस्टिक ग्रेडिएंट डिसेंट) का उपयोग करके इसे हल करें। इस दृष्टिकोण को समानांतर किया जा सकता है, लेकिन कुछ महत्वपूर्ण सवाल हैं: 1) उपप्रकार में समस्या को कैसे तोड़ा जाना चाहिए? 2) यह देखते हुए कि ऑप्टिमाइज़ेशन जैसे ऑप्टिमाइज़िंग एल्गोरिदम स्वाभाविक रूप से अनुक्रमिक हैं, वैश्विक समाधान प्राप्त करने के लिए उपप्रोब्लेम्स के समाधानों को कैसे संयोजित किया जाना चाहिए?

Zinkevich एट अल। (2010) कई मशीनों में समानांतर करने के लिए कुछ पिछले दृष्टिकोणों का वर्णन करें:

  • 1) एसडब्लूज़ को इस प्रकार समानांतर करें: डेटा को कई मशीनों में विभाजित करें। प्रत्येक चरण में, प्रत्येक स्थानीय मशीन डेटा के सबसेट का उपयोग करके ढाल का अनुमान लगाती है। सभी ढाल अनुमान एक केंद्रीय मशीन को दिए जाते हैं, जो उन्हें वैश्विक पैरामीटर अपडेट करने के लिए एकत्रित करता है। इस दृष्टिकोण के नकारात्मक पक्ष यह है कि इसके लिए भारी नेटवर्क संचार की आवश्यकता होती है, जो दक्षता को कम करता है।

  • 2) स्थानीय मशीनों में समान रूप से डेटा का विभाजन। प्रत्येक मशीन एक बैच सॉल्वर का उपयोग करके, डेटा के अपने सबसेट के लिए समस्या का हल करती है। वैश्विक मशीनों का उत्पादन करने के लिए स्थानीय मशीनों से अंतिम पैरामीटर का अनुमान लगाया जाता है। इस दृष्टिकोण का लाभ यह है कि इसके लिए बहुत कम नेटवर्क संचार की आवश्यकता होती है, लेकिन नकारात्मक पक्ष यह है कि पैरामीटर का अनुमान उप-रूपी हो सकता है।

वे एक नया दृष्टिकोण प्रस्तावित करते हैं:

  • 3) प्रत्येक स्थानीय मशीन को डेटा बिंदुओं को बेतरतीब ढंग से खींचने की अनुमति दें। प्रत्येक मशीन पर SGD चलाएं। अंत में, वैश्विक समाधान प्राप्त करने के लिए मशीनों के मापदंडों को औसत करें। जैसे (2), इस विधि के लिए थोड़े नेटवर्क संचार की आवश्यकता होती है। लेकिन, पैरामीटर का अनुमान बेहतर है क्योंकि प्रत्येक मशीन को डेटा के एक बड़े हिस्से तक पहुंचने की अनुमति है।

समानांतर अनुकूलन दृष्टिकोण बहुत सामान्य है, और कई मशीन लर्निंग एल्गोरिदम (न केवल रैखिक प्रतिगमन) पर लागू होता है।

एक अन्य विकल्प समानांतर / वितरित मैट्रिक्स अपघटन एल्गोरिदम या रैखिक सॉल्वर का उपयोग करना होगा। कम से कम रैखिक वर्गों में विशेष संरचना होती है जो इसे मैट्रिक्स अपघटन विधियों का उपयोग करके हल करने की अनुमति देती है। यह वह है जो आप आमतौर पर एक छोटे डेटा सेट के मामले में हल करते हैं जो स्मृति में फिट बैठता है। यह कई मशीनों में मैट्रिक्स के ब्लॉकों को वितरित करके समानांतर किया जा सकता है, फिर समानांतर / वितरित मैट्रिक्स कंप्यूटेशन का उपयोग करके समस्या को हल कर सकता है। यह देखते हुए कि यह दृष्टिकोण रैखिक प्रणालियों को हल करने के लिए अधिक विशिष्ट है, यह देखना दिलचस्प होगा कि इसका प्रदर्शन अधिक सामान्य वितरित अनुकूलन दृष्टिकोण की तुलना कैसे करता है। यदि कोई इस बारे में अधिक जानकारी प्रदान कर सकता है, तो मुझे सुनकर खुशी होगी।

संदर्भ:

Zinkevich एट अल। (२०१०) । समानांतर स्टोचस्टिक ग्रेडिएंट वंश।


समस्या का समाधान करने के लिए मैंने जो चर्चा नहीं की है, उसे संबोधित करने के लिए +1 शानदार उत्तर, जो कि अनुमानित ढाल के बाद क्या करना है।
हायताओ डू

@ hxd1011 +1 आपके लिए और साथ ही SGD के अच्छे विवरण के लिए और इसे ओपी की समस्या से कैसे जोड़ा जाए
user20160

2

नक्शा कम करने से पहले लंबा, लंबा, मैंने इसे हल किया। नीचे जर्नल ऑफ़ इकोनोमेट्रिक्स 1980 में मेरे एक पुराने पेपर का संदर्भ है। यह समानांतर गैर-समरूप अधिकतम संभावना के लिए था और एम-आकलन के लिए काम करेगा।

विधि प्रतिगमन के लिए सटीक है। K प्रोसेसर / यूनिट पर k सबसेट में डेटा विभाजित करें (क्रमिक रूप से भी किया जा सकता है।) क्या k regग्रेशन प्रतिगमन गुणांक को प्रत्येक के लिए X'X मैट्रिक्स रखते हैं। इन b1, ..., bk और W1, ..., Wk को क्रमशः कॉल करें, तब समग्र प्रतिगमन गुणांक b = व्युत्क्रम (W1 + .. + Wk) * (W1 * b1 + ... + Wk * pk) एक द्वारा दिया जाता है। सिग्मा ^ 2 अनुमानित त्रुटि विचरण, आर ^ 2 समग्र एफ और इसी तरह के मापदंडों के लिए बी का उपयोग करके अवशेषों की गणना करने के लिए डेटा के माध्यम से एक और पास की आवश्यकता है। तब b का सहसंयोजक मैट्रिक्स बिल्कुल सिग्मा ^ 2 (व्युत्क्रम (W1 + .. + Wk)) द्वारा दिया जाता है। ऊपर * मैट्रिक्स गुणन इंगित करता है।

https://www.sciencedirect.com/science/article/pii/0304407680900950


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