आर्टिफिशियल इंटेलिजेंस (एआई) ने हाल के वर्षों में काफी लोकप्रियता हासिल की है।
यदि आप एक सॉफ्टवेयर इंजीनियर, कंप्यूटर वैज्ञानिक, या सामान्य रूप से डेटा विज्ञान के प्रति उत्साही हैं, तो आप शायद इस क्षेत्र द्वारा प्रदान किए गए इमेज प्रोसेसिंग, पैटर्न पहचान और ऑब्जेक्ट डिटेक्शन के अद्भुत अनुप्रयोगों से चिंतित हैं।
एआई का सबसे महत्वपूर्ण उपक्षेत्र जिसके बारे में आपने शायद सुना है, वह है डीप लर्निंग। यह क्षेत्र शक्तिशाली एल्गोरिदम (कंप्यूटर प्रोग्राम निर्देश) पर केंद्रित है, जिसे मानव मस्तिष्क की कार्यक्षमता के बाद तैयार किया गया है जिसे के रूप में जाना जाता है तंत्रिका नेटवर्क.
इस लेख में, हम तंत्रिका नेटवर्क की अवधारणा और इन मॉडलों का निर्माण, संकलन, फिट और मूल्यांकन करने के तरीके के बारे में जानेंगे। अजगर.
तंत्रिका नेटवर्क
तंत्रिका नेटवर्क, या एनएन, मानव मस्तिष्क की जैविक गतिविधि के बाद तैयार किए गए एल्गोरिदम की एक श्रृंखला है। तंत्रिका नेटवर्क में नोड्स होते हैं, जिन्हें न्यूरॉन्स भी कहा जाता है।
ऊर्ध्वाधर नोड्स के संग्रह को परतों के रूप में जाना जाता है। मॉडल में एक इनपुट, एक आउटपुट और कई छिपी हुई परतें होती हैं। प्रत्येक परत में नोड्स होते हैं, जिन्हें न्यूरॉन्स भी कहा जाता है, जहां गणना होती है।
निम्नलिखित आरेख में, वृत्त नोड्स का प्रतिनिधित्व करते हैं और नोड्स का ऊर्ध्वाधर संग्रह परतों का प्रतिनिधित्व करते हैं। इस मॉडल में तीन परतें होती हैं।
एक परत के नोड्स अगली परत से ट्रांसमिशन लाइनों के माध्यम से जुड़े होते हैं जैसा कि नीचे देखा गया है।
हमारे डेटासेट में लेबल किए गए डेटा होते हैं। इसका मतलब है कि प्रत्येक डेटा इकाई को एक निश्चित नाम मान दिया गया है।
तो एक पशु वर्गीकरण डेटासेट के लिए हमारे पास हमारे डेटा के रूप में बिल्लियों और कुत्तों की छवियां होंगी, हमारे लेबल के रूप में 'बिल्ली' और 'कुत्ते' के साथ।
यह ध्यान रखना महत्वपूर्ण है कि हमारे मॉडल को समझने के लिए लेबल को संख्यात्मक मानों में परिवर्तित करने की आवश्यकता है, इसलिए हमारे पशु लेबल बिल्ली के लिए '0' और कुत्ते के लिए '1' बन जाते हैं। डेटा और लेबल दोनों को मॉडल के माध्यम से पारित किया जाता है।
शिक्षा
डेटा एक समय में मॉडल एक इकाई को खिलाया जाता है। यह डेटा विखंडू में टूट जाता है और मॉडल के प्रत्येक नोड से होकर गुजरता है। नोड्स इन विखंडू पर गणितीय कार्य करते हैं।
आपको इस ट्यूटोरियल के लिए गणितीय कार्यों या गणनाओं को जानने की आवश्यकता नहीं है, लेकिन ये मॉडल कैसे काम करते हैं, इसका एक सामान्य विचार होना महत्वपूर्ण है। एक परत में गणनाओं की एक श्रृंखला के बाद, डेटा को अगली परत पर भेजा जाता है और इसी तरह।
एक बार पूरा हो जाने पर, हमारा मॉडल आउटपुट लेयर पर डेटा लेबल की भविष्यवाणी करता है (उदाहरण के लिए, एक पशु वर्गीकरण समस्या में हमें एक बिल्ली के लिए एक भविष्यवाणी '0' मिलती है)।
तब मॉडल इस अनुमानित मूल्य की वास्तविक लेबल मान के साथ तुलना करने के लिए आगे बढ़ता है।
यदि मान मेल खाते हैं, तो हमारा मॉडल अगला इनपुट लेगा, लेकिन यदि मान भिन्न हैं, तो मॉडल दोनों मानों के बीच अंतर की गणना करेगा, जिसे नुकसान कहा जाता है, और अगली बार मिलान करने वाले लेबल बनाने के लिए नोड गणना को समायोजित करेगा।
डीप लर्निंग फ्रेमवर्क
कोड में तंत्रिका नेटवर्क बनाने के लिए, हमें आयात करने की आवश्यकता है डीप लर्निंग फ्रेमवर्क हमारे एकीकृत विकास पर्यावरण (आईडीई) का उपयोग कर पुस्तकालयों के रूप में जाना जाता है।
ये चौखटे पूर्व-लिखित कार्यों का एक संग्रह हैं जो इस ट्यूटोरियल में हमारी मदद करेंगे। हम अपने मॉडल के निर्माण के लिए केरस फ्रेमवर्क का उपयोग करेंगे।
केरस एक पायथन लाइब्रेरी है जो डीप लर्निंग और आर्टिफिशियल इंटेलिजेंस बैकएंड का उपयोग करती है जिसे कहा जाता है टेन्सलफ्लो आसानी से सरल अनुक्रमिक मॉडल के रूप में एनएन बनाने के लिए।
केरस भी अपने पहले से मौजूद मॉडल के साथ आता है जिसका उपयोग भी किया जा सकता है। इस ट्यूटोरियल के लिए, हम केरस का उपयोग करके अपना खुद का मॉडल तैयार करेंगे।
आप इस डीप लर्निंग फ्रेमवर्क के बारे में अधिक जान सकते हैं केरस वेबसाइट.
एक तंत्रिका नेटवर्क का निर्माण (ट्यूटोरियल)
आइए पायथन का उपयोग करके एक तंत्रिका नेटवर्क बनाने के लिए आगे बढ़ते हैं।
समस्या का विवरण
तंत्रिका नेटवर्क एआई-आधारित समस्याओं का एक प्रकार का समाधान है। इस ट्यूटोरियल के लिए हम पिमा इंडियंस डायबिटीज डेटा पर जा रहे हैं, जो उपलब्ध है यहाँ उत्पन्न करें.
यूसीआई मशीन लर्निंग ने इस डेटासेट को संकलित किया है और इसमें भारतीय रोगियों का मेडिकल रिकॉर्ड शामिल है। हमारे मॉडल को भविष्यवाणी करनी है कि रोगी को 5 साल के भीतर मधुमेह की शुरुआत हुई है या नहीं।
डेटासेट लोड हो रहा है
हमारा डेटासेट एक एकल CSV फ़ाइल है जिसे 'diabetes.csv' कहा जाता है जिसे Microsoft Excel का उपयोग करके आसानी से हेरफेर किया जा सकता है।
अपना मॉडल बनाने से पहले, हमें अपना डेटासेट आयात करना होगा। निम्नलिखित कोड का उपयोग करके आप यह कर सकते हैं:
पीडी के रूप में आयात पांडा
डेटा = pd.read_csv ('diabetes.csv')
एक्स = डेटा ड्रॉप ("परिणाम")
वाई = डेटा ["परिणाम"]
यहाँ हम उपयोग कर रहे हैं पांडा हमारे सीएसवी फ़ाइल डेटा में हेरफेर करने में सक्षम होने के लिए, read_csv() पंडों का एक अंतर्निहित कार्य है जो हमें अपनी फ़ाइल में मानों को 'डेटा' नामक एक चर में संग्रहीत करने की अनुमति देता है।
चर x में परिणाम (लेबल) डेटा के बिना हमारा डेटासेट होता है। हम इसे data.drop () फ़ंक्शन के साथ प्राप्त करते हैं जो x के लिए लेबल हटा देता है, जबकि y में केवल परिणाम (लेबल) डेटा होता है।
बिल्डिंग अनुक्रमिक मॉडल
चरण 1: पुस्तकालय आयात करना
सबसे पहले, हमें अपने मॉडल के लिए आवश्यक कुछ मापदंडों के साथ, TensorFlow और Keras को आयात करने की आवश्यकता है। निम्नलिखित कोड हमें ऐसा करने की अनुमति देता है:
tf के रूप में आयात स्पर्शरेखा
टेंसरफ़्लो आयात केरस से
tensorflow.keras.models से अनुक्रमिक आयात करें
tensorflow.keras.layers से सक्रियण, सघन आयात करें
tensorflow.keras.optimizers से एडम आयात करें
tensorflow.keras.metrics से categorical_crossentropy आयात करें
हमारे मॉडल के लिए हम सघन परतों का आयात कर रहे हैं। ये पूरी तरह से जुड़ी हुई परतें हैं; यानी, एक परत में प्रत्येक नोड पूरी तरह से अगली परत में दूसरे नोड से जुड़ा होता है।
हम एक भी आयात कर रहे हैं सक्रियण नोड्स को भेजे गए डेटा को स्केल करने के लिए आवश्यक फ़ंक्शन। ऑप्टिमाइज़र नुकसान को कम करने के लिए आयात भी किया गया है।
एडम एक प्रसिद्ध अनुकूलक है जो हमारे मॉडल अपडेट नोड गणना को और अधिक कुशलता से बनाता है categorical_crossentropy जो है हानि फ़ंक्शन का प्रकार (वास्तविक और अनुमानित लेबल मानों के बीच अंतर की गणना करता है) जिसका हम उपयोग करेंगे।
चरण 2: हमारे मॉडल को डिजाइन करना
मैं जो मॉडल बना रहा हूं उसमें एक इनपुट (16 इकाइयों के साथ), एक छिपा हुआ (32 इकाइयों के साथ) और एक आउटपुट (2 इकाइयों के साथ) परत है। ये संख्याएं निश्चित नहीं हैं और पूरी तरह से दी गई समस्या पर निर्भर करेंगी।
इकाइयों और परतों की सही संख्या निर्धारित करना एक ऐसी प्रक्रिया है जिसे अभ्यास के माध्यम से समयोपरि सुधारा जा सकता है। सक्रियण उस स्केलिंग के प्रकार से मेल खाता है जिसे हम अपने डेटा पर नोड के माध्यम से पारित करने से पहले प्रदर्शन करेंगे।
इस कार्य के लिए Relu और Softmax प्रसिद्ध सक्रियण कार्य हैं।
मॉडल = अनुक्रमिक ([
सघन (इकाइयाँ = 16, input_shape = (1,), सक्रियण = 'relu'),
घना (इकाइयाँ = 32, सक्रियण = 'रेलु'),
सघन (इकाइयाँ = 2, सक्रियण = 'सॉफ्टमैक्स')
])
यहाँ मॉडल का सारांश कैसा दिखना चाहिए:
मॉडल को प्रशिक्षित करना
हमारे मॉडल को दो चरणों में प्रशिक्षित किया जाएगा, पहला मॉडल को संकलित करना (मॉडल को एक साथ रखना) और दूसरा किसी दिए गए डेटासेट पर मॉडल को फिट करना।
यह model.compile () फ़ंक्शन का उपयोग करके और उसके बाद model.fit () फ़ंक्शन का उपयोग करके किया जा सकता है।
मॉडल.कंपाइल (ऑप्टिमाइज़र = एडम (लर्निंग_रेट = 0.0001), हानि = 'बाइनरी_क्रॉसेंट्रॉपी', मेट्रिक्स = ['सटीकता'])
मॉडल फिट (एक्स, वाई, युग = 30, बैच_साइज = 10)
'सटीकता' मीट्रिक निर्दिष्ट करने से हम प्रशिक्षण के दौरान अपने मॉडल की सटीकता का निरीक्षण कर सकते हैं।
चूंकि हमारे लेबल 1 और 0 के रूप में हैं, हम वास्तविक और अनुमानित लेबल के बीच अंतर की गणना करने के लिए एक बाइनरी लॉस फ़ंक्शन का उपयोग करेंगे।
डेटासेट को भी 10 (बैच_साइज़) के बैचों में विभाजित किया जा रहा है और इसे 30 बार (युग) मॉडल के माध्यम से पारित किया जाएगा। किसी दिए गए डेटासेट के लिए, x डेटा होगा और y डेटा के अनुरूप लेबल होगा।
भविष्यवाणियों का उपयोग कर परीक्षण मॉडल
अपने मॉडल का मूल्यांकन करने के लिए, हम भविष्यवाणी () फ़ंक्शन का उपयोग करके परीक्षण डेटा पर भविष्यवाणियां करते हैं।
भविष्यवाणियां = मॉडल। भविष्यवाणी (x)
और बस!
अब आपको इसकी अच्छी समझ होनी चाहिए गहरी सीख एप्लिकेशन, तंत्रिका नेटवर्क, वे सामान्य रूप से कैसे काम करते हैं और पायथन कोड में एक मॉडल का निर्माण, प्रशिक्षण और परीक्षण कैसे करें।
मुझे उम्मीद है कि यह ट्यूटोरियल आपको अपने स्वयं के डीप लर्निंग मॉडल बनाने और तैनात करने के लिए किकस्टार्ट देगा।
हमें टिप्पणियों में बताएं कि क्या लेख मददगार था।
एक जवाब लिखें