जैसा कि पॉल बताता है, अधिक जानकारी के बिना, मान्यताओं के बिना सलाह देना कठिन है।
10-20 चर और महंगे फ़ंक्शन मूल्यांकन के साथ, व्युत्पन्न-मुक्त अनुकूलन एल्गोरिदम की सिफारिश करने की प्रवृत्ति है। मैं पॉल की सलाह से दृढ़ता से असहमत होने जा रहा हूं: आपको आम तौर पर एक मशीन-सटीक ढाल की आवश्यकता होती है जब तक कि आप किसी प्रकार की विशेष विधि का उपयोग नहीं कर रहे हों (उदाहरण के लिए, मशीन लर्निंग में स्टोकेस्टिक ग्रेडिएंट वंश उचित के साथ आने के उद्देश्य के रूप का शोषण करेगा। ढाल का अनुमान)।
प्रत्येक क्वैसी-न्यूटन स्टेप के रूप में होने जा रहा है:
H~(xk)dk=−∇f(xk),
एच~dkxkf∇fxk+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 को सीखने में थोड़ा समय लगता है, हालांकि, और इसके माध्यम से झारखंड में भारी मात्रा में प्रलेखन है।