अध्याय ५ · खण्ड II · 16 मिनेट
न्यूरल नेटवर्क कसरी बनाइन्छ
तह, भार, एक्टिभेसन कार्य, र डीप लर्निङलाई व्यवहारिक बनाएको ब्याक-प्रोप्यागेसन एल्गोरिथम।
न्यूरनलाई तहमा थुपार्न सजिलो छ। सही भार खोज्नु — त्यो इन्जिनियरिङ हो।
यो खण्डमा हामी अघिल्लो खण्डको आधारभूत न्यूरनलाई काम लाग्ने डीप-लर्निङ प्रणालीमा बदल्ने दुई टुक्रा हेर्छौं। पहिले — नेटवर्क कसरी तहहरूमा संगठित हुन्छ। दोस्रो — ती तहहरूलाई कसरी ब्याक-प्रोप्यागेसन भन्ने सुन्दर एल्गोरिथम प्रयोग गरी तालिम दिइन्छ, जसले आधुनिक डीप लर्निङ सम्भव बनायो।
सरल भाषामा तहहरू
न्यूरल नेटवर्क तहहरूमा व्यवस्थित न्यूरनहरू मात्र हुन्। प्रत्येक तहमा धेरै न्यूरन हुन्छन्; प्रत्येक न्यूरनले अघिल्लो तहबाट इनपुट लिन्छ।
- इनपुट तह। विशेषताहरू आफै। हाम्रो खल्ती उदाहरणका लागि, तीन अंक (
रकम,दिनको_समय,नयाँ_यन्त्र)। - लुकेका तह। न्यूरनको एक वा बढी तह। लुकेको तहमा प्रत्येक न्यूरनले अघिल्लो तहका सबै आउटपुट हेर्छ र नयाँ अंक निकाल्छ।
- आउटपुट तह। अन्तिम तह जसले हामीलाई वास्तवमा चाहिने कुरा निकाल्छ — बाइनरी वर्गीकरणका लागि सम्भाव्यता, रिग्रेसनका लागि अंक, भाषा मोडेलका लागि शब्द-सम्भाव्यताको भेक्टर।
“डीप” लर्निङको अर्थ सरल — धेरै लुकेका तहहरू। चाटजीपीटी-वर्गका मोडेलमा करिब १०० लुकेका तह हुन्छन्। सानो नेपाली देवनागरी वर्गीकरणकर्तामा ३-४ हुन सक्छन्। आधारभूत आकार उही हो।
उदाहरण: देवनागरी अंक वर्गीकरणकर्ता
२८×२८ पिक्सेलको छविबाट हस्तलिखित देवनागरी अंक ० देखि ९ चिन्ने नेटवर्क कल्पना गर्नुहोस्। इनपुट तहमा ७८४ अंक छन् — प्रति पिक्सेल एक। आउटपुट तहमा १० अंक छन् — प्रति अंक एक सम्भाव्यता।
बीचमा, हामी दुई लुकेका तह प्रयोग गर्छौं, प्रत्येकमा ६४ न्यूरन।
- पहिलो लुकेको तहका ६४ न्यूरन हरेकले सबै ७८४ पिक्सेल हेर्छन्। तालिमपछि, हरेक केही सरल ढाँचाको पहिचानकर्ता बन्छ — माथि-दायाँको वक्र, बीचको किनारा, गोलो।
- दोस्रो लुकेको तहका ६४ न्यूरन हरेकले पहिलो तहका ६४ आउटपुट हेर्छन्। तालिमपछि यिनले उच्च-स्तरका ढाँचा सिक्छन् — “दुई थुप्रिएका गोलो,” “दायाँ-तर्फ ठाडो पट्टीसहितको बायाँ-झुकेको वक्र।”
- १० आउटपुट न्यूरन हरेकले दोस्रो तहका ६४ आउटपुट हेर्छ र एक अंकको सम्भाव्यता निकाल्छ।
पूरै नेटवर्कमा लगभग ७८४ × ६४ + ६४ × ६४ + ६४ × १० ≈ ५५,००० भार छन्। २०२६ को मानकले मामुली। ल्यापटपमा केही मिनेटमा तालिम दिन सकिने।
एक्टिभेसन कार्य: खुम्च्याउनेहरू
अघिल्लो खण्डमा सिग्मोइड उल्लेख गर्यौं। केही सामान्य एक्टिभेसन कार्य छन्, प्रत्येकको आफ्नो ठाउँ छ।
- सिग्मोइड। कुनै पनि वास्तविक अंकलाई (०, १) मा मिल्छ। बाइनरी वर्गीकरणकर्ताको आउटपुट तहका लागि उपयोगी — सम्भाव्यताका रूपमा व्याख्या गर्न मिल्ने कुरा निकाल्छ।
- ReLU (Rectified Linear Unit)। धनात्मक भए इनपुट फर्काउँछ; नभए ० फर्काउँछ। किन यो? किनकि यसले डीप नेटवर्कलाई तालिम दिन धेरै सजिलो बनाउँछ। २०१० मा यो एउटै आविष्कारले स्केलमा डीप लर्निङ चल्ने एउटा कारण हो।
- Softmax। बहु-वर्गीय वर्गीकरणकर्ताको आउटपुट तहमा प्रयोग (हाम्रो १०-अंक उदाहरणजस्तो)। १० कच्चा अंकलाई १ मा योग हुने १० सम्भाव्यतामा बदल्छ।
- Tanh। सिग्मोइडजस्तै, तर (−१, १) मा मिल्छ। कहिलेकाहीं लुकेका तहमा उपयोगी।
एक्टिभेसन कार्य छनोट शिल्प हुनेगर्छ। २०२६ को डिफल्ट हो “लुकेका तहमा ReLU, वर्गीकरण आउटपुटमा softmax।” त्यो छनोट गलत हुनेभन्दा सही हुने धेरै पटक हो।
ब्याकप्रोप्यागेसन, एल्गोरिथम
हामीसँग नेटवर्क छ। हामीले यसका ५५,००० भारलाई साना अनियमित अंकमा सुरु गर्यौं। हामीले देवनागरी अंक छवि देखाउँछौं। निस्सन्देह यसले बकवास निकाल्छ — भार अनियमित छन्।
हामी नेटवर्क कति गलत भयो गणना गर्छौं: सही लेबलको one-hot एन्कोडिङबाट आउटपुट सम्भाव्यता कति टाढा छ। यसलाई नोक्सान (loss) भनौं। तालिम समस्या भार बदल्नु हो ताकि अर्को छविमा नोक्सान सानो होस्। तर ५५,००० भार छन्, सबै तहहरूमार्फत अन्तरक्रिया गर्दै। हामीले प्रत्येकलाई कसरी समायोजन गर्ने?
ब्याकप्रोप्यागेसनले यसको उत्तर दिन्छ। यसले भन्छ: आउटपुटमा नोक्सानबाट सुरु गरेर, त्रुटिलाई नेटवर्कमा तहैतह पछाडि प्रसार गर्नुहोस्, प्रत्येक भारको नोक्सानमा योगदान गणना गर्दै। अनि प्रत्येक भारलाई नोक्सान घटाउने दिशामा थोरै धकेलिन्छ।
पूरै तालिम सेटमा यसलाई दर्जनौं वा सयौं पटक दोहोर्याउनुहोस्। भार बिस्तारै ती मानमा बस्छन् जसले नेटवर्कको आउटपुटलाई लेबलसँग मिलाउँछन्।
त्यो नै पूरै एल्गोरिथम हो। ब्याकप्रोप्यागेसन मूलमा क्यालकुलसको चेन रुलको व्यवस्थित प्रयोग हो, भारित योग र एक्टिभेसन कार्यको थुप्रोमा। गणितीय सौन्दर्य के भने यसको लागत नेटवर्कलाई अगाडि चलाउने जति नै हुन्छ — त्यो गुण नभए १००-तहको नेटवर्क तालिम दिन निराशाजनक रूपमा ढिलो हुन्थ्यो।
तालिममा के बिग्रन सक्छ
तीन सामान्य असफलता मोड, सबै पहिचान योग्य:
-
लोप हुने ग्रेडियन्ट। सिग्मोइड एक्टिभेसनसहितको धेरै गहिरो नेटवर्कमा त्रुटि सङ्केत पछाडि प्रसार हुँदै शून्यतर्फ खुम्चिन्छ। सुरुका तहहरूले सिक्न छाड्छन्। उपचार: ReLU एक्टिभेसन, सावधान सुरुवात, र वास्तुकलात्मक छनोट (अवशिष्ट जडान)।
-
ओभरफिटिङ। नेटवर्कले तालिम डाटा सम्झन्छ र नयाँ उदाहरणमा सामान्यीकरण गर्न चुक्छ। उपचार: बढी डाटा, साना नेटवर्क, ड्रपआउटजस्ता नियमनकारी चलाखी, र महत्त्वपूर्ण — मान्यता डाटा छुट्याउने र त्यसमा नोक्सान हेर्ने।
-
खराब लर्निङ रेट। हरेक ब्याकप्रोप कदमले भारलाई लर्निङ रेट द्वारा नियन्त्रित सानो मात्रामा समायोजन गर्छ। धेरै उच्च, तालिम विचलित हुन्छ। धेरै कम, कहिल्यै सकिँदैन। आधुनिक अप्टिमाइजर (Adam, AdamW) ले लर्निङ रेट स्वचालित रूपमा समायोजन गर्छ र पहिलेभन्दा धेरै कम पीडादायी बनाएको छ।
तपाईंले सम्झनुपर्ने कुरा
दुई विचार:
- न्यूरल नेटवर्क न्यूरनका तह हुन्। प्रत्येक न्यूरन भारित योग र एक्टिभेसन हो। एक तहको आउटपुट अर्कोको इनपुट।
- तालिम भनेको ब्याकप्रोप्यागेसन हो: नोक्सान गणना, त्रुटि पछाडि धकेल्ने, हरेक भार समायोजन, दोहोर्याउने।
त्यो वर्णन तपाईंको दुई-तहको देवनागरी वर्गीकरणकर्ता र OpenAI को १००-तहको GPT दुवैमा फिट हुन्छ। फरक स्केल, वास्तुकला, र गणनाको हो — अन्तर्निहित एल्गोरिथमको होइन।
आफ्नो बुझाइ जाँच्नुहोस्
छोटो जाँच
—न्यूरल नेटवर्कको तालिमका क्रममा ब्याकप्रोप्यागेसन एल्गोरिथमले के गर्छ?
अब के?
हामीसँग आधारभूत नेटवर्क र तालिम एल्गोरिथम छ। अर्को खण्ड आधुनिक डीप लर्निङका दुई ठूला वास्तुकलात्मक विचारबारे छ — छविका लागि कन्भोलुसन र भाषाका लागि ट्रान्सफर्मर — दुवै आधारभूत तहयुक्त नेटवर्कमा साना परिवर्तनका रूपमा सुरु भए र २०२६ का लगभग हरेक प्रसिद्ध एआई प्रणालीलाई चलाउनेसम्म पुगे।