
1:05:34
Keras Tuner | Hyperparameter Tuning a Neural Network
CampusX
Overview
यह वीडियो न्यूरल नेटवर्क के लिए हाइपरपैरामीटर ट्यूनिंग की प्रक्रिया को समझाता है। यह बताता है कि कैसे Keras Tuner लाइब्रेरी का उपयोग करके मॉडल के प्रदर्शन को बेहतर बनाने के लिए विभिन्न हाइपरपैरामीटर जैसे ऑप्टिमाइज़र, लेयर्स की संख्या, न्यूरॉन्स की संख्या और एक्टिवेशन फ़ंक्शन को स्वचालित रूप से चुना जा सकता है। वीडियो में एक डायबिटीज डेटासेट का उपयोग करके व्यावहारिक उदाहरण दिए गए हैं, जिसमें डेटा प्रीप्रोसेसिंग, मॉडल बिल्डिंग और ट्यूनिंग प्रक्रिया के विभिन्न चरणों को विस्तार से दिखाया गया है।
How was this?
Save this permanently with flashcards, quizzes, and AI chat
Chapters
- न्यूरल नेटवर्क बनाते समय, लेयर्स की संख्या, नोट्स की संख्या, एक्टिवेशन फ़ंक्शन, बैच साइज़ और ऑप्टिमाइज़र जैसे कई निर्णय लेने पड़ते हैं।
- इन हाइपरपैरामीटर्स के लिए सही मान पहले से जानना मुश्किल होता है और इन्हें ट्रायल-एंड-एरर से खोजना पड़ता है।
- हाइपरपैरामीटर ट्यूनिंग इन सही मानों को स्वचालित रूप से खोजने की प्रक्रिया है ताकि मॉडल का प्रदर्शन बेहतर हो सके।
- Keras Tuner एक लोकप्रिय लाइब्रेरी है जो इस प्रक्रिया को आसान बनाती है।
यह समझना महत्वपूर्ण है कि हाइपरपैरामीटर ट्यूनिंग क्यों आवश्यक है, क्योंकि यह सीधे मॉडल की सटीकता और दक्षता को प्रभावित करता है।
एक न्यूरल नेटवर्क में कितनी हिडन लेयर्स होनी चाहिए, या हर लेयर में कितने न्यूरॉन्स होने चाहिए, यह तय करना एक हाइपरपैरामीटर ट्यूनिंग का उदाहरण है।
- वीडियो में डायबिटीज प्रेडिक्शन के लिए एक छोटे डेटासेट का उपयोग किया गया है।
- डेटा को अपलोड करने और Pandas का उपयोग करके लोड करने की प्रक्रिया दिखाई गई है।
- डेटा को स्केल करने के लिए StandardScaler का उपयोग किया गया है ताकि सभी फीचर्स एक समान रेंज में हों।
- डेटा को ट्रेनिंग और टेस्टिंग सेट में विभाजित किया गया है।
- एक साधारण सीक्वेंशियल मॉडल बनाया गया है जिसमें दो डेंस लेयर्स हैं।
किसी भी मशीन लर्निंग प्रोजेक्ट के लिए डेटा को सही ढंग से तैयार करना और एक बेसिक मॉडल बनाना पहला महत्वपूर्ण कदम है, जिस पर हाइपरपैरामीटर ट्यूनिंग लागू की जाएगी।
डायबिटीज डेटासेट को लोड करना, फीचर्स को चुनना (जैसे प्रेगनेंसी, ग्लूकोज लेवल आदि), और आउटकम कॉलम (डायबिटीज है या नहीं) को अलग करना।
- Keras Tuner का उपयोग करने के लिए, पहले इसे इंस्टॉल करना होगा।
- एक बिल्ड मॉडल फ़ंक्शन बनाया जाता है जो हाइपरपैरामीटर ऑब्जेक्ट (hp) लेता है और मॉडल को रिटर्न करता है।
- ऑप्टिमाइज़र को ट्यून करने के लिए, hp.choice का उपयोग करके विभिन्न ऑप्टिमाइज़र (जैसे Adam, SGD, RMSprop) में से चुना जाता है।
- ट्यूनर ऑब्जेक्ट (जैसे RandomSearch) बनाया जाता है जिसमें बिल्ड मॉडल फ़ंक्शन, ऑब्जेक्टिव (जैसे एक्यूरेसी को मैक्सिमाइज़ करना) और ट्रायल्स की संख्या दी जाती है।
- ट्यूनर के सर्च मेथड का उपयोग करके मॉडल को ट्रेन किया जाता है और बेस्ट हाइपरपैरामीटर ढूंढे जाते हैं।
सही ऑप्टिमाइज़र का चुनाव मॉडल की कन्वर्जेंस स्पीड और अंतिम प्रदर्शन को महत्वपूर्ण रूप से प्रभावित कर सकता है।
Adam, SGD, और RMSprop जैसे विभिन्न ऑप्टिमाइज़र को आज़माकर यह देखना कि कौन सा वैलिडेशन एक्यूरेसी को सबसे ज़्यादा बढ़ाता है।
- न्यूरल नेटवर्क की परफॉरमेंस लेयर्स में न्यूरॉन्स की संख्या पर भी निर्भर करती है।
- hp.integer का उपयोग करके न्यूरॉन्स की संख्या के लिए एक रेंज (जैसे 8 से 128 तक) परिभाषित की जाती है।
- ट्यूनर इस रेंज में विभिन्न संख्या में न्यूरॉन्स के साथ मॉडल बनाता है और टेस्ट करता है।
- यह प्रक्रिया मॉडल को ओवरफिटिंग या अंडरफिटिंग से बचाने में मदद करती है।
- बेस्ट परफॉर्मिंग न्यूरॉन्स की संख्या को ट्यूनर द्वारा पहचाना जाता है।
लेयर्स में न्यूरॉन्स की सही संख्या मॉडल की सीखने की क्षमता और जटिल पैटर्न को पकड़ने की क्षमता के बीच संतुलन बनाने के लिए महत्वपूर्ण है।
एक लेयर में 32 न्यूरॉन्स के बजाय, ट्यूनर 8, 16, 24, 32, ..., 128 जैसे विभिन्न मानों को आज़माएगा और देखेगा कि कौन सा सबसे अच्छा परिणाम देता है।
- मॉडल में कितनी लेयर्स होनी चाहिए, यह भी एक महत्वपूर्ण हाइपरपैरामीटर है।
- hp.integer का उपयोग करके लेयर्स की संख्या के लिए एक रेंज (जैसे 1 से 10 तक) परिभाषित की जाती है।
- ट्यूनर इस रेंज में विभिन्न संख्या में लेयर्स के साथ मॉडल बनाएगा और टेस्ट करेगा।
- यह सुनिश्चित करता है कि मॉडल समस्या को हल करने के लिए पर्याप्त जटिल है, लेकिन ओवरफिटिंग का शिकार नहीं होता है।
- ट्यूनर सबसे अच्छा प्रदर्शन करने वाली लेयर्स की संख्या का सुझाव देगा।
लेयर्स की सही संख्या मॉडल को डेटा में जटिल संबंधों को सीखने की अनुमति देती है, जबकि बहुत अधिक लेयर्स ओवरफिटिंग का कारण बन सकती हैं।
ट्यूनर 1, 2, 3, ..., 10 लेयर्स वाले मॉडल का परीक्षण करेगा और देखेगा कि कौन सी संख्या सबसे अच्छी एक्यूरेसी देती है।
- एक ही मॉडल में कई हाइपरपैरामीटर्स (जैसे लेयर्स की संख्या, न्यूरॉन्स की संख्या, एक्टिवेशन फ़ंक्शन, ऑप्टिमाइज़र, ड्रॉपआउट रेट) को एक साथ ट्यून किया जा सकता है।
- इसके लिए, बिल्ड मॉडल फ़ंक्शन में hp.choice, hp.integer, और hp.Float जैसे विभिन्न हाइपरपैरामीटर एपीआई का उपयोग किया जाता है।
- ड्रॉपआउट रेट जैसे हाइपरपैरामीटर ओवरफिटिंग को कम करने में मदद करते हैं।
- ट्यूनर इन सभी संयोजनों का परीक्षण करके सबसे अच्छा मॉडल ढूंढता है।
- ट्यूनर परिणाम को एक डायरेक्टरी में सेव करता है, जिससे बेस्ट मॉडल को बाद में लोड और उपयोग किया जा सकता है।
सभी महत्वपूर्ण हाइपरपैरामीटर्स को एक साथ ट्यून करने से मॉडल के प्रदर्शन में अधिकतम सुधार हो सकता है, जिससे एक अत्यधिक अनुकूलित मॉडल प्राप्त होता है।
एक ही बार में लेयर्स की संख्या (1-10), हर लेयर में न्यूरॉन्स (8-128), एक्टिवेशन फ़ंक्शन (ReLU, Sigmoid), ऑप्टिमाइज़र (Adam, RMSprop), और ड्रॉपआउट रेट (0.1-0.9) को ट्यून करना।
Key takeaways
- हाइपरपैरामीटर ट्यूनिंग न्यूरल नेटवर्क के प्रदर्शन को बेहतर बनाने के लिए एक आवश्यक प्रक्रिया है।
- Keras Tuner जैसी लाइब्रेरी इस प्रक्रिया को स्वचालित करके समय और प्रयास बचाती है।
- ऑप्टिमाइज़र, लेयर्स की संख्या, न्यूरॉन्स की संख्या, और एक्टिवेशन फ़ंक्शन जैसे हाइपरपैरामीटर मॉडल की सटीकता को महत्वपूर्ण रूप से प्रभावित करते हैं।
- ड्रॉपआउट जैसी तकनीकें ओवरफिटिंग को रोकने में मदद करती हैं, और इन्हें भी ट्यून किया जा सकता है।
- ट्यूनिंग प्रक्रिया के दौरान, मॉडल को विभिन्न हाइपरपैरामीटर संयोजनों के साथ प्रशिक्षित किया जाता है ताकि सर्वश्रेष्ठ प्रदर्शन करने वाले को चुना जा सके।
- ट्यूनिंग के परिणाम मॉडल को सेव करने और भविष्य में उपयोग करने के लिए उपलब्ध होते हैं।
Key terms
Hyperparameter TuningKeras TunerNeural NetworkOptimizerActivation FunctionNeuronsLayersBatch SizeEpochsValidation AccuracyOverfittingUnderfittingSequential ModelDense LayerStandardScalerRandomSearchDropout
Test your understanding
- हाइपरपैरामीटर ट्यूनिंग क्या है और यह न्यूरल नेटवर्क के लिए क्यों महत्वपूर्ण है?
- Keras Tuner लाइब्रेरी का उपयोग करके ऑप्टिमाइज़र को कैसे ट्यून किया जा सकता है?
- एक न्यूरल नेटवर्क लेयर में न्यूरॉन्स की संख्या को ट्यून करने की प्रक्रिया क्या है?
- आप एक ही मॉडल में लेयर्स की संख्या और एक्टिवेशन फ़ंक्शन जैसे कई हाइपरपैरामीटर्स को एक साथ कैसे ट्यून कर सकते हैं?
- हाइपरपैरामीटर ट्यूनिंग के दौरान ओवरफिटिंग को कैसे मैनेज किया जाता है?