NUBO, short for Newcastle University Bayesian Optimization, is a Bayesian optimization framework for optimizing expensive-to-evaluate black-box functions, such as physical experiments and computer simulators. Bayesian optimization is a cost-efficient optimization strategy that uses surrogate modeling via Gaussian processes to represent an objective function and acquisition functions to guide the selection of candidate points to approximate the global optimum of the objective function. NUBO focuses on transparency and user experience to make Bayesian optimization accessible to researchers from all disciplines. Clean and understandable code, precise references, and thorough documentation ensure transparency, while a modular and flexible design, easy-to-write syntax, and careful selection of Bayesian optimization algorithms ensure a good user experience. NUBO allows users to tailor Bayesian optimization to their problem by writing a custom optimization loop using the provided building blocks. It supports sequential single-point, parallel multi-point, and asynchronous optimization of bounded, constrained, and mixed (discrete and continuous) parameter input spaces. Only algorithms and methods extensively tested and validated to perform well are included in NUBO. This ensures that the package remains compact and does not overwhelm the user with an unnecessarily large number of options. The package is written in Python but does not require expert knowledge of Python to optimize simulators and experiments. NUBO is distributed as open-source software under the BSD 3-Clause license.
पेपर ID : 2305.06709शीर्षक : NUBO: A Transparent Python Package for Bayesian Optimizationलेखक : Mike Diessner, Kevin Wilson, Richard D. Whalley (Newcastle University)वर्गीकरण : cs.LG (मशीन लर्निंग), cs.MS (गणितीय सॉफ्टवेयर), stat.ML (सांख्यिकी - मशीन लर्निंग)प्रकाशन समय : arXiv v2, 3 जून 2024पेपर लिंक : https://arxiv.org/abs/2305.06709 ओपन सोर्स पता : www.nubopy.com लाइसेंस : BSD 3-ClauseNUBO (Newcastle University Bayesian Optimization) महंगे ब्लैक-बॉक्स फंक्शन के अनुकूलन के लिए डिज़ाइन किया गया एक बेयेसियन ऑप्टिमाइजेशन फ्रेमवर्क है, जो भौतिक प्रयोगों और कंप्यूटर सिमुलेटर जैसे परिदृश्यों के लिए उपयुक्त है। यह फ्रेमवर्क गॉसियन प्रक्रिया के माध्यम से सरोगेट मॉडलिंग करता है, अधिग्रहण फंक्शन का उपयोग करके उम्मीदवार बिंदु चयन का मार्गदर्शन करता है, और न्यूनतम फंक्शन मूल्यांकन के साथ वैश्विक इष्टतम तक पहुंचता है। NUBO पारदर्शिता और उपयोगकर्ता अनुभव पर जोर देता है - स्पष्ट कोड, सटीक उद्धरण और विस्तृत दस्तावेज़ के माध्यम से पारदर्शिता सुनिश्चित करता है; मॉड्यूलर डिज़ाइन, सहज वाक्य रचना और चयनित एल्गोरिदम के माध्यम से अच्छा उपयोगकर्ता अनुभव सुनिश्चित करता है। फ्रेमवर्क अनुक्रमिक एकल-बिंदु, समानांतर बहु-बिंदु और अतुल्यकालिक अनुकूलन का समर्थन करता है, जो सीमित, बाधित और मिश्रित (असतत और निरंतर) पैरामीटर स्पेस के लिए उपयुक्त है। इसमें केवल पूर्ण परीक्षण और सत्यापित एल्गोरिदम शामिल हैं, पैकेज की कॉम्पैक्टनेस बनाए रखते हुए, चयन अधिभार से बचते हुए।
कई वैज्ञानिक और इंजीनियरिंग क्षेत्रों को महंगे ब्लैक-बॉक्स फंक्शन के अनुकूलन की समस्या का सामना करना पड़ता है:
फंक्शन के पास ज्ञात या विश्लेषणात्मक गणितीय अभिव्यक्ति नहीं है प्रत्येक फंक्शन मूल्यांकन की लागत अधिक है (सामग्री लागत, कम्प्यूटेशनल लागत, समय लागत) व्युत्पन्न जानकारी प्राप्त नहीं की जा सकती बड़ी संख्या में फंक्शन मूल्यांकन के लिए उपयुक्त नहीं है विशिष्ट अनुप्रयोग परिदृश्य शामिल हैं:
कम्प्यूटेशनल द्रव गतिविज्ञान में पैरामीटर अनुकूलन रासायनिक इंजीनियरिंग में आणविक डिजाइन और दवा खोज मशीन लर्निंग मॉडल का हाइपरपैरामीटर ट्यूनिंग तंत्रिका नेटवर्क आर्किटेक्चर खोज पारंपरिक अनुकूलन एल्गोरिदम (जैसे Adam, L-BFGS-B, विभेदक विकास) निम्न पर निर्भर करते हैं:
व्युत्पन्न जानकारी (आमतौर पर उपलब्ध नहीं) बड़ी संख्या में फंक्शन मूल्यांकन (महंगे फंक्शन के लिए अव्यावहारिक) बेयेसियन ऑप्टिमाइजेशन नमूना-कुशल विकल्प प्रदान करता है, लेकिन मौजूदा कार्यान्वयन में समस्याएं हैं।
विस्तृत तुलनात्मक विश्लेषण (तालिका 1) के माध्यम से, मौजूदा Python पैकेज निम्नलिखित समस्याओं का सामना करते हैं:
पैकेज नाम कोड लाइनें समानांतर अनुकूलन अतुल्यकालिक अनुकूलन मुख्य समस्या BoTorch 38,419 ✓ ✓ कोड बेस बहुत बड़ा (NUBO से 29 गुना), समझना मुश्किल bayes_opt 1,241 ✗ ✗ समानांतर और अतुल्यकालिक अनुकूलन का समर्थन नहीं करता SMAC3 11,217 ✗ ✗ सीमित कार्यक्षमता pyGPGO 2,029 ✗ ✗ सीमित कार्यक्षमता GPyOpt 4,605 ✓ ✗ रखरखाव बंद कर दिया गया Spearmint 3,662 ✗ ✗ गैर-मॉड्यूलर डिज़ाइन, कम लचीलापन
मुख्य समस्याएं :
जटिलता बनाम पारदर्शिता : BoTorch शक्तिशाली है लेकिन कोड जटिल है (160 फाइलें), गैर-विशेषज्ञ उपयोगकर्ताओं के लिए समझना मुश्किलकार्यक्षमता सीमाएं : अधिकांश पैकेज समानांतर/अतुल्यकालिक अनुकूलन का समर्थन नहीं करतेचयन अधिभार : बहुत सारे विकल्प प्रदान करते हैं, गैर-विशेषज्ञ उपयोगकर्ताओं के लिए निर्णय लेना मुश्किलअंतःविषय शोधकर्ताओं (गैर-सांख्यिकीविद्/कंप्यूटर विज्ञान विशेषज्ञ) के लिए प्रदान करना:
पारदर्शी : सरल कोड (केवल 1,322 लाइनें, 20 फाइलें)उपयोग में आसान : मॉड्यूलर डिज़ाइन, सहज वाक्य रचनाकुशल : समानांतर/अतुल्यकालिक/बाधित/मिश्रित अनुकूलन का समर्थन करता हैविश्वसनीय : केवल सत्यापित एल्गोरिदम शामिल हैंहल्का कार्यान्वयन : 1,322 लाइनों के कोड में पूर्ण बेयेसियन ऑप्टिमाइजेशन फ्रेमवर्क लागू करता है, कोड की मात्रा BoTorch का केवल 3.4% है, लेकिन समान कार्यक्षमता प्रदान करता हैव्यापक अनुकूलन रणनीति समर्थन :अनुक्रमिक एकल-बिंदु अनुकूलन (sequential single-point) समानांतर बहु-बिंदु अनुकूलन (parallel multi-point) अतुल्यकालिक अनुकूलन (asynchronous) बाधित अनुकूलन (constrained) मिश्रित पैरामीटर अनुकूलन (mixed discrete-continuous) पारदर्शिता डिज़ाइन दर्शन :स्पष्ट कोड संरचना सटीक शैक्षणिक उद्धरण विस्तृत दस्तावेज़ (पेपर + वेबसाइट) उपयोगकर्ता-अनुकूल मॉड्यूलर आर्किटेक्चर :लचीली निर्माण ब्लॉक डिज़ाइन सहज Python वाक्य रचना चयनित कुशल एल्गोरिदम प्रदर्शन सत्यापन : मुख्य पैकेज (BoTorch, SMAC3, आदि) के साथ बेंचमार्क परीक्षण में समान या बेहतर प्रदर्शन, सरलता कार्यक्षमता की कीमत पर नहीं है यह साबित करता हैओपन सोर्स इकोसिस्टम : PyTorch इकोसिस्टम (Torch, GPyTorch) पर आधारित, अच्छी विस्तारशीलता और GPU त्वरण समर्थन सुनिश्चित करता हैबेयेसियन ऑप्टिमाइजेशन d-आयामी अधिकतमकरण समस्या को हल करने का लक्ष्य रखता है:
x ∗ = arg max x ∈ X f ( x ) x^* = \arg\max_{x \in X} f(x) x ∗ = arg max x ∈ X f ( x )
जहां:
इनपुट स्पेस X ∈ [ a , b ] d X \in [a,b]^d X ∈ [ a , b ] d : आमतौर पर हाइपर-आयताकार सीमित निरंतर स्पेसउद्देश्य फंक्शन f ( x ) f(x) f ( x ) : महंगा, व्युत्पन्न-मुक्त ब्लैक-बॉक्स फंक्शनअवलोकन y i = f ( x i ) + ϵ y_i = f(x_i) + \epsilon y i = f ( x i ) + ϵ : शोर के साथ ϵ ∼ N ( 0 , σ 2 ) \epsilon \sim \mathcal{N}(0, \sigma^2) ϵ ∼ N ( 0 , σ 2 ) प्रशिक्षण डेटा D n = { ( x i , y i ) } i = 1 n D_n = \{(x_i, y_i)\}_{i=1}^n D n = {( x i , y i ) } i = 1 n विस्तारित कार्य (NUBO समर्थन करता है):
बाधित अनुकूलन :
subject to g i ( x ) = 0 , h j ( x ) ≥ 0 \text{subject to } g_i(x) = 0, \quad h_j(x) \geq 0 subject to g i ( x ) = 0 , h j ( x ) ≥ 0 मिश्रित पैरामीटर : कुछ आयाम असतत मान हैंइनपुट: मूल्यांकन बजट N, प्रारंभिक बिंदु संख्या n₀, सरोगेट मॉडल M, अधिग्रहण फंक्शन α
1. स्पेस-भरने वाली डिज़ाइन के माध्यम से n₀ प्रारंभिक बिंदु नमूना लें, अवलोकन प्राप्त करें
2. प्रशिक्षण डेटा सेट करें D_n = {X₀, y₀}
3. While n ≤ N - n₀:
a. D_n के साथ सरोगेट मॉडल M (गॉसियन प्रक्रिया) को प्रशिक्षित करें
b. अधिग्रहण फंक्शन α को अधिकतम करके उम्मीदवार बिंदु x*_n खोजें
c. x*_n का मूल्यांकन करें y*_n प्राप्त करें, D_n में जोड़ें
d. n = n + 1
4. सर्वोच्च अवलोकन मान के अनुरूप बिंदु x* लौटाएं
पूर्व वितरण :
f ( X n ) ∼ N ( m ( X n ) , K ( X n , X n ) ) f(X_n) \sim \mathcal{N}(m(X_n), K(X_n, X_n)) f ( X n ) ∼ N ( m ( X n ) , K ( X n , X n ))
NUBO की कॉन्फ़िगरेशन पसंद :
माध्य फंक्शन : स्थिर माध्य μ constant ( x ) = c \mu_{\text{constant}}(x) = c μ constant ( x ) = c सहप्रसरण कर्नल : Matérn 5/2 ARD कर्नल
Σ Mat e ˊ rn ( x , x ′ ) = σ f 2 ( 1 + 5 r l + 5 r 2 3 l 2 ) exp ( − 5 r l ) \Sigma_{\text{Matérn}}(x, x') = \sigma_f^2 \left(1 + \frac{\sqrt{5}r}{l} + \frac{5r^2}{3l^2}\right) \exp\left(-\frac{\sqrt{5}r}{l}\right) Σ Mat e ˊ rn ( x , x ′ ) = σ f 2 ( 1 + l 5 r + 3 l 2 5 r 2 ) exp ( − l 5 r )
जहां r = ∣ x − x ′ ∣ r = |x - x'| r = ∣ x − x ′ ∣ स्वचालित प्रासंगिकता निर्धारण (ARD) :
प्रत्येक इनपुट आयाम के लिए स्वतंत्र लंबाई स्केल l d l_d l d बड़ी लंबाई स्केल → आयाम महत्वहीन है छोटी लंबाई स्केल → आयाम महत्वपूर्ण है पश्च वितरण :
f ( X ∗ ) ∣ D n , X ∗ ∼ N ( μ n ( X ∗ ) , σ n 2 ( X ∗ ) ) f(X^*) | D_n, X^* \sim \mathcal{N}(\mu_n(X^*), \sigma_n^2(X^*)) f ( X ∗ ) ∣ D n , X ∗ ∼ N ( μ n ( X ∗ ) , σ n 2 ( X ∗ ))
μ n ( X ∗ ) = K ( X ∗ , X n ) [ K ( X n , X n ) + σ y 2 I ] − 1 ( y − m ( X n ) ) + m ( X ∗ ) \mu_n(X^*) = K(X^*, X_n)[K(X_n, X_n) + \sigma_y^2 I]^{-1}(y - m(X_n)) + m(X^*) μ n ( X ∗ ) = K ( X ∗ , X n ) [ K ( X n , X n ) + σ y 2 I ] − 1 ( y − m ( X n )) + m ( X ∗ )
σ n 2 ( X ∗ ) = K ( X ∗ , X ∗ ) − K ( X ∗ , X n ) [ K ( X n , X n ) + σ y 2 I ] − 1 K ( X n , X ∗ ) \sigma_n^2(X^*) = K(X^*, X^*) - K(X^*, X_n)[K(X_n, X_n) + \sigma_y^2 I]^{-1}K(X_n, X^*) σ n 2 ( X ∗ ) = K ( X ∗ , X ∗ ) − K ( X ∗ , X n ) [ K ( X n , X n ) + σ y 2 I ] − 1 K ( X n , X ∗ )
हाइपरपैरामीटर अनुमान : लॉग सीमांत संभावना (MLE) को अधिकतम करके:
log P ( y n ∣ X n ) = − 1 2 ( y n − m ( X n ) ) ⊤ [ K + σ y 2 I ] − 1 ( y n − m ( X n ) ) − 1 2 log ∣ K + σ y 2 I ∣ − n 2 log 2 π \log P(y_n | X_n) = -\frac{1}{2}(y_n - m(X_n))^\top[K + \sigma_y^2 I]^{-1}(y_n - m(X_n)) - \frac{1}{2}\log|K + \sigma_y^2 I| - \frac{n}{2}\log 2\pi log P ( y n ∣ X n ) = − 2 1 ( y n − m ( X n ) ) ⊤ [ K + σ y 2 I ] − 1 ( y n − m ( X n )) − 2 1 log ∣ K + σ y 2 I ∣ − 2 n log 2 π
अपेक्षित सुधार (Expected Improvement, EI) :
α EI ( X ∗ ) = ( μ n ( X ∗ ) − y best ) Φ ( z ) + σ n ( X ∗ ) ϕ ( z ) \alpha_{\text{EI}}(X^*) = (\mu_n(X^*) - y_{\text{best}})\Phi(z) + \sigma_n(X^*)\phi(z) α EI ( X ∗ ) = ( μ n ( X ∗ ) − y best ) Φ ( z ) + σ n ( X ∗ ) ϕ ( z )
जहां z = μ n ( X ∗ ) − y best σ n ( X ∗ ) z = \frac{\mu_n(X^*) - y_{\text{best}}}{\sigma_n(X^*)} z = σ n ( X ∗ ) μ n ( X ∗ ) − y best
ऊपरी आत्मविश्वास सीमा (Upper Confidence Bound, UCB) :
α UCB ( X ∗ ) = μ n ( X ∗ ) + β σ n ( X ∗ ) \alpha_{\text{UCB}}(X^*) = \mu_n(X^*) + \sqrt{\beta}\sigma_n(X^*) α UCB ( X ∗ ) = μ n ( X ∗ ) + β σ n ( X ∗ )
ऑप्टिमाइज़र : L-BFGS-B (सीमित) या SLSQP (बाधित)
पुनः-पैरामीटराइजेशन ट्रिक के माध्यम से अनुमानित:
α EI MC ( X ∗ ) = max ( ReLU ( μ n ( X ∗ ) + L z − y best ) ) \alpha_{\text{EI}}^{\text{MC}}(X^*) = \max(\text{ReLU}(\mu_n(X^*) + Lz - y_{\text{best}})) α EI MC ( X ∗ ) = max ( ReLU ( μ n ( X ∗ ) + L z − y best ))
α UCB MC ( X ∗ ) = max ( μ n ( X ∗ ) + β π 2 ∣ L z ∣ ) \alpha_{\text{UCB}}^{\text{MC}}(X^*) = \max\left(\mu_n(X^*) + \sqrt{\frac{\beta\pi}{2}}|Lz|\right) α UCB MC ( X ∗ ) = max ( μ n ( X ∗ ) + 2 β π ∣ L z ∣ )
जहां:
L L L : सहप्रसरण मैट्रिक्स Cholesky अपघटन का निचला त्रिकोणीय मैट्रिक्स L L ⊤ = K LL^\top = K L L ⊤ = K z ∼ N ( 0 , I ) z \sim \mathcal{N}(0, I) z ∼ N ( 0 , I ) : मानक सामान्य नमूनाबैच अनुकूलन रणनीति :
संयुक्त अनुकूलन (joint): सभी बैच बिंदुओं को एक साथ अनुकूलित करेंलालची अनुक्रमिक (sequential): बिंदु-दर-बिंदु अनुकूलन, पिछले बिंदुओं को ठीक करें (व्यावहारिक प्रदर्शन बेहतर)ऑप्टिमाइज़र : Adam (यादृच्छिक) या L-BFGS-B/SLSQP (निश्चित आधार नमूना)
कोड मात्रा तुलना : NUBO (1,322 लाइनें) बनाम BoTorch (38,419 लाइनें)फाइल संख्या तुलना : 20 बनाम 160डिज़ाइन दर्शन : अत्यधिक अमूर्तता से बचें, फंक्शन और ऑब्जेक्ट को ट्रैक करना आसान रखेंउपयोगकर्ता 4 चरणों के माध्यम से कस्टम अनुकूलन लूप बना सकते हैं:
# 1. इनपुट स्पेस परिभाषित करें
bounds = torch.tensor([[0., 0., ...], [1., 1., ...]])
# 2. गॉसियन प्रक्रिया को प्रशिक्षित करें
gp = GaussianProcess(x_train, y_train, likelihood)
fit_gp(x_train, y_train, gp, likelihood)
# 3. अधिग्रहण फंक्शन परिभाषित करें
acq = UpperConfidenceBound(gp=gp, beta=4)
# 4. अधिग्रहण फंक्शन को अनुकूलित करें
x_new, _ = single(func=acq, method="L-BFGS-B", bounds=bounds)
रणनीति : सभी असतत संयोजनों की गणना करें, प्रत्येक संयोजन के लिए निरंतर पैरामीटर अनुकूलित करेंकार्यान्वयन : शब्दकोश के माध्यम से असतत आयाम और संभावित मान निर्दिष्ट करेंसीमा : असतत आयाम या मान बहुत अधिक होने पर कम्प्यूटेशनल रूप से महंगा (पेपर स्पष्ट रूप से बताता है)परिदृश्य : मूल्यांकन समय अनिश्चित होने पर अनुकूलन जारी रखेंकार्यान्वयन : प्रतीक्षित मूल्यांकन बिंदुओं को निश्चित बिंदु के रूप में x_pending में पास करेंलाभ : कम्प्यूटेशनल संसाधनों का पूर्ण उपयोग करेंस्पष्ट एल्गोरिदम चयन मार्गदर्शन प्रदान करता है:
क्या अतुल्यकालिक है? → क्या समानांतर है? → क्या बाधित है? प्रत्येक शाखा विशिष्ट अधिग्रहण फंक्शन और ऑप्टिमाइज़र संयोजन की सिफारिश करता है दो मानक बेंचमार्क फंक्शन का उपयोग करता है (वर्चुअल सिमुलेशन प्रयोग लाइब्रेरी से 24 ):
2D Levy फंक्शन :आयाम: 2 विशेषता: बहु-शिखर, कई स्थानीय इष्टतम वैश्विक इष्टतम: 0.00 6D Hartmann फंक्शन :आयाम: 6 विशेषता: कई स्थानीय न्यूनतम, एक वैश्विक न्यूनतम वैश्विक इष्टतम: 3.32237 इनपुट स्पेस: 0,1 ⁶ दोनों फंक्शन को अधिकतमकरण समस्या में परिवर्तित करने के लिए नकारात्मक किया जाता है।
सर्वोत्तम अवलोकन मान : वर्तमान पुनरावृत्ति का सर्वश्रेष्ठ आउटपुट (औसत ± मानक त्रुटि)अभिसरण गति : वैश्विक इष्टतम तक पहुंचने के लिए आवश्यक मूल्यांकन संख्याप्रति पुनरावृत्ति समय : एल्गोरिदम कम्प्यूटेशनल ओवरहेड5 मुख्य Python पैकेज की तुलना करता है:
BoTorch (v0.8.4): सबसे व्यापक कार्यक्षमताbayes_opt (v1.4.3): हल्का वजनSMAC3 (v2.0.0): मध्यम जटिलताpyGPGO (v0.5.0): हल्का वजनNUBO (v1.0.3): यह विधिएकीकृत कॉन्फ़िगरेशन :
सरोगेट मॉडल: गॉसियन प्रक्रिया अधिग्रहण फंक्शन: ऊपरी आत्मविश्वास सीमा (UCB) चलाने की संख्या: 10 बार दोहराए गए प्रयोग हार्डवेयर: Apple Mac mini (M2, 16GB) प्रारंभिक बिंदु: लैटिन हाइपरक्यूब नमूनाकरण के माध्यम से उत्पन्न Levy: 30 मूल्यांकन Hartmann: 60 मूल्यांकन बैच आकार: 4 Levy: 30 मूल्यांकन (7.5 बैच) Hartmann: 100 मूल्यांकन (25 बैच) पैकेज नाम 2D Levy (अनुक्रमिक) 6D Hartmann (अनुक्रमिक) 2D Levy (समानांतर) 6D Hartmann (समानांतर) NUBO -0.04 (±0.06) 3.28 (±0.06) -0.04 (±0.04) 3.27 (±0.06) BoTorch -0.21 (±0.20) 3.27 (±0.07) -0.27 (±0.21) 3.26 (±0.06) SMAC3 -0.71 (±0.58) 2.70 (±0.38) - - bayes_opt -0.64 (±0.74) 3.20 (±0.13) - - pyGPGO -0.28 (±0.31) 2.64 (±1.05) - -
मुख्य निष्कर्ष :
NUBO सभी परीक्षणों में वास्तविक इष्टतम मान के सबसे करीब है (Levy: 0.00, Hartmann: 3.32)न्यूनतम विचरण : परिणाम स्थिरता सर्वश्रेष्ठ हैहल्के वजन पैकेज में सर्वश्रेष्ठ प्रदर्शन : bayes_opt और pyGPGO से बेहतरजटिल पैकेज के साथ प्रतिस्पर्धी : BoTorch और SMAC3 के समानपैकेज नाम 2D Levy (अनुक्रमिक) 6D Hartmann (अनुक्रमिक) 2D Levy (समानांतर) 6D Hartmann (समानांतर) NUBO 0.60s 1.88s 0.07s 2.20s BoTorch 0.09s 0.22s 0.00s 0.19s SMAC3 0.08s 0.25s - - bayes_opt 0.14s 0.24s - - pyGPGO 0.23s 0.65s - -
विश्लेषण :
NUBO प्रति पुनरावृत्ति अधिक समय लेता है (अधिकतम 2.20s) लेकिन महंगे ब्लैक-बॉक्स फंक्शन के लिए यह नगण्य है :
भौतिक प्रयोग: घंटे/दिन की आवश्यकता हो सकती है जटिल सिमुलेशन: मिनट/घंटे की आवश्यकता हो सकती है अतिरिक्त 2 सेकंड मूल्यांकन लागत के सापेक्ष नगण्य है A) 2D Levy अनुक्रमिक अनुकूलन :
NUBO वैश्विक इष्टतम तक तेजी से अभिसरित होता है bayes_opt और pyGPGO अधिक उतार-चढ़ाव दिखाते हैं SMAC3 कमजोर प्रदर्शन करता है B) 6D Hartmann अनुक्रमिक अनुकूलन :
सभी विधियां अभिसरित होती हैं NUBO और BoTorch वास्तविक इष्टतम के सबसे करीब हैं SMAC3 और pyGPGO अधिक विचरण दिखाते हैं C) 2D Levy समानांतर अनुकूलन :
NUBO और BoTorch समान प्रदर्शन करते हैं समानांतर रणनीति प्रभावी है D) 6D Hartmann समानांतर अनुकूलन :
NUBO उच्च मान तक पहुंचने में BoTorch से थोड़ा धीमा है लेकिन अंतिम मान अधिक इष्टतम और अधिक स्थिर है कार्य : 6D Hartmann फंक्शन, पहला आयाम असतत पैरामीटर है (11 मान)
सेटअप :
प्रारंभिक बिंदु: 30 (5×आयाम) अनुकूलन पुनरावृत्ति: 10 बैच आकार: 4 अधिग्रहण फंक्शन: MC-UCB (β=4, 128 नमूने) परिणाम :
53वें मूल्यांकन में इष्टतम समाधान खोजा गया इनपुट: 0.4, 0.9136, 1.0, 0.5669, 0.0, 0.0802 आउटपुट: 3.2133 (वास्तविक इष्टतम 3.32237) त्रुटि: केवल 3.3% यादृच्छिक और LHS नमूनाकरण के साथ तुलना (Figure 5):
NUBO यादृच्छिक नमूनाकरण और लैटिन हाइपरक्यूब नमूनाकरण से काफी बेहतर है 70 मूल्यांकन के बाद वास्तविक इष्टतम के सबसे करीब है सरलता कार्यक्षमता का त्याग नहीं करती : 1,322 लाइनों का कोड 38,419 लाइनों के BoTorch के समान प्रदर्शन प्रदान करता हैस्थिरता लाभ : न्यूनतम मानक त्रुटि, व्यावहारिक अनुप्रयोग के लिए उपयुक्तसमानांतर रणनीति प्रभावी : लालची अनुक्रमिक रणनीति वास्तविक समस्याओं में अच्छा प्रदर्शन करती हैमिश्रित अनुकूलन व्यावहारिक : असतत-निरंतर मिश्रित पैरामीटर स्पेस को सफलतापूर्वक संभालता हैकम्प्यूटेशनल ओवरहेड स्वीकार्य : महंगे ब्लैक-बॉक्स फंक्शन के लिए, अतिरिक्त सेकंड-स्तरीय ओवरहेड नगण्य हैविशेषता NUBO BoTorch GPyOpt अन्य मॉड्यूलर ✓ ✓ ✓ आंशिक समानांतर अनुकूलन ✓ ✓ ✓ ✗ अतुल्यकालिक अनुकूलन ✓ ✓ ✗ ✗ कोड जटिलता कम उच्च मध्यम कम-मध्यम रखरखाव स्थिति सक्रिय सक्रिय संग्रहीत सक्रिय
R भाषा :
rBayesianOptimization: मूल कार्यक्षमता ParBayesianOptimization: समानांतर समर्थन हाइपरपैरामीटर अनुकूलन : मशीन लर्निंग मॉडल ट्यूनिंग (Spearmint, SMAC3)तंत्रिका आर्किटेक्चर खोज : BANANAS आदिवैज्ञानिक अनुप्रयोग : द्रव गतिविज्ञान, रासायनिक इंजीनियरिंग, सामग्री डिजाइनलक्ष्य उपयोगकर्ता : अंतःविषय शोधकर्ता (गैर-ML विशेषज्ञ)डिज़ाइन दर्शन : पारदर्शिता > कार्यक्षमता समृद्धिअनुप्रयोग परिदृश्य : भौतिक प्रयोग और सिमुलेशन अनुकूलनNUBO पारदर्शिता और प्रदर्शन का संतुलन सफलतापूर्वक प्राप्त करता है :अत्यंत कम कोड (1,322 लाइनें) में पूर्ण कार्यक्षमता लागू करता है प्रदर्शन जटिल पैकेज (BoTorch) के समान या बेहतर है व्यापक कार्यक्षमता समर्थन :अनुक्रमिक/समानांतर/अतुल्यकालिक अनुकूलन बाधित और मिश्रित पैरामीटर स्पेस अनुकूलन योग्य मॉड्यूलर डिज़ाइन अंतःविषय अनुप्रयोग के लिए उपयुक्त :स्पष्ट दस्तावेज़ और कोड सहज API डिज़ाइन चयनित विश्वसनीय एल्गोरिदम अच्छा ओपन सोर्स इकोसिस्टम :PyTorch इकोसिस्टम पर आधारित BSD 3-Clause लाइसेंस सक्रिय रखरखाव कम्प्यूटेशनल दक्षता :प्रति पुनरावृत्ति BoTorch से लगभग 10 गुना धीमा लेकिन महंगे ब्लैक-बॉक्स फंक्शन के लिए नगण्य मिश्रित अनुकूलन की विस्तारशीलता :असतत आयाम/मान बहुत अधिक होने पर गणना रणनीति अव्यावहारिक है अधिक कुशल विकल्प प्रदान नहीं करता है कार्यक्षमता कवरेज :बहु-निष्ठा अनुकूलन (multi-fidelity) समर्थन नहीं करता बहु-उद्देश्य अनुकूलन (multi-objective) समर्थन नहीं करता उच्च-आयामी अनुकूलन विशेष विधि समर्थन नहीं करता सीमित एल्गोरिदम चयन :केवल दो अधिग्रहण फंक्शन (EI, UCB) अन्य लोकप्रिय विधियां शामिल नहीं (जैसे ज्ञान ढाल, एंट्रॉपी खोज) सीमित बेंचमार्क परीक्षण :केवल 2 सिंथेटिक फंक्शन परीक्षण किए गए तुलना में वास्तविक दुनिया के अनुप्रयोग केस की कमी उच्च-आयामी समस्या परीक्षण नहीं किए गए (>10 आयाम) हाइपरपैरामीटर संवेदनशीलता :β पैरामीटर चयन के लिए स्वचालित मार्गदर्शन की कमी मोंटे कार्लो नमूना संख्या के प्रभाव का अपूर्ण विश्लेषण विस्तारशीलता सत्यापन अपर्याप्त :बड़े पैमाने पर समानांतर परीक्षण नहीं किए गए (बैच>4) GPU त्वरण क्षमता प्रदर्शित नहीं की गई पेपर द्वारा स्पष्ट रूप से प्रस्तावित विस्तार योजनाएं:
बहु-निष्ठा अनुकूलन : विभिन्न सटीकता के सिमुलेशन का उपयोग करके अनुकूलन में तेजी लाएंबहु-उद्देश्य अनुकूलन : एक साथ कई परस्पर विरोधी उद्देश्यों को अनुकूलित करेंउच्च-आयामी अनुकूलन : उच्च-आयामी स्पेस के लिए विशेष विधियां विकसित करें (जैसे एम्बेडिंग, यादृच्छिक एम्बेडिंग आदि)गैर-एल्गोरिदम नवाचार : नई बेयेसियन अनुकूलन एल्गोरिदम प्रस्तावित नहीं करताइंजीनियरिंग नवाचार : सरलता और कार्यक्षमता के बीच उत्कृष्ट संतुलन खोजता हैडिज़ाइन नवाचार : मॉड्यूलर आर्किटेक्चर उपयोग की बाधा को कम करता है✓ लाभ :
5 मुख्य पैकेज के साथ क्षैतिज तुलना 10 बार दोहराए गए प्रयोग, सांख्यिकीय महत्व प्रदान करता है अनुक्रमिक और समानांतर दोनों परिदृश्य शामिल विस्तृत केस स्टडी ✗ अपर्याप्तता :
बेंचमार्क फंक्शन केवल 2, आयाम कम वास्तविक अनुप्रयोग तुलना की कमी चरम परिदृश्य परीक्षण नहीं किए गए (उच्च-आयामी, बड़ी बैच) मात्रात्मक साक्ष्य : सभी परीक्षणों में इष्टतम या निकटतम प्राप्त करता हैस्थिरता : न्यूनतम मानक त्रुटिकोड मात्रा तुलना : सरलता लाभ को वस्तुनिष्ठ रूप से मापता हैईमानदार रिपोर्टिंग : कम्प्यूटेशनल दक्षता की कमजोरी स्वीकार करता हैस्पष्ट संरचना: पृष्ठभूमि→विधि→प्रयोग→केस स्टडी विस्तृत सूत्र: पूर्ण गणितीय व्युत्पत्ति समृद्ध कोड उदाहरण: प्रत्येक विशेषता के लिए कोड स्निपेट प्रभावी दृश्य: प्रवाह चार्ट, अभिसरण वक्र, तुलना ग्राफ ओपन सोर्स कोड और दस्तावेज़ विस्तृत प्रायोगिक सेटअप पुनरुत्पादन सामग्री प्रदान करता है स्पष्ट संस्करण जानकारी गणना रणनीति की अक्षमता : मिश्रित अनुकूलन में असतत आयाम अधिक होने पर अव्यावहारिकरूढ़िवादी एल्गोरिदम चयन : केवल EI और UCB, अधिक आधुनिक विधियां नहीं (जैसे qKG, MES)अनुकूली रणनीति की कमी : β जैसे हाइपरपैरामीटर को मैनुअल रूप से समायोजित करना पड़ता हैबेंचमार्क परीक्षण अपर्याप्त :केवल 2 सिंथेटिक फंक्शन अधिकतम आयाम केवल 6D शोर मजबूती परीक्षण की कमी अपूर्ण तुलना :R पैकेज के साथ तुलना नहीं GPU त्वरण परीक्षण नहीं मेमोरी खपत मूल्यांकन नहीं केस स्टडी सीमाएं :अभी भी सिंथेटिक फंक्शन है वास्तविक वैज्ञानिक अनुप्रयोग प्रदर्शन नहीं अभिसरण गारंटी विश्लेषण नहीं नमूना जटिलता विश्लेषण नहीं लालची रणनीति के सैद्धांतिक गुणों पर चर्चा नहीं कम्प्यूटेशनल दक्षता : BoTorch से 10 गुना धीमाविस्तारशीलता अज्ञात :
बड़ी बैच प्रदर्शन? उच्च-आयामी प्रदर्शन? दीर्घकालिक चलने की संख्यात्मक स्थिरता? इंजीनियरिंग योगदान महत्वपूर्ण : अंतःविषय उपयोगकर्ताओं के लिए बाधा कम करता हैएल्गोरिदम योगदान सीमित : नई विधि प्रस्तावित नहीं करताशैक्षिक मूल्य उच्च : स्पष्ट कार्यान्वयन सीखने की सामग्री के रूप में काम कर सकता हैउपयुक्त परिदृश्य :
✓ भौतिक प्रयोग अनुकूलन (मूल्यांकन महंगा) ✓ इंजीनियरिंग सिमुलेशन (मध्यम-छोटे पैमाने पर पैरामीटर) ✓ शिक्षण और प्रोटोटाइप विकास ✓ एल्गोरिदम विवरण समझने की आवश्यकता वाले अनुसंधान अनुपयुक्त परिदृश्य :
✗ बड़े पैमाने पर हाइपरपैरामीटर खोज (उच्च दक्षता आवश्यकता) ✗ उच्च-आयामी अनुकूलन (>20 आयाम) ✗ सबसे उन्नत एल्गोरिदम की आवश्यकता वाला प्रतिस्पर्धी अनुसंधान पूर्ण ओपन सोर्स कोड विस्तृत दस्तावेज़ pip स्थापन सरल सक्रिय रखरखाव मुख्य उपयोगकर्ता : प्रायोगिक वैज्ञानिक, इंजीनियरमाध्यमिक उपयोगकर्ता : ML शोधकर्ता (प्रोटोटाइप विकास)शैक्षिक उपयोगकर्ता : छात्र और शिक्षकमूल्यांकन अत्यंत महंगा है :भौतिक प्रयोग (घंटे/दिन स्तर) उच्च-सटीकता सिमुलेशन (मिनट/घंटे स्तर) इस समय एल्गोरिदम 2 सेकंड ओवरहेड नगण्य है एल्गोरिदम समझने की आवश्यकता है :अनुसंधान परियोजना को एल्गोरिदम संशोधन की आवश्यकता है शिक्षण और सीखने का उद्देश्य परिणाम डीबग और व्याख्या करने की आवश्यकता है मध्यम-छोटे पैमाने की समस्याएं :पैरामीटर आयाम ≤ 10 समानांतर बैच ≤ 10 असतत पैरामीटर ≤ 3 आयाम विशिष्ट कार्यक्षमता की आवश्यकता है :बाधित अनुकूलन मिश्रित पैरामीटर स्पेस अतुल्यकालिक मूल्यांकन BoTorch का उपयोग करें :सबसे उन्नत एल्गोरिदम की आवश्यकता है उच्च-आयामी समस्याएं (>20 आयाम) बड़े पैमाने पर समानांतर GPU त्वरण महत्वपूर्ण है SMAC3 का उपयोग करें :हाइपरपैरामीटर अनुकूलन परिपक्व औद्योगिक-स्तरीय उपकरण की आवश्यकता है bayes_opt का उपयोग करें :सरल अनुक्रमिक अनुकूलन न्यूनतम निर्भरता की आवश्यकता है 1 Frazier (2018): बेयेसियन अनुकूलन पर ट्यूटोरियल9 Jones et al. (1998): कुशल वैश्विक अनुकूलन - EI का मूल पेपर10 Snoek et al. (2012): व्यावहारिक बेयेसियन अनुकूलन - आधुनिक BO की नींव11 Shahriari et al. (2015): मानव को लूप से बाहर निकालना - सर्वेक्षण पेपर28 Gramacy (2020): Surrogates - व्यावहारिक GP पाठ्यपुस्तक30 Rasmussen & Williams (2006): मशीन लर्निंग के लिए गॉसियन प्रक्रिया - शास्त्रीय पाठ्यपुस्तक27 Wilson et al. (2018): अधिग्रहण फंक्शन को अधिकतम करना - बैच अनुकूलन रणनीति32 Srinivas et al. (2010): डाकू सेटिंग में GP अनुकूलन - UCB का सैद्धांतिक आधार22 BoTorch (Balandat et al., 2020): मुख्य प्रतिद्वंद्वी21 SMAC3 (Lindauer et al., 2022): हाइपरपैरामीटर अनुकूलन35 GPyTorch (Gardner et al., 2018): NUBO का GP बैकएंडआयाम रेटिंग विवरण नवाचार 3/5 इंजीनियरिंग नवाचार मजबूत, एल्गोरिदम नवाचार कमजोर तकनीकी गुणवत्ता 4/5 विश्वसनीय कार्यान्वयन, लेकिन दक्षता में सुधार की गुंजाइश प्रायोगिक पूर्णता 3.5/5 व्यापक तुलना, लेकिन सीमित बेंचमार्क लेखन गुणवत्ता 5/5 स्पष्ट, विस्तृत, पुनरुत्पादनीय व्यावहारिक मूल्य 4/5 विशिष्ट परिदृश्यों में अत्यंत उपयोगी प्रभाव क्षमता 3.5/5 विशेष बाजार को भरता है, लेकिन सफलता नहीं
समग्र मूल्यांकन : यह एक उत्कृष्ट उपकरण पेपर है जो अपने मूल लक्ष्य को सफलतापूर्वक प्राप्त करता है - अंतःविषय शोधकर्ताओं के लिए एक पारदर्शी, उपयोग में आसान बेयेसियन अनुकूलन उपकरण प्रदान करना। हालांकि एल्गोरिदम नवाचार सीमित है, लेकिन इंजीनियरिंग डिज़ाइन और उपयोगकर्ता अनुभव में महत्वपूर्ण योगदान दिया है। विशेष रूप से उन वैज्ञानिक और इंजीनियरिंग अनुप्रयोगों के लिए उपयुक्त जहां एल्गोरिदम विवरण समझना आवश्यक है और महंगे ब्लैक-बॉक्स फंक्शन को अनुकूलित करना है। कोड गुणवत्ता और दस्तावेज़ के उच्च मानक अन्य ओपन सोर्स परियोजनाओं के लिए सीखने योग्य हैं।