1. परिचय

पिछले अपडेट की तारीख: 28-03-2022
मशीन लर्निंग
मशीन लर्निंग एक ऐसा फ़ील्ड है जिसमें बहुत तेज़ी से बदलाव होते हैं. हर दिन नई रिसर्च और संभावनाएं रिलीज़ की जाती हैं. इससे ऐसे इस्तेमाल के उदाहरण मिलते हैं जो पहले मुमकिन नहीं थे.
इन रिलीज़ के नतीजे के तौर पर आम तौर पर एक मॉडल मिलता है. मॉडल को गणित के बहुत लंबे समीकरणों के तौर पर समझा जा सकता है. ये समीकरण, इनपुट (जैसे: इमेज) के आधार पर कोई नतीजा (जैसे: क्लासिफ़िकेशन) देते हैं
- अगर आपको इनमें से किसी नए मॉडल का इस्तेमाल अपने डेटा के साथ करना है, तो क्या करें?
- अपने इस्तेमाल के उदाहरण या अपने ऐप्लिकेशन के लिए, इन बेहतरीन मॉडल से आपको क्या फ़ायदा मिल सकता है?
इस कोडलैब में, मशीन लर्निंग मॉडल को अपने डेटा के हिसाब से आसानी से पसंद के मुताबिक बनाने की प्रोसेस के बारे में बताया गया है.
मशीन लर्निंग मॉडल बनाने और उन्हें ट्रेन करने में कई चुनौतियां आती हैं:
- इसमें बहुत समय लगता है.
- ज़्यादा डेटा इस्तेमाल करता है.
- इसके लिए, गणित और आंकड़ों जैसे विषयों में विशेषज्ञता की ज़रूरत होती है.
- ज़्यादा संसाधनों की ज़रूरत होती है: कुछ मॉडल को ट्रेन करने में कई दिन लग सकते हैं.
नए मॉडल आर्किटेक्चर बनाने में काफ़ी समय लगता है. इसके लिए, कई एक्सपेरिमेंट और सालों का अनुभव ज़रूरी होता है. हालांकि, अगर आपको उस पूरी जानकारी का फ़ायदा मिल जाए और उसे अपने डेटा पर इस्तेमाल किया जा सके, तो क्या होगा? इसके लिए, आपको सिर्फ़ अपनी समस्या के हिसाब से रिसर्च को पसंद के मुताबिक बनाना होगा. यह ट्रांसफ़र लर्निंग नाम की तकनीक का इस्तेमाल करके किया जा सकता है!
इस कोडलैब में, आपको ट्रांसफ़र लर्निंग करने का तरीका बताया जाएगा. साथ ही, यह भी बताया जाएगा कि यह कैसे काम करती है और इसका इस्तेमाल कब करना चाहिए.
आपको क्या सीखने को मिलेगा
- ट्रांसफ़र लर्निंग क्या है और इसका इस्तेमाल कब करना चाहिए.
- ट्रांसफ़र लर्निंग का इस्तेमाल कैसे करें.
- मॉडल को बेहतर बनाने का तरीका.
- TensorFlow Lite Model Maker का इस्तेमाल करने का तरीका.
- TensorFlow Hub का इस्तेमाल कैसे करें.
आपको इन चीज़ों की ज़रूरत होगी
- पूरा कोड, Google Colaboratory का इस्तेमाल करके एक्ज़ीक्यूट किया जाता है. इसलिए, आपको अपने कंप्यूटर पर कुछ भी इंस्टॉल करने की ज़रूरत नहीं होगी. Colab में साइन इन करने के लिए, आपको सिर्फ़ इंटरनेट का ऐक्सेस और एक Google खाते की ज़रूरत होती है.
- TensorFlow और Keras API के बारे में बुनियादी जानकारी.
- Python की जानकारी.
अगर आपको TensorFlow या मशीन लर्निंग के बारे में बुनियादी जानकारी नहीं है, तो भी ट्रांसफ़र लर्निंग के बारे में जाना जा सकता है. इस तकनीक के बारे में जानने के लिए, "ट्रांसफ़र लर्निंग क्या है" लेख पढ़ें. इसके बाद, "Model Maker की मदद से ट्रांसफ़र लर्निंग" लेख पढ़ें. अगर आपको इस बारे में ज़्यादा जानना है और प्रोसेस के बारे में ज़्यादा जानकारी चाहिए, तो आपको TensorFlow Hub की मदद से ट्रांसफ़र लर्निंग के बारे में जानकारी देने वाले सेक्शन में यह जानकारी मिलेगी.
2. ट्रांसफ़र लर्निंग क्या है?
पहले से ट्रेन किया गया मॉडल, सेव किया गया ऐसा नेटवर्क होता है जिसे पहले किसी बड़े डेटासेट पर ट्रेन किया गया था. आम तौर पर, इसे इमेज क्लासिफ़िकेशन के बड़े पैमाने पर किए जाने वाले टास्क के लिए ट्रेन किया जाता है. प्रीट्रेन किए गए मॉडल का इस्तेमाल उसी तरह किया जाता है या ट्रांसफ़र लर्निंग का इस्तेमाल करके, इस मॉडल को किसी टास्क के हिसाब से बनाया जाता है.
इमेज क्लासिफ़िकेशन के लिए ट्रांसफ़र लर्निंग का सिद्धांत यह है कि अगर किसी मॉडल को बड़े और सामान्य डेटासेट पर ट्रेन किया जाता है, तो यह मॉडल विज़ुअल दुनिया के सामान्य मॉडल के तौर पर काम करेगा. इसके बाद, आपको बड़े डेटासेट पर बड़े मॉडल को ट्रेनिंग देकर, नए सिरे से शुरुआत करने की ज़रूरत नहीं होगी. इसके बजाय, इन सीखी गई सुविधाओं वाले मैप का फ़ायदा लिया जा सकता है.
मशीन लर्निंग मॉडल को अपनी पसंद के मुताबिक बनाने के दो तरीके हैं
- फ़ीचर एक्सट्रैक्शन: पिछले नेटवर्क से सीखी गई जानकारी का इस्तेमाल करके, नए सैंपल से अहम फ़ीचर एक्सट्रैक्ट करें. आपको बस पहले से ट्रेन किए गए मॉडल के ऊपर एक नया क्लासिफ़ायर जोड़ना होता है. इसे शुरू से ट्रेन किया जाता है, ताकि डेटासेट के लिए पहले से सीखे गए फ़ीचर मैप का फिर से इस्तेमाल किया जा सके. आपको पूरे मॉडल को (फिर से) ट्रेन करने की ज़रूरत नहीं है. बेसिक कनवोल्यूशनल नेटवर्क में पहले से ही ऐसी सुविधाएं मौजूद होती हैं जो तस्वीरों को क्लासिफ़ाई करने के लिए आम तौर पर काम की होती हैं. हालांकि, प्रीट्रेन किए गए मॉडल का फ़ाइनल क्लासिफ़िकेशन हिस्सा, ओरिजनल क्लासिफ़िकेशन टास्क के हिसाब से होता है. इसके बाद, यह उन क्लास के सेट के हिसाब से होता है जिन पर मॉडल को ट्रेन किया गया था.
- फ़ाइन-ट्यूनिंग: फ़्रीज़ किए गए मॉडल बेस की कुछ टॉप लेयर को अनफ़्रीज़ करें. साथ ही, नई जोड़ी गई क्लासिफ़ायर लेयर और बेस मॉडल की आखिरी लेयर, दोनों को एक साथ ट्रेन करें. इससे हमें बेस मॉडल में मौजूद हायर-ऑर्डर फ़ीचर को "फ़ाइन ट्यून" करने में मदद मिलती है, ताकि उन्हें किसी खास टास्क के लिए ज़्यादा काम का बनाया जा सके.
फ़ीचर एक्सट्रैक्शन को ट्रेन करने में कम समय लगता है. हालांकि, फ़ाइन-ट्यूनिंग से बेहतर नतीजे पाए जा सकते हैं.
ट्रांसफ़र लर्निंग के दो अलग-अलग तरीकों का इस्तेमाल करके, दोनों (फ़ीचर एक्सट्रैक्शन और फ़ाइन-ट्यूनिंग) को आज़माएं:
- TensorFlow Lite Model Maker लाइब्रेरी, डेटा पाइपलाइन और मॉडल बनाने का ज़्यादातर काम अपने-आप करती है. इससे प्रोसेस काफ़ी आसान हो जाती है. इसके बाद, तैयार किए गए मॉडल को आसानी से एक्सपोर्ट किया जा सकता है, ताकि इसे मोबाइल और ब्राउज़र पर इस्तेमाल किया जा सके.
- TensorFlow Hub मॉडल, TensorFlow Hub पर उपलब्ध मशीन लर्निंग मॉडल की बड़ी रिपॉज़िटरी का फ़ायदा उठाते हैं. रिसर्च करने वाले लोग और कम्यूनिटी, इन मॉडल को बेहतर बनाने में योगदान देती है. इससे, बेहतरीन मॉडल बहुत कम समय में और अलग-अलग तरह के उपलब्ध हो पाते हैं.
3. Model Maker की मदद से ट्रांसफ़र लर्निंग करना
अब जब आपको ट्रांसफ़र लर्निंग के बारे में पता चल गया है, तो आइए TensorFlow Lite Model Maker लाइब्रेरी का इस्तेमाल शुरू करें. यह एक ऐसा टूल है जो इसे आसानी से करने में मदद करता है.
TensorFlow Lite Model Maker library एक ओपन सोर्स लाइब्रेरी है. यह ट्रांसफ़र लर्निंग की प्रोसेस को आसान बनाती है. साथ ही, इसे मशीन लर्निंग के अलावा अन्य डेवलपर के लिए भी ज़्यादा सुलभ बनाती है. जैसे, मोबाइल और वेब डेवलपर.
Colab notebook में, आपको ये चरण पूरे करने के बारे में बताया गया है:
- डेटा लोड करें.
- डेटा को स्प्लिट करें.
- मॉडल बनाना और उसे ट्रेनिंग देना
- मॉडल का आकलन करें.
- मॉडल एक्सपोर्ट करें.
इस चरण के बाद, इसी प्रोसेस का इस्तेमाल करके अपने डेटा के साथ ट्रांसफ़र लर्निंग शुरू की जा सकती है.
Colaboratory
इसके बाद, कस्टम मॉडल को ट्रेन करने के लिए Google Colab पर जाएं.
जवाब को समझने और नोटबुक की बुनियादी बातों को जानने में करीब 15 मिनट लगते हैं.
फ़ायदे:
- मॉडल को आसानी से पसंद के मुताबिक बनाया जा सकता है.
- इसके लिए, TensorFlow या Keras API को समझने की ज़रूरत नहीं है.
- यह एक ओपन सोर्स टूल है. अगर उपयोगकर्ता को कोई ऐसी सुविधा चाहिए जो अभी तक लागू नहीं की गई है, तो उसे बदला जा सकता है.
- यह मॉडल को सीधे तौर पर मोबाइल या ब्राउज़र पर इस्तेमाल करने के लिए एक्सपोर्ट करता है.
नुकसान
- पिछले दो तरीकों की तुलना में, इसमें कॉन्फ़िगरेशन के कम विकल्प मिलते हैं. ऐसा इसलिए, क्योंकि इसमें पूरी पाइपलाइन और मॉडल खुद बनाना होता है
- बेस मॉडल चुनते समय भी, सभी मॉडल को बेस मॉडल के तौर पर इस्तेमाल नहीं किया जा सकता.
- यह ज़्यादा डेटा के लिए सही नहीं है. साथ ही, यह उन मामलों में भी सही नहीं है जहां डेटा पाइपलाइन ज़्यादा जटिल होती है.
4. TensorFlow Hub पर कोई मॉडल ढूंढना
इस सेक्शन को पूरा करने के बाद, आपको इनके बारे में जानकारी मिल जाएगी:
- TensorFlow Hub पर मशीन लर्निंग मॉडल ढूंढें.
- कलेक्शन के बारे में जानें.
- अलग-अलग तरह के मॉडल के बारे में जानें.
ट्रांसफ़र लर्निंग करने के लिए, आपको इन दो चीज़ों से शुरुआत करनी होगी:
- डेटा, जैसे कि उन विषयों की इमेज जिन्हें आपको पहचानना है.
- एक ऐसा बेस मॉडल जिसे अपने डेटा के हिसाब से कस्टमाइज़ किया जा सकता है.
डेटा का हिस्सा आम तौर पर कारोबार पर निर्भर करता है, लेकिन सबसे आसान तरीका यह है कि आपको जिस चीज़ की पहचान करनी है उसकी कई तस्वीरें लें. लेकिन, बेस मॉडल के बारे में क्या? आपको यह कहां मिलेगा? इस मामले में, TensorFlow Hub आपकी मदद कर सकता है.
TensorFlow Hub, TensorFlow मॉडल की ज़रूरतों के लिए मॉडल रिपॉज़िटरी है.
आपके पास हज़ारों मॉडल के दस्तावेज़ों को खोजने और पढ़ने का विकल्प होता है. ये मॉडल, इस्तेमाल के लिए तुरंत उपलब्ध होते हैं. इनमें से कई मॉडल, ट्रांसफ़र लर्निंग और फ़ाइन-ट्यूनिंग के लिए तैयार होते हैं.
किसी मॉडल को खोजना
आइए, सबसे पहले TensorFlow Hub पर इस्तेमाल किए जा सकने वाले मॉडल खोजें. इनका इस्तेमाल बाद में अपने कोड में किया जा सकता है.
पहला चरण: अपने ब्राउज़र में, tfhub.dev साइट खोलें.

इमेज डोमेन पर ट्रांसफ़र लर्निंग के लिए, हमें फ़ीचर वेक्टर की ज़रूरत होती है. फ़ीचर वेक्टर, क्लासिफ़िकेशन मॉडल की तरह होते हैं. हालांकि, इनमें क्लासिफ़िकेशन हेड नहीं होता.
फ़ीचर वेक्टर, इमेज को Nth स्पेस में संख्या के तौर पर दिखा सकते हैं. यहां N, मॉडल की आउटपुट लेयर के डाइमेंशन की संख्या है.
TFHub पर, किसी कार्ड पर क्लिक करके खास तौर पर फ़ीचर वेक्टर खोजे जा सकते हैं.

बाईं ओर मौजूद फ़िल्टर का इस्तेमाल करके, मॉडल के नाम को भी खोजा जा सकता है. इससे सिर्फ़ Image feature vectors दिखेगा.

नीले आइकॉन वाले कार्ड, मॉडल के कलेक्शन होते हैं. किसी इमेज कलेक्शन पर क्लिक करने से, आपको मिलते-जुलते कई मॉडल चुनने का विकल्प मिलेगा. आइए, इमेज कलेक्शन चुनें.

नीचे की ओर स्क्रोल करें और MobileNet V3 को चुनें. कोई भी फ़ीचर वेक्टर काम करेगा.

मॉडल के बारे में ज़्यादा जानकारी वाले पेज पर, मॉडल से जुड़े सभी दस्तावेज़ पढ़े जा सकते हैं. साथ ही, मॉडल को आज़माने के लिए कोड स्निपेट देखे जा सकते हैं. इसके अलावा, इसे सीधे तौर पर Colab नोटबुक पर भी आज़माया जा सकता है.

फ़िलहाल, आपको सिर्फ़ सबसे ऊपर मौजूद यूआरएल की ज़रूरत है. यह मॉडल हैंडल है. इसकी मदद से, TensorFlow Hub लाइब्रेरी से किसी मॉडल को आसानी से ऐक्सेस किया जा सकता है.
5. TensorFlow Hub की मदद से ट्रांसफ़र लर्निंग
अब आपने इस्तेमाल करने के लिए एक मॉडल चुन लिया है. आइए, इसे TensorFlow Hub लाइब्रेरी के KerasLayer तरीके से लोड करके, अपनी पसंद के मुताबिक बनाएं.
इस तरीके से मॉडल को इस तरह लोड किया जाता है कि इसका इस्तेमाल आपके मॉडल पर लेयर के तौर पर किया जा सके. इससे आपको इस लेयर के आस-पास अपना मॉडल बनाने में मदद मिलती है.
पहले, जब आपने Model Maker का इस्तेमाल करने का तरीका सीखा था, तब आपको समझने में आसानी हो, इसके लिए सभी इंटरनल को छिपा दिया गया था. नहीं, आपको दिखेगा कि Model Maker पर्दे के पीछे क्या कर रहा है.
Colaboratory
इसके बाद, कस्टम मॉडल को ट्रेन करने के लिए Google Colab पर जाएं.
जवाब को समझने और नोटबुक की बुनियादी बातों को जानने में करीब 20 मिनट लगते हैं.
फ़ायदे:
- शोधकर्ताओं और कम्यूनिटी ने हज़ारों मॉडल उपलब्ध कराए हैं. इन्हें अलग-अलग डेटासेट पर ट्रेन किया गया है.
- सभी टास्क के लिए मॉडल, जैसे कि विज़न, टेक्स्ट, और ऑडियो.
- मिलते-जुलते अलग-अलग मॉडल को आसानी से आज़माया जा सकता है. बुनियादी मॉडल बदलने के लिए, सिर्फ़ एक स्ट्रिंग बदलने की ज़रूरत पड़ सकती है.
नुकसान
- मॉडल इस्तेमाल करने के लिए, अब भी TensorFlow/Keras की कुछ विशेषज्ञता की ज़रूरत होती है.
अगर आपको इस बारे में और ज़्यादा जानना है, तो Keras Application का इस्तेमाल करके ट्रांसफ़र लर्निंग भी की जा सकती है. यह TensorFlow Hub का इस्तेमाल करने की प्रोसेस से काफ़ी मिलती-जुलती है. हालांकि, इसमें सिर्फ़ कोर TensorFlow API का इस्तेमाल किया जाता है.
6. बधाई हो
बधाई हो, आपने ट्रांसफ़र लर्निंग के बारे में जान लिया है. साथ ही, आपने यह भी जान लिया है कि इसे अपने डेटा पर कैसे लागू किया जाता है!
इस कोडलैब में, आपने ट्रांसफ़र लर्निंग नाम की तकनीक का इस्तेमाल करके, मशीन लर्निंग मॉडल को अपने डेटा के हिसाब से बनाने का तरीका सीखा
आपने ट्रांसफ़र लर्निंग के दो फ़ॉर्म इस्तेमाल किए:
- TensorFlow Lite Model Maker जैसे टूल का इस्तेमाल करके.
- TensorFlow Hub से फ़ीचर वेक्टर का इस्तेमाल करना.
दोनों विकल्पों के अपने फ़ायदे और नुकसान हैं. साथ ही, आपकी ज़रूरतों के हिसाब से कई कॉन्फ़िगरेशन उपलब्ध हैं
आपने यह भी जाना कि अपने डेटा के हिसाब से मॉडल को बेहतर बनाने के लिए, उनके वेट में थोड़ा और बदलाव किया जा सकता है.
दोनों विकल्पों से, मॉडल को बेहतर बनाया जा सकता है.
ट्रांसफ़र लर्निंग और फ़ाइन ट्यूनिंग की सुविधा, सिर्फ़ इमेज से जुड़े मॉडल के लिए नहीं है. इस तकनीक का मकसद, किसी डोमेन के बारे में सीखी गई जानकारी का इस्तेमाल करके, आपके डेटासेट को बेहतर बनाना है. इसलिए, इसका इस्तेमाल टेक्स्ट और ऑडियो डोमेन के लिए भी किया जा सकता है.
अगले चरण
- इसे अपने डेटा के साथ आज़माएं.
- आपने जो भी बनाया है उसे हमारे साथ शेयर करें. साथ ही, अपने प्रोजेक्ट के साथ सोशल मीडिया पर TensorFlow को टैग करें.
ज़्यादा जानें
- BERT जैसे स्टेट ऑफ़ द आर्ट मॉडल के लिए फ़ाइन ट्यूनिंग के बारे में ज़्यादा जानने के लिए, BERT मॉडल को फ़ाइन-ट्यून करना लेख पढ़ें.
- ऑडियो मॉडल के लिए ट्रांसफ़र लर्निंग के बारे में ज़्यादा जानने के लिए, परिवेश की आवाज़ों को कैटगरी में बांटने के लिए, YAMNet के साथ ट्रांसफ़र लर्निंग लेख पढ़ें.