AI 101
рдЯреНрд░рд╛рдВрд╕рдлрд░ рд▓рд░реНрдирд┐рдВрдЧ рдХреНрдпрд╛ рд╣реИ?

ट्रांसफर लर्निंग क्या है?
जब आप मशीन लर्निंग का अभ्यास करते हैं, तो एक मॉडल को प्रशिक्षित करने में बहुत समय लग सकता है। एक मॉडल आर्किटेक्चर से शुरू करना, मॉडल को प्रशिक्षित करना और फिर मॉडल को ट्वीक करना समय और प्रयास का एक बड़ा हिस्सा है। एक मॉडल को प्रशिक्षित करने का एक अधिक कुशल तरीका यह है कि एक ऐसी आर्किटेक्चर का उपयोग किया जाए जो पहले से ही परिभाषित की गई हो, संभवतः वजन के साथ जो पहले से ही गणना की गई हो। यह ट्रांसफर लर्निंग के पीछे का मुख्य विचार है, एक मॉडल लेना जो पहले से ही उपयोग किया गया है और इसे एक नए कार्य के लिए पुन: उपयोग करना।
ट्रांसफर लर्निंग के विभिन्न तरीकों का उपयोग करने से पहले, आइए एक पल लें और समझें कि ट्रांसफर लर्निंग इतनी शक्तिशाली और उपयोगी तकनीक क्यों है।
एक डीप लर्निंग समस्या का समाधान
जब आप एक डीप लर्निंग समस्या का समाधान करने का प्रयास कर रहे हों, जैसे कि एक इमेज क्लासिफायर बनाना, तो आपको एक मॉडल आर्किटेक्चर बनाना होगा और फिर मॉडल को अपने डेटा पर प्रशिक्षित करना होगा। मॉडल क्लासिफायर को प्रशिक्षित करने में नेटवर्क के वजन को समायोजित करना शामिल है, जो घंटों या甚至 दिनों तक चल सकता है, जो मॉडल और डेटासेट की जटिलता पर निर्भर करता है।
यदि मॉडल आवश्यक सटीकता प्राप्त नहीं करता है, तो मॉडल को ट्वीक करने की आवश्यकता हो सकती है और फिर मॉडल को फिर से प्रशिक्षित करना होगा। इसका मतलब है कि एक ऑप्टिमल आर्किटेक्चर, प्रशिक्षण अवधि और डेटासेट विभाजन को खोजने तक अधिक घंटों का प्रशिक्षण। जब आप उन सभी переменों पर विचार करते हैं जिन्हें एक क्लासिफायर को उपयोगी बनाने के लिए एक दूसरे के साथ संरेखित किया जाना चाहिए, तो यह समझ में आता है कि मशीन लर्निंग इंजीनियर हमेशा मॉडल को प्रशिक्षित करने और लागू करने के लिए आसान, अधिक कुशल तरीकों की तलाश में रहते हैं। इस कारण से, ट्रांसफर लर्निंग तकनीक बनाई गई थी।
मॉडल को डिज़ाइन और परीक्षण करने के बाद, यदि मॉडल उपयोगी साबित हुआ, तो इसे बचाया जा सकता है और बाद में समान समस्याओं के लिए पुन: उपयोग किया जा सकता है।
ट्रांसफर लर्निंग के प्रकार
一般, ट्रांसफर लर्निंग के दो अलग-अलग प्रकार होते हैं: एक मॉडल को शुरू से विकसित करना और एक पूर्व-प्रशिक्षित मॉडल का उपयोग करना।
जब आप एक मॉडल को शुरू से विकसित करते हैं, तो आपको एक मॉडल आर्किटेक्चर बनाने की आवश्यकता होती है जो आपके प्रशिक्षण डेटा को व्याख्या करने और उसमें से पैटर्न निकालने में सक्षम हो। मॉडल को पहली बार प्रशिक्षित करने के बाद, आपको संभवतः मॉडल में बदलाव करने की आवश्यकता होगी ताकि मॉडल से ऑप्टिमल प्रदर्शन प्राप्त किया जा सके। आप फिर मॉडल आर्किटेक्चर को बचा सकते हैं और इसे एक समान कार्य के लिए मॉडल के रूप में उपयोग कर सकते हैं।
दूसरी स्थिति में – पूर्व-प्रशिक्षित मॉडल का उपयोग – आपको केवल एक पूर्व-प्रशिक्षित मॉडल का चयन करना होगा। कई विश्वविद्यालय और अनुसंधान टीमें अपने मॉडल के विनिर्देशों को सामान्य उपयोग के लिए उपलब्ध कराते हैं। मॉडल की आर्किटेक्चर और वजन डाउनलोड किए जा सकते हैं।
ट्रांसफर लर्निंग करते समय, पूरे मॉडल आर्किटेक्चर और वजन का उपयोग किया जा सकता है, या मॉडल के केवल कुछ हिस्से/परतें उपयोग की जा सकती हैं। पूर्व-प्रशिक्षित मॉडल के कुछ हिस्सों का उपयोग करना और शेष मॉडल को प्रशिक्षित करना फ़ाइन-ट्यूनिंग के रूप में जाना जाता है।
नेटवर्क को फ़ाइन-ट्यून करना
नेटवर्क को फ़ाइन-ट्यून करने का अर्थ है नेटवर्क में केवल कुछ परतों को प्रशिक्षित करना। यदि एक नया प्रशिक्षण डेटासेट मूल मॉडल के लिए उपयोग किए गए डेटासेट के समान है, तो कई समान वजन उपयोग किए जा सकते हैं।
नेटवर्क में अनलॉक और पुनः प्रशिक्षित की जाने वाली परतों की संख्या नए डेटासेट के आकार के अनुसार बढ़नी चाहिए। यदि प्रशिक्षित किया जा रहा डेटासेट छोटा है, तो यह एक बेहतर अभ्यास है कि अधिकांश परतों को उनके रूप में रखा जाए और केवल अंतिम कुछ परतों को प्रशिक्षित किया जाए। यह नेटवर्क को ओवरफिटिंग से बचाने के लिए है। वैकल्पिक रूप से, पूर्व-प्रशिक्षित नेटवर्क की अंतिम परतें हटाई जा सकती हैं और नई परतें जोड़ी जा सकती हैं, जो फिर प्रशिक्षित की जा सकती हैं। दूसरी ओर, यदि डेटासेट बड़ा है, तो संभवतः मूल डेटासेट से बड़ा है, तो पूरे नेटवर्क को फिर से प्रशिक्षित किया जाना चाहिए। नेटवर्क का उपयोग एक फिक्स्ड फीचर एक्सट्रैक्टर के रूप में करने के लिए, नेटवर्क के अधिकांश हिस्से का उपयोग विशेषताओं को निकालने के लिए किया जा सकता है, जबकि केवल नेटवर्क की अंतिम परत को अनलॉक और प्रशिक्षित किया जा सकता है।
जब आप एक नेटवर्क को फ़ाइन-ट्यून कर रहे हों, तो बस यह याद रखें कि कन्वोल्यूशनल नेटवर्क की पहली परतें उन सुविधाओं को含ने वाली जानकारी रखती हैं जो छवियों की अधिक सामान्य विशेषताओं का प्रतिनिधित्व करती हैं। ये विशेषताएं जैसे किनारे और रंग हैं। दूसरी ओर, कन्वोल्यूशनल नेटवर्क की बाद की परतें विवरण रखती हैं जो डेटासेट में व्यक्तिगत वर्गों के लिए अधिक विशिष्ट होती हैं जिस पर मॉडल最初े प्रशिक्षित किया गया था। यदि आप एक डेटासेट पर मॉडल को प्रशिक्षित कर रहे हैं जो मूल डेटासेट से बहुत अलग है, तो आप शायद मॉडल की प्रारंभिक परतों का उपयोग विशेषताओं को निकालने के लिए करना चाहेंगे और केवल शेष मॉडल को पुनः प्रशिक्षित करेंगे।
ट्रांसफर लर्निंग के उदाहरण
ट्रांसफर लर्निंग के सबसे सामान्य अनुप्रयोग संभवतः वे हैं जो इमेज डेटा का उपयोग इनपुट के रूप में करते हैं। ये अक्सर पूर्वानुमान/वर्गीकरण कार्य होते हैं। कन्वोल्यूशनल न्यूरल नेटवर्क्स द्वारा इमेज डेटा की व्याख्या करने का तरीका मॉडल के पहले से ही मौजूद हिस्सों को पुनः उपयोग करने के लिए खुद को उधार देता है, क्योंकि कन्वोल्यूशनल परतें अक्सर बहुत समान विशेषताओं को पहचानती हैं। ट्रांसफर लर्निंग समस्या का एक सामान्य उदाहरण इमेजनेट 1000 कार्य है, जो 1000 अलग-अलग वस्तुओं के वर्गों से भरा एक बड़ा डेटासेट है। जो कंपनियां इस डेटासेट पर उच्च प्रदर्शन वाले मॉडल विकसित करती हैं, वे अक्सर अपने मॉडलों को लाइसेंस के तहत जारी करती हैं जो दूसरों को उन्हें पुनः उपयोग करने की अनुमति देते हैं। इस प्रक्रिया से उत्पन्न मॉडलों में से कुछ में माइक्रोसॉफ्ट रेसनेट मॉडल, गूगल इन्सेप्शन मॉडल, और ऑक्सफोर्ड वीजीजी मॉडल समूह शामिल हैं।












