पहला न्यूरल नेटवर्क
इस अभ्यास में, हम अपने छोटे न्यूरल नेट को ट्रेनिंग देंगे.
न्यूरल नेट हमें बिना लीनियर मॉडल के नॉनलीनियर मॉडल सीखने का मौका देंगे
साफ़ तौर पर जानकारी देने वाले क्रॉस का इस्तेमाल करना.
टास्क 1: दिया गया मॉडल, हमारी दोनों इनपुट सुविधाओं को
एक न्यूरॉन काम करता है. क्या यह मॉडल, किसी गैर-कानूनी स्थिति को सीख पाएगा? अपने
अनुमान लगाना.
टास्क 2: छिपी हुई लेयर में न्यूरॉन की संख्या बढ़ाकर देखें
1 से 2. साथ ही, लीनियर ऐक्टिवेशन को नॉन-लीनियर ऐक्टिवेशन में बदलकर देखें
जैसे कि ReLU. क्या आप ऐसा मॉडल बना सकते हैं जो गैर-कानूनी बातों को सीख सके? क्या यह मॉडल बना सकता है
को सही तरीके से इस्तेमाल कर रहे हैं?
टास्क 3: छिपी हुई लेयर में न्यूरॉन की संख्या बढ़ाकर देखें
2 से 3 तक, ReLU जैसे नॉनलीनियर ऐक्टिवेशन का इस्तेमाल करके. क्या यह डेटा को मॉडल कर सकता है
असरदार हैं? अलग-अलग दौड़ के लिए मॉडल की क्वालिटी अलग-अलग कैसे होती है?
टास्क 4: छिपी हुई लेयर जोड़कर या हटाकर प्रयोग जारी रखें
और न्यूरॉन प्रति परत में. साथ ही, लर्निंग रेट में बदलाव करें.
नियमित करने, और सीखने की अन्य सेटिंग. सबसे छोटा कौनसा है
कितने न्यूरॉन और लेयर इस्तेमाल किए जा सकते हैं, इससे टेस्ट लॉस होता है
0.177 या उससे कम?
क्या मॉडल का साइज़ बढ़ाने से फ़िट बेहतर होता है या यह कितनी तेज़ी से एक होता है?
क्या इससे मॉडल बदल जाता है? उदाहरण के लिए,
निम्न संरचना:
- 3 न्यूरॉन वाली पहली छिपी हुई लेयर.
- 3 न्यूरॉन वाली दूसरी छिपी हुई लेयर.
- 2 न्यूरॉन वाली तीसरी छिपी हुई लेयर.
(जवाब व्यायाम के ठीक नीचे दिखाई देते हैं.)
टास्क 1 के जवाब के लिए प्लस आइकॉन पर क्लिक करें.
ऐक्टिवेशन, लीनियर पर सेट है. इसलिए, यह मॉडल सीख नहीं सकता
का इस्तेमाल करें. इसमें कमी बहुत ज़्यादा होती है और हमारा कहना है कि मॉडल कमज़ोर फ़िट हो गया
के लिए इस्तेमाल किया जा सकता है.
टास्क 2 को जवाब देने के लिए प्लस आइकॉन पर क्लिक करें.
नॉनलीनियर ऐक्टिवेशन फ़ंक्शन, नॉनलीनियर मॉडल को सीख सकता है. हालांकि,
2 न्यूरॉन वाली एक छिपी हुई लेयर, उसमें मौजूद सभी नॉनलीनियर को नहीं दिखा सकती
और शोर के बिना भी ज़्यादा नुकसान होगा:
अंडरफ़िट करता है. ये कसरतें तय नहीं की जा सकतीं, इसलिए कुछ दौड़ लगाई जा सकती है
कोई प्रभावी मॉडल नहीं सीख पाएगा, जबकि अन्य दौड़ बहुत अच्छा काम करेंगी.
ऐसा हो सकता है कि सबसे अच्छे मॉडल का साइज़ आपकी उम्मीद के मुताबिक न हो!
टास्क 3 के जवाब के लिए प्लस आइकॉन पर क्लिक करें.
इस एक्सरसाइज़ से प्लेग्राउंड की अजीब प्रकृति की झलक मिलती है. ऐप्लिकेशन
डेटा सेट को मॉडल करने के लिए तीन न्यूरॉन वाली एक छिपी हुई लेयर काफ़ी है (मौजूद नहीं है
नॉइज़) नहीं होता, लेकिन सभी रन एक अच्छे मॉडल में शामिल नहीं होंगे.
तीन न्यूरॉन काफ़ी होते हैं, क्योंकि XOR फ़ंक्शन को तीन हाफ़-प्लेन (ReLU ऐक्टिवेशन) के कॉम्बिनेशन के तौर पर दिखाया जा सकता है. इसे देखकर यह समझा जा सकता है:
न्यूरॉन इमेज, जो अलग-अलग न्यूरॉन का आउटपुट दिखाती हैं. अच्छे मॉडल में
तीन न्यूरॉन और ReLU ऐक्टिवेशन के साथ, एक इमेज होगी.
वर्टिकल लाइन, जिससे X1 के पॉज़िटिव या नेगेटिव का पता चलता है.
स्विच किया जाएगा), करीब-करीब हॉरिज़ॉन्टल लाइन वाली 1 इमेज, जो
X2 पर क्लिक करते हैं. साथ ही, डायगनल लाइन वाली एक इमेज का इस्तेमाल करके,
इंटरैक्शन.
हालांकि, यह ज़रूरी नहीं है कि सभी दौड़ें एक अच्छे मॉडल में शामिल हों. कुछ रन बनाने से काम नहीं चलेगा
दो न्यूरॉन वाले मॉडल से बेहतर है और आपको डुप्लीकेट न्यूरॉन दिखते हैं
मामले.
टास्क 4 के जवाब के लिए प्लस आइकॉन पर क्लिक करें.
तीन न्यूरॉन वाली एक छिपी हुई लेयर, डेटा को मॉडल कर सकती है, लेकिन
रिडंडंसी की वजह से, कई प्रोसेस से एक न्यूरॉन खत्म हो जाता है. इससे,
अच्छा मॉडल. तीन से ज़्यादा न्यूरॉन वाली एक लेयर में ज़्यादा रिडंडंसी होती है, और
इस तरह एक अच्छे मॉडल में शामिल होने की संभावना बढ़ जाती है.
जैसा कि हमने देखा, केवल 2 न्यूरॉन वाली एक छिपी हुई लेयर डेटा को मॉडल नहीं कर सकती
करते हैं. इसे आज़माने पर, आपको आउटपुट लेयर में सभी आइटम दिखेंगे
सिर्फ़ इन दो नोड की लाइनों से बने आकार हो सकते हैं. इस मामले में,
ज़्यादा गहरा नेटवर्क, डेटा सेट को पहली छिपी हुई लेयर की तुलना में बेहतर बना सकता है:
दूसरी लेयर में मौजूद अलग-अलग न्यूरॉन ज़्यादा जटिल आकार बना सकते हैं. जैसे,
ऊपर दाईं ओर का क्वाड्रेंट. इसे जोड़ते समय
दूसरी छिपी हुई लेयर अब भी छिपाए गए डेटा सेट से बेहतर मॉडल बना सकती है
लेयर न जोड़ें, तो पहली लेयर में ज़्यादा नोड जोड़ना ज़्यादा सही रहेगा.
उस किट का हिस्सा होने दें जिससे दूसरी लेयर अपनी बनाने वाली किट का हिस्सा होती है
आकार.
हालांकि, पहली छिपी हुई लेयर में 1 न्यूरॉन वाला मॉडल अच्छा नहीं सीख सकता
यह मॉडल कितना ही गहरा है. इसकी वजह यह है कि पहले
परत केवल एक आयाम के साथ अलग-अलग होती है (आमतौर पर एक डायगनल लाइन), जो
ताकि इस डेटा सेट को मॉडल कर सकें. बाद की लेयर इसकी भरपाई नहीं कर सकतीं, नहीं
यह कितना मुश्किल है; इनपुट डेटा में मौजूद जानकारी को वापस नहीं पाया जा सका
खो गया.
क्या होता अगर एक छोटा नेटवर्क बनाने के बजाय, हमारे पास कई लेयर
बहुत सारे न्यूरॉन, इस तरह की सरल समस्या के लिए? जैसा कि हमने देखा है,
लेयर में कई अलग-अलग लाइन स्लोप आज़माने की सुविधा होगी. और दूसरा
लेयर में उन्हें कई अलग-अलग आकृतियों में इकट्ठा करने की क्षमता होगी,
जिसमें अगली लेयर में बहुत सारी और कई आकृतियां हैं.
मॉडल को कई आकृतियों के बारे में सोचने की अनुमति देकर
अलग-अलग छुपे हुए न्यूरॉन हैं, तो आपने मॉडल को शुरू करने के लिए पर्याप्त स्थान बना दिया है
ट्रेनिंग सेट के शोर को आसानी से ओवरफ़िट कर सकता है. इससे ये
ये काफ़ी जटिल आकार होते हैं, जो ट्रेनिंग डेटा की कमियों से मेल खाते हैं.
ज़मीनी सच्चाई. इस उदाहरण में, बड़े मॉडल जटिल हो सकते हैं
डेटा पॉइंट की सीमाओं का अनुमान लगा सकते हैं. कुछ मामलों में, एक बड़ा मॉडल
शोर की जगह पर किसी टापू के बारे में जान सकता है. इसे
डेटा को यादगार बनाने के लिए. मॉडल को इतना बड़ा बनाने की अनुमति देने से,
देखें कि असल में यह, अक्सर इस्तेमाल किए जाने वाले आसान मॉडल के मुकाबले खराब परफ़ॉर्म करता है
बस इतने न्यूरॉन की मदद से समस्या को हल करने में मदद मिलती है.