
37:53
Gradient Descent in Neural Networks | Batch vs Stochastics vs Mini Batch Gradient Descent
CampusX
Overview
यह वीडियो ग्रेडियंट डिसेंट के तीन मुख्य प्रकारों - बैच, स्टोकेस्टिक और मिनी-बैच - की व्याख्या करता है। यह बताता है कि ग्रेडियंट डिसेंट कैसे काम करता है, जो न्यूरल नेटवर्क को ऑप्टिमाइज़ करने के लिए एक महत्वपूर्ण एल्गोरिथम है। वीडियो प्रत्येक प्रकार के बीच के अंतरों, उनके फायदे और नुकसान, और कब किसका उपयोग करना है, इस पर विस्तार से चर्चा करता है। इसमें कोड उदाहरण भी शामिल हैं जो इन अवधारणाओं को स्पष्ट करते हैं, विशेष रूप से बैच आकार के महत्व और कन्वर्जेंस पर उनके प्रभाव पर जोर देते हैं।
How was this?
Save this permanently with flashcards, quizzes, and AI chat
Chapters
- ग्रेडियंट डिसेंट न्यूरल नेटवर्क को ऑप्टिमाइज़ करने के लिए एक लोकप्रिय एल्गोरिथम है।
- इसका मुख्य उद्देश्य लॉस फंक्शन को कम करना है।
- यह मॉडल के पैरामीटर्स को लॉस फंक्शन के ग्रेडियंट की विपरीत दिशा में अपडेट करके काम करता है।
- लर्निंग रेट यह निर्धारित करता है कि प्रत्येक अपडेट स्टेप कितना बड़ा होगा।
यह समझना महत्वपूर्ण है कि ग्रेडियंट डिसेंट कैसे काम करता है क्योंकि यह न्यूरल नेटवर्क के प्रशिक्षण का मूल है और मॉडल के प्रदर्शन को बेहतर बनाने के लिए आवश्यक है।
लॉस फंक्शन के ग्राफ पर नीचे की ओर बढ़ते हुए न्यूनतम बिंदु तक पहुंचने के लिए लर्निंग रेट का उपयोग करना।
- बैच ग्रेडियंट डिसेंट में, प्रत्येक पैरामीटर अपडेट के लिए पूरे ट्रेनिंग डेटासेट का उपयोग किया जाता है।
- यह प्रत्येक इपोक में केवल एक बार वेट और बायस को अपडेट करता है।
- यह एक स्मूथ और स्टेबल कन्वर्जेंस प्रदान करता है।
- बड़े डेटासेट के लिए यह कम्प्यूटेशनल रूप से महंगा और धीमा हो सकता है।
बैच ग्रेडियंट डिसेंट एक स्थिर और अनुमानित कन्वर्जेंस प्रदान करता है, जो इसे समझने के लिए एक अच्छा प्रारंभिक बिंदु है, हालांकि यह बड़े डेटासेट के लिए व्यावहारिक नहीं हो सकता है।
एक ट्रेनिंग इपोक में सभी डेटा पॉइंट्स का उपयोग करके ग्रेडियंट की गणना करना और फिर एक बार वेट अपडेट करना।
- स्टोकेस्टिक ग्रेडियंट डिसेंट में, प्रत्येक पैरामीटर अपडेट के लिए केवल एक रैंडम डेटा पॉइंट का उपयोग किया जाता है।
- यह प्रत्येक इपोक में डेटा पॉइंट्स की संख्या के बराबर कई बार वेट और बायस को अपडेट करता है।
- यह बहुत तेज़ कन्वर्जेंस प्रदान करता है क्योंकि अपडेट फ्रीक्वेंसी अधिक होती है।
- लॉस फंक्शन में अस्थिरता (स्पाइक्स) हो सकती है, लेकिन यह लोकल मिनिमम से बचने में मदद कर सकती है।
SGD की उच्च अपडेट फ्रीक्वेंसी इसे तेजी से कन्वर्ज करने में मदद करती है और लोकल मिनिमम में फंसने से बचा सकती है, जो इसे बड़े डेटासेट के लिए एक कुशल विकल्प बनाती है।
प्रत्येक इपोक में डेटा को शफल करना, एक रैंडम पॉइंट चुनना, उसके लिए लॉस की गणना करना और तुरंत वेट अपडेट करना।
- मिनी-बैच ग्रेडियंट डिसेंट बैच और स्टोकेस्टिक ग्रेडियंट डिसेंट के बीच का एक समझौता है।
- यह प्रत्येक अपडेट के लिए डेटा के एक छोटे बैच (सबसेट) का उपयोग करता है।
- यह बैच ग्रेडियंट डिसेंट की स्थिरता और स्टोकेस्टिक ग्रेडियंट डिसेंट की गति का लाभ उठाता है।
- यह वेक्टरनाइजेशन का प्रभावी ढंग से उपयोग करता है और मेमोरी की समस्याओं से बचता है।
मिनी-बैच ग्रेडियंट डिसेंट सबसे अधिक इस्तेमाल किया जाने वाला तरीका है क्योंकि यह बैच और स्टोकेस्टिक विधियों के फायदे को जोड़ता है, जिससे कुशल और स्थिर प्रशिक्षण संभव होता है।
डेटा को छोटे बैचों में विभाजित करना (जैसे 32 या 64 पॉइंट्स) और प्रत्येक बैच के लिए ग्रेडियंट की गणना करके वेट अपडेट करना।
- बैच आकार यह निर्धारित करता है कि प्रत्येक अपडेट में कितने डेटा पॉइंट्स का उपयोग किया जाता है।
- छोटे बैच आकार (जैसे 1) स्टोकेस्टिक ग्रेडियंट डिसेंट के समान होते हैं और तेजी से कन्वर्जेंस की ओर ले जाते हैं।
- बड़े बैच आकार (पूरा डेटासेट) बैच ग्रेडियंट डिसेंट के समान होते हैं और अधिक स्थिर कन्वर्जेंस प्रदान करते हैं लेकिन धीमे हो सकते हैं।
- बैच आकार का चुनाव कम्प्यूटेशनल लागत, मेमोरी और कन्वर्जेंस गति को प्रभावित करता है।
सही बैच आकार चुनना मॉडल के प्रशिक्षण की गति और सटीकता के बीच संतुलन बनाने के लिए महत्वपूर्ण है, जो समग्र मॉडल प्रदर्शन को प्रभावित करता है।
कोड में `batch_size` पैरामीटर को 1 (स्टोकेस्टिक) या डेटासेट के आकार के बराबर (बैच) या बीच में (मिनी-बैच) सेट करना।
- वेक्टरनाइजेशन लूप्स का उपयोग किए बिना एक साथ कई ऑपरेशंस करने की एक तकनीक है, जो गणना को तेज करती है।
- बैच ग्रेडियंट डिसेंट पूरे डेटासेट पर वेक्टरनाइजेशन का उपयोग करता है।
- मिनी-बैच ग्रेडियंट डिसेंट छोटे बैचों पर वेक्टरनाइजेशन का उपयोग करता है, जिससे मेमोरी की समस्या से बचा जा सकता है।
- बड़े बैच आकार के लिए पूरे डेटासेट को मेमोरी में लोड करना अव्यावहारिक हो सकता है।
वेक्टरनाइजेशन कम्प्यूटेशनल दक्षता के लिए महत्वपूर्ण है, और मिनी-बैच दृष्टिकोण यह सुनिश्चित करता है कि हम बड़े डेटासेट के साथ काम करते समय भी इसका लाभ उठा सकें।
डॉट प्रोडक्ट का उपयोग करके एक साथ कई डेटा पॉइंट्स के लिए प्रेडिक्शन की गणना करना, बजाय इसके कि प्रत्येक पॉइंट के लिए अलग-अलग लूप चलाया जाए।
Key takeaways
- ग्रेडियंट डिसेंट न्यूरल नेटवर्क के प्रशिक्षण में लॉस फंक्शन को कम करने के लिए एक fundamental एल्गोरिथम है।
- बैच ग्रेडियंट डिसेंट पूरे डेटासेट का उपयोग करता है, जिससे स्टेबल कन्वर्जेंस होता है लेकिन यह धीमा हो सकता है।
- स्टोकेस्टिक ग्रेडियंट डिसेंट एक समय में एक डेटा पॉइंट का उपयोग करता है, जो तेज होता है लेकिन अधिक अस्थिर हो सकता है।
- मिनी-बैच ग्रेडियंट डिसेंट इन दोनों के बीच एक संतुलन प्रदान करता है, जो आमतौर पर सबसे कुशल और व्यावहारिक विकल्प होता है।
- बैच आकार का चुनाव प्रशिक्षण की गति, मेमोरी उपयोग और कन्वर्जेंस की स्थिरता को सीधे प्रभावित करता है।
- वेक्टरनाइजेशन कम्प्यूटेशनल गति को बढ़ाता है, और मिनी-बैच दृष्टिकोण इसे बड़े डेटासेट के लिए सुलभ बनाता है।
Key terms
Gradient DescentLoss FunctionOptimization AlgorithmParameters (Weights and Biases)Learning RateEpochBatch Gradient DescentStochastic Gradient Descent (SGD)Mini-batch Gradient DescentBatch SizeVectorizationConvergenceLocal MinimumGlobal Minimum
Test your understanding
- ग्रेडियंट डिसेंट का मुख्य उद्देश्य क्या है और यह न्यूरल नेटवर्क में कैसे काम करता है?
- बैच ग्रेडियंट डिसेंट, स्टोकेस्टिक ग्रेडियंट डिसेंट और मिनी-बैच ग्रेडियंट डिसेंट के बीच मुख्य अंतर क्या हैं?
- स्टोकेस्टिक ग्रेडियंट डिसेंट के उपयोग से लॉस फंक्शन में अस्थिरता क्यों देखी जा सकती है, और क्या यह हमेशा एक नुकसान है?
- मिनी-बैच ग्रेडियंट डिसेंट को अक्सर सबसे पसंदीदा तरीका क्यों माना जाता है?
- बैच आकार का चुनाव मॉडल के प्रशिक्षण प्रक्रिया को कैसे प्रभावित करता है?