पसंद के मुताबिक मशीन लर्निंग मॉडल: आसान तरीका

1. परिचय

2a934d0e86f14118.png

पिछली बार अपडेट किए जाने की तारीख: 28-03-2022

मशीन लर्निंग

मशीन लर्निंग एक ऐसा फ़ील्ड है जो बहुत तेज़ी से बढ़ता जाता है. हर दिन नई रिसर्च और संभावनाएं रिलीज़ की जाती हैं. इससे, इस्तेमाल के ऐसे उदाहरण दिए जा सकते हैं जो पहले मुमकिन नहीं थे.

इसलिए, इन रिलीज़ में आम तौर पर मॉडल शामिल होता है. मॉडल को गणित के बहुत लंबे समीकरणों के रूप में समझा जा सकता है. इनमें, इनपुट (जैसे: इमेज) देने से नतीजा मिलता है (जैसे, क्लासिफ़िकेशन)

  • अगर आपको अपने डेटा के साथ इनमें से किसी नए मॉडल का इस्तेमाल करना है, तो क्या होगा?
  • आपको अपने इस्तेमाल के उदाहरण या अपने ऐप्लिकेशन में, इन स्टेट ऑफ़ आर्ट मॉडल से क्या फ़ायदा मिल सकता है?

इस कोडलैब की मदद से, मशीन लर्निंग मॉडल को अपने डेटा के मुताबिक आसानी से बनाने का तरीका बताया जा सकता है.

मशीन लर्निंग मॉडल बनाने और उन्हें ट्रेनिंग देने में कई चुनौतियां आती हैं:

  • बहुत समय लगता है.
  • इसमें बहुत ज़्यादा डेटा इस्तेमाल होता है.
  • उन्हें गणित और आंकड़े जैसे फ़ील्ड में विशेषज्ञता होनी चाहिए.
  • इस प्रोसेस में ज़्यादा संसाधन होते हैं: कुछ मॉडल को ट्रेनिंग देने में कई दिन लग सकते हैं.

नए मॉडल के आर्किटेक्चर को बनाने में बहुत समय लगता है. इसके लिए, कई प्रयोगों और सालों के अनुभव की ज़रूरत पड़ सकती है. कैसा हो अगर आपको इस जानकारी का फ़ायदा मिले और इसे अपने डेटा पर इस्तेमाल करने के लिए, आपको अपनी समस्या के हिसाब से आधुनिक आर्ट रिसर्च को पसंद के मुताबिक बनाना चाहिए? ऐसा करने के लिए, Transfer Learning नाम की तकनीक का इस्तेमाल किया जा सकता है!

इस कोडलैब में, आपको यह जानकारी मिलेगी कि ट्रांसफ़र लर्निंग का इस्तेमाल कैसे किया जाता है, यह क्यों काम करता है, और इसका इस्तेमाल कब करना चाहिए.

आपको इनके बारे में जानकारी मिलेगी

  • ट्रांसफ़र लर्निंग क्या है और इसका इस्तेमाल कब करना चाहिए.
  • ट्रांसफ़र लर्निंग को इस्तेमाल करने का तरीका.
  • मॉडल को ट्यून करने का तरीका.
  • TensorFlow Lite Model Maker का इस्तेमाल करने का तरीका.
  • TensorFlow हब इस्तेमाल करने का तरीका.

आपको इन चीज़ों की ज़रूरत होगी

  • सभी कोड, Google Colaboratory का इस्तेमाल करके चलाए जाते हैं, ताकि आपको अपनी मशीन पर कुछ भी इंस्टॉल न करना पड़े. Colab में साइन इन करने के लिए, आपको सिर्फ़ इंटरनेट और Google खाते का ऐक्सेस चाहिए.
  • TensorFlow और Keras API की बुनियादी जानकारी.
  • Python के बारे में जानकारी.

अगर आपको TensorFlow या मशीन लर्निंग के बारे में बुनियादी जानकारी नहीं है, तब भी आप ट्रांसफ़र लर्निंग के बारे में जान सकते हैं. अगला चरण "ट्रांसफ़र लर्निंग क्या है" पढ़ें और फिर "मॉडल मेकर की मदद से लर्निंग ट्रांसफ़र करें" पर जाएं. अगर आपको इस प्रोसेस के बारे में गहराई से जानना है, तो TensorFlow हब के ज़रिए 'ट्रांसफ़र लर्निंग' सेक्शन में इस बारे में जानकारी पाएं.

2. ट्रांसफ़र लर्निंग क्या है?

पहले से ट्रेनिंग किया गया मॉडल, सेव किया गया ऐसा नेटवर्क है जिसे पहले बड़े डेटासेट पर ट्रेनिंग दी गई थी. आम तौर पर, यह मॉडल बड़े पैमाने पर इमेज की कैटगरी तय करने वाले टास्क के लिए तैयार किया गया है. पहले से ट्रेन किए गए मॉडल का इस्तेमाल करें या इस मॉडल को टास्क के हिसाब से कस्टमाइज़ करने के लिए, ट्रांसफ़र लर्निंग का इस्तेमाल करें.

इमेज की कैटगरी तय करने के लिए ट्रांसफ़र लर्निंग के पीछे का मकसद यह है कि अगर किसी मॉडल को काफ़ी बड़े और सामान्य डेटासेट के साथ ट्रेनिंग दी गई है, तो यह मॉडल विज़ुअल वर्ल्ड के सामान्य मॉडल की तरह काम करेगा. इसके बाद, सीखे गए इन फ़ीचर मैप का फ़ायदा पाने के लिए, एक बड़े डेटासेट की मदद से एक बड़े मॉडल को ट्रेनिंग दें और शुरुआत से न देखें.

मशीन लर्निंग मॉडल को पसंद के मुताबिक बनाने के दो तरीके हैं

  • फ़ीचर एक्सट्रैक्शन: नए सैंपल से अहम सुविधाएं निकालने के लिए, पिछले नेटवर्क से सीखे गए तरीकों का इस्तेमाल करें. आपको बस पहले से ट्रेन किए गए मॉडल के ऊपर एक नया क्लासिफ़ायर जोड़ें, जिसे शुरुआत से ट्रेनिंग दी गई है, ताकि आप डेटासेट के लिए पहले सीखे गए सुविधा मैप को नए तरीके से इस्तेमाल कर सकें. आपको पूरे मॉडल को फिर से ट्रेनिंग देने की ज़रूरत नहीं है. बेस कॉन्वलूशनल नेटवर्क में पहले से ऐसी सुविधाएं मौजूद हैं जो तस्वीरों की कैटगरी तय करने के लिए, सामान्य तौर पर काम की होती हैं. हालांकि, पहले से ट्रेन किए गए मॉडल का आखिरी क्लासिफ़िकेशन वाला हिस्सा, कैटगरी बनाने के मूल टास्क के लिए है. इसके बाद, क्लास के उस सेट के लिए भी ऐसा किया जा सकता है जिस पर मॉडल को ट्रेनिंग दी गई थी.
  • फ़ाइन-ट्यून करना: फ़्रीज़ किए गए मॉडल बेस की कुछ ऊपरी लेयर को अनफ़्रीज़ करें. साथ ही, नई जोड़ी गई क्लासिफ़ायर लेयर और बेस मॉडल की आखिरी लेयर, दोनों को साथ मिलकर ट्रेनिंग दें. इससे हमें "फ़ाइन ट्यून" करने में मदद मिलती है बेस मॉडल में हाई-ऑर्डर सुविधा का प्रतिनिधित्व किया जा सके, ताकि उसे किसी टास्क के लिए ज़्यादा काम का बनाया जा सके.

सुविधाओं के एक्सट्रैक्शन को ट्रेनिंग देने में कम समय लगता है, लेकिन फ़ाइन-ट्यूनिंग से बेहतर नतीजे पाए जा सकते हैं.

आप ट्रांसफ़र लर्निंग के दो अलग-अलग तरीकों का इस्तेमाल करके (फ़ीचर एक्सट्रैक्शन और फ़ाइन-ट्यूनिंग) दोनों आज़मा सकते हैं:

  • TensorFlow Lite Model Maker लाइब्रेरी, डेटा पाइपलाइन और मॉडल बनाने के ज़्यादातर काम अपने-आप कर देती है. इससे यह प्रोसेस काफ़ी आसान हो जाती है. तैयार किया गया मॉडल, मोबाइल और ब्राउज़र पर आसानी से एक्सपोर्ट किया जा सकता है.
  • TensorFlow Hub मॉडल, TensorFlow हब पर मौजूद मशीन लर्निंग मॉडल के डेटा स्टोर करने की जगह का इस्तेमाल करते हैं. शोधकर्ता और समुदाय के सदस्य, इन मॉडल का योगदान देते हैं. इससे आधुनिक और ज़्यादा तेज़ी से और अलग-अलग तरह के मॉडल उपलब्ध हो पाते हैं.

3. Model Maker के ज़रिए लर्निंग ट्रांसफ़र करें

अब आपको ट्रांसफ़र लर्निंग के पीछे का आइडिया पता चल गया है. इसलिए, अब TensorFlow Lite Model Maker लाइब्रेरी का इस्तेमाल करना शुरू करते हैं. यह एक ऐसा टूल है जिसकी मदद से यह काम आसानी से किया जा सकता है.

TensorFlow Lite Model Maker लाइब्रेरी एक ओपन सोर्स लिब है, जो ट्रांसफ़र लर्निंग की प्रक्रिया को आसान बनाती है. साथ ही, यह मोबाइल और वेब डेवलपर जैसे गैर-एमएल डेवलपर के लिए इस प्रोसेस को ज़्यादा आसान बनाती है.

Colab notebook, आपको यह तरीका अपनाने में मदद करता है:

  • डेटा लोड करें.
  • डेटा बांटें.
  • मॉडल बनाना और उसे ट्रेनिंग देना
  • मॉडल का आकलन करें.
  • मॉडल एक्सपोर्ट करें.

इस चरण के बाद, अपने डेटा से भी ट्रांसफ़र लर्निंग शुरू की जा सकती हैं. इसके लिए, बिलकुल वही प्रोसेस इस्तेमाल करनी होगी जो आपने अपने डेटा से की है.

Colaboratory

अब कस्टम मॉडल को ट्रेनिंग देने के लिए, Google Colab पर जाएं.

नोटबुक की जानकारी देखने और बुनियादी बातों को समझने में करीब 15 मिनट लगते हैं.

फ़ायदे:

  • मॉडल कस्टमाइज़ करने का आसान तरीका.
  • TensorFlow या Keras API को समझने की ज़रूरत नहीं है.
  • ओपन सोर्स टूल, अगर उपयोगकर्ता को किसी ऐसी चीज़ की ज़रूरत है जिसे अभी तक लागू न किया गया हो, तो इसे बदला जा सकता है.
  • मोबाइल या ब्राउज़र पर कार्रवाई करने के लिए, मॉडल को सीधे एक्सपोर्ट करता है.

नुकसान

  • पूरी पाइपलाइन बनाने और खुद को मॉडल करने की तुलना में, कॉन्फ़िगरेशन के कम मौके मिलते हैं, जैसा कि पिछले दो तरीकों में किया जाता है
  • बेस मॉडल चुनते समय भी, सभी मॉडल का इस्तेमाल बेस के तौर पर नहीं किया जा सकता.
  • यह ऐसे बड़े डेटा के लिए सही नहीं है जहां डेटा पाइपलाइन ज़्यादा जटिल होती है.

4. TensorFlow हब पर कोई मॉडल खोजें

इस सेक्शन के आखिर तक, ये काम किए जा सकेंगे:

  • TensorFlow हब पर मशीन लर्निंग मॉडल पाएं.
  • कलेक्शन के बारे में जानें.
  • अलग-अलग तरह के मॉडल को समझें.

ट्रांसफ़र लर्निंग के लिए, आपको दो चीज़ों से शुरुआत करनी होगी:

  • डेटा, जैसे कि उन चीज़ों की इमेज जिनकी आपको पहचान करनी है.
  • ऐसा बेस मॉडल जिसे अपने डेटा के मुताबिक बनाया जा सकता है.

आम तौर पर, डेटा वाला हिस्सा कारोबार पर निर्भर करता है. हालांकि, किसी चीज़ की पहचान करने के लिए कई तस्वीरें लेना सबसे आसान होता है. हालांकि, बेस मॉडल की क्या भूमिका है? आपको इसे कहां मिल सकता है? इसमें TensorFlow हब आपकी मदद कर सकता है.

TensorFlow हब, आपके TensorFlow मॉडल की ज़रूरतों के लिए मॉडल रिपॉज़िटरी (डेटा स्टोर करने की जगह) है.

आपके पास हज़ारों मॉडल के दस्तावेज़ खोजने और पढ़ने का विकल्प है. ये मॉडल आपके इस्तेमाल के लिए आसानी से उपलब्ध हैं. इनमें से कई मॉडल, ट्रांसफ़र लर्निंग और बेहतर बनाने के लिए तैयार हैं.

किसी मॉडल को खोजना

आइए, सबसे पहले TensorFlow हब पर इस्तेमाल करने के लिए मॉडल खोजते हैं जिन्हें बाद में अपने कोड में इस्तेमाल किया जा सकता है.

पहला चरण: अपने ब्राउज़र में, tfhub.dev साइट खोलें.

tfhub.dev के मुख्य पेज की इमेज

इमेज डोमेन पर ट्रांसफ़र लर्निंग के लिए, हमें फ़ीचर वेक्टर की ज़रूरत है. फ़ीचर वेक्टर, क्लासिफ़िकेशन मॉडल की तरह होते हैं, लेकिन वे क्लासिफ़िकेशन हेड के बिना होते हैं.

फ़ीचर वेक्टर, इमेज को Nवें स्पेस में अंकों में बदल सकता है (जहां N, मॉडल की आउटपुट लेयर के डाइमेंशन की संख्या है).

TFHub पर, किसी कार्ड पर क्लिक करके फ़ीचर वेक्टर खोजें.

tfhub.dev पेज की इमेज, जिसमें फ़ीचर वेक्टर टास्क को हाइलाइट करने वाला स्क्वेयर दिख रहा है

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

यह खोज वाले पेज की एक इमेज है, जो मुख्य पेज पर फ़ीचर वेक्टर टास्क चुनने के बाद tfhub.dev से मिली है

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

यह tfhub.dev से लिया गया इमेज कलेक्शन पेज है

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

यह tfhub.dev का इमेज कलेक्शन पेज है. आपने पिछले पेज से थोड़ा स्क्रोल किया है

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

MobilenetV3 फ़ीचर वेक्टर मॉडल की ज़्यादा जानकारी वाला पेज

फ़िलहाल, आपको सबसे ऊपर दिए गए यूआरएल की ज़रूरत है. यही मॉडल हैंडल है और इसकी मदद से TensorFlow हब लाइब्रेरी से किसी मॉडल को आसानी से ऐक्सेस किया जा सकता है.

5. TensorFlow हब की मदद से लर्निंग ट्रांसफ़र करें

अब आपने इस्तेमाल के लिए कोई मॉडल चुन लिया है, तो अब इसे TensorFlow हब लाइब्रेरी से KerasLayer तरीके की मदद से लोड करके, उसे अपनी पसंद के मुताबिक बनाएं.

यह तरीका, मॉडल को इस तरह लोड करता है कि उसका इस्तेमाल आपके मॉडल पर लेयर के रूप में किया जा सकता है. इससे, मॉडल को इस लेयर के आस-पास बनाने में मदद मिलती है.

पहले, जब आपने मॉडल मेकर का उपयोग करना सीखा, तो सभी आंतरिक चीज़ें आपके सामने छिपी हुई थीं ताकि इसे आसानी से समझा जा सके. नहीं, आप देखेंगे कि Model Maker पर्दे के पीछे क्या काम कर रहा है.

Colaboratory

अब कस्टम मॉडल को ट्रेनिंग देने के लिए, Google Colab पर जाएं.

नोटबुक की जानकारी देखने और बुनियादी बातों को समझने में करीब 20 मिनट लगते हैं.

फ़ायदे:

  • रिसर्चर और समुदाय के योगदान से उपलब्ध हज़ारों मॉडल, जिन्हें अलग-अलग तरह के डेटासेट की मदद से ट्रेनिंग दी गई.
  • विज़न, टेक्स्ट, और ऑडियो जैसे सभी टास्क के लिए मॉडल.
  • दूसरे मिलते-जुलते मॉडल के साथ आसानी से प्रयोग किया जा सकता है. बेस मॉडल को बदलने के लिए, सिर्फ़ एक स्ट्रिंग को बदलना पड़ सकता है.

नुकसान

  • मॉडल इस्तेमाल करने के लिए, अब भी TensorFlow/Keras की विशेषज्ञता की ज़रूरत है.

अगर आपको इस बारे में और ज़्यादा जानना है, तो Keras ऐप्लिकेशन का इस्तेमाल करके, सीखने-सिखाने की प्रक्रिया को ट्रांसफ़र करें विकल्प भी उपलब्ध है. यह काफ़ी हद तक TensorFlow हब का इस्तेमाल करने जैसी है, लेकिन इसमें सिर्फ़ मुख्य TensorFlow API मौजूद है.

6. बधाई हो

बधाई हो, आपने जान लिया है कि ट्रांसफ़र लर्निंग क्या है और इसे अपने डेटा पर कैसे लागू किया जाता है!

इस कोडलैब (कोड बनाना सीखना) में आपने ट्रांसफ़र लर्निंग नाम की तकनीक का इस्तेमाल करके, मशीन लर्निंग मॉडल को अपने डेटा के मुताबिक बनाने का तरीका सीखा

आपने 'ट्रांसफ़र लर्निंग' के दो तरीके आज़माए हैं:

  • TensorFlow Lite Model Maker जैसे टूल का इस्तेमाल करके.
  • TensorFlow हब से फ़ीचर वेक्टर का इस्तेमाल करना.

दोनों ही विकल्पों के अपने फ़ायदे और कमियां हैं. साथ ही, आपकी खास ज़रूरतों के हिसाब से कई कॉन्फ़िगरेशन हो सकते हैं

आपने यह भी सीखा है कि अपने डेटा के हिसाब से, मॉडल के वेट में थोड़ा और बदलाव करके, मॉडल को बेहतर बनाया जा सकता है.

दोनों ही विकल्पों से, मॉडल को बेहतर तरीके से ट्यून किया जा सकता है.

ट्रांसफ़र लर्निंग और फ़ाइन ट्यूनिंग की सुविधा, सिर्फ़ इमेज से जुड़े मॉडल के लिए ही नहीं है. आइडिया यह है कि आपके डेटासेट को ट्यून करने के लिए डोमेन के सीखे गए प्रतिनिधित्व का इस्तेमाल किया जाए, इसलिए इसका इस्तेमाल टेक्स्ट और ऑडियो डोमेन के लिए भी किया जा सकता है.

अगले चरण

  • इसे अपने डेटा के साथ आज़माएं.
  • हमें बताएं कि आपने क्या बनाया और TensorFlow को सोशल मीडिया पर अपने प्रोजेक्ट के साथ टैग करें.

ज़्यादा जानें

क्या आपका कोई सवाल है?