मैं अन्य उत्तरों की तुलना में कुछ अलग दृष्टिकोण का सुझाव देना चाहूंगा, हालांकि @barron ने अप्रत्यक्ष रूप से एक ही बात पर चर्चा की है।
अपने फ़ंक्शन को सीधे अनुकूलित करने के बजाय, अर्थात बिंदुओं की एक श्रृंखला में इसका मूल्यांकन करके (उम्मीद है कि) एक (स्थानीय) इष्टतम में अभिसरण करें, आप सरोगेट मॉडलिंग की अवधारणा का उपयोग कर सकते हैं , जो है आपके द्वारा वर्णित प्रकार की समस्याओं के लिए बहुत अच्छी तरह से अनुकूल (उच्च लागत, चिकनी, बंधी, कम आयामी यानी 20 से कम अज्ञात)।x1,x2,…,xksurrogate modelling
विशेष रूप से, किराए की मॉडलिंग एक मॉडल समारोह की स्थापना करके काम करता है अपना असली समारोह की च ∈ आर डी → आर । महत्वपूर्ण यह है कि है, जबकि सी निश्चित रूप से पूरी तरह से प्रतिनिधित्व नहीं करता है च , यह अब तक का मूल्यांकन करने के सस्ता है।c∈Rd→Rf∈Rd→Rcf
तो, एक विशिष्ट अनुकूलन प्रक्रिया इस प्रकार होगी:
- J प्रारंभिक बिंदुओं x 1 , x 2 , … , x j के सेट पर मूल्यांकन करें । ध्यान दें कि डेरिवेटिव की आवश्यकता नहीं है। यह भी ध्यान दें कि इन बिंदुओं को पूरे खोज स्थान पर समान रूप से वितरित किया जाना चाहिए, उदाहरण के लिए लैटिन हाइपरक्यूब नमूनाकरण या एक समान स्थान-भरने वाले डिज़ाइन द्वारा।fjx1,x2,…,xj
- इस मूल डेटासेट के आधार पर, एक मॉडल फ़ंक्शन बनाएं । आप अपने मॉडल को मान्य करने के लिए क्रॉस सत्यापन का उपयोग कर सकते हैं (यानी सी बनाने के लिए मूल जे बिंदुओं के केवल सबसेट का उपयोग करें, और फिर डेटासेट की शेष राशि का उपयोग करके जांचें कि सी उन मानों की कितनी अच्छी भविष्यवाणी करता है)cjcc
- इस तरह के अपेक्षित सुधार (ईआई) कसौटी के रूप में एक कसौटी का प्रयोग पता लगाने के लिए जहां 'अधिक नमूने' में भरने 'बनाने के लिए करने के लिए' अधिक नमूने के द्वारा सही च । यह वास्तव में कहीं बेहतर सैद्धांतिक रूप से अध्ययन किया जा सकता है जितना कि यह प्रतीत हो सकता है, और ईआई मानदंड बहुत अच्छी तरह से शोध किया गया है। ईआई मानदंड भी एक लालची मानदंड नहीं है, इसलिए आप दोनों संभावित सटीकता के निकट सटीकता को प्राथमिकता देते हुए, मॉडल सटीकता का अच्छा समग्र सुधार प्राप्त करते हैं।cf
- यदि आपका मॉडल पर्याप्त सटीक नहीं है, तो चरण 3 को दोहराएं, अन्यथा के इष्टतम को खोजने के लिए अपनी पसंदीदा अनुकूलन दिनचर्या का उपयोग करें , जो मूल्यांकन करने के लिए बहुत सस्ता होगा (इसलिए आप अपनी इच्छानुसार किसी भी दिनचर्या का उपयोग कर सकते हैं, यहां तक कि डेरिवेटिव की आवश्यकता होती है, या बस एक ठीक जाल में समारोह का मूल्यांकन)।c
सामान्य तौर पर, यह वही है, जो ईजीओ, कुशल ग्लोबल ऑप्टिमाइज़ेशन से है, जैसा कि @barron ने सुझाव दिया था। मैं इस बात पर जोर देना चाहूंगा कि आपके आवेदन के लिए, यह पूरी तरह से उपयुक्त लगता है - आपको अपेक्षाकृत कुछ मूल्यांकन के आधार पर आश्चर्यजनक रूप से सटीक मॉडल मिलता है , और फिर आप जो भी अनुकूलन एल्गोरिथ्म चाहते हैं उसका उपयोग कर सकते हैं। अक्सर यह भी दिलचस्प है कि अब आप एक जाल पर सी का मूल्यांकन कर सकते हैं और इसे प्लॉट कर सकते हैं , जिससे एफ की सामान्य उपस्थिति में अंतर्दृष्टि प्राप्त होगी । एक और दिलचस्प बात यह है कि ज्यादातर सरोगेट मॉडलिंग तकनीक सांख्यिकीय त्रुटि अनुमान भी प्रदान करती है, जिससे अनिश्चितता का अनुमान लगाया जा सकता है।fcf
का निर्माण कैसे किया जाता है, यह एक खुला प्रश्न है, लेकिन अक्सर क्रिपिंग या तथाकथित स्पेस-मैपिंग मॉडल का उपयोग किया जाता है।c
बेशक, यह सब काफी कोडिंग का काम है, लेकिन बहुत सारे अन्य लोगों ने बहुत अच्छा कार्यान्वयन किया है। Matlab में, मुझे केवल DACE सॉफ़्टवेयर टूलबॉक्स DACE के बारे में पता है जो मुफ़्त है। TOMLAB भी एक Matlab पैकेज की पेशकश कर सकता है, लेकिन पैसा खर्च होता है - हालांकि, मेरा मानना है कि यह C ++ में भी काम करता है और इसमें DACE की तुलना में कहीं अधिक क्षमताएं होंगी। (ध्यान दें: मैं जल्द ही रिलीज़ होने वाले DACE के नए संस्करण के डेवलपर्स में से एक हूं, जो ईजीओ के लिए अतिरिक्त समर्थन प्रदान करेगा।)
आशा है कि इस मोटे तौर पर अवलोकन ने आपकी मदद की है, कृपया प्रश्न पूछें कि क्या ऐसे बिंदु हैं जिन्हें और अधिक स्पष्ट किया जा सकता है या सामान जो मैंने याद किया है, या यदि आप विषय पर आगे की सामग्री पसंद करेंगे।