आर्टिफिसियल इन्टेलिजेन्स (एआई) ले हालैका वर्षहरूमा उल्लेखनीय मात्रामा लोकप्रियता हासिल गरेको छ।
यदि तपाइँ एक सफ्टवेयर इन्जिनियर, कम्प्यूटर वैज्ञानिक, वा सामान्यतया डेटा विज्ञान उत्साही हुनुहुन्छ भने, तपाइँ सम्भवतः छवि प्रशोधन, ढाँचा पहिचान र यो क्षेत्र द्वारा प्रदान गरिएको वस्तु पत्ता लगाउने अद्भुत अनुप्रयोगहरू द्वारा उत्सुक हुनुहुन्छ।
AI को सबैभन्दा महत्त्वपूर्ण सबफिल्ड जुन तपाईंले सायद सुन्नुभएको छ त्यो हो डीप लर्निङ। यो क्षेत्र शक्तिशाली एल्गोरिदम (कम्प्यूटर प्रोग्राम निर्देशनहरू) मा ध्यान केन्द्रित गर्दछ जुन मानव मस्तिष्क कार्यक्षमता को रूपमा चिनिन्छ न्यूरल नेटवर्कहरू.
यस लेखमा, हामी तंत्रिका सञ्जालहरूको अवधारणा र कसरी यी मोडेलहरू प्रयोग गरेर निर्माण, कम्पाइल, फिट र मूल्याङ्कन गर्ने बारे जानेछौं। अजगर.
न्यूरल नेटवर्कहरू
न्यूरल नेटवर्कहरू, वा NNs, मानव मस्तिष्कको जैविक गतिविधि पछि मोडेल गरिएको एल्गोरिदमहरूको एक श्रृंखला हो। न्यूरल नेटवर्कहरू नोडहरू हुन्छन्, जसलाई न्यूरोन्स पनि भनिन्छ।
ठाडो नोडहरूको संग्रहलाई तह भनिन्छ। मोडेलमा एउटा इनपुट, एउटा आउटपुट, र धेरै लुकेका तहहरू हुन्छन्। प्रत्येक तहमा नोडहरू हुन्छन्, जसलाई न्यूरोन्स पनि भनिन्छ, जहाँ गणनाहरू हुन्छन्।
निम्न रेखाचित्रमा, सर्कलहरूले नोडहरूलाई प्रतिनिधित्व गर्दछ र नोडहरूको ठाडो सङ्कलनले तहहरूलाई प्रतिनिधित्व गर्दछ। यस मोडेलमा तीन तहहरू छन्।
एउटा तहको नोडहरू तल देखिए अनुसार प्रसारण लाइनहरू मार्फत अर्को तहमा जोडिएका छन्।
हाम्रो डेटासेट लेबल गरिएको डेटा समावेश गर्दछ। यसको मतलब प्रत्येक डेटा इकाईलाई निश्चित नाम मान तोकिएको छ।
त्यसैले जनावर वर्गीकरण डेटासेटको लागि हामीसँग हाम्रो डेटाको रूपमा बिराला र कुकुरका छविहरू हुनेछन्, 'बिरालो' र 'कुकुर' हाम्रो लेबलको रूपमा।
यो नोट गर्न महत्त्वपूर्ण छ कि लेबलहरूलाई हाम्रो मोडेलको लागि संख्यात्मक मानहरूमा रूपान्तरण गर्न आवश्यक छ तिनीहरूलाई बुझ्नको लागि, त्यसैले हाम्रो पशु लेबलहरू बिरालाको लागि '0' र कुकुरको लागि '1' बन्छ। दुबै डाटा र लेबलहरू मोडेल मार्फत पारित हुन्छन्।
सिक्ने
डेटा एक पटकमा मोडेल एक इकाईलाई फिड गरिन्छ। यो डेटा टुक्रामा टुक्रिएको छ र मोडेलको प्रत्येक नोड मार्फत पारित गरिएको छ। नोडहरूले यी खण्डहरूमा गणितीय कार्यहरू गर्दछ।
तपाईंले यस ट्यूटोरियलको लागि गणितीय कार्यहरू वा गणनाहरू जान्न आवश्यक छैन, तर यी मोडेलहरूले कसरी काम गर्छन् भन्ने बारे सामान्य विचार हुनु महत्त्वपूर्ण छ। एक तहमा गणनाको एक श्रृंखला पछि, डेटा अर्को तहमा पठाइन्छ र यस्तै।
एकपटक पूरा भएपछि, हाम्रो मोडेलले आउटपुट तहमा डेटा लेबलको भविष्यवाणी गर्छ (उदाहरणका लागि, जनावरको वर्गीकरण समस्यामा हामीले बिरालाको लागि '०' भविष्यवाणी पाउँछौं)।
मोडेलले यो भविष्यवाणी गरिएको मानलाई वास्तविक लेबल मानसँग तुलना गर्न अगाडि बढ्छ।
यदि मानहरू मेल खान्छ भने, हाम्रो मोडेलले अर्को इनपुट लिनेछ तर यदि मानहरू फरक भएमा मोडेलले दुवै मानहरू बीचको भिन्नता गणना गर्नेछ, हानि भनिन्छ, र अर्को पटक मिल्दो लेबलहरू उत्पादन गर्न नोड गणनाहरू समायोजन गर्नेछ।
गहिरो शिक्षा फ्रेमवर्क
कोडमा न्यूरल नेटवर्कहरू निर्माण गर्न, हामीले आयात गर्नुपर्छ गहिरो शिक्षा फ्रेमवर्क हाम्रो एकीकृत विकास वातावरण (IDE) प्रयोग गरेर पुस्तकालयहरू भनेर चिनिन्छ।
यी फ्रेमवर्कहरू पूर्व-लिखित प्रकार्यहरूको संग्रह हो जसले हामीलाई यो ट्यूटोरियलमा मद्दत गर्नेछ। हामी हाम्रो मोडेल निर्माण गर्न Keras फ्रेमवर्क प्रयोग गर्नेछौं।
Keras एक पाइथन पुस्तकालय हो जसले गहिरो शिक्षा र कृत्रिम बुद्धिमत्ता ब्याकइन्ड प्रयोग गर्दछ। टेन्सरफ्लो सरल अनुक्रमिक मोडेलहरूको रूपमा NNs सजिलैसँग सिर्जना गर्न।
Keras पनि यसको आफ्नै पूर्व-अस्तित्व मोडेलको साथ आउँछ जुन प्रयोग गर्न सकिन्छ। यस ट्यूटोरियलको लागि, हामी Keras प्रयोग गरेर हाम्रो आफ्नै मोडेल सिर्जना गर्नेछौं।
तपाईले यस गहिरो शिक्षा ढाँचाको बारेमा थप जान्न सक्नुहुन्छ Keras वेबसाइट.
न्यूरल नेटवर्क निर्माण (ट्यूटोरियल)
पाइथन प्रयोग गरेर न्यूरल नेटवर्क निर्माण गर्न अगाडि बढौं।
समस्या वक्तव्य
न्यूरल नेटवर्कहरू एआई-आधारित समस्याहरूको समाधानको एक प्रकार हो। यस ट्यूटोरियलको लागि हामी Pima Indians Diabetes Data मा जाँदैछौं, जुन उपलब्ध छ यहाँ.
UCI मेसिन लर्निङले यो डेटासेट कम्पाइल गरेको छ र भारतीय बिरामीहरूको मेडिकल रेकर्ड समावेश गर्दछ। हाम्रो मोडेलले ५ वर्ष भित्रमा रोगीलाई मधुमेह सुरु हुन्छ कि हुँदैन भन्ने भविष्यवाणी गर्नुपर्छ।
डाटासेट लोड गर्दै
हाम्रो डेटासेट एकल CSV फाइल हो जसलाई 'diabetes.csv' भनिन्छ जुन सजिलै Microsoft Excel प्रयोग गरेर हेरफेर गर्न सकिन्छ।
हाम्रो मोडेल सिर्जना गर्नु अघि, हामीले हाम्रो डेटासेट आयात गर्न आवश्यक छ। निम्न कोड प्रयोग गरेर तपाईंले यो गर्न सक्नुहुन्छ:
pd को रूपमा pandas आयात गर्नुहोस्
डाटा = pd.read_csv('diabetes.csv')
x = data.drop ("परिणाम")
y = डेटा["परिणाम"]
यहाँ हामी प्रयोग गर्दैछौं पाण्डस हाम्रो CSV फाइल डाटा हेरफेर गर्न सक्षम हुनको लागि पुस्तकालय, read_csv() पाण्डाको निर्मित प्रकार्य हो जसले हामीलाई हाम्रो फाइलमा मानहरूलाई 'डेटा' भनिने चलमा भण्डारण गर्न अनुमति दिन्छ।
चल x ले परिणाम (लेबल) डेटा बिना हाम्रो डेटासेट समावेश गर्दछ। हामी यसलाई data.drop() प्रकार्यको साथ हासिल गर्छौं जसले x को लागि लेबलहरू हटाउँछ, जबकि y मा परिणाम (लेबल) डेटा मात्र समावेश हुन्छ।
निर्माण अनुक्रमिक मोडेल
चरण 1: पुस्तकालयहरू आयात गर्दै
सर्वप्रथम, हामीले हाम्रो मोडेलका लागि आवश्यक पर्ने निश्चित प्यारामिटरहरू सहित TensorFlow र Keras आयात गर्नुपर्छ। निम्न कोडले हामीलाई यो गर्न अनुमति दिन्छ:
Tf को रूपमा tensorflow आयात गर्नुहोस्
टेन्सरफ्लो आयात केराबाट
tensorflow.keras.models बाट अनुक्रमिक आयात गर्नुहोस्
tensorflow.keras.layers बाट सक्रियता, घना आयात गर्नुहोस्
tensorflow.keras.optimizers बाट Adam आयात गर्नुहोस्
tensorflow.keras.metrics बाट categorical_crossentropy आयात गर्नुहोस्
हाम्रो मोडेलका लागि हामी घना तहहरू आयात गर्दैछौं। यी पूर्ण रूपमा जोडिएका तहहरू हुन्; अर्थात्, लेयरमा रहेको प्रत्येक नोड अर्को तहको अर्को नोडसँग पूर्ण रूपमा जोडिएको हुन्छ।
हामी पनि आयात गर्दैछौं सक्रियता नोडहरूमा पठाइएको डेटा स्केलिंगको लागि आवश्यक कार्य। अनुकूलकहरू घाटा कम गर्न पनि आयात गरिएको छ।
एडम एक प्रख्यात अप्टिमाइजर हो जसले हाम्रो मोडेल अपडेट नोड गणनाहरू अझ प्रभावकारी रूपमा बनाउँदछ, साथै categorical_crossentropy जुन हो हानि प्रकार्यको प्रकार (वास्तविक र भविष्यवाणी गरिएको लेबल मानहरू बीचको भिन्नता गणना गर्दछ) जुन हामीले प्रयोग गर्नेछौं।
चरण 2: हाम्रो मोडेल डिजाइन गर्दै
मैले सिर्जना गरेको मोडेलमा एउटा इनपुट (१६ इकाइहरूसहित), एउटा लुकेको (३२ इकाइहरूसहित) र एउटा आउटपुट (२ इकाइहरूसहित) तह छ। यी संख्याहरू निश्चित छैनन् र दिइएको समस्यामा पूर्ण रूपमा निर्भर हुनेछ।
एकाइ र तहहरूको सही संख्या सेटिङ एक प्रक्रिया हो जुन अभ्यास मार्फत ओभरटाइम सुधार गर्न सकिन्छ। सक्रियता नोड मार्फत पास गर्नु अघि हामीले हाम्रो डेटामा प्रदर्शन गर्ने स्केलिंगको प्रकारसँग मेल खान्छ।
Relu र Softmax यस कार्यका लागि प्रख्यात सक्रियता कार्यहरू हुन्।
मोडेल = क्रमिक ([
घना(इकाइहरू = 16, इनपुट_आकार = (1,), सक्रियता = 'relu'),
घना (इकाइ = 32, सक्रियता = 'relu'),
घना (इकाइ = 2, सक्रियता = 'softmax')
])
यहाँ के मोडेल को सारांश देखिनु पर्छ:
मोडेल प्रशिक्षण
हाम्रो मोडेललाई दुई चरणहरूमा तालिम दिइनेछ, पहिलो मोडेल कम्पाइल गर्ने (मोडललाई सँगै राख्ने) र अर्को दिइएको डेटासेटमा मोडेललाई फिट गर्ने।
यो model.compile() प्रकार्य पछि model.fit() प्रकार्य प्रयोग गरेर गर्न सकिन्छ।
model.compile(optimizer = Adam(learning_rate = 0.0001), loss = 'binary_crossentropy', metrics = ['accuracy'])
model.fit(x, y, epochs = 30, batch_size = 10)
'शुद्धता' मेट्रिक निर्दिष्ट गर्नाले हामीलाई प्रशिक्षणको क्रममा हाम्रो मोडेलको शुद्धता अवलोकन गर्न अनुमति दिन्छ।
हाम्रा लेबलहरू 1's र 0's को रूपमा भएकाले, हामी वास्तविक र पूर्वानुमानित लेबलहरू बीचको भिन्नता गणना गर्न बाइनरी हानि प्रकार्य प्रयोग गर्नेछौं।
डेटासेटलाई १० (ब्याच_साइज) को ब्याचमा पनि विभाजन गरिएको छ र मोडेल ३० पटक (युगहरू) मार्फत पारित गरिनेछ। दिइएको डेटासेटको लागि, x डाटा हुनेछ र y डाटासँग सम्बन्धित लेबलहरू हुनेछ।
भविष्यवाणी प्रयोग गरी परीक्षण मोडेल
हाम्रो मोडेलको मूल्याङ्कन गर्न, हामी predict() प्रकार्य प्रयोग गरेर परीक्षण डाटामा भविष्यवाणी गर्छौं।
भविष्यवाणी = model.predict(x)
र यो हो!
अब तपाईलाई राम्रोसँग बुझ्नुपर्छ गहिरो अध्ययन एप्लिकेसन, न्यूरल नेटवर्कहरू, तिनीहरूले सामान्य रूपमा कसरी काम गर्छन् र पाइथन कोडमा मोडेल कसरी बनाउने, तालिम दिने र परीक्षण गर्ने।
मलाई आशा छ कि यो ट्यूटोरियलले तपाइँलाई तपाइँको आफ्नै डीप लर्निङ मोडेलहरू सिर्जना गर्न र प्रयोग गर्न किकस्टार्ट दिन्छ।
लेख उपयोगी थियो भने हामीलाई टिप्पणी मा थाहा दिनुहोस्।
जवाफ छाड्नुस्