6. मशीन लर्निंग फ्रेमवर्क / Machine Learning Frameworks

यूनिट 6: मशीन लर्निंग फ्रेमवर्क

सीखने के उदेश्य :

इस इकाई के पूरा होने पर, प्रतिभागियों से यह अपेक्षा की जाती है कि वे:

• मशीन लर्निंग अनुप्रयोगों को विकसित करने के लिए पांच रूपरेखाओं की सूची बनाएं और समझाएं

• मशीन लर्निंग वर्कफ़्लो पर चर्चा करें

• स्किकिट-लर्न scikit-learn का उपयोग करना सीखें

परिचय

 मशीन लर्निंग या एमएल फ्रेमवर्क टूल का एक सेट है जो डेवलपर्स को मशीन लर्निंग मॉडल को तेजी से और आसानी से बनाने और तैनात करने की अनुमति देता है।

हमारे पास अपना स्वयं का ढांचा हो सकता है, या हम एक ऑफ-द-शेल्फ ढांचे का उपयोग करके मशीन लर्निंग परियोजनाओं को विकसित करने के लिए समय को कम कर सकते हैं जो स्थापित वर्कफ़्लो प्रदान करता है।

यह हमें मशीन लर्निंग परियोजनाओं के विकास और तैनाती में प्रतिस्पर्धात्मक लाभ प्राप्त करने की अनुमति देता है।

कई मशीन लर्निंग ढाँचे मौजूद हैं।  हम उनमें से पांच पर चर्चा करेंगे: स्किकिट-लर्न, टेन्सरफ्लो, शोगुन, पायटोरच और सीएनटीके।


स्किकिट-लर्न

स्किकिट-लर्न विशेष रूप से पायथन प्रोग्रामिंग भाषा के लिए एक व्यापक लाइब्रेरी के साथ पायथन में विकास कार्य का समर्थन करता है।  कई उपयोगकर्ता इसे डेटा माइनिंग के लिए सर्वोत्तम मशीन लर्निंग फ्रेमवर्क में से एक मानते हैं।

स्किकिट-लर्न को मूल रूप से scikits.learn कहा जाता था और 2007 में डेविड कौरनपेउ द्वारा Google समर ऑफ़ कोड प्रोजेक्ट के रूप में शुरू किया गया था।

2010 में, परियोजना को INRIA (नेशनल इंस्टीट्यूट फॉर रिसर्च इन डिजिटल साइंस एंड टेक्नोलॉजी) का समर्थन प्राप्त हुआ।  स्किकिट-लर्न की पहली सार्वजनिक रिलीज़ जनवरी 2010 के अंत में प्रकाशित हुई थी।

डेवलपर्स:

डेविड कूर्नपेउ मैथ्यू ब्रुचर

प्लेटफ़ॉर्म: लिनक्स, मैकओएस, विंडोज़

आरंभिक रिलीज़: जून 2007

स्थिर रिलीज़: 21 दिसंबर 2021

स्किटिट-लर्न रिपॉजिटरी: pypi.org/project/scikit-learn/ 

लाइसेंस: नया बीएसडी New BSD

स्किकिट-लर्न - डेटा माइनिंग प्रक्रिया

डेटा माइनिंग पैटर्न और रिश्तों की पहचान करने के लिए बड़े डेटासेट के माध्यम से सॉर्ट करने की प्रक्रिया है और इस तरह कच्चे डेटा को उपयोगी जानकारी में बदल देती है।  डेटा माइनिंग तकनीक और उपकरण हमें भविष्य के रुझानों की भविष्यवाणी करने और अधिक जानकारीपूर्ण व्यावसायिक निर्णय लेने में सक्षम बनाते हैं।

 डेटा माइनिंग का उपयोग विज्ञान, सामाजिक विज्ञान, व्यवसाय, विपणन, बिक्री, उत्पाद विकास, शिक्षा और स्वास्थ्य देखभाल सहित विभिन्न क्षेत्रों में किया जाता है।

डेटा माइनिंग में छह चरण हैं:


स्किकिट-लर्न - SciPy टूलकिट

नाम का "स्किकिट" भाग इसके SciPy टूलकिट से आता है।  SciPy, Python में वैज्ञानिक कंप्यूटिंग को संदर्भित करता है।  SciPy अनुकूलन, एकीकरण, प्रक्षेप, बीजगणितीय समीकरण, अंतर समीकरण, सांख्यिकी और समस्याओं के कई अन्य वर्गों के लिए एल्गोरिदम प्रदान करता है।

इस परियोजना में अब 30 से अधिक सक्रिय योगदानकर्ता हैं और इसे INRIA, Google, Tinyclues और Python Software फाउंडेशन से सशुल्क प्रायोजन प्राप्त हुआ है।  स्किकिट-लर्न निम्नलिखित के लिए एल्गोरिदम और मॉडल डिजाइन करने के लिए सहायता प्रदान करता है:

 • वर्गीकरण,/Classifications,

• क्लस्टरिंग, /• Clustering,

• पूर्व-प्रसंस्करण, /• Pre-processing,

• प्रतिगमन,/• Regression,

• आयामी कमी और /• Dimensional reduction and

 • मॉडल चयन./• Model selection.

स्किकिट-लर्न, ओपन-सोर्स सॉफ़्टवेयर के रूप में उपलब्ध है, शुरुआती अनुकूल है और विस्तृत दस्तावेज़ के साथ आता है जो डेवलपर्स को उपयोग के दौरान या रन-टाइम के दौरान एल्गोरिदम के लिए किसी भी पूर्व-निर्धारित पैरामीटर को बदलने की अनुमति देता है।

टेंसरफ़्लो

TensorFlow एक ओपन-सोर्स, जावास्क्रिप्ट लाइब्रेरी है और व्यापक रूप से उपयोग की जाने वाली मशीन लर्निंग फ्रेमवर्क में से एक है।  यह डेवलपर्स को मशीन लर्निंग मॉडल बनाने और प्रशिक्षित करने के लिए एपीआई प्रदान करता है।

TensorFlow को Google Brain टीम द्वारा अनुसंधान और उत्पादन में आंतरिक Google उपयोग के लिए विकसित किया गया था।  प्रारंभिक संस्करण 2015 में जारी किया गया था। Google ने सितंबर 2019 में अद्यतन संस्करण जारी किया, जिसे TensorFlow 2.0 नाम दिया गया।

TensorFlow बहुमुखी है और इसे सर्वश्रेष्ठ मशीन लर्निंग फ्रेमवर्क में से एक माना जाता है।  यह प्रोग्रामिंग, वर्गीकरण, प्रतिगमन मॉडल और तंत्रिका नेटवर्क के लिए व्यापक, लचीली सुविधाएँ और एक विस्तृत पुस्तकालय प्रदान करता है।  यह सीपीयू और जीपीयू दोनों पर चलता है।


डेवलपर्स:गूगल ब्रेन टीम

प्लेटफार्म:लिनक्स, मैकओएस, विंडोज़

प्रारंभिक रिलीज़: 9 नवंबर 2015

स्थिर रिलीज़: 16 मई 2022

टेन्सरफ्लो  रिपॉजिटरी: github.com/tensorflow/tensorflow

लाइसेंस: अपाचे लाइसेंस 2.0


TensorFlow  - लाभ

TensorFlow का एक प्रमुख लाभ यह है कि इसका उपयोग दो तरीकों से किया जा सकता है: स्क्रिप्ट टैग के माध्यम से या NPM के माध्यम से इंस्टॉलेशन के माध्यम से।

 एनपीएम (नोड पैकेज मैनेजर) दुनिया की सबसे बड़ी सॉफ्टवेयर रजिस्ट्री है, जिसमें 800,000 से अधिक कोड पैकेज हैं।  इसका उपयोग निःशुल्क है।  कोई भी व्यक्ति सभी एनपीएम सार्वजनिक सॉफ्टवेयर पैकेजों को बिना किसी पंजीकरण या लॉगऑन के डाउनलोड कर सकता है।

NPM को Node.js के साथ स्थापित किया गया है।  इसका तात्पर्य यह है कि हमें अपने कंप्यूटर पर NPM स्थापित करने के लिए Node.js इंस्टॉल करना होगा।  Node.js को आधिकारिक Node.js वेबसाइट: https://nodejs.org से डाउनलोड किया जा सकता है।

सभी एनपीएम पैकेज पैकेज.जेसन नामक फाइलों में परिभाषित हैं।  package.isor की सामग्री JSON में लिखी जानी चाहिए।


टेन्सर फ्लो - विशेषताएँ

TensorFlow की कुछ विशेषताएं हैं:

 स्वतः-विभेदीकरण Auto- differentiation

किसी मॉडल के प्रत्येक पैरामीटर के संबंध में उसके ग्रेडिएंट वेक्टर की स्वचालित रूप से गणना करने की प्रक्रिया।

Eager execution

बाद में निष्पादित कम्प्यूटेशनल ग्राफ़ में जोड़े जाने के विपरीत संचालन का तुरंत मूल्यांकन किया जाता है।

Distribute

प्रदर्शन माप के लिए, TensorFlow आमतौर पर उपयोग किए जाने वाले मेट्रिक्स तक API पहुंच प्रदान करता है।

Losses

मॉडलों को प्रशिक्षित करने और उनका आकलन करने के लिए, TensorFlow हानि कार्यों या लागत कार्यों का एक सेट प्रदान करता है।

मेट्रिक्स

TensorFlow विभिन्न वितरण रणनीतियों के साथ कई उपकरणों में गणना वितरित करने के लिए एक एपीआई प्रदान करता है।

Optimisers

किसी मॉडल को प्रशिक्षित करते समय, अलग-अलग ऑप्टिमाइज़र पैरामीटर ट्यूरिंग के विभिन्न तरीकों की पेशकश करते हैं

शोगुन

शोगुन एक ओपन-सोर्स मशीन लर्निंग (एमएल) फ्रेमवर्क है जो C++ के साथ अच्छा काम करता है।  यह उन डेवलपर्स के लिए मुफ़्त और उपयोगी है जो विशेष रूप से शिक्षा और अनुसंधान के क्षेत्र में समस्याओं के लिए एल्गोरिदम और डेटा संरचनाएं डिज़ाइन करना चाहते हैं।

शोगुन LibLinear, LibSVM, SVMLight और LibOCAS सहित अन्य ML लाइब्रेरी से भी जुड़ सकता है।

शोगुन अन्य भाषाओं और फ्रेमवर्क, जैसे आर, पायथन, जावा और सी# के साथ संगत है।

इस मशीन लर्निंग ढांचे के अन्य मुख्य आकर्षण में शामिल हैं:

• हिडन मार्कोव मॉडल के लिए समर्थन  

बड़ी मात्रा में डेटा संसाधित करने के लिए समर्थन

यह उपयोगकर्ता के अनुकूल है और कई लचीली सुविधाएँ और कार्यक्षमताएँ प्रदान करता है।


 डेवलपर्स: सोरेन सोनेनबर्ग, सर्गेई लिसित्सिन, हेइको स्ट्रैथमैन, फर्नांडो इग्लेसियस, विक्टर गैल

प्लेटफ़ॉर्म: लिनक्स, मैकओएस, विंडोज़

स्थिर रिलीज़: 27 अप्रैल 2017

शोगुन  रिपॉजिटरी:github.com/shogon-toolbox/shogun

लाइसेंस: वैकल्पिक GNU GPLv3 के साथ BSD3

 

शोगुन 1999 से सक्रिय विकास के अधीन है। आज, दुनिया भर में एक जीवंत उपयोगकर्ता समुदाय है जो शोगुन को अनुसंधान और शिक्षा के आधार के रूप में उपयोग करता है और मुख्य पैकेज में योगदान देता है।

शोगुन को शुरू में जैव सूचना विज्ञान अनुप्रयोगों के लिए विकसित किया गया था।

शोगुन दस मिलियन नमूनों वाले विशाल डेटासेट को संसाधित करने में सक्षम है।

शोगुन पूर्व-गणना की गई गुठली के उपयोग का समर्थन करता है।

शोगुन मल्टीपल-कर्नेल सीखने की कार्यक्षमता भी प्रदान करता है।

संख्यात्मक डेटा के लिए वर्तमान में कार्यान्वित कर्नेल में रैखिक, गाऊसी, बहुपद और सिग्मॉइड कर्नेल शामिल हैं

विशेष डेटा के लिए समर्थित कर्नेल में स्पेक्ट्रम, भारित डिग्री और भारित डिग्री बुद्धि शामिल हैं

PyTorch 

PyTorch एक मशीन लर्निंग फ्रेमवर्क है जो एल्गोरिदम को अनुकूलित करने के लिए कई विकल्पों के साथ आता है।  यह तंत्रिका नेटवर्क और प्राकृतिक भाषा प्रसंस्करण को डिजाइन करने के लिए बिल्कुल उपयुक्त है।

PyTorch ओपन-सोर्स है और क्लाउड-आधारित सॉफ़्टवेयर विकास का समर्थन करता है।  यह लाइब्रेरी, टूल और वितरित प्रशिक्षण सहित कई सुविधाओं के साथ आता है।

IBM PyTorch का उपयोगकर्ता है।  इसका फ्रंट-एंड डेवलपमेंट हाइब्रिड है, जो बहुमुखी प्रयोज्य बनाता है।  प्लेटफ़ॉर्म को पायथन के साथ एकीकृत करने और नुम्बा और साइथॉन जैसे पुस्तकालयों के साथ संगत करने के लिए डिज़ाइन किया गया था।

डेवलपर्स: मेटा अल

प्लेटफार्म:

लिनक्स, मैकओएस, विंडोज़

प्रारंभिक रिलीज़: सितंबर 2016

स्थिर रिलीज़: 16 मई 2022

PyTorch Github Repository : github.com/pytorch/pytor

लाइसेंस:संशोधित बीएसडी


PyTorch - NUMBA और साइथॉन

NUMBA एक ओपन-सोर्स JIT कंपाइलर है जो Python और NumPy कोड के सबसेट को तेज़ मशीन कोड में अनुवादित करता है।जस्ट-इन-टाइम (जेआईटी) कंपाइलर रनटाइम वातावरण का एक घटक है जो रन टाइम पर बाइटकोड को मूल मशीन कोड में संकलित करके जावा अनुप्रयोगों के प्रदर्शन में सुधार करता है।

साइथॉन भाषा पायथन भाषा का एक सुपरसेट है जो अतिरिक्त रूप से सी प्रोग्रामिंग भाषा में चर और वर्ग विशेषताओं पर कॉलिंग फ़ंक्शंस और घोषित प्रकारों का समर्थन करती है।

माइक्रोसॉफ्ट संज्ञानात्मक टूलकिट/माइक्रोसॉफ्ट कॉग्निटिव टूलकिट

माइक्रोसॉफ्ट कॉग्निटिव टूलकिट, जिसे सीएनटीके के नाम से भी जाना जाता है, माइक्रोसॉफ्ट रिसर्च द्वारा विकसित एक मशीन लर्निंग फ्रेमवर्क है।इसका उपयोग निर्देशित ग्राफ़ के रूप में कम्प्यूटेशनल विकास चरणों के अनुक्रम के रूप में कृत्रिम तंत्रिका नेटवर्क का वर्णन करने के लिए किया जाता है। यह एक ओपन-सोर्स मशीन लर्निंग फ्रेमवर्क है जिसे C++ प्रोग्रामिंग भाषा में एल्गोरिदम के साथ डिज़ाइन किया गया है।  सीएनटीके सी++, पायथन और ब्रेनस्क्रिप्ट से बड़े पैमाने पर, बहुआयामी या विरल डेटासेट के लिए एक आदर्श विकल्प है।

यह डेवलपर्स को विभिन्न मशीन लर्निंग मॉडल प्रकारों को मर्ज करने और देखने की अनुमति देता है, जिसमें आवर्तक तंत्रिका नेटवर्क, फ़ीड-फ़ॉरवर्ड डीप न्यूरल नेटवर्क और कनवल्शनल न्यूरल नेटवर्क शामिल हैं।


डेवलपर्स: माइक्रोसॉफ्ट रिसर्च

प्लेटफार्म:लिनक्स, विंडोज़

प्रारंभिक :25 जनवरी 2016

स्थिर रिलीज़: 26 अप्रैल 2019

माइक्रोसॉफ्ट सीएनटीके repositorty:  github.com/Microsoft/CN

लाइसेंस:एमआईटी लाइसेंस


माइक्रोसॉफ्ट कॉग्निटिव टूलकिट - आरएनएन और सीएनएन

आवर्ती तंत्रिका नेटवर्क (आरएनएन) एक प्रकार का कृत्रिम तंत्रिका नेटवर्क है जो अनुक्रमिक डेटा या समय श्रृंखला डेटा का उपयोग करता है।फीडफॉरवर्ड न्यूरल नेटवर्क तैयार किया गया सबसे सरल प्रकार का कृत्रिम न्यूरल नेटवर्क है।  इस नेटवर्क में, सूचना केवल एक ही दिशा में चलती है: इनपुट नोड्स से, छिपे हुए नोड्स के माध्यम से, आउटपुट नोड्स तक।

नेटवर्क में कोई चक्र या लूप नहीं हैं।

कन्वेन्शनल न्यूरल नेटवर्क (सीएनएन) गहन शिक्षण के लिए कृत्रिम तंत्रिका नेटवर्क का एक वर्ग है।  यह आमतौर पर दृश्य छवियों का विश्लेषण करने के लिए प्रयोग किया जाता है।

मशीन लर्निंग वर्कफ़्लो

इकाई 2 में, हमने मशीन सीखने की प्रक्रिया के तीन चरणों पर चर्चा की:

चरण एक

एक मशीन लर्निंग एल्गोरिदम को एक मॉडल तैयार करने के लिए लेबल किए गए या बिना लेबल वाले प्रशिक्षण डेटासेट का उपयोग करके प्रशिक्षित किया जाता है।

चरण 2

मॉडल में नया इनपुट डेटा पेश किया गया है।  फिर सटीकता के लिए भविष्यवाणी का मूल्यांकन किया जाता है, और यदि सटीकता स्वीकार्य है, तो मशीन लर्निंग एल्गोरिदम तैनात किया जाता है।

चरण 3

यदि सटीकता स्वीकार्य नहीं है, तो मशीन लर्निंग एल्गोरिदम को संवर्धित प्रशिक्षण डेटासेट के साथ बार-बार प्रशिक्षित किया जाता है।


अधिक विस्तृत प्रक्रिया में तीन से अधिक चरण या चरण शामिल होते हैं, जिसमें प्रशिक्षण शुरू होने से पहले दो पिछले चरणों को पूरा करने की आवश्यकता होती है। ये चरण डेटा एकत्रीकरण और डेटा सफाई/पूर्व-प्रसंस्करण हैं।  पांच चरण का वर्कफ़्लो चित्र 38 में दिखाया गया है।

Figure 38. Machine learning workflow - 5 phases.

The Five Phases /पांच चरण

चरण एक:डेटा इक्कट्ठा करना Data Gathering

सटीक मॉडल बनाने के लिए, प्रशिक्षण के लिए उपयोग किए जाने वाले डेटासेट का आकार और गुणवत्ता महत्वपूर्ण भूमिका निभाती है।  प्रशिक्षण डेटासेट की पहचान, एकत्रीकरण या निर्माण मशीन लर्निंग वर्कफ़्लो का पहला चरण है।

2 चरण: डेटा की सफ़ाई और प्री-प्रोसेसिंग Data Cleaning and Pre-processing

डेटा का उपयोग करने से पहले उसे साफ़ किया जाना चाहिए।  इसका मतलब संभावित गलत, गुम या असंगत डेटा बिंदुओं की पहचान करना है।  एक बार डेटा साफ़ हो जाने के बाद, मशीन लर्निंग वर्कफ़्लो में अगला चरण प्री-प्रोसेसिंग है, जिसमें शामिल है:

डेटा एन्कोडिंग /Data encoding : इन डेटा को विशिष्ट चर के एक सेट में बदलने की प्रक्रिया, जिसे सीधे मशीन लर्निंग एल्गोरिदम द्वारा हेरफेर किया जाएगा

डेटा स्वरूपण Data formatting :एकत्र किया गया डेटा अक्सर कच्चे प्रारूप में होता है और इसे सीखने की प्रक्रिया के लिए उपयुक्त प्रारूप में परिवर्तित करने की आवश्यकता होती है

डेटा पुनर्स्केलिंग, सामान्यीकरण या द्विनेरीकरण Data rescaling, normalisation or binarisation : एल्गोरिदम को पार्स करना आसान बनाने के लिए

चरण 3: प्रतिरूप निर्माण Model Building

मॉडल निर्माण में एक उपयुक्त एल्गोरिदम चुनना शामिल है, जिसके बाद मॉडल का परीक्षण और प्रशिक्षण किया जाता है।  डेटासेट को कुछ उपसमूहों में विभाजित किया गया है।  फिर, मॉडल को प्रशिक्षण सेट के रूप में सभी सबसेट का उपयोग करके प्रशिक्षित किया जाता है लेकिन मूल्यांकन के लिए एक सबसेट छोड़ दिया जाता है।

चरण 4: मूल्यांकन Evaluation

यदि मूल्यांकन का परिणाम स्वीकार्य है, तो मॉडल को तैनात किया जा सकता है।  यदि नहीं, तो आगे प्रशिक्षण दिए जाने की आवश्यकता है।

चरण 5: मॉडल परिनियोजनModel Deployment

मशीन लर्निंग का मुख्य लक्ष्य एक कुशल कम्प्यूटेशनल मॉडल तैयार करना है जिसकी भविष्यवाणियाँ सटीक हों।  इस सटीकता की पुष्टि यह जांचने के लिए की जानी चाहिए कि मॉडल डेटा में अंतर्निहित पैटर्न को सही ढंग से कैप्चर करता है, लेकिन इसे केवल प्रशिक्षण डेटासेट से प्राप्त परिणामों का उपयोग करके मान्य नहीं किया जा सकता है।

मशीन लर्निंग फ्रेमवर्क का उपयोग करना

उदाहरण के तौर पर, हम चर्चा करेंगे कि स्किकिट-लर्न मशीन लर्निंग फ्रेमवर्क का उपयोग कैसे करें।

इस उदाहरण में, हम दिखाएंगे कि स्किकिट-लर्न का उपयोग करके डेटा एकत्रीकरण, डेटा सफाई, प्रशिक्षण और मूल्यांकन कैसे किया जाए।

स्किकिट-लर्न का अध्ययन करने का सबसे अच्छा संदर्भ https://scikit-learn.org/stable पर उपलब्ध है, जैसा कि चित्र 39 में दिखाया गया है।

अपनी प्रगति जांचें

आपने अब तक जो समझा है, उसकी त्वरित जाँच करने का समय आ गया है।  इन प्रश्नों का उत्तर देने के लिए कुछ देर विचार करें।