बहुत महंगे उद्देश्य फ़ंक्शन के साथ समस्या के लिए समानांतर अनुकूलन एल्गोरिदम


15

मैं 10-20 चर के एक समारोह का अनुकूलन कर रहा हूं। बुरी खबर यह है कि प्रत्येक फ़ंक्शन मूल्यांकन महंगा है, धारावाहिक गणना के लगभग 30 मिनट। अच्छी खबर यह है कि मेरे पास अपने निपटान में कुछ दर्जन कम्प्यूटेशनल नोड्स के साथ एक क्लस्टर है।

इस प्रकार प्रश्न: क्या अनुकूलन एल्गोरिदम उपलब्ध हैं जो मुझे उस सभी कम्प्यूटेशनल शक्ति का कुशलता से उपयोग करने की अनुमति देंगे?

स्पेक्ट्रम के एक तरफ एक संपूर्ण खोज होगी: संपूर्ण खोज स्थान को एक महीन ग्रिड में विभाजित करें और प्रत्येक ग्रिड पॉइंट पर स्वतंत्र रूप से फ़ंक्शन की गणना करें। यह निश्चित रूप से एक बहुत ही समानांतर गणना है, लेकिन एल्गोरिथ्म बहुत ही अयोग्य है।

स्पेक्ट्रम के दूसरी ओर अर्ध-न्यूटन एल्गोरिदम होगा: बुद्धिमानी से पूर्व इतिहास के आधार पर मापदंडों के अगले अनुमान को अपडेट करें। यह एक कुशल एल्गोरिथ्म है, लेकिन मुझे नहीं पता कि इसे कैसे समानांतर बनाया जाए: "पूर्व इतिहास पर आधारित मापदंडों का अनुमान" की अवधारणा एक धारावाहिक गणना की तरह लगती है।

द्विघात एल्गोरिदम कहीं बीच में प्रतीत होते हैं: कोई समानांतर में मानों के एक समूह की गणना करके प्रारंभिक "सरोगेट मॉडल" का निर्माण कर सकता है, लेकिन मुझे नहीं पता कि शेष पुनरावृत्तियों समानांतर हैं या नहीं।

किसी भी तरह के ग्रेडिएंट-फ्री ऑप्टिमाइज़ेशन के तरीकों पर कोई सुझाव क्लस्टर पर अच्छा प्रदर्शन करेगा? इसके अलावा, क्या वर्तमान में उपलब्ध अनुकूलन एल्गोरिदम के कोई समानांतर कार्यान्वयन हैं?


1
आप हमेशा समानांतर में ग्रेडिएंट की गणना कर सकते हैं (परिमित अंतरों का उपयोग करते हुए अर्ध-न्यूटन विधियों के लिए) और मापदंडों की संख्या के लिए आनुपातिक गति प्राप्त कर सकते हैं, अर्थात 10x-20x।
स्टली

@stali: अनुकूलन में अर्ध-न्यूटन विधियों के लिए आपको हेसियन की आवश्यकता है। फ़ंक्शन मूल्यांकन के सीमित अंतर के माध्यम से हेसियन की गणना करना वास्तव में एक अच्छा विचार नहीं है। अनुकूलन के लिए ढाल के परिमित अंतर अंतर की गणना करना भी आमतौर पर एक अच्छा विचार नहीं है।
ज्योफ ऑक्सीबेरी

कई अर्ध-न्यूटन विधियों जैसे बीएफजीएस को स्पष्ट रूप से हेसियन की आवश्यकता नहीं है। मुझे लगता है कि ग्रेडिएंट्स का उपयोग करके, एल-बीएफजीएस के साथ संयोजन में ओपी जल्दी से वह प्राप्त कर सकता है जो वह चाहता है।
बासी

@stali: मैंने बताया कि ढाल के लिए एक परिमित अंतर सन्निकटन का उपयोग करना मेरे उत्तर में एक बुरा विचार क्यों होगा। यह अर्ध-न्यूटन पुनरावृत्ति के दाईं ओर त्रुटि में शुरूआत करके अभिसरण को नीचा दिखाएगा। इसके अलावा, यह फ़ंक्शन मूल्यांकन को बर्बाद करता है क्योंकि पुराने मूल्यांकन (सरोगेट तरीकों के विपरीत) के पुन: उपयोग के लिए कोई अवसर नहीं है। बीएफजीएस का उपयोग केवल आपके प्रस्तावित दृष्टिकोण के साथ आधे मुद्दों को संबोधित करता है।
ज्योफ ऑक्सीबेरी

यह अधिक उचित रूप से एक टिप्पणी है एक जवाब नहीं। लेकिन मेरे पास कोई विकल्प नहीं है, क्योंकि मेरे पास टिप्पणी पोस्ट करने के लिए पर्याप्त प्रतिनिधि नहीं है। माइकल, मेरे पास बहुत ही समान प्रकार की समस्या है: महंगा फ़ंक्शन मूल्यांकन जिसमें एक क्लस्टर पर चलने वाले जटिल सिमुलेशन शामिल हैं। जब फ़ंक्शन मूल्यांकन में क्लस्टर पर सिमुलेशन शामिल होता है, तो क्या आपने कभी अनुकूलन चलाने के लिए एक कोड उपयुक्त पाया?
मूनमैन

जवाबों:


16

जैसा कि पॉल बताता है, अधिक जानकारी के बिना, मान्यताओं के बिना सलाह देना कठिन है।

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

प्रत्येक क्वैसी-न्यूटन स्टेप के रूप में होने जा रहा है:

H~(xk)dk=f(xk),

H~dkxkffxk+1=xk+αkdkαkएक कदम आकार कुछ फैशन में निर्धारित किया जाता है (एक लाइन खोज की तरह)। आप कुछ तरीकों से हेसियन को सन्निकट करने के साथ दूर हो सकते हैं और आपके पुनरावृत्तियों में अभिसरण होगा, हालांकि यदि आप हेसियन के परिमित अंतर सन्निकटन जैसे कुछ का उपयोग सटीक ग्रेडिएंट के माध्यम से करते हैं, तो आप अशुभ कंडीशनिंग के कारण मुद्दों से पीड़ित हो सकते हैं। आमतौर पर, हेस्सियन को ग्रेडिएंट (उदाहरण के लिए, बीएफजीएस प्रकार के तरीकों के साथ रैंक -1 अपडेट्स को हेवियन) का उपयोग करके अनुमानित किया जाता है।

हेसियन और ग्रेडिएंट दोनों को परिमित अंतर के माध्यम से अंजाम देना कई कारणों से एक बुरा विचार है:

  • आपको ग्रेडिएंट में त्रुटि होने वाली है, इसलिए आप जिस क्वैसी-न्यूटन विधि को लागू कर रहे हैं, वह एक नोवल फ़ंक्शन की जड़ को खोजने के लिए समान है
  • NN
  • यदि आपको ग्रेडिएंट में त्रुटि है, तो आपको अपने हेसियन में अधिक त्रुटि होने वाली है, जो रैखिक प्रणाली की कंडीशनिंग के संदर्भ में एक बड़ी समस्या है
  • ... और यह आप लागत करने के लिए जा रहा हैN2

तो अर्ध-न्यूटन के एक खराब पुनरावृत्ति को प्राप्त करने के लिए, आप प्रति मूल्यांकन 30 मिनट में 420 फ़ंक्शन मूल्यांकन तक कुछ कर रहे हैं, जिसका अर्थ है कि आप या तो प्रत्येक पुनरावृत्ति के लिए थोड़ी देर प्रतीक्षा करने जा रहे हैं, या आप जा रहे हैं फ़ंक्शन मूल्यांकन के लिए बस एक बड़े क्लस्टर की आवश्यकता है। वास्तविक लीनियर सॉल्व 20 से 20 मैट्रिसेस (सबसे अधिक!) होने जा रहे हैं, इसलिए उन लोगों को समानांतर करने का कोई कारण नहीं है। यदि आप उदाहरण के लिए, एक समीपवर्ती समस्या को हल करके धीरे-धीरे जानकारी प्राप्त कर सकते हैं, तो यह अधिक सार्थक हो सकता है, इस स्थिति में, यह Nocedal & Wright जैसी पुस्तक को देखने लायक हो सकता है।

यदि आप समानांतर में बहुत अधिक फ़ंक्शन मूल्यांकन करने जा रहे हैं, तो आपको अर्ध-न्यूटन दृष्टिकोणों पर विचार करने से पहले सरोगेट मॉडलिंग दृष्टिकोणों या सेट खोज विधियों को उत्पन्न करने के बजाय देखना चाहिए। क्लासिक समीक्षा लेख व्युत्पन्न-मुक्त तरीकों पर आरआईओएस और साहिनिडिस द्वारा एक हैं , जो 2012 में प्रकाशित हुआ था और वास्तव में अच्छी, व्यापक तुलना प्रदान करता है; 2009 से मोर एंड वाइल्ड द्वारा बेंचमार्किंग लेख ; 2009 की पाठ्यपुस्तक "कोन, स्हीनबर्ग और विसेंट द्वारा व्युत्पन्न-मुक्त अनुकूलन का परिचय"; और 2003 से कोल्डा, लेविस, और टोरेसन द्वारा निर्धारित खोज विधियों को बनाने पर समीक्षा लेख

जैसा कि ऊपर जोड़ा गया है, DAKOTA सॉफ्टवेयर पैकेज उन तरीकों में से कुछ को लागू करेगा, और इसलिए NLOPT होगा , जो DIRECT को लागू करता है, और पॉवेल के कुछ सरोगेट मॉडलिंग विधियों को लागू करता है। आप MCS पर भी नज़र डाल सकते हैं ; यह MATLAB में लिखा है, लेकिन शायद आप MATLAB कार्यान्वयन को अपनी पसंद की भाषा में पोर्ट कर सकते हैं। DAKOTA की अनिवार्य रूप से स्क्रिप्ट का एक संग्रह जिसे आप अपने महंगे सिमुलेशन को चलाने के लिए उपयोग कर सकते हैं और अनुकूलन एल्गोरिदम के लिए डेटा एकत्र कर सकते हैं, और NLOPT में बड़ी संख्या में भाषाएं हैं, इसलिए प्रोग्रामिंग भाषा का विकल्प सॉफ़्टवेयर पैकेज का उपयोग करने में बहुत बड़ा मुद्दा नहीं होना चाहिए; DAKOTA को सीखने में थोड़ा समय लगता है, हालांकि, और इसके माध्यम से झारखंड में भारी मात्रा में प्रलेखन है।


2
यह मेरे लिए पूरी तरह से गलत होने की एक खुशी है और इस प्रक्रिया में कुछ नया और उपयोगी सीखना है :)।
पॉल

धन्यवाद! बस एक और स्पष्टीकरण: कौन सा एल्गोरिदम समानांतर में फ़ंक्शन मूल्यांकन करने में सक्षम है? उदाहरण के लिए, k- वे ग्रिड पर प्रदर्शन पुनरावृत्तियों n + 1, ..., n + k केवल पुनरावृत्तियों 1, ..., n से प्राप्त जानकारी के आधार पर?
माइकल


3

शायद सरोगेट-आधारित ऑप्टिमाइज़ेशन एल्गोरिदम वह हैं जो आप खोज रहे हैं। ये एल्गोरिदम अनुकूलन प्रक्रिया के दौरान वास्तविक कम्प्यूटेशनल रूप से महंगे मॉडल को बदलने के लिए सरोगेट मॉडल का उपयोग करते हैं और कम्प्यूटेशनल रूप से महंगे मॉडल के कुछ मूल्यांकन का उपयोग करके उपयुक्त समाधान प्राप्त करने का प्रयास करते हैं।

मुझे लगता है कि आपकी समस्या को हल करने के लिए मोड पीछा नमूनाकरण विधि का उपयोग किया जा सकता है। यह एल्गोरिथ्म महंगे ऑब्जेक्टिव फंक्शन को अनुमानित करने के लिए RBF सरोगेट मॉडल का उपयोग करता है और नॉनलाइनियर बाधाओं को संभाल सकता है। इससे भी महत्वपूर्ण बात यह है कि यह महंगी प्रक्रिया मूल्यांकन करने के लिए कई उम्मीदवारों का चयन करता है ताकि आप इन अभ्यर्थियों को खोज प्रक्रिया को और तेज करने के लिए समानांतर कंप्यूटिंग के लिए वितरित कर सकें। कोड ओपन-सोर्स है और MATLAB में लिखा गया है।

संदर्भ

वांग, एल।, शान, एस।, और वांग, जीजी (2004)। महंगी ब्लैक-बॉक्स फ़ंक्शन पर वैश्विक अनुकूलन के लिए मोड-पीछा नमूना विधि। इंजीनियरिंग अनुकूलन, 36 (4), 419-438।


2

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

यदि आप ऐसा नहीं कर सकते हैं, तो संपूर्ण खोज और न्यूटन एल्गोरिथ्म के बीच एक मध्य मैदान है, यह मोंटे कार्लो के तरीके हैं। आप अलग-अलग कोर / नोड्स के एक समूह पर, एक ही एल्गोरिथ्म शुरू कर सकते हैं, जो स्थानीय ऑप्टिमा (क्वैसी-न्यूटन एल्गोरिदम) कहते हैं, लेकिन सभी यादृच्छिक प्रारंभिक स्थितियों के साथ। सही ऑप्टिमा के लिए आपका सबसे अच्छा अनुमान न्यूनतम न्यूनतम है। यह समानांतर करने के लिए तुच्छ है और किसी भी विधि का विस्तार करने के लिए इस्तेमाल किया जा सकता है। पूरी तरह से कुशल नहीं है, अगर आपके पास अपने निपटान में पर्याप्त कंप्यूटिंग शक्ति है, तो यह निश्चित रूप से प्रोग्रामिंग उत्पादकता बनाम एल्गोरिथ्म प्रदर्शन की लड़ाई जीत सकता है (यदि आपके पास बहुत कंप्यूटिंग शक्ति है, तो इससे पहले कि आप एक कट्टर एल्गोरिथ्म बनाने से पहले समाप्त हो जाएं)।


0

अनुकूलन एल्गोरिथ्म (और इस प्रकार इसके समानांतरकरण) का चुनाव अत्यधिक उद्देश्य फ़ंक्शन और बाधाओं के गुणों पर निर्भर करता है। समस्या के बारे में अधिक जानकारी के बिना, किसी भी प्रकार की सार्थक सलाह देना कठिन है।

लेकिन न्यूटन के तरीकों के आपके विचारों से, मुझे लगता है कि आपका उद्देश्य फ़ंक्शन अलग है। यदि संभव हो तो, आपकी समस्या फ़ंक्शन मूल्यांकन को समानांतर करने से बहुत लाभ होगा। यदि संभव नहीं है, तो आप एक सटीक न्यूटन विधि पर भी विचार कर सकते हैं जो सटीक अंतर / हेसियन को परिमित अंतर सन्निकटन द्वारा प्रतिस्थापित करता है। फिर, आप जैकोबियन के प्रत्येक गैर-शून्य तत्व की गणना करने के लिए अपने निपटान में उन सभी प्रोसेसर का उपयोग कर सकते हैं, जैसा कि @stali का सुझाव है।

अधिक जानकारी के लिए, Nocedal & राइट का न्यूमेरिकल ऑप्टिमाइज़ेशन, अध्याय 7 पढ़ें । कई अनुकूलन सॉफ्टवेयर पैकेज हैं जो इसे समानांतर में लागू करते हैं। सबसे व्यापक रूप से इस्तेमाल किया जाने वाला फ्रीवेयर DAKOTA सॉफ्टवेयर पैकेज (Sandia National Labs) है


5
एन

-2

यहाँ आपकी समस्या का समाधान है।

इस पेपर में गणितीय विधि का विवरण दिया गया है ।


3
SciComp.SE में आपका स्वागत है। क्या आप कागज में वर्णित दृष्टिकोण और सॉफ्टवेयर में लागू किए गए विवरण के बारे में जानकारी दे सकते हैं? उपयोग की जाने वाली विधि क्या है? क्यों अच्छा है? इस दृष्टिकोण में क्या प्रदान किया गया है कि अन्य उत्तर कवर नहीं करते हैं?
nicoguaro

2
इसके अलावा, ऐसा लगता है कि यह आपका अपना काम है। यदि यह सच है, तो कृपया अपने उत्तर में स्पष्ट रूप से बताएं।
nicoguaro

@nicoguaro: धन्यवाद, लेकिन मुझे पता है कि लिंक पर क्लिक कैसे करना है।
माइकल

3
@ मिचेल, यह आपके लिए नहीं है। इस साइट का दर्शन उत्तरों का संग्रह होना है। आप आज अपना उत्तर प्राप्त कर रहे हैं, लेकिन भविष्य में किसी और को भी उसी सहायता की आवश्यकता हो सकती है। यही कारण है कि एक अच्छे उत्तर के मानक मानक हैं ।
nicoguaro
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.