अध्याय १ · खण्ड I · 20 मिनेट
"मोडेल तालिम दिने" को वास्तविक अर्थ
दुई पाठ्यक्रमसम्म तपाईंले अरूले तालिम दिएका मोडेल प्रयोग गर्नुभयो। यसमा तपाईं आफ्नै तालिम दिनुहुन्छ। कुनै कोडअघि, मोडेल तालिम दिने वास्तवमा के हो — र के होइन — बुझ्नुहोस्, ताकि अर्को खण्डमा scikit-learn ले के गरिरहेको छ थाहा हुन्छ।
तपाईंले Course 01 मा Claude, Tesseract, र Learning AI मा पढेका मोडेलहरू — यी सबै अरूले तालिम दिएका मोडेल थिए। यो पाठ्यक्रम पहिलो पटक तपाईंले आफ्नै तालिम दिने हो। कुनै कोडअघि, मोडेल तालिम दिने वास्तवमा के हो भन्ने छोटो, सरल व्याख्या। समाचारका हेडलाइनले सुझाव दिनेभन्दा यो धेरै कम रहस्यमय छ, र यसलाई बुझ्दा — अर्को खण्डमा भेट्ने पुस्तकालय — scikit-learn पुरानो साथीजस्तै लाग्छ।
मोडेल भनेको समायोजनयोग्य नबहरू भएको फङ्क्सन हो
मेसिन लर्निङमा मोडेल भनेको गणितीय फङ्क्सन हो। तपाईं यसलाई इनपुट (Course 02 का तपाईंका फिचर) दिनुहुन्छ, यसले आउटपुट (पूर्वानुमान) उत्पादन गर्छ। मोडेललाई मोडेल बनाउने — र केवल कुनै फङ्क्सन नबनाउने — कुरा यसमा हुने समायोजनयोग्य नब हो, जसलाई पारामिटर भनिन्छ।
सबैभन्दा सरल मोडेल हेरौं। माइक्रोफाइनान्स ऋणले डिफल्ट गर्छ कि गर्दैन पूर्वानुमान गर्न, हामी एउटै फिचर — loan_to_income_ratio — बाट सुरु गर्नेछौं र निर्णय गर्नेछौं:
यदि
ratio > thresholdछ भने, डिफल्ट पूर्वानुमान गर्नुहोस्। अन्यथा नो-डिफल्ट पूर्वानुमान गर्नुहोस्।
त्यो मोडेलमा एउटै नब छ: थ्रेसहोल्ड। फरक थ्रेसहोल्ड मानले फरक पूर्वानुमान उत्पादन गर्छन्। केही थ्रेसहोल्ड राम्रो हुन्छन् (मोडेल प्रायः वास्तविकतासँग सहमत हुन्छ)। अरू खराब हुन्छन्। मोडेल तालिम दिनु भनेको वास्तविकतासँग सकेसम्म बढी सहमत हुने पूर्वानुमान उत्पादन गर्ने थ्रेसहोल्ड भेट्नु हो।
मूलतः, हरेक मेसिन लर्निङ एल्गोरिथमले त्यही गर्छ। मोडेल ठूला हुन्छन्। नबको सङ्ख्या एकबाट दश, दश बाट एक करोडमा बढ्छ। तिनलाई कसरी समायोजन गर्ने भन्ने गणित अझ चलाख हुन्छ। तर आकार बदलिँदैन: नब भएको फङ्क्सन, र उदाहरण हेरेर ती नब सेट गर्ने प्रक्रिया।
हरेक तालिम प्रक्रियाका तीन टुक्रा
हरेक मेसिन लर्निङ एल्गोरिथम — एक-नब थ्रेसहोल्ड मोडेलदेखि GPT-4 सम्म — मा तीन टुक्रा हुन्छन्:
-
मोडेल आफै। नब भएको फङ्क्सन। थ्रेसहोल्ड मोडेलका लागि, एक नब। रेखीय रिग्रेसनका लागि, प्रति फिचर एक नब र एउटा अफसेट। न्यूरल नेटवर्कका लागि, तहमा व्यवस्थित लाखौं नब।
-
लोस फङ्क्सन। डाटाको एक टुक्रामा मोडेल कति गलत छ मापन गर्ने सङ्ख्या। कम राम्रो हो। शून्य लोसको अर्थ मोडेल हरेक तालिम उदाहरणमा पूर्ण रूपमा सही छ। (स्पोइलर: यो झन्डै कहिल्यै हासिल गर्न सकिँदैन, र भए पनि शङ्कास्पद हुनेछ।)
-
अप्टिमाइजेसन प्रक्रिया। लोस घट्ने गरी नब समायोजन गर्ने रेसिपी। सबैभन्दा सरल संस्करण: धेरै मान कोसिस गर्नुहोस्, सबैभन्दा कम लोस भएकोलाई राख्नुहोस्। वास्तविक एल्गोरिथम धेरै छिटा तर नैतिक रूपमा उही हुन्।
तपाईंले यी तीनमध्ये कुनै पनि आफै विरलै लेख्नुपर्नेछ। scikit-learn — र PyTorch, TensorFlow, आदि — ले मोडेल, लोस, र अप्टिमाइजरलाई तयार-देखि-प्रयोग टुक्राका रूपमा दिन्छन्। तपाईंको काम तिनलाई जोड्ने हो।
तस्बिर, दुई मिनेटमा
1,000 विगत ऋणका लागि x-अक्षमा loan_to_income_ratio र y-अक्षमा defaulted (0 वा 1) प्लट गरेको कल्पना गर्नुहोस्। तपाईंले दुई बादल देख्नुहुनेछ — नो-डिफल्टकर्ता प्रायः बायाँमा (कम अनुपात), डिफल्टकर्ता प्रायः दायाँमा (उच्च अनुपात), बीचमा केही ओभरल्यापसँग।
थ्रेसहोल्ड मोडेल तालिम दिनु भनेको यो प्लटमा उभ्यौलो रेखा कोर्नु र सोध्नु हो: “यदि म यो रेखाको दायाँमा ‘डिफल्ट’ र बायाँमा ‘नो-डिफल्ट’ पूर्वानुमान गर्छु भने, वास्तविक लेबलसँग कति पूर्वानुमान सहमत हुन्छन्?” तपाईंले फरक उभ्यौलो-रेखा स्थिति कोसिस गर्नुहुन्छ। सबैभन्दा बढी सहमति भएकोलाई छान्नुहुन्छ।
त्यो सबैभन्दा सरल मोडेल र सबैभन्दा सरल तालिम हो। यो पाठ्यक्रमको हरेक कुरा उही विचारको बढी शक्तिशाली संस्करण हो।
तालिम डाटा के हो, र मोडेल के बन्छ
हामीले निरन्तर प्रयोग गर्ने दुई शब्द:
तालिम डाटा भनेको तपाईंले मोडेललाई देखाउने विगत उदाहरणहरूको सेट हो — प्रत्येक पङ्क्ति फिचर भेक्टर (ऋण रकम, अनुपात, जिल्ला, आदि) र लेबल (डिफल्ट भयो वा भएन)। तालिम प्रक्रियाले मोडेलका नब समायोजन गर्न यी उदाहरण उपभोग गर्छ।
तालिम प्राप्त मोडेल भनेको मोडेल हो जसका नब तालिम प्रक्रियाले पुगेको मानमा सेट गरिएका छन्। तपाईंले तालिम प्राप्त मोडेललाई फाइलमा बचाउनुहुन्छ। पछि लोड गर्नुहुन्छ र मोडेलले कहिल्यै नदेखेका नयाँ ऋणहरूमा पूर्वानुमान गर्न प्रयोग गर्नुहुन्छ।
यो विभाजन — एक पटक तालिम, धेरै पटक पूर्वानुमान — उत्पादनमा मेसिन लर्निङ कसरी तैनात हुन्छ भन्ने मुटु हो। माइक्रोफाइनान्स संस्थाले हरेक नयाँ आवेदनमा मोडेल पुन: तालिम दिँदैन। तिनले हप्ता (वा महिना) मा एक पटक तालिम दिन्छन्, बचाउँछन्, र अर्को पुन: तालिमसम्म हजारौं नयाँ आवेदनका लागि बचाइएको मोडेल प्रयोग गर्छन्।
दुई ठूला परिवार: वर्गीकरण र रिग्रेसन
झन्डै हरेक supervised ML समस्या (हामी “supervised” लाई अर्को खण्डमा राम्रोसँग परिभाषित गर्नेछौं) तपाईंले पूर्वानुमान गरिरहनुभएको लेबलको प्रकारका आधारमा दुई परिवारमध्ये एकमा पर्छ:
वर्गीकरण ले श्रेणी पूर्वानुमान गर्छ। के यो ऋण डिफल्ट हुनेछ? हो/होइन। के यो SMS स्प्याम हो? हो/होइन। 8 रोग श्रेणीमध्ये कुन यो एक्स-रेले देखाउँछ? आउटपुट लेबलहरूको सीमित सेटमध्ये एक हो। अध्याय 2 को अधिकांश वर्गीकरणकर्ताबारे हो।
रिग्रेसन ले सङ्ख्या पूर्वानुमान गर्छ। यो काठमाडौंको फ्ल्याट कति भाडामा जान्छ? NPR मा। NEPSE भोलि के मा बन्द हुन्छ? सूचक बिन्दुमा। यो ग्राहकको अर्को भेटसम्म कति दिन? आउटपुट निरन्तर सङ्ख्यात्मक मान हो। अध्याय 3 ले रिग्रेसन ओगट्छ।
भेद महत्त्वपूर्ण छ किनभने लोस फङ्क्सन, मूल्याङ्कन मेट्रिक्स, र केही मोडेल फरक छन्। तर आकार — नबसहितको फङ्क्सन, लोस, अप्टिमाइजर — समान हो।
Course 02 मा हामीले के गर्यौं भन्ने सानो पुनर्फ्रेमिङ
Course 02 को पूरै चाप डाटालाई मोडेलले राम्रोसँग तालिम लिन सक्ने गरी तयार पार्ने बारे थियो। यो खण्डको शब्दावलीसँग, तपाईं अब हरेक Course 02 अध्यायले के गरिरहेको थियो नाम दिन सक्नुहुन्छ:
- अध्याय 1-2 (डाटा ल्याउने) → तालिम सेट बनाउने।
- अध्याय 3 (सफा गर्ने) → लोसलाई बिगार्ने शोर हटाउने।
- अध्याय 4 (बुझ्ने) → तालिम सेटले तपाईं पूर्वानुमान गर्न चाहनुभएको जनसङ्ख्यालाई वास्तवमै प्रतिनिधित्व गर्छ भनेर जाँच्ने।
- अध्याय 5 (तयार पार्ने) → मोडेलले प्रयोग गर्न सक्ने फिचर इन्जिनियर गर्ने, स्केल गर्ने, तालिम/val/परीक्षणमा बाँड्ने ताकि तपाईं इमानदारीसाथ तालिम र मूल्याङ्कन दुवै गर्न सक्नुहुन्छ।
- अध्याय 6 (जिम्मेवारी) → मोडेलले बढाउनुअघि तालिम डाटाले बोकेको पूर्वाग्रह ध्यान दिने।
ती अध्यायहरूको हरेकले तपाईंलाई अर्को खण्डको त्यो क्षणका लागि तयार पारिरहेको थियो, जब तपाईं पहिलो पटक model.fit(X_train, y_train) लेख्नुहुन्छ र वास्तविक मोडेल तपाईंको ल्यापटपमा वास्तविक डाटामा तालिम लिन्छ।
आफ्नो बुझाइ जाँच्नुहोस्
Quick check
—यो खण्डको भाषामा, तपाईंले 'मेसिन लर्निङ मोडेल तालिम दिनुहोस्' गर्दा के हुन्छ भन्ने सबैभन्दा सटीक विवरण कुन हो?
Quick check
—तपाईं भोलिको NEPSE बन्द सूचक मान (सङ्ख्या, जस्तै 2142.7) पूर्वानुमान गर्दै हुनुहुन्छ। यो ML समस्याको कुन परिवार हो, र भेद किन महत्त्वपूर्ण छ?
अब के आउँछ
तालिमले के गरिरहेको छ तपाईंलाई थाहा छ। अर्को खण्डले त्यो गर्ने पुस्तकालय भेट्छ — scikit-learn, Python ML इकोसिस्टमको कार्यकर्ता। खण्ड 2 को अन्त्यमा तपाईंसँग scikit-learn को .fit() र .predict() ले हामीले भर्खर नाम दिएका तीन टुक्रा (मोडेल, लोस, अप्टिमाइजर) सँग कसरी मेल खान्छन् भन्ने सफा मानसिक मोडेल हुनेछ। अनि खण्ड 3 ले सबै सँगै राख्छ: तपाईंको पहिलो अन्त-देखि-अन्त वर्गीकरणकर्ता, वास्तविक डाटामा तालिम, र नदेखेका डाटामा पूर्वानुमान।