नीचे दिए गए इंटरैक्टिव अभ्यासों में, आप न्यूरल नेटवर्क की आंतरिक कार्यप्रणाली को और गहराई से समझेंगे। सबसे पहले, आप देखेंगे कि पैरामीटर और हाइपरपैरामीटर में परिवर्तन नेटवर्क की भविष्यवाणियों को कैसे प्रभावित करते हैं। फिर आप अपने सीखे हुए ज्ञान का उपयोग करके नॉन-लीनियर डेटा के अनुरूप न्यूरल नेटवर्क को प्रशिक्षित करेंगे।
अभ्यास 1
निम्नलिखित विजेट निम्नलिखित कॉन्फ़िगरेशन के साथ एक न्यूरल नेटवर्क स्थापित करता है:
- इनपुट लेयर में 3 न्यूरॉन हैं जिनमें
0.00 , 0.00 और 0.00 मान शामिल हैं। - 4 न्यूरॉन्स वाली छिपी हुई परत
- 1 न्यूरॉन वाली आउटपुट परत
- ReLU सक्रियण फ़ंक्शन को सभी छिपे हुए परत नोड्स और आउटपुट नोड पर लागू किया जाता है।
नेटवर्क के प्रारंभिक सेटअप की समीक्षा करें (ध्यान दें: अभी ▶️ या >| बटन पर क्लिक न करें ), और फिर विजेट के नीचे दिए गए कार्यों को पूरा करें।
कार्य 1
न्यूरल नेटवर्क मॉडल के तीनों इनपुट फ़ीचर्स के मान 0.00 हैं। सभी आरंभिक मान देखने के लिए नेटवर्क के प्रत्येक नोड पर क्लिक करें। प्ले ( ▶️ ) बटन दबाने से पहले, इस प्रश्न का उत्तर दें:
आपके विचार से किस प्रकार का आउटपुट मान प्राप्त होगा: धनात्मक, ऋणात्मक या शून्य?
सकारात्मक आउटपुट मान
आपने सकारात्मक आउटपुट मान चुना है। इनपुट डेटा पर अनुमान लगाने और यह देखने के लिए कि आपका अनुमान सही है या नहीं, नीचे दिए गए निर्देशों का पालन करें।
नकारात्मक आउटपुट मान
आपने ऋणात्मक आउटपुट मान चुना है। इनपुट डेटा पर अनुमान लगाने और यह देखने के लिए कि आपका अनुमान सही है या नहीं, नीचे दिए गए निर्देशों का पालन करें।
आउटपुट मान 0
आपने आउटपुट मान 0 चुना है। इनपुट डेटा पर अनुमान लगाने के लिए नीचे दिए गए निर्देशों का पालन करें और देखें कि आपका अनुमान सही है या नहीं।
अब नेटवर्क के ऊपर मौजूद प्ले (▶️) बटन पर क्लिक करें और सभी हिडन लेयर और आउटपुट नोड के मानों को पॉप्युलेट होते हुए देखें। क्या आपका उपरोक्त उत्तर सही था?
व्याख्या के लिए यहां क्लिक करें
आपको मिलने वाला सटीक आउटपुट मान, वेट और बायस पैरामीटर को यादृच्छिक रूप से इनिशियलाइज़ करने के तरीके पर निर्भर करेगा। हालांकि, चूंकि इनपुट लेयर में प्रत्येक न्यूरॉन का मान 0 होता है, इसलिए हिडन लेयर नोड मानों की गणना के लिए उपयोग किए जाने वाले सभी वेट शून्य हो जाएंगे। उदाहरण के लिए, पहले हिडन लेयर नोड की गणना इस प्रकार होगी:
y = ReLU(w 11 * 0.00 + w 21 * 0.00 + w 31 * 0.00 + b)
y = ReLU(b)
इसलिए प्रत्येक हिडन-लेयर नोड का मान बायस (b) के ReLU मान के बराबर होगा, जो कि 0 होगा यदि b ऋणात्मक है और b स्वयं होगा यदि b 0 या धनात्मक है।
इसके बाद आउटपुट नोड का मान निम्नानुसार गणना किया जाएगा:
y = ReLU(w 11 * x 11 + w 21 * x 21 + w 31 * x 31 + w 41 * x 41 + b)
कार्य 2
न्यूरल नेटवर्क में बदलाव करने से पहले, निम्नलिखित प्रश्न का उत्तर दें:
यदि आप न्यूरल नेटवर्क में पहली हिडन लेयर के बाद एक और हिडन लेयर जोड़ते हैं, और इस नई लेयर को 3 नोड्स देते हैं, और सभी इनपुट और वेट/बायस पैरामीटर को समान रखते हैं, तो किन अन्य नोड्स की गणनाएँ प्रभावित होंगी?
नेटवर्क के सभी नोड्स, इनपुट नोड्स को छोड़कर
आपने इनपुट नोड्स को छोड़कर नेटवर्क के सभी नोड्स का चयन कर लिया है। नीचे दिए गए निर्देशों का पालन करके न्यूरल नेटवर्क को अपडेट करें और देखें कि आपका चयन सही है या नहीं।
केवल पहली छिपी हुई परत में मौजूद नोड्स
आपने केवल पहली हिडन लेयर के नोड्स का चयन किया है। नीचे दिए गए निर्देशों का पालन करके न्यूरल नेटवर्क को अपडेट करें और देखें कि आपका चयन सही है या नहीं।
केवल आउटपुट नोड
आपने केवल आउटपुट नोड का चयन किया है। न्यूरल नेटवर्क को अपडेट करने और यह देखने के लिए कि आपका चयन सही है या नहीं, नीचे दिए गए निर्देशों का पालन करें।
अब न्यूरल नेटवर्क को इस प्रकार संशोधित करें कि उसमें 3 नोड्स वाली एक नई हिडन लेयर जुड़ जाए:
- आउटपुट लेयर से पहले एक नई हिडन लेयर जोड़ने के लिए, टेक्स्ट 1 हिडन लेयर के बाईं ओर स्थित + बटन पर क्लिक करें।
- नई छिपी हुई लेयर के ऊपर स्थित + बटन पर दो बार क्लिक करके लेयर में 2 और नोड्स जोड़ें।
क्या आपका उपरोक्त उत्तर सही था?
व्याख्या के लिए यहां क्लिक करें
केवल आउटपुट नोड में परिवर्तन होता है। क्योंकि इस न्यूरल नेटवर्क के लिए अनुमान "फीड-फॉरवर्ड" है (गणनाएँ शुरू से अंत तक आगे बढ़ती हैं), नेटवर्क में एक नई परत जोड़ने से केवल नई परत के बाद के नोड्स प्रभावित होंगे, न कि उससे पहले वाले।
कार्य 3
नेटवर्क ग्राफ की पहली हिडन लेयर में (ऊपर से) दूसरे नोड पर क्लिक करें। नेटवर्क कॉन्फ़िगरेशन में कोई भी बदलाव करने से पहले, निम्नलिखित प्रश्न का उत्तर दें:
यदि आप भार w 12 (जो पहले इनपुट नोड x 1 के नीचे प्रदर्शित होता है) का मान बदलते हैं, तो कुछ इनपुट मानों के लिए अन्य किन नोड्स की गणनाएँ प्रभावित हो सकती हैं ?
कोई नहीं
आपने कोई विकल्प नहीं चुना। नीचे दिए गए निर्देशों का पालन करके न्यूरल नेटवर्क को अपडेट करें और देखें कि आपका उत्तर सही है या नहीं।
पहली हिडन लेयर का दूसरा नोड, दूसरी हिडन लेयर के सभी नोड और आउटपुट नोड।
आपने पहली हिडन लेयर में दूसरा नोड, दूसरी हिडन लेयर के सभी नोड और आउटपुट नोड चुना है। नीचे दिए गए निर्देशों का पालन करके न्यूरल नेटवर्क को अपडेट करें और देखें कि आपका चयन सही है या नहीं।
पहली हिडन लेयर, दूसरी हिडन लेयर और आउटपुट लेयर के सभी नोड्स।
आपने पहली, दूसरी और आउटपुट लेयर के सभी नोड्स का चयन कर लिया है। नीचे दिए गए निर्देशों का पालन करके न्यूरल नेटवर्क को अपडेट करें और देखें कि आपका चयन सही है या नहीं।
अब, पहले इनपुट नोड x 1 के नीचे प्रदर्शित भार w 12 के टेक्स्ट फ़ील्ड पर क्लिक करें, इसका मान 5.00 में बदलें और एंटर दबाएँ। ग्राफ़ में होने वाले परिवर्तनों को देखें।
क्या आपका उत्तर सही था? अपने उत्तर की जाँच करते समय सावधान रहें: यदि किसी नोड का मान नहीं बदलता है, तो क्या इसका मतलब यह है कि अंतर्निहित गणना में कोई परिवर्तन नहीं हुआ है?
व्याख्या के लिए यहां क्लिक करें
पहले हिडन लेयर में केवल दूसरा नोड (जिस पर आपने क्लिक किया) ही प्रभावित होता है। पहले हिडन लेयर के अन्य नोड्स के मानों की गणना में w 12 पैरामीटर के रूप में शामिल नहीं है, इसलिए वे प्रभावित नहीं होते हैं। दूसरे हिडन लेयर के सभी नोड्स प्रभावित होते हैं, क्योंकि उनकी गणना पहले हिडन लेयर के दूसरे नोड के मान पर निर्भर करती है। इसी प्रकार, आउटपुट नोड का मान भी प्रभावित होता है क्योंकि इसकी गणना दूसरे हिडन लेयर के नोड्स के मानों पर निर्भर करती है।
क्या आपको लगा कि उत्तर "कोई नहीं" है क्योंकि वेट वैल्यू बदलने पर नेटवर्क में किसी भी नोड की वैल्यू नहीं बदली? ध्यान दें कि किसी नोड की वैल्यू बदले बिना भी उसके लिए की जाने वाली गणना बदल सकती है (उदाहरण के लिए, ReLU(0) और ReLU(–5) दोनों का आउटपुट 0 होता है)। केवल नोड वैल्यू देखकर यह अनुमान न लगाएं कि नेटवर्क पर क्या प्रभाव पड़ा; गणनाओं की भी समीक्षा अवश्य करें।
अभ्यास 2
श्रेणीबद्ध डेटा मॉड्यूल में फ़ीचर क्रॉस अभ्यासों में, आपने गैर-रेखीय डेटा को फ़िट करने के लिए मैन्युअल रूप से फ़ीचर क्रॉस बनाए थे। अब, आप देखेंगे कि क्या आप एक ऐसा न्यूरल नेटवर्क बना सकते हैं जो प्रशिक्षण के दौरान गैर-रेखीय डेटा को फ़िट करना स्वचालित रूप से सीख सके।
आपका कार्य: एक न्यूरल नेटवर्क को कॉन्फ़िगर करना है जो नीचे दिए गए आरेख में नारंगी बिंदुओं को नीले बिंदुओं से अलग कर सके, और प्रशिक्षण और परीक्षण डेटा दोनों पर 0.2 से कम का नुकसान प्राप्त कर सके।
निर्देश:
नीचे दिए गए इंटरैक्टिव विजेट में:
- निम्नलिखित कॉन्फ़िगरेशन सेटिंग्स में से कुछ के साथ प्रयोग करके न्यूरल नेटवर्क हाइपरपैरामीटर को संशोधित करें:
- नेटवर्क आरेख में "HIDDEN LAYERS" शीर्षक के बाईं ओर स्थित + और - बटन पर क्लिक करके छिपी हुई परतों को जोड़ें या हटाएं।
- किसी हिडन लेयर कॉलम के ऊपर स्थित + और - बटन पर क्लिक करके हिडन लेयर से न्यूरॉन्स जोड़ें या हटाएं।
- आरेख के ऊपर दिए गए लर्निंग रेट ड्रॉप-डाउन से नया मान चुनकर लर्निंग रेट बदलें।
- आरेख के ऊपर दिए गए एक्टिवेशन ड्रॉप-डाउन से एक नया मान चुनकर एक्टिवेशन फ़ंक्शन को बदलें।
- निर्दिष्ट मापदंडों का उपयोग करके न्यूरल नेटवर्क मॉडल को प्रशिक्षित करने के लिए आरेख के ऊपर स्थित प्ले (▶️) बटन पर क्लिक करें।
- प्रशिक्षण की प्रगति के दौरान डेटा को फिट करने वाले मॉडल के विज़ुअलाइज़ेशन का अवलोकन करें, साथ ही आउटपुट अनुभाग में टेस्ट लॉस और ट्रेनिंग लॉस मानों को भी देखें।
- यदि मॉडल परीक्षण और प्रशिक्षण डेटा पर 0.2 से कम हानि प्राप्त नहीं करता है, तो रीसेट पर क्लिक करें और कॉन्फ़िगरेशन सेटिंग्स के एक अलग सेट के साथ चरण 1-3 को दोहराएं। वांछित परिणाम प्राप्त होने तक इस प्रक्रिया को दोहराएं।
हमारे समाधान के लिए यहां क्लिक करें
हमने निम्नलिखित तरीकों से परीक्षण और प्रशिक्षण दोनों में होने वाली हानि को 0.2 से नीचे लाने में सफलता प्राप्त की:
- 3 न्यूरॉन्स वाली 1 हिडन लेयर जोड़ी जा रही है।
- 0.01 की लर्निंग रेट का चयन करना।
- ReLU के लिए सक्रियण फ़ंक्शन का चयन करना।