मशीन लर्निंग में हाइपरपैरामीटर ट्यूनिंग के लिए Bayesian Optimization की शक्ति अनलॉक करें। सैद्धांतिक आधार और Python के साथ व्यावहारिक अनुप्रयोगों में महारत हासिल करें ताकि मॉडल की सटीकता बढ़े।
मशीन लर्निंग के व्यापक क्षेत्र में, मॉडल प्रशिक्षण के दौरान सर्वोत्तम हाइपरपैरामीटर्स खोजने के लिए विशाल और जटिल डेटासेट्स में नेविगेट करना एक सामान्य चुनौती है।
परंपरागत विधियाँ, जो अक्सर रैंडम और ग्रिड सर्च पर आधारित होती हैं, समय-साध्य और अल्प-प्रभावी हो सकती हैं, खासकर जब जटिल मॉडल आर्किटेक्चर या बड़े पैमाने के डेटा की बात आती है।
यहीं पर एक अधिक बुद्धिमान और अनुकूलनीय दृष्टिकोण, जैसे Bayesian optimization, हाइपरपैरामीटर ऑप्टिमाइज़ेशन के लिए अत्यंत महत्वपूर्ण हो जाता है।
इस लेख का पहला लक्ष्य यह समझाना है कि Bayesian optimization क्या है, जिससे पाठक को एक ठोस सैद्धांतिक आधार मिल सके। हालांकि, Bayesian optimization की अवधारणा में जाने से पहले, हमारे पास उपलब्ध विभिन्न हाइपरपैरामीटर ऑप्टिमाइज़ेशन को समझना महत्वपूर्ण है।
लेख का दूसरा भाग Python प्रोग्रामिंग भाषा का उपयोग करते हुए प्रमुख अवधारणाओं का एक अधिक व्यावहारिक कार्यान्वयन कवर करता है। अंतिम खंड में, पाठक सीखेंगे कि मशीन लर्निंग मॉडल के हाइपरपैरामीटर ट्यूनिंग के लिए Bayesian optimization का लाभ कैसे उठाया जाए।
Bayesian Optimization क्या है?
Bayesian optimization की परिभाषा में जाने से पहले, आइए सरल उदाहरणों के जरिए चार प्रमुख हाइपरपैरामीटर ऑप्टिमाइज़ेशन विधियों का एक अवलोकन कर लें:
मैनुअल सर्च
रैंडम सर्च
ग्रिड सर्च, और
Bayesian optimization।
मैनुअल सर्च
यह सबसे बुनियादी विधि है जो अनुभव, अंतर्ज्ञान, या ट्रायल-एंड-एरर पर आधारित होती है। यह अक्सर समय लेने वाली होती है और अभ्यासकर्ता की विशेषज्ञता पर काफी निर्भर करती है।
उदाहरण के लिए, एक अनुभवी बेकर अपने पिछले अनुभव और अंतर्ज्ञान के आधार पर ओवन का तापमान और बेकिंग का समय तय करता है।
एक सामान्य प्रारंभिक बिंदु 350°F तापमान और 30 मिनट का बेकिंग समय हो सकता है, जो आमतौर पर सफल सेटिंग्स को दर्शाता है। प्रत्येक बेकिंग प्रयास के परिणामों के आधार पर इन सेटिंग्स में समायोजन किए जाते हैं।
रैंडम सर्च
यह दृष्टिकोण निर्दिष्ट सीमा के भीतर तापमान और समय के संयोजनों को यादृच्छिक रूप से चुनता है। उदाहरण के लिए, तापमान 325°F से 375°F के बीच और समय 25 से 35 मिनट के बीच हो सकता है।
चयन प्रक्रिया 330°F पर 27 मिनट से शुरू हो सकती है, फिर 370°F पर 31 मिनट, और इस तरह यादृच्छिक रूप से तब तक जारी रहती है जब तक कि सबसे प्रभावी संयोजन की पहचान न हो जाए।
ग्रिड सर्च
इस विधि में हाइपरपैरामीटर मानों के कई संयोजनों का व्यवस्थित रूप से अन्वेषण किया जाता है।
इसी बेकिंग उदाहरण को जारी रखते हुए, बेकर दीवार पर तापमान और समय के संयोजनों का एक संरचित ग्रिड बनाता है।
ग्रिड में 325°F से 375°F के बीच हर 5°F पर, और 25 से 35 मिनट के बीच हर 2 मिनट पर मान शामिल हो सकते हैं। फिर केक को इस ग्रिड के हर एक संयोजन पर बेक किया जाएगा (325°F पर 25 मिनट, 325°F पर 27 मिनट, ... , 375°F पर 35 मिनट) ताकि सर्वोत्तम संयोजन निकाला जा सके।
Bayesian सर्च
Bayesian Optimization, एक केक के लिए सर्वोत्तम बेकिंग तापमान और समय खोजने का, रैंडम सर्च की तुलना में अधिक बुद्धिमान तरीका माना जा सकता है।
रैंडम सर्च में बेकर यादृच्छिक रूप से तापमान और समय के कई तरह के संयोजन आज़मा सकता है, जिनमें से कई का परिणाम अधपका या जला हुआ केक हो सकता है।
Bayesian optimization में, बेकर की खोज पिछले परिणामों से निर्देशित और सूचित होती है।
उदाहरण के लिए, यदि बेकर पाता है कि लगभग 350°F पर 30 मिनट तक बेक किए गए केक अधिक सफल होते हैं, तो भविष्य के प्रयासों में वह इन मूल्यों के आसपास के तापमान और समय के संयोजनों पर अधिक ध्यान देगा।
यह विधि आवश्यक ट्रायल्स की संख्या को कम कर देती है क्योंकि यह पिछले बेकिंग सत्रों के परिणामों के आधार पर उन संयोजनों को "सीखती" है जो एक परफेक्ट केक देने की अधिक संभावना रखते हैं।
कुल मिलाकर, Bayesian optimization, महंगी लागत पर मूल्यांकित होने वाले ऑब्जेक्टिव फंक्शनों को ऑप्टिमाइज़ करने के लिए Bayes प्रमेय पर आधारित है। यह विशेष रूप से उन परिदृश्यों में प्रभावी है जहां सैंपलिंग महंगी हो और ऑब्जेक्टिव फंक्शन अज्ञात हो लेकिन सैंपल किया जा सके।
Bayesian optimization आमतौर पर Gaussian Process जैसे प्रायिकतामूलक मॉडल का उपयोग ऑब्जेक्टिव फंक्शन का अनुमान लगाने के लिए करती है, और फिर अगला सैंपल कहाँ लेना है यह तय करने के लिए एक एक्विज़िशन फंक्शन का उपयोग करती है।
Bayesian Optimization की चुनौतियाँ
यह विधि कई क्षेत्रों में सफलतापूर्वक लागू की गई है। हालांकि, यह ध्यान देना महत्वपूर्ण है कि इसमें कुछ चुनौतियाँ भी हैं, और मुख्य चुनौतियाँ नीचे प्रस्तुत हैं:
बैच / समानांतर मूल्यांकन
एक चुनौती बैच या समानांतर मूल्यांकन को कुशलतापूर्वक संचालित करना है। पारंपरिक रूप से Bayesian optimization क्रमिक ढंग से काम करती है, एक समय में एक बिंदु चुनकर मूल्यांकन करती है। इसे बैच सेटिंग्स तक विस्तारित करना, जहाँ एक साथ कई बिंदुओं का मूल्यांकन होता है, सरल नहीं है और चुने गए बिंदुओं में विविधता और दक्षता सुनिश्चित करने के लिए सावधानीपूर्वक संतुलन की आवश्यकता होती है।
नॉन-मायॉपिक ऑप्टिमाइज़ेशन
यह इस चुनौती को संदर्भित करता है कि किन बिंदुओं का मूल्यांकन किया जाए इसके बारे में दीर्घकालिक, रणनीतिक निर्णय कैसे लिए जाएँ। नॉन-मायॉपिक विधियाँ वर्तमान मूल्यांकनों के भविष्य के प्रभावों पर विचार करती हैं, जो संगणनात्मक रूप से गहन और मॉडल करने में जटिल हो सकती हैं।
स्पेस का आयाम
जैसे-जैसे सर्च स्पेस का आयाम बढ़ता है, Bayesian optimization कम प्रभावी हो सकती है। यह 'कर्स ऑफ डायमेंशनलिटी' के कारण होता है, जहाँ स्पेस का आयतन घातीय रूप से बढ़ता है, जिससे सीमित संख्या के मूल्यांकनों के साथ ऑप्टिमा खोजना कठिन हो जाता है।
स्ट्रक्चर्ड सर्च स्पेस
कई वास्तविक दुनिया की समस्याओं में, सर्च स्पेस एक सरल, सतत n-आयामी स्पेस नहीं होता, बल्कि उसका जटिल ढांचा होता है, जैसे चर के बीच निर्भरताएँ या बाधाएँ। इन संरचित स्पेसेज़ को प्रभावी ढंग से संभालना एक महत्वपूर्ण चुनौती है।
मल्टी-टास्क/ऑब्जेक्टिव सर्च, मल्टी-फिडेलिटी सर्च
Bayesian optimization को एक साथ कई उद्देश्यों को संभालने या विभिन्न फिडेलिटी (सटीकता) वाले मूल्यांकनों से जानकारी एकीकृत करने के लिए विस्तारित करना जटिल है। इन परिदृश्यों में विभिन्न उद्देश्यों या मूल्यांकनों के विभिन्न स्तरों के बीच ट्रेड-ऑफ का संतुलन आवश्यक होता है।
वॉर्म-स्टार्ट सर्च
इसमें अनुकूलन प्रक्रिया को तेज़ करने के लिए पूर्व ज्ञान या डेटा का उपयोग शामिल है। इस जानकारी को परिणामों में पक्षपात लाए बिना Bayesian ढांचे में प्रभावी ढंग से सम्मिलित करना चुनौतीपूर्ण है।
मूल्यांकनों की बड़ी संख्या
यद्यपि Bayesian optimization उन परिदृश्यों के लिए डिज़ाइन की गई है जहाँ मूल्यांकन महंगे होते हैं, कुछ मामलों में बड़ी संख्या में मूल्यांकन अभी भी आवश्यक हो सकते हैं। इतनी बड़ी संख्या के मूल्यांकनों का प्रबंधन और उन पर कुशलतापूर्वक नेविगेट करना चुनौतीपूर्ण हो सकता है, विशेष रूप से संगणनात्मक संसाधनों और समय के संदर्भ में।
कठिन ऑब्जेक्टिव फंक्शंस
ऐसे ऑब्जेक्टिव फंक्शंस से निपटना जिनमें कई स्थानीय ऑप्टिमा, असांतत्याएँ, या नॉन-स्टेशनैरिटी (जहाँ फंक्शन समय के साथ बदलता है) हों, कठिन होता है। ये फंक्शंस अनुकूलन प्रक्रिया को भटका सकते हैं और ग्लोबल ऑप्टिमम खोजना चुनौतीपूर्ण बना सकते हैं।
अप्रत्यक्ष प्रेक्षण
कुछ परिदृश्यों में, ऑब्जेक्टिव फंक्शन को सीधे प्रेक्षित नहीं किया जा सकता, बल्कि केवल अप्रत्यक्ष मापों के माध्यम से देखा जा सकता है। यह जटिलता की एक परत जोड़ता है क्योंकि एल्गोरिद्म को इन अप्रत्यक्ष प्रेक्षणों से वास्तविक ऑब्जेक्टिव फंक्शन का अनुमान लगाना पड़ता है।
एक्विज़िशन फंक्शंस और निर्णय-निर्माण
Bayesian optimization में, एक्विज़िशन फंक्शंस का उपयोग इष्टतम मानों की खोज को मार्गदर्शित करने के लिए किया जाता है।
एक्विज़िशन फंक्शंस और सरोगेट मॉडल Bayesian optimization में परस्पर निर्भर होते हैं।
सरोगेट मॉडल ऑब्जेक्टिव फंक्शन की प्रायिकतामूलक भविष्यवाणी प्रदान करता है, जिसे एक्विज़िशन फंक्शन यह निर्धारित करने के लिए उपयोग करता है कि आगे किस बिंदु का मूल्यांकन किया जाए। साथ ही, Gaussian Process Regression जैसे सरोगेट मॉडल तब विशेष रूप से उपयोगी होते हैं जब ऑब्जेक्टिव फंक्शन जटिल हो या सीधे मूल्यांकन करना महंगा हो।
इसके अलावा, नए डेटा पॉइंट्स से सरोगेट मॉडल को लगातार अपडेट करके, एक्विज़िशन फंक्शन को सर्च स्पेस के उन क्षेत्रों की ओर अधिक सटीक रूप से निर्देशित किया जा सकता है जहाँ सर्वोत्तम परिणाम मिलने की सबसे अधिक संभावना होती है।
Bayesian optimization में कई एक्विज़िशन फंक्शंस का उपयोग किया जा सकता है, जिनमें शामिल हैं:
Thompson Sampling: यह फंक्शन ऑब्जेक्टिव फंक्शन के प्रायिकतामूलक अनुमान के आधार पर बिंदुओं का चयन करता है।
Upper Confidence Bound (UCB): यह फंक्शन उस बिंदु का चयन करने के लिए उपयोग होता है जिसमें अब तक देखे गए सर्वोत्तम मान में सुधार की सबसे अधिक संभावना हो। यह संभावित नए समाधान के परिणाम और वर्तमान सर्वोत्तम के बीच के अंतर का उपयोग करते हुए उसके सुधार की प्रायिकता की गणना करता है।
Probability of Improvement (PI): अब तक के सर्वोत्तम मान में सुधार की सर्वाधिक प्रायिकता वाले बिंदु का चयन करने के लिए उपयोग होता है।
Expected Improvement (EI): वर्तमान सर्वोत्तम देखे गए मान पर अपेक्षित सुधार को अधिकतम करने वाले बिंदु का चयन करने के लिए उपयोग होता है।
कोई एक सर्वश्रेष्ठ या सबसे खराब फंक्शन नहीं है। इन प्रत्येक एक्विज़िशन फंक्शंस की अपनी-अपनी खूबियाँ हैं और उन्हें हाथ में मौजूद ऑप्टिमाइज़ेशन समस्या की विशिष्ट आवश्यकताओं के आधार पर चुना जाता है।
Bayesian Optimization के अनुप्रयोग
Bayesian optimization को कई उद्योगों में सफलतापूर्वक लागू किया गया है, और यह खंड चार उपयोग-मामलों में इसके चित्रण पर केंद्रित है:
नेचुरल लैंग्वेज प्रोसेसिंग
मशीन लर्निंग और हाइपरपैरामीटर ट्यूनिंग
A/B टेस्टिंग, और
रीइन्फोर्समेंट लर्निंग और रोबोटिक्स
ये उदाहरण डेटा वैज्ञानिकों के लिए विशेष रूप से प्रासंगिक और सूचनाप्रद हैं।
नेचुरल लैंग्वेज प्रोसेसिंग
जब नेचुरल लैंग्वेज प्रोसेसिंग समस्याओं पर मशीन लर्निंग लागू की जाती है, तो इनपुट टेक्स्ट के प्रतिनिधित्व के बारे में कई विकल्प होते हैं, और ये विकल्प अंतर्निहित मॉडल के अंतिम परिणाम को प्रभावित कर सकते हैं।
Bayesian optimization का उपयोग NLP मॉडलों में पाठ का प्रतिनिधित्व करने के सर्वोत्तम तरीके को चुनने की प्रक्रिया को स्वचालित करने के लिए किया जाता है, जिससे मॉडल विकास प्रक्रिया सरल और अधिक कुशल हो जाती है, जबकि इन मॉडलों के समग्र प्रदर्शन को बरकरार रखते हुए या उसे बेहतर बनाते हुए।
एम्बेडिंग्स के बारे में अधिक जानने के लिए, हमारा कोर्स Introduction to Embeddings with OpenAI API OpenAI API का उपयोग करके एम्बेडिंग्स बनाने की एक संपूर्ण गाइड प्रदान करता है।
मशीन लर्निंग और हाइपरपैरामीटर ट्यूनिंग
ऑटोमैटिक मशीन लर्निंग (AutoML) में Bayesian optimization किसी दिए गए डेटासेट पर दिए गए समस्या के लिए सर्वोत्तम मॉडल और उसके हाइपरपैरामीटर्स का चयन स्वचालित करती है।
Bayesian optimization के हालिया अनुप्रयोगों ने डीप बिलीफ नेटवर्क्स, कॉन्वोल्यूशनल न्यूरल नेटवर्क्स, और मार्कोव चेन मोंटे कार्लो विधियों जैसे जटिल मॉडलों की ट्यूनिंग में इसकी प्रभावशीलता दिखाई है।
इसके अलावा, यह WEKA और scikit-learn जैसी लोकप्रिय मशीन लर्निंग लाइब्रेरीज़ द्वारा प्रस्तुत मॉडलों के बीच चयन प्रक्रिया को स्वचालित करने में भी फायदेमंद रही है।
A/B टेस्टिंग
A/B टेस्टिंग में, Bayesian Optimization का उपयोग विभिन्न प्रोडक्ट कॉन्फ़िगरेशन, जैसे विज्ञापन, ऐप्स, गेम्स, या वेबसाइटों, के परीक्षण की दक्षता बढ़ाने के लिए किया जाता है।
दो विकल्पों (A और B) को उपयोगकर्ताओं के एक छोटे उपसमूह को प्रस्तुत करके, डेवलपर विभिन्न मेट्रिक्स जैसे यूज़र एंगेजमेंट या क्लिक-थ्रू रेट को ऑप्टिमाइज़ करने के लिए फीडबैक एकत्र करते हैं, और मुख्य चुनौती सीमित यूज़र क्वेरी बजट में सर्वोत्तम प्रोडक्ट कॉन्फ़िगरेशन की पहचान करना होती है।
Bayesian Optimization इस प्रक्रिया को पहले के परीक्षणों से प्राप्त फीडबैक का उपयोग करके यह सूचित निर्णय लेने में मदद करके सुगम बनाता है कि अगली बार किन उपयोगकर्ता उपसमूहों से क्वेरी की जाए, जिससे अवसर-लागत को कम करते हुए प्रोडक्ट के समग्र प्रदर्शन को ऑप्टिमाइज़ किया जा सके।
रीइन्फोर्समेंट लर्निंग और रोबोटिक्स
Bayesian Optimization को रोबोटिक्स और रीइन्फोर्समेंट लर्निंग दोनों में प्रभावी रूप से लागू किया गया है।
रोबोटिक्स में, इसे Sony AIBO ERS-7 रोबोट के साथ प्रदर्शित किए गए अनुसार, वेग या स्मूदनेस जैसे विशिष्ट उद्देश्यों के लिए रोबोट की चाल (gait) को ऑप्टिमाइज़ करने के लिए उपयोग किया गया है। इसे नेविगेशनल कार्यों में भी नियुक्त किया गया है, जिससे रोबोट वातावरण में चलते हुए अपने स्थान और मैप अनुमानों के बारे में अनिश्चितता को कम कर सकें।
Bayesian optimization को पदानुक्रमित रीइन्फोर्समेंट लर्निंग में न्यूरल नेटवर्क नीतियों के पैरामीटर्स को स्वतः ट्यून करने और एक पदानुक्रमित प्रणाली के विभिन्न स्तरों पर वैल्यू फंक्शंस सीखने के लिए लागू किया गया है।
इसके अतिरिक्त, इस तकनीक का उपयोग डीप नेटवर्क्स का उपयोग करके इमेज ट्रैकिंग में अटेंशन पॉलिसी विकसित करने के लिए किया गया है, जो जटिल परिवेशों में सीखने और निर्णय लेने के विभिन्न पहलुओं के अनुरूप ढलने में इसकी बहुमुखी प्रतिभा को दर्शाता है।
Bayesian Optimization लागू करने की चरण-दर-चरण गाइड
पिछले अनुभागों ने Bayesian optimization की व्यापक समझ प्रदान की। यह खंड GPyOpt लाइब्रेरी का उपयोग करते हुए XGBRegressor के हाइपरपैरामीटर्स को ऑप्टिमाइज़ करने का तरीका प्रदर्शित करता है।
PyMC3 Bayesian optimization के लिए प्रयुक्त एक अन्य शक्तिशाली लाइब्रेरी है, और हमारा कोर्स Bayesian Data Analysis in Python वास्तविक दुनिया के कुछ उदाहरणों के साथ एक संपूर्ण गाइड प्रदान करता है।
दो विधियाँ लागू की जाती हैं: ग्रिड सर्च, और Bayesian optimization। उद्देश्य यह पहचानना है कि इनमें से कौन सर्वोत्तम हाइपरपैरामीटर्स देता है, जिससे बेहतर मॉडल प्राप्त हो। संपूर्ण सोर्स कोड इस DataLab वर्कबुक में उपलब्ध है; आप अपना स्वयं का वर्कबुक कॉपी बना सकते हैं ताकि ब्राउज़र में ही कोड को संपादित और चला सकें, अपने कंप्यूटर पर कुछ भी इंस्टॉल किए बिना।
पूर्वापेक्षाएँ
दोनों तकनीकों को सफलतापूर्वक चलाने के लिए निम्नलिखित लाइब्रेरीज़ आवश्यक हैं।
numpy: Python में संख्यात्मक कंप्यूटिंग के लिए लाइब्रेरी।
scipy: Python में वैज्ञानिक कंप्यूटिंग के लिए लाइब्रेरी।
sklearn: Python में मशीन लर्निंग के लिए लाइब्रेरी।
GPyOpt: Python में Bayesian optimization के लिए लाइब्रेरी।
Xgboost XGBoost मॉडल के लिए
इन लाइब्रेरीज़ को Jupyter notebook से निम्नानुसार pip कमांड का उपयोग करके इंस्टॉल किया जा सकता है:
!pip -q install xgboost scikit-learn GPyOpt numpyसंचालित द्वारा
पिछला कोड सफलतापूर्वक चलने के बाद, import कथन का उपयोग करके इम्पोर्ट्स किए जाते हैं:
import xgboost as xgb
from sklearn.datasets import fetch_california_housing as fch
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
from sklearn.model_selection import RandomizedSearchCV
from GPyOpt.methods import BayesianOptimization
from sklearn.model_selection import cross_val_score
import numpy as npसंचालित द्वारा
डेटासेट तैयारी
बेंचमार्किंग विश्लेषण California housing डेटासेट पर आधारित है।
डेटा का 70% XGBoost मॉडल को ट्रेन करने के लिए उपयोग किया जाता है
शेष 30% टेस्टिंग के लिए उपयोग किया जाता है
ट्रेनिंग और टेस्टिंग स्प्लिट नीचे वर्णित है:
# Load dataset
california_housing = fch()
X = california_housing.data
y = california_housing.target
# Split the dataset into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y,
test_size=0.3,
random_state=2024)संचालित द्वारा
ट्रेनिंग और टेस्टिंग डेटा लोड करने के बाद, हम .shape फ़ंक्शन का उपयोग करके उनके आकार की जाँच कर सकते हैं।
print(f"Training Shape: {X_train.shape}")print(f"Testing Shape: {X_test.shape}")संचालित द्वारा
रैंडम सर्च के साथ हाइपरपैरामीटर ट्यूनिंग
यह खंड बताता है कि scikit-learn मॉड्यूल की RandomizedSearchCV क्लास का उपयोग करते हुए XGBoost रिग्रेशन के लिए ग्रिडसर्च दृष्टिकोण के साथ हाइपरपैरामीटर ट्यूनिंग कैसे सेटअप और निष्पादित करें।
पैरामीटर ग्रिड सेटअप करें
param_dist नामक एक डिक्शनरी बनाई जाती है जिसमें अलग-अलग हाइपरपैरामीटर्स कुंजी के रूप में और उनके संभावित मानों की सूचियाँ संबंधित मानों के रूप में होती हैं। इन हाइपरपैरामीटर्स में शामिल हैं:
max_depth: एक ट्री की अधिकतम गहराई। मान: 3, 10, 5, 15।
min_child_weight: किसी चाइल्ड में आवश्यक इंस्टेंस वेट (हेशियन) का न्यूनतम योग। मान: 1, 5, 10।
subsample: ट्रेनिंग इंस्टेंसेज़ का सबसैंपल अनुपात। मान: 0.5, 0.7, 1.0।
colsample_bytree: प्रत्येक ट्री का निर्माण करते समय कॉलम्स का सबसैंपल अनुपात। मान: 0.5, 0.7, 1.0।
n_estimators: ग्रेडिएंट बूस्टेड ट्रीज़ की संख्या। बूस्टिंग राउंड्स की संख्या के समतुल्य। मान: 100, 200, 300, 400।
param_dist ={'max_depth':[3,10,5,15],'min_child_weight':[1,5,10],'subsample':[0.5,0.7,1.0],'colsample_bytree':[0.5,0.7,1.0],'n_estimators':[100,200,300,400],'learning_rate':[0.01,0.05,0.1,0.15,0.2]}संचालित द्वारा
XGBoost Regressor प्रारंभ करें
XGBoost लाइब्रेरी की XGBRegressor क्लास का एक इंस्टांस बनाया जाता है:
फिटेड मॉडल का best_params एट्रिब्यूट उन सर्वोत्तम हाइपरपैरामीटर्स की जानकारी रखता है जिनसे बेहतर प्रदर्शन वाला मॉडल मिला।
इन पैरामीटर्स को निम्नानुसार प्राप्त किया जा सकता है:
print("Random Search Best Parameters:", random_search.best_params_)संचालित द्वारा
रैंडम सर्च के सर्वोत्तम पैरामीटर्स
सभी संभावित पैरामीटर्स में से, रैंडम सर्च का उपयोग करते हुए XGBoost मॉडल के लिए सर्वोत्तम पैरामीटर्स नीचे दिए गए हैं:
'subsample':0.5,'n_estimators':400,'min_child_weight':5,'max_depth':10,'learning_rate':0.05,'colsample_bytree':1.0}संचालित द्वारा
मॉडल का मूल्यांकन
इन मानों का उपयोग करके, हम मॉडल का मूल्यांकन कर सकते हैं और इसका प्रदर्शन निम्नानुसार प्राप्त कर सकते हैं:
पहले, ट्रेनिंग से पहले सर्वोत्तम हाइपरपैरामीटर्स का उपयोग करके मॉडल को इनिशियलाइज़ करते हैं।
# Initialize and train the model
model_random_search = xgb.XGBRegressor(**params_random_search)
model_random_search.fit(X_train, y_train)संचालित द्वारा
इसके बाद, मॉडल का परीक्षण डेटा पर मूल्यांकन किया जाता है
predictions_random_search = model_random_search.predict(X_test)
mse_random_search = mean_squared_error(y_test, predictions_random_search)print("MSE for Random Search: ", mse_random_search)संचालित द्वारा
उपरोक्त कोड्स के सफल निष्पादन से निम्नलिखित मीन स्क्वेयर्ड एरर मान उत्पन्न होता है:
रैंडम सर्च हाइपरपैरामीटर्स का उपयोग करते हुए XGBoost के लिए MSE
Bayesian Optimization के साथ हाइपरपैरामीटर ट्यूनिंग
रैंडम सर्च की तरह ही, हम Bayesian optimization का उपयोग करते हुए सर्वोत्तम हाइपरपैरामीटर्स निकालने के लिए चरण-दर-चरण प्रक्रिया लागू करते हैं।
पैरामीटर बाउंड्स सेट करें
हाइपरपैरामीटर्स के लिए बाउंड्स baysian_opt_bounds सूची में परिभाषित किए गए हैं। प्रत्येक हाइपरपैरामीटर को name, type, और domain कुंजियों वाले एक डिक्शनरी के रूप में दर्शाया गया है।
max_depth, min_child_weight, n_estimators डिस्क्रीट वेरिएबल्स हैं।
subsample, colsample_bytree, learning_rate सतत (continuous) वेरिएबल्स हैं।
domain प्रत्येक हाइपरपैरामीटर के मानों की सीमा निर्दिष्ट करता है।
baysian_opt_bounds =[{'name':'max_depth','type':'discrete','domain':(3,10,5,15)},{'name':'min_child_weight','type':'discrete','domain':(1,5,10)},{'name':'subsample','type':'continuous','domain':(0.5,1.0)},{'name':'colsample_bytree','type':'continuous','domain':(0.5,1.0)},{'name':'n_estimators','type':'discrete','domain':(100,200,300,400)},{'name':'learning_rate','type':'continuous','domain':(0.01,0.2)}]संचालित द्वारा
ऑब्जेक्टिव फंक्शन की परिभाषा
xgb_cv_score नामक एक ऑब्जेक्टिव फंक्शन परिभाषित किया जाता है जो XGBoost मॉडल के क्रॉस-वैलिडेटेड नकारात्मक मीन स्क्वेयर्ड एरर की गणना करता है।
फंक्शन पैरामीटर्स के एक सेट को लेता है और उन्हें आवश्यक फॉर्मेट में बदलता है।
cross_val_score निर्दिष्ट पैरामीटर्स का उपयोग करके XGBoost मॉडल का मूल्यांकन करने के लिए उपयोग किया जाता है।
क्रॉस-वैलिडेशन से प्राप्त स्कोरों के नकारात्मक औसत को न्यूनतम करने हेतु ऑब्जेक्टिव के रूप में लौटाया जाता है।
Bayesian optimization को निम्नलिखित पैरामीटर्स के साथ इनस्टैंटिएट किया जाता है:
f=xgb_cv_score: न्यूनतम करने के लिए ऑब्जेक्टिव फंक्शन।
domain=baysian_opt_bounds: हाइपरपैरामीटर बाउंड्स।
model_type='GP': Gaussian Processes का उपयोग निर्दिष्ट करता है।
acquisition_type='EI': एक्विज़िशन फंक्शन के रूप में Expected Improvement का उपयोग करता है।
max_iter=25: ऑप्टिमाइज़ेशन प्रक्रिया के इटरेशंस की संख्या।
ऑप्टिमाइज़ेशन प्रक्रिया optimizer.run_optimization() के साथ शुरू की जाती है
optimizer = BayesianOptimization(
f=xgb_cv_score, domain=baysian_opt_bounds, model_type='GP',
acquisition_type='EI', max_iter=25)
optimizer.run_optimization()संचालित द्वारा
सर्वोत्तम पैरामीटर्स तक पहुँच
ऑप्टिमाइज़ेशन के बाद, सर्वोत्तम पैरामीटर्स निकाले और फॉर्मैट किए जाते हैं:
पैरामीटर्स optimizer.x_opt से प्राप्त किए जाते हैं।
डिस्क्रीट पैरामीटर्स (max_depth, min_child_weight, n_estimators) को इंटीजर में कास्ट किया जाता है।
सर्वोत्तम पैरामीटर्स प्रिंट किए जाते हैं:
print("Bayesian Optimization Best Parameters:", best_params_bayesian)संचालित द्वारा
Bayesian optimization के सर्वोत्तम पैरामीटर्स
मॉडल का मूल्यांकन
इनिशियलाइज़ेशन और फिटिंग प्रक्रिया पहले की तरह ही है। लेकिन इस बार, हम Bayesian optimization से प्राप्त पैरामीटर्स का उपयोग करते हैं:
params_bayesian_opt ={'max_depth':10,'min_child_weight':10,'subsample':0.820222997732141,'colsample_bytree':0.6710357796023916,'n_estimators':300,'learning_rate':0.04797554348030097}# Initialize and train the model
model_bayesian_opt = xgb.XGBRegressor(**params_bayesian_opt)
model_bayesian_opt.fit(X_train, y_train)# Make predictions and evaluate
predictions_bayesian_opt = model_bayesian_opt.predict(X_test)
mse_bayesian_opt = mean_squared_error(y_test, predictions_bayesian_opt)print("MSE for Bayesian Optimization: ", mse_bayesian_opt)संचालित द्वारा
उपरोक्त कोड सफलतापूर्वक चलाने के बाद मॉडल का प्रदर्शन प्राप्त होता है, और परिणाम नीचे दिया गया है:
Bayesian optimization हाइपरपैरामीटर्स का उपयोग करते हुए XGBoost के लिए MSE
परिणाम व्याख्या
इन दो प्रयोगों से, हम देखते हैं कि:
Bayesian Optimization में कम MSE: Bayesian Optimization से प्राप्त हाइपरपैरामीटर्स के साथ प्रशिक्षित मॉडल का MSE (0.204) रैंडम सर्च (0.219) की तुलना में कम है। यह कम मान दर्शाता है कि मॉडल औसतन वास्तविक डेटा पॉइंट्स के अधिक निकट है।
मॉडल प्रदर्शन: कम MSE इंगित करता है कि XGBoost मॉडल के लिए हाइपरपैरामीटर्स ट्यून करने में Bayesian Optimization अधिक प्रभावी रहा। यह परिणाम बताता है कि Bayesian Optimization द्वारा ट्यून किया गया मॉडल ट्रेनिंग डेटा से अनदेखे डेटा (यहाँ, टेस्ट सेट) पर बेहतर सामान्यीकरण करता है।
Bayesian optimization की दक्षता: Bayesian optimization आम तौर पर हाइपरपैरामीटर ट्यूनिंग में बेहतर प्रदर्शन देती है क्योंकि यह सर्वोत्तम पैरामीटर्स की खोज को निर्देशित करने के लिए एक प्रायिकतामूलक मॉडल का उपयोग करती है। यह पिछले मूल्यांकनों से सीखती है और खोज को सबसे संभावनाशील हाइपरपैरामीटर्स की ओर निर्देशित करती है, जो अक्सर रैंडम सर्च से बेहतर मान खोजने की ओर ले जाती है।
इस विशिष्ट मामले में, कम MSE से प्रमाणित होता है कि Bayesian Optimization विधि ने बेहतर परिणाम प्रदान किए। यह सुझाता है कि इस विशेष डेटासेट और मॉडल (XGBoost) के लिए, Bayesian Optimization टेस्ट सेट पर प्रेडिक्शन त्रुटि को न्यूनतम करने वाले हाइपरपैरामीटर्स के सेट की पहचान करने में अधिक प्रभावी रही।
यह ध्यान रखना महत्वपूर्ण है कि हालाँकि इस उदाहरण में Bayesian Optimization ने बेहतर प्रदर्शन दिखाया है, रैंडम सर्च और Bayesian Optimization के बीच चुनाव मॉडल की जटिलता, डेटा की प्रकृति, और संगणनात्मक संसाधनों जैसे विभिन्न कारकों पर निर्भर कर सकता है।
फिर भी, ऐसे परिदृश्यों में जहाँ हाइपरपैरामीटर ट्यूनिंग में सटीकता महत्वपूर्ण हो और संगणनात्मक संसाधन उपलब्ध हों, Bayesian Optimization अक्सर एक उत्कृष्ट विकल्प साबित होती है।
निष्कर्ष
इस लेख ने Bayesian Optimization का विस्तृत अन्वेषण प्रस्तुत किया है, जो जटिल फंक्शंस को ऑप्टिमाइज़ करने की एक प्रमुख तकनीक है।
हमने पहले यह परिभाषित किया कि Bayesian optimization क्या है, फिर फंक्शन ऑप्टिमाइज़ेशन में आने वाली चुनौतियों को संबोधित किया, जिससे Bayesian Optimization की प्रासंगिकता स्पष्ट हुई।
एक व्यावहारिक गाइड के माध्यम से, हमने कार्यान्वयन पहलुओं में गहराई से देखा, विशेषकर Gaussian Process Regression और एक्विज़िशन फंक्शंस पर ध्यान केंद्रित किया। चर्चा का एक महत्वपूर्ण भाग मशीन लर्निंग मॉडलों में हाइपरपैरामीटर ट्यूनिंग के लिए Bayesian Optimization लागू करने पर केंद्रित था, जिससे इसकी वास्तविक दुनिया की उपयोगिता प्रदर्शित हुई।
कुल मिलाकर, यह लेख एक परिचयात्मक अवलोकन और एक व्यावहारिक गाइड दोनों के रूप में कार्य करता है, जो मशीन लर्निंग और संगणनात्मक ऑप्टिमाइज़ेशन में Bayesian Optimization की महत्वपूर्ण भूमिका को उजागर करता है।
यह इन क्षेत्रों के प्रैक्टिशनर्स, शोधकर्ताओं, और उत्साहियों के लिए मूल्यवान अंतर्दृष्टि प्रदान करता है, और आधुनिक संगणनात्मक चुनौतियों में इस पद्धति की उपयोगिता और प्रभाव को रेखांकित करता है।
जो लोग Bayesian optimization और Python में इसके कार्यान्वयन के साथ अपनी संलग्नता को गहरा करना चाहते हैं, उनके लिए हमारा कोर्स Hyperparameter Tuning in Python Scikit Learn लाइब्रेरी का उपयोग करके स्वचालित हाइपरपैरामीटर ट्यूनिंग की कुछ सामान्य कार्यप्रणालियों का व्यावहारिक अनुभव प्रदान करता है। कुछ उन्नत कार्यप्रणालियों में Bayesian और Genetic एल्गोरिद्म शामिल हैं।
बहु-प्रतिभाशाली डेटा साइंटिस्ट जो अपना ज्ञान साझा करने और समुदाय को वापस देने में आनंद लेते हैं, ज़ूमाना YouTube पर कंटेंट क्रिएटर हैं और Medium पर शीर्ष तकनीकी लेखक हैं। उन्हें बोलने, कोडिंग करने और पढ़ाने में खुशी मिलती है। ज़ूमाना के पास दो मास्टर डिग्री हैं—पहली पेरिस, फ्रांस से कंप्यूटर साइंस में, मशीन लर्निंग पर केंद्रित, और दूसरी अमेरिका के टेक्सास टेक यूनिवर्सिटी से डेटा साइंस में। उनका करियर फ्रांस में Groupe OPEN में सॉफ्टवेयर डेवलपर के रूप में शुरू हुआ, जिसके बाद वे IBM में मशीन लर्निंग कंसल्टेंट बने, जहाँ उन्होंने बीमा कंपनियों के लिए एंड-टू-एंड एआई समाधान विकसित किए। ज़ूमाना ने Axionable, पेरिस और मॉन्ट्रियल स्थित पहली Sustainable AI स्टार्टअप, से जुड़कर डेटा साइंटिस्ट के रूप में काम किया और फ्रांस, मॉन्ट्रियल, सिंगापुर और स्विट्ज़रलैंड के क्लाइंट्स के लिए मुख्यतः NLP उपयोग मामलों पर आधारित एआई प्रोडक्ट्स लागू किए। इसके अतिरिक्त, अपने समय का 5% उन्होंने अनुसंधान और विकास को समर्पित किया। वर्तमान में, वे IFC - The World Bank Group में सीनियर डेटा साइंटिस्ट के रूप में कार्यरत हैं।
मशीन लर्निंग के व्यापक क्षेत्र में, मॉडल प्रशिक्षण के दौरान सर्वोत्तम हाइपरपैरामीटर्स खोजने के लिए विशाल और जटिल डेटासेट्स में नेविगेट करना एक सामान्य चुनौती है।
परंपरागत विधियाँ, जो अक्सर रैंडम और ग्रिड सर्च पर आधारित होती हैं, समय-साध्य और अल्प-प्रभावी हो सकती हैं, खासकर जब जटिल मॉडल आर्किटेक्चर या बड़े पैमाने के डेटा की बात आती है।
यहीं पर एक अधिक बुद्धिमान और अनुकूलनीय दृष्टिकोण, जैसे Bayesian optimization, हाइपरपैरामीटर ऑप्टिमाइज़ेशन के लिए अत्यंत महत्वपूर्ण हो जाता है।
इस लेख का पहला लक्ष्य यह समझाना है कि Bayesian optimization क्या है, जिससे पाठक को एक ठोस सैद्धांतिक आधार मिल सके। हालांकि, Bayesian optimization की अवधारणा में जाने से पहले, हमारे पास उपलब्ध विभिन्न हाइपरपैरामीटर ऑप्टिमाइज़ेशन को समझना महत्वपूर्ण है।
लेख का दूसरा भाग Python प्रोग्रामिंग भाषा का उपयोग करते हुए प्रमुख अवधारणाओं का एक अधिक व्यावहारिक कार्यान्वयन कवर करता है। अंतिम खंड में, पाठक सीखेंगे कि मशीन लर्निंग मॉडल के हाइपरपैरामीटर ट्यूनिंग के लिए Bayesian optimization का लाभ कैसे उठाया जाए।
Bayesian Optimization क्या है?
Bayesian optimization की परिभाषा में जाने से पहले, आइए सरल उदाहरणों के जरिए चार प्रमुख हाइपरपैरामीटर ऑप्टिमाइज़ेशन विधियों का एक अवलोकन कर लें:
मैनुअल सर्च
यह सबसे बुनियादी विधि है जो अनुभव, अंतर्ज्ञान, या ट्रायल-एंड-एरर पर आधारित होती है। यह अक्सर समय लेने वाली होती है और अभ्यासकर्ता की विशेषज्ञता पर काफी निर्भर करती है।
उदाहरण के लिए, एक अनुभवी बेकर अपने पिछले अनुभव और अंतर्ज्ञान के आधार पर ओवन का तापमान और बेकिंग का समय तय करता है।
एक सामान्य प्रारंभिक बिंदु 350°F तापमान और 30 मिनट का बेकिंग समय हो सकता है, जो आमतौर पर सफल सेटिंग्स को दर्शाता है। प्रत्येक बेकिंग प्रयास के परिणामों के आधार पर इन सेटिंग्स में समायोजन किए जाते हैं।
रैंडम सर्च
यह दृष्टिकोण निर्दिष्ट सीमा के भीतर तापमान और समय के संयोजनों को यादृच्छिक रूप से चुनता है। उदाहरण के लिए, तापमान 325°F से 375°F के बीच और समय 25 से 35 मिनट के बीच हो सकता है।
चयन प्रक्रिया 330°F पर 27 मिनट से शुरू हो सकती है, फिर 370°F पर 31 मिनट, और इस तरह यादृच्छिक रूप से तब तक जारी रहती है जब तक कि सबसे प्रभावी संयोजन की पहचान न हो जाए।
ग्रिड सर्च
इस विधि में हाइपरपैरामीटर मानों के कई संयोजनों का व्यवस्थित रूप से अन्वेषण किया जाता है।
इसी बेकिंग उदाहरण को जारी रखते हुए, बेकर दीवार पर तापमान और समय के संयोजनों का एक संरचित ग्रिड बनाता है।
ग्रिड में 325°F से 375°F के बीच हर 5°F पर, और 25 से 35 मिनट के बीच हर 2 मिनट पर मान शामिल हो सकते हैं। फिर केक को इस ग्रिड के हर एक संयोजन पर बेक किया जाएगा (325°F पर 25 मिनट, 325°F पर 27 मिनट, ... , 375°F पर 35 मिनट) ताकि सर्वोत्तम संयोजन निकाला जा सके।
Bayesian सर्च
Bayesian Optimization, एक केक के लिए सर्वोत्तम बेकिंग तापमान और समय खोजने का, रैंडम सर्च की तुलना में अधिक बुद्धिमान तरीका माना जा सकता है।
रैंडम सर्च में बेकर यादृच्छिक रूप से तापमान और समय के कई तरह के संयोजन आज़मा सकता है, जिनमें से कई का परिणाम अधपका या जला हुआ केक हो सकता है।
Bayesian optimization में, बेकर की खोज पिछले परिणामों से निर्देशित और सूचित होती है।
उदाहरण के लिए, यदि बेकर पाता है कि लगभग 350°F पर 30 मिनट तक बेक किए गए केक अधिक सफल होते हैं, तो भविष्य के प्रयासों में वह इन मूल्यों के आसपास के तापमान और समय के संयोजनों पर अधिक ध्यान देगा।
यह विधि आवश्यक ट्रायल्स की संख्या को कम कर देती है क्योंकि यह पिछले बेकिंग सत्रों के परिणामों के आधार पर उन संयोजनों को "सीखती" है जो एक परफेक्ट केक देने की अधिक संभावना रखते हैं।
कुल मिलाकर, Bayesian optimization, महंगी लागत पर मूल्यांकित होने वाले ऑब्जेक्टिव फंक्शनों को ऑप्टिमाइज़ करने के लिए Bayes प्रमेय पर आधारित है। यह विशेष रूप से उन परिदृश्यों में प्रभावी है जहां सैंपलिंग महंगी हो और ऑब्जेक्टिव फंक्शन अज्ञात हो लेकिन सैंपल किया जा सके।
Bayesian optimization आमतौर पर Gaussian Process जैसे प्रायिकतामूलक मॉडल का उपयोग ऑब्जेक्टिव फंक्शन का अनुमान लगाने के लिए करती है, और फिर अगला सैंपल कहाँ लेना है यह तय करने के लिए एक एक्विज़िशन फंक्शन का उपयोग करती है।
Bayesian Optimization की चुनौतियाँ
यह विधि कई क्षेत्रों में सफलतापूर्वक लागू की गई है। हालांकि, यह ध्यान देना महत्वपूर्ण है कि इसमें कुछ चुनौतियाँ भी हैं, और मुख्य चुनौतियाँ नीचे प्रस्तुत हैं:
बैच / समानांतर मूल्यांकन
एक चुनौती बैच या समानांतर मूल्यांकन को कुशलतापूर्वक संचालित करना है। पारंपरिक रूप से Bayesian optimization क्रमिक ढंग से काम करती है, एक समय में एक बिंदु चुनकर मूल्यांकन करती है। इसे बैच सेटिंग्स तक विस्तारित करना, जहाँ एक साथ कई बिंदुओं का मूल्यांकन होता है, सरल नहीं है और चुने गए बिंदुओं में विविधता और दक्षता सुनिश्चित करने के लिए सावधानीपूर्वक संतुलन की आवश्यकता होती है।
नॉन-मायॉपिक ऑप्टिमाइज़ेशन
यह इस चुनौती को संदर्भित करता है कि किन बिंदुओं का मूल्यांकन किया जाए इसके बारे में दीर्घकालिक, रणनीतिक निर्णय कैसे लिए जाएँ। नॉन-मायॉपिक विधियाँ वर्तमान मूल्यांकनों के भविष्य के प्रभावों पर विचार करती हैं, जो संगणनात्मक रूप से गहन और मॉडल करने में जटिल हो सकती हैं।
स्पेस का आयाम
जैसे-जैसे सर्च स्पेस का आयाम बढ़ता है, Bayesian optimization कम प्रभावी हो सकती है। यह 'कर्स ऑफ डायमेंशनलिटी' के कारण होता है, जहाँ स्पेस का आयतन घातीय रूप से बढ़ता है, जिससे सीमित संख्या के मूल्यांकनों के साथ ऑप्टिमा खोजना कठिन हो जाता है।
स्ट्रक्चर्ड सर्च स्पेस
कई वास्तविक दुनिया की समस्याओं में, सर्च स्पेस एक सरल, सतत n-आयामी स्पेस नहीं होता, बल्कि उसका जटिल ढांचा होता है, जैसे चर के बीच निर्भरताएँ या बाधाएँ। इन संरचित स्पेसेज़ को प्रभावी ढंग से संभालना एक महत्वपूर्ण चुनौती है।
मल्टी-टास्क/ऑब्जेक्टिव सर्च, मल्टी-फिडेलिटी सर्च
Bayesian optimization को एक साथ कई उद्देश्यों को संभालने या विभिन्न फिडेलिटी (सटीकता) वाले मूल्यांकनों से जानकारी एकीकृत करने के लिए विस्तारित करना जटिल है। इन परिदृश्यों में विभिन्न उद्देश्यों या मूल्यांकनों के विभिन्न स्तरों के बीच ट्रेड-ऑफ का संतुलन आवश्यक होता है।
वॉर्म-स्टार्ट सर्च
इसमें अनुकूलन प्रक्रिया को तेज़ करने के लिए पूर्व ज्ञान या डेटा का उपयोग शामिल है। इस जानकारी को परिणामों में पक्षपात लाए बिना Bayesian ढांचे में प्रभावी ढंग से सम्मिलित करना चुनौतीपूर्ण है।
मूल्यांकनों की बड़ी संख्या
यद्यपि Bayesian optimization उन परिदृश्यों के लिए डिज़ाइन की गई है जहाँ मूल्यांकन महंगे होते हैं, कुछ मामलों में बड़ी संख्या में मूल्यांकन अभी भी आवश्यक हो सकते हैं। इतनी बड़ी संख्या के मूल्यांकनों का प्रबंधन और उन पर कुशलतापूर्वक नेविगेट करना चुनौतीपूर्ण हो सकता है, विशेष रूप से संगणनात्मक संसाधनों और समय के संदर्भ में।
कठिन ऑब्जेक्टिव फंक्शंस
ऐसे ऑब्जेक्टिव फंक्शंस से निपटना जिनमें कई स्थानीय ऑप्टिमा, असांतत्याएँ, या नॉन-स्टेशनैरिटी (जहाँ फंक्शन समय के साथ बदलता है) हों, कठिन होता है। ये फंक्शंस अनुकूलन प्रक्रिया को भटका सकते हैं और ग्लोबल ऑप्टिमम खोजना चुनौतीपूर्ण बना सकते हैं।
अप्रत्यक्ष प्रेक्षण
कुछ परिदृश्यों में, ऑब्जेक्टिव फंक्शन को सीधे प्रेक्षित नहीं किया जा सकता, बल्कि केवल अप्रत्यक्ष मापों के माध्यम से देखा जा सकता है। यह जटिलता की एक परत जोड़ता है क्योंकि एल्गोरिद्म को इन अप्रत्यक्ष प्रेक्षणों से वास्तविक ऑब्जेक्टिव फंक्शन का अनुमान लगाना पड़ता है।
एक्विज़िशन फंक्शंस और निर्णय-निर्माण
Bayesian optimization में, एक्विज़िशन फंक्शंस का उपयोग इष्टतम मानों की खोज को मार्गदर्शित करने के लिए किया जाता है।
एक्विज़िशन फंक्शंस और सरोगेट मॉडल Bayesian optimization में परस्पर निर्भर होते हैं।
सरोगेट मॉडल ऑब्जेक्टिव फंक्शन की प्रायिकतामूलक भविष्यवाणी प्रदान करता है, जिसे एक्विज़िशन फंक्शन यह निर्धारित करने के लिए उपयोग करता है कि आगे किस बिंदु का मूल्यांकन किया जाए। साथ ही, Gaussian Process Regression जैसे सरोगेट मॉडल तब विशेष रूप से उपयोगी होते हैं जब ऑब्जेक्टिव फंक्शन जटिल हो या सीधे मूल्यांकन करना महंगा हो।
इसके अलावा, नए डेटा पॉइंट्स से सरोगेट मॉडल को लगातार अपडेट करके, एक्विज़िशन फंक्शन को सर्च स्पेस के उन क्षेत्रों की ओर अधिक सटीक रूप से निर्देशित किया जा सकता है जहाँ सर्वोत्तम परिणाम मिलने की सबसे अधिक संभावना होती है।
Bayesian optimization में कई एक्विज़िशन फंक्शंस का उपयोग किया जा सकता है, जिनमें शामिल हैं:
कोई एक सर्वश्रेष्ठ या सबसे खराब फंक्शन नहीं है। इन प्रत्येक एक्विज़िशन फंक्शंस की अपनी-अपनी खूबियाँ हैं और उन्हें हाथ में मौजूद ऑप्टिमाइज़ेशन समस्या की विशिष्ट आवश्यकताओं के आधार पर चुना जाता है।
Bayesian Optimization के अनुप्रयोग
Bayesian optimization को कई उद्योगों में सफलतापूर्वक लागू किया गया है, और यह खंड चार उपयोग-मामलों में इसके चित्रण पर केंद्रित है:
ये उदाहरण डेटा वैज्ञानिकों के लिए विशेष रूप से प्रासंगिक और सूचनाप्रद हैं।
नेचुरल लैंग्वेज प्रोसेसिंग
जब नेचुरल लैंग्वेज प्रोसेसिंग समस्याओं पर मशीन लर्निंग लागू की जाती है, तो इनपुट टेक्स्ट के प्रतिनिधित्व के बारे में कई विकल्प होते हैं, और ये विकल्प अंतर्निहित मॉडल के अंतिम परिणाम को प्रभावित कर सकते हैं।
Bayesian optimization का उपयोग NLP मॉडलों में पाठ का प्रतिनिधित्व करने के सर्वोत्तम तरीके को चुनने की प्रक्रिया को स्वचालित करने के लिए किया जाता है, जिससे मॉडल विकास प्रक्रिया सरल और अधिक कुशल हो जाती है, जबकि इन मॉडलों के समग्र प्रदर्शन को बरकरार रखते हुए या उसे बेहतर बनाते हुए।
एम्बेडिंग्स के बारे में अधिक जानने के लिए, हमारा कोर्स Introduction to Embeddings with OpenAI API OpenAI API का उपयोग करके एम्बेडिंग्स बनाने की एक संपूर्ण गाइड प्रदान करता है।
मशीन लर्निंग और हाइपरपैरामीटर ट्यूनिंग
ऑटोमैटिक मशीन लर्निंग (AutoML) में Bayesian optimization किसी दिए गए डेटासेट पर दिए गए समस्या के लिए सर्वोत्तम मॉडल और उसके हाइपरपैरामीटर्स का चयन स्वचालित करती है।
Bayesian optimization के हालिया अनुप्रयोगों ने डीप बिलीफ नेटवर्क्स, कॉन्वोल्यूशनल न्यूरल नेटवर्क्स, और मार्कोव चेन मोंटे कार्लो विधियों जैसे जटिल मॉडलों की ट्यूनिंग में इसकी प्रभावशीलता दिखाई है।
इसके अलावा, यह WEKA और scikit-learn जैसी लोकप्रिय मशीन लर्निंग लाइब्रेरीज़ द्वारा प्रस्तुत मॉडलों के बीच चयन प्रक्रिया को स्वचालित करने में भी फायदेमंद रही है।
A/B टेस्टिंग
A/B टेस्टिंग में, Bayesian Optimization का उपयोग विभिन्न प्रोडक्ट कॉन्फ़िगरेशन, जैसे विज्ञापन, ऐप्स, गेम्स, या वेबसाइटों, के परीक्षण की दक्षता बढ़ाने के लिए किया जाता है।
दो विकल्पों (A और B) को उपयोगकर्ताओं के एक छोटे उपसमूह को प्रस्तुत करके, डेवलपर विभिन्न मेट्रिक्स जैसे यूज़र एंगेजमेंट या क्लिक-थ्रू रेट को ऑप्टिमाइज़ करने के लिए फीडबैक एकत्र करते हैं, और मुख्य चुनौती सीमित यूज़र क्वेरी बजट में सर्वोत्तम प्रोडक्ट कॉन्फ़िगरेशन की पहचान करना होती है।
Bayesian Optimization इस प्रक्रिया को पहले के परीक्षणों से प्राप्त फीडबैक का उपयोग करके यह सूचित निर्णय लेने में मदद करके सुगम बनाता है कि अगली बार किन उपयोगकर्ता उपसमूहों से क्वेरी की जाए, जिससे अवसर-लागत को कम करते हुए प्रोडक्ट के समग्र प्रदर्शन को ऑप्टिमाइज़ किया जा सके।
रीइन्फोर्समेंट लर्निंग और रोबोटिक्स
Bayesian Optimization को रोबोटिक्स और रीइन्फोर्समेंट लर्निंग दोनों में प्रभावी रूप से लागू किया गया है।
रोबोटिक्स में, इसे Sony AIBO ERS-7 रोबोट के साथ प्रदर्शित किए गए अनुसार, वेग या स्मूदनेस जैसे विशिष्ट उद्देश्यों के लिए रोबोट की चाल (gait) को ऑप्टिमाइज़ करने के लिए उपयोग किया गया है। इसे नेविगेशनल कार्यों में भी नियुक्त किया गया है, जिससे रोबोट वातावरण में चलते हुए अपने स्थान और मैप अनुमानों के बारे में अनिश्चितता को कम कर सकें।
Bayesian optimization को पदानुक्रमित रीइन्फोर्समेंट लर्निंग में न्यूरल नेटवर्क नीतियों के पैरामीटर्स को स्वतः ट्यून करने और एक पदानुक्रमित प्रणाली के विभिन्न स्तरों पर वैल्यू फंक्शंस सीखने के लिए लागू किया गया है।
इसके अतिरिक्त, इस तकनीक का उपयोग डीप नेटवर्क्स का उपयोग करके इमेज ट्रैकिंग में अटेंशन पॉलिसी विकसित करने के लिए किया गया है, जो जटिल परिवेशों में सीखने और निर्णय लेने के विभिन्न पहलुओं के अनुरूप ढलने में इसकी बहुमुखी प्रतिभा को दर्शाता है।
Bayesian Optimization लागू करने की चरण-दर-चरण गाइड
पिछले अनुभागों ने Bayesian optimization की व्यापक समझ प्रदान की। यह खंड GPyOpt लाइब्रेरी का उपयोग करते हुए XGBRegressor के हाइपरपैरामीटर्स को ऑप्टिमाइज़ करने का तरीका प्रदर्शित करता है।
PyMC3 Bayesian optimization के लिए प्रयुक्त एक अन्य शक्तिशाली लाइब्रेरी है, और हमारा कोर्स Bayesian Data Analysis in Python वास्तविक दुनिया के कुछ उदाहरणों के साथ एक संपूर्ण गाइड प्रदान करता है।
जो लोग R प्रोग्रामिंग भाषा का उपयोग करते हुए Bayesian optimization लागू करना चाहते हैं, उनके लिए हमारा कोर्स Fundamentals of Bayesian Data Analysis in R उपयुक्त है।
दो विधियाँ लागू की जाती हैं: ग्रिड सर्च, और Bayesian optimization। उद्देश्य यह पहचानना है कि इनमें से कौन सर्वोत्तम हाइपरपैरामीटर्स देता है, जिससे बेहतर मॉडल प्राप्त हो। संपूर्ण सोर्स कोड इस DataLab वर्कबुक में उपलब्ध है; आप अपना स्वयं का वर्कबुक कॉपी बना सकते हैं ताकि ब्राउज़र में ही कोड को संपादित और चला सकें, अपने कंप्यूटर पर कुछ भी इंस्टॉल किए बिना।
पूर्वापेक्षाएँ
दोनों तकनीकों को सफलतापूर्वक चलाने के लिए निम्नलिखित लाइब्रेरीज़ आवश्यक हैं।
इन लाइब्रेरीज़ को Jupyter notebook से निम्नानुसार pip कमांड का उपयोग करके इंस्टॉल किया जा सकता है:
पिछला कोड सफलतापूर्वक चलने के बाद, import कथन का उपयोग करके इम्पोर्ट्स किए जाते हैं:
डेटासेट तैयारी
बेंचमार्किंग विश्लेषण California housing डेटासेट पर आधारित है।
ट्रेनिंग और टेस्टिंग स्प्लिट नीचे वर्णित है:
ट्रेनिंग और टेस्टिंग डेटा लोड करने के बाद, हम .shape फ़ंक्शन का उपयोग करके उनके आकार की जाँच कर सकते हैं।
रैंडम सर्च के साथ हाइपरपैरामीटर ट्यूनिंग
यह खंड बताता है कि scikit-learn मॉड्यूल की RandomizedSearchCV क्लास का उपयोग करते हुए XGBoost रिग्रेशन के लिए ग्रिडसर्च दृष्टिकोण के साथ हाइपरपैरामीटर ट्यूनिंग कैसे सेटअप और निष्पादित करें।
पैरामीटर ग्रिड सेटअप करें
param_distनामक एक डिक्शनरी बनाई जाती है जिसमें अलग-अलग हाइपरपैरामीटर्स कुंजी के रूप में और उनके संभावित मानों की सूचियाँ संबंधित मानों के रूप में होती हैं। इन हाइपरपैरामीटर्स में शामिल हैं:XGBoost Regressor प्रारंभ करें
XGBoost लाइब्रेरी की
XGBRegressorक्लास का एक इंस्टांस बनाया जाता है:RandomizedSearchCV कॉन्फ़िगर करें
RandomizedSearchCV को निम्नलिखित पैरामीटर्स के साथ सेट किया जाता है:
मॉडल फिट करना और पैरामीटर्स पाना
fit मेथड का उपयोग दिए गए ट्रेनिंग डेटा (X_train और y_train) पर रैंडमाइज़्ड सर्च चलाने के लिए किया जाता है:
फिटेड मॉडल का best_params एट्रिब्यूट उन सर्वोत्तम हाइपरपैरामीटर्स की जानकारी रखता है जिनसे बेहतर प्रदर्शन वाला मॉडल मिला।
इन पैरामीटर्स को निम्नानुसार प्राप्त किया जा सकता है:
रैंडम सर्च के सर्वोत्तम पैरामीटर्स
सभी संभावित पैरामीटर्स में से, रैंडम सर्च का उपयोग करते हुए XGBoost मॉडल के लिए सर्वोत्तम पैरामीटर्स नीचे दिए गए हैं:
मॉडल का मूल्यांकन
इन मानों का उपयोग करके, हम मॉडल का मूल्यांकन कर सकते हैं और इसका प्रदर्शन निम्नानुसार प्राप्त कर सकते हैं:
पहले, ट्रेनिंग से पहले सर्वोत्तम हाइपरपैरामीटर्स का उपयोग करके मॉडल को इनिशियलाइज़ करते हैं।
इसके बाद, मॉडल का परीक्षण डेटा पर मूल्यांकन किया जाता है
उपरोक्त कोड्स के सफल निष्पादन से निम्नलिखित मीन स्क्वेयर्ड एरर मान उत्पन्न होता है:
रैंडम सर्च हाइपरपैरामीटर्स का उपयोग करते हुए XGBoost के लिए MSE
Bayesian Optimization के साथ हाइपरपैरामीटर ट्यूनिंग
रैंडम सर्च की तरह ही, हम Bayesian optimization का उपयोग करते हुए सर्वोत्तम हाइपरपैरामीटर्स निकालने के लिए चरण-दर-चरण प्रक्रिया लागू करते हैं।
पैरामीटर बाउंड्स सेट करें
हाइपरपैरामीटर्स के लिए बाउंड्स baysian_opt_bounds सूची में परिभाषित किए गए हैं। प्रत्येक हाइपरपैरामीटर को name, type, और domain कुंजियों वाले एक डिक्शनरी के रूप में दर्शाया गया है।
ऑब्जेक्टिव फंक्शन की परिभाषा
xgb_cv_score नामक एक ऑब्जेक्टिव फंक्शन परिभाषित किया जाता है जो XGBoost मॉडल के क्रॉस-वैलिडेटेड नकारात्मक मीन स्क्वेयर्ड एरर की गणना करता है।
Bayesian मॉडल को इनिशियलाइज़ और रन करें
Bayesian optimization को निम्नलिखित पैरामीटर्स के साथ इनस्टैंटिएट किया जाता है:
ऑप्टिमाइज़ेशन प्रक्रिया optimizer.run_optimization() के साथ शुरू की जाती है
सर्वोत्तम पैरामीटर्स तक पहुँच
ऑप्टिमाइज़ेशन के बाद, सर्वोत्तम पैरामीटर्स निकाले और फॉर्मैट किए जाते हैं:
सर्वोत्तम पैरामीटर्स प्रिंट किए जाते हैं:
Bayesian optimization के सर्वोत्तम पैरामीटर्स
मॉडल का मूल्यांकन
इनिशियलाइज़ेशन और फिटिंग प्रक्रिया पहले की तरह ही है। लेकिन इस बार, हम Bayesian optimization से प्राप्त पैरामीटर्स का उपयोग करते हैं:
उपरोक्त कोड सफलतापूर्वक चलाने के बाद मॉडल का प्रदर्शन प्राप्त होता है, और परिणाम नीचे दिया गया है:
Bayesian optimization हाइपरपैरामीटर्स का उपयोग करते हुए XGBoost के लिए MSE
परिणाम व्याख्या
इन दो प्रयोगों से, हम देखते हैं कि:
इस विशिष्ट मामले में, कम MSE से प्रमाणित होता है कि Bayesian Optimization विधि ने बेहतर परिणाम प्रदान किए। यह सुझाता है कि इस विशेष डेटासेट और मॉडल (XGBoost) के लिए, Bayesian Optimization टेस्ट सेट पर प्रेडिक्शन त्रुटि को न्यूनतम करने वाले हाइपरपैरामीटर्स के सेट की पहचान करने में अधिक प्रभावी रही।
यह ध्यान रखना महत्वपूर्ण है कि हालाँकि इस उदाहरण में Bayesian Optimization ने बेहतर प्रदर्शन दिखाया है, रैंडम सर्च और Bayesian Optimization के बीच चुनाव मॉडल की जटिलता, डेटा की प्रकृति, और संगणनात्मक संसाधनों जैसे विभिन्न कारकों पर निर्भर कर सकता है।
फिर भी, ऐसे परिदृश्यों में जहाँ हाइपरपैरामीटर ट्यूनिंग में सटीकता महत्वपूर्ण हो और संगणनात्मक संसाधन उपलब्ध हों, Bayesian Optimization अक्सर एक उत्कृष्ट विकल्प साबित होती है।
निष्कर्ष
इस लेख ने Bayesian Optimization का विस्तृत अन्वेषण प्रस्तुत किया है, जो जटिल फंक्शंस को ऑप्टिमाइज़ करने की एक प्रमुख तकनीक है।
हमने पहले यह परिभाषित किया कि Bayesian optimization क्या है, फिर फंक्शन ऑप्टिमाइज़ेशन में आने वाली चुनौतियों को संबोधित किया, जिससे Bayesian Optimization की प्रासंगिकता स्पष्ट हुई।
एक व्यावहारिक गाइड के माध्यम से, हमने कार्यान्वयन पहलुओं में गहराई से देखा, विशेषकर Gaussian Process Regression और एक्विज़िशन फंक्शंस पर ध्यान केंद्रित किया। चर्चा का एक महत्वपूर्ण भाग मशीन लर्निंग मॉडलों में हाइपरपैरामीटर ट्यूनिंग के लिए Bayesian Optimization लागू करने पर केंद्रित था, जिससे इसकी वास्तविक दुनिया की उपयोगिता प्रदर्शित हुई।
कुल मिलाकर, यह लेख एक परिचयात्मक अवलोकन और एक व्यावहारिक गाइड दोनों के रूप में कार्य करता है, जो मशीन लर्निंग और संगणनात्मक ऑप्टिमाइज़ेशन में Bayesian Optimization की महत्वपूर्ण भूमिका को उजागर करता है।
यह इन क्षेत्रों के प्रैक्टिशनर्स, शोधकर्ताओं, और उत्साहियों के लिए मूल्यवान अंतर्दृष्टि प्रदान करता है, और आधुनिक संगणनात्मक चुनौतियों में इस पद्धति की उपयोगिता और प्रभाव को रेखांकित करता है।
जो लोग Bayesian optimization और Python में इसके कार्यान्वयन के साथ अपनी संलग्नता को गहरा करना चाहते हैं, उनके लिए हमारा कोर्स Hyperparameter Tuning in Python Scikit Learn लाइब्रेरी का उपयोग करके स्वचालित हाइपरपैरामीटर ट्यूनिंग की कुछ सामान्य कार्यप्रणालियों का व्यावहारिक अनुभव प्रदान करता है। कुछ उन्नत कार्यप्रणालियों में Bayesian और Genetic एल्गोरिद्म शामिल हैं।