विषय - सूची[छिपाना][प्रदर्शन]
हाल के वर्षों में, तंत्रिका नेटवर्क की लोकप्रियता में वृद्धि हुई है क्योंकि उन्होंने कार्यों की एक विस्तृत श्रृंखला में बहुत अच्छा दिखाया है।
उन्हें छवि और ऑडियो पहचान, प्राकृतिक भाषा प्रसंस्करण और यहां तक कि गो और शतरंज जैसे जटिल गेम खेलने के लिए एक बढ़िया विकल्प के रूप में दिखाया गया है।
इस पोस्ट में, मैं आपको तंत्रिका नेटवर्क के प्रशिक्षण की पूरी प्रक्रिया के बारे में बताऊँगा। मैं एक तंत्रिका नेटवर्क को प्रशिक्षित करने के लिए सभी चरणों का उल्लेख और व्याख्या करूंगा।
जबकि मैं कदमों पर जाऊंगा, मैं यह सुनिश्चित करने के लिए एक सरल उदाहरण जोड़ना चाहता हूं कि एक व्यावहारिक उदाहरण भी है।
तो, आइए, और जानें कि तंत्रिका नेटवर्क को कैसे संसाधित किया जाता है
आइए सरल शुरुआत करें और पूछें कि क्या हैं तंत्रिका जाल पहली जगह में।
वास्तव में तंत्रिका नेटवर्क क्या हैं?
तंत्रिका नेटवर्क कंप्यूटर सॉफ्टवेयर हैं जो मानव मस्तिष्क के संचालन का अनुकरण करते हैं। वे बड़ी मात्रा में डेटा और स्पॉट पैटर्न से सीख सकते हैं जिन्हें पहचानना लोगों के लिए मुश्किल हो सकता है।
चित्र और ऑडियो पहचान, प्राकृतिक भाषा प्रसंस्करण, और भविष्य कहनेवाला मॉडलिंग जैसे कार्यों में उनकी बहुमुखी प्रतिभा के कारण हाल के वर्षों में तंत्रिका नेटवर्क की लोकप्रियता में वृद्धि हुई है।
कुल मिलाकर, तंत्रिका नेटवर्क अनुप्रयोगों की एक विस्तृत श्रृंखला के लिए एक मजबूत उपकरण हैं और जिस तरह से हम नौकरियों की एक विस्तृत श्रृंखला को अपनाते हैं, उसे बदलने का मौका है।
हमें उनके बारे में क्यों जानना चाहिए?
तंत्रिका नेटवर्क को समझना महत्वपूर्ण है क्योंकि उन्होंने कंप्यूटर दृष्टि, वाक् पहचान और प्राकृतिक भाषा प्रसंस्करण सहित विभिन्न क्षेत्रों में खोज की है।
तंत्रिका नेटवर्क, उदाहरण के लिए, स्व-ड्राइविंग कारों, स्वचालित अनुवाद सेवाओं और यहां तक कि चिकित्सा निदान में हाल के विकास के केंद्र में हैं।
यह समझना कि न्यूरल नेटवर्क कैसे काम करते हैं और उन्हें कैसे डिज़ाइन किया जाता है, इससे हमें नए और आविष्कारशील एप्लिकेशन बनाने में मदद मिलती है। और, शायद, इससे भविष्य में और भी बड़ी खोजें हो सकती हैं।
ट्यूटोरियल के बारे में एक नोट
जैसा कि मैंने ऊपर कहा, मैं एक उदाहरण देकर एक तंत्रिका नेटवर्क के प्रशिक्षण के चरणों की व्याख्या करना चाहूंगा। ऐसा करने के लिए, हमें MNIST डेटासेट के बारे में बात करनी चाहिए। यह शुरुआती लोगों के लिए एक लोकप्रिय विकल्प है जो तंत्रिका नेटवर्क के साथ शुरुआत करना चाहते हैं।
MNIST एक संक्षिप्त शब्द है जो संशोधित राष्ट्रीय मानक और प्रौद्योगिकी संस्थान के लिए है। यह एक हस्तलिखित अंकीय डेटासेट है जो आमतौर पर मशीन लर्निंग मॉडल, विशेष रूप से तंत्रिका नेटवर्क के प्रशिक्षण और परीक्षण के लिए उपयोग किया जाता है।
संग्रह में 70,000 से 0 तक हस्तलिखित अंकों की 9 ग्रेस्केल तस्वीरें हैं।
MNIST डेटासेट इसके लिए एक लोकप्रिय बेंचमार्क है छवि वर्गीकरण कार्यों। यह अक्सर शिक्षण और सीखने के लिए उपयोग किया जाता है क्योंकि यह मशीन लर्निंग एल्गोरिदम को जवाब देने के लिए एक कठिन चुनौती पेश करते हुए कॉम्पैक्ट और आसान है।
MNIST डेटासेट TensorFlow, Keras और PyTorch सहित कई मशीन लर्निंग फ्रेमवर्क और लाइब्रेरी द्वारा समर्थित है।
अब हम MNIST डेटासेट के बारे में जानते हैं, आइए तंत्रिका नेटवर्क को प्रशिक्षित करने के अपने चरणों के साथ शुरुआत करें।
एक तंत्रिका नेटवर्क को प्रशिक्षित करने के लिए बुनियादी कदम
आवश्यक पुस्तकालय आयात करें
जब पहली बार एक तंत्रिका नेटवर्क को प्रशिक्षित करना शुरू करते हैं, तो मॉडल को डिजाइन और प्रशिक्षित करने के लिए आवश्यक उपकरण होना महत्वपूर्ण है। एक तंत्रिका नेटवर्क बनाने में प्रारंभिक चरण आवश्यक पुस्तकालयों जैसे TensorFlow, Keras और NumPy को आयात करना है।
ये पुस्तकालय तंत्रिका नेटवर्क के विकास के लिए बिल्डिंग ब्लॉक्स के रूप में काम करते हैं और महत्वपूर्ण क्षमताएं प्रदान करते हैं। इन पुस्तकालयों का संयोजन परिष्कृत तंत्रिका नेटवर्क डिज़ाइन और तेज़ प्रशिक्षण के निर्माण की अनुमति देता है।
हमारा उदाहरण शुरू करने के लिए; हम आवश्यक पुस्तकालयों का आयात करेंगे, जिसमें TensorFlow, Keras और NumPy शामिल हैं। TensorFlow एक ओपन-सोर्स मशीन लर्निंग फ्रेमवर्क है, केरस एक उच्च-स्तरीय न्यूरल नेटवर्क एपीआई है, और NumPy एक संख्यात्मक कंप्यूटिंग पायथन लाइब्रेरी है।
import tensorflow as tf
from tensorflow import keras
import numpy as np
डेटासेट लोड करें
डेटासेट अब लोड होना चाहिए। डेटासेट डेटा का वह सेट है जिस पर तंत्रिका नेटवर्क को प्रशिक्षित किया जाएगा। यह फोटो, ऑडियो और टेक्स्ट सहित किसी भी प्रकार का डेटा हो सकता है।
डेटासेट को दो भागों में विभाजित करना महत्वपूर्ण है: एक तंत्रिका नेटवर्क के प्रशिक्षण के लिए और दूसरा प्रशिक्षित मॉडल की शुद्धता का आकलन करने के लिए। डेटासेट आयात करने के लिए TensorFlow, Keras और PyTorch सहित कई पुस्तकालयों का उपयोग किया जा सकता है।
हमारे उदाहरण के लिए, हम MNIST डेटासेट को लोड करने के लिए Keras का भी उपयोग करते हैं। डेटासेट में 60,000 प्रशिक्षण तस्वीरें और 10,000 परीक्षण चित्र हैं।
mnist = keras.datasets.mnist
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()
डेटा को प्रीप्रोसेस करें
तंत्रिका नेटवर्क के प्रशिक्षण में डेटा प्रीप्रोसेसिंग एक महत्वपूर्ण चरण है। यह तंत्रिका नेटवर्क में फीड होने से पहले डेटा को तैयार करने और साफ करने पर जोर देता है।
स्केलिंग पिक्सेल मान, डेटा को सामान्य करना और लेबल को एक-हॉट एन्कोडिंग में परिवर्तित करना प्रीप्रोसेसिंग प्रक्रियाओं के उदाहरण हैं। ये प्रक्रियाएं तंत्रिका नेटवर्क को अधिक प्रभावी ढंग से और सटीक रूप से सीखने में सहायता करती हैं।
डेटा को प्रीप्रोसेस करने से ओवरफिटिंग को कम करने और तंत्रिका नेटवर्क के प्रदर्शन में सुधार करने में भी मदद मिल सकती है।
तंत्रिका नेटवर्क को प्रशिक्षित करने से पहले आपको डेटा को प्रीप्रोसेस करना होगा। इसमें लेबल को एक-हॉट एन्कोडिंग में बदलना और पिक्सेल मानों को 0 और 1 के बीच स्केल करना शामिल है।
train_images = train_images / 255.0
test_images = test_images / 255.0
train_labels = keras.utils.to_categorical(train_labels, 10)
test_labels = keras.utils.to_categorical(test_labels, 10)
मॉडल को परिभाषित कीजिए
तंत्रिका नेटवर्क मॉडल को परिभाषित करने की प्रक्रिया में इसकी वास्तुकला स्थापित करना शामिल है, जैसे कि परतों की संख्या, प्रति परत न्यूरॉन्स की संख्या, सक्रियण कार्य, और नेटवर्क प्रकार (फ़ीडफ़ॉर्वर्ड, आवर्तक, या दृढ़)।
आपके द्वारा उपयोग किया जाने वाला तंत्रिका नेटवर्क डिज़ाइन उस प्रकार की समस्या से निर्धारित होता है जिसे आप हल करने का प्रयास कर रहे हैं। एक अच्छी तरह से परिभाषित तंत्रिका नेटवर्क डिजाइन इसे और अधिक कुशल और सटीक बनाकर तंत्रिका नेटवर्क सीखने में सहायता कर सकता है।
इस बिंदु पर तंत्रिका नेटवर्क मॉडल का वर्णन करने का समय आ गया है। इस उदाहरण के लिए, दो छिपी हुई परतों के साथ एक साधारण मॉडल का उपयोग करें, प्रत्येक में 128 न्यूरॉन्स और सॉफ्टमैक्स आउटपुट परत, जिसमें 10 न्यूरॉन्स हों।
model = keras.Sequential([
keras.layers.Flatten(input_shape=(28, 28)),
keras.layers.Dense(128, activation='relu'),
keras.layers.Dense(128, activation='relu'),
keras.layers.Dense(10, activation='softmax')
])
मॉडल संकलित करें
तंत्रिका नेटवर्क मॉडल के संकलन के दौरान हानि फ़ंक्शन, ऑप्टिमाइज़र और मेट्रिक्स को निर्दिष्ट किया जाना चाहिए। आउटपुट का सही ढंग से पूर्वानुमान लगाने के लिए न्यूरल नेटवर्क की क्षमता का नुकसान फ़ंक्शन द्वारा अनुमान लगाया जाता है।
प्रशिक्षण के दौरान तंत्रिका नेटवर्क की सटीकता बढ़ाने के लिए, ऑप्टिमाइज़र इसके वज़न को संशोधित करता है। मेट्रिक्स का उपयोग करके प्रशिक्षण के दौरान तंत्रिका नेटवर्क की प्रभावशीलता का अनुमान लगाया जाता है। तंत्रिका नेटवर्क को प्रशिक्षित करने से पहले मॉडल बनाया जाना चाहिए।
हमारे उदाहरण में, हमें अभी मॉडल का निर्माण करना चाहिए।
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
मॉडल को प्रशिक्षित करें
नुकसान समारोह को कम करने के लिए नेटवर्क के वजन को संशोधित करते हुए तंत्रिका नेटवर्क के माध्यम से तैयार किए गए डेटासेट को पास करना तंत्रिका नेटवर्क के प्रशिक्षण के रूप में जाना जाता है।
सत्यापन डेटासेट का उपयोग प्रशिक्षण के दौरान तंत्रिका नेटवर्क का परीक्षण करने के लिए किया जाता है ताकि इसकी प्रभावशीलता को ट्रैक किया जा सके और ओवरफिटिंग को रोका जा सके। प्रशिक्षण प्रक्रिया में कुछ समय लग सकता है, इस प्रकार यह सुनिश्चित करना महत्वपूर्ण है कि न्यूरल नेटवर्क को अंडरफिटिंग को रोकने के लिए उचित रूप से प्रशिक्षित किया गया है।
प्रशिक्षण डेटा का उपयोग करके, अब हम मॉडल को प्रशिक्षित कर सकते हैं। ऐसा करने के लिए, हमें बैच आकार (मॉडल अपडेट होने से पहले संसाधित नमूनों की संख्या) और युगों की संख्या (संपूर्ण डेटासेट में दोहराव की संख्या) को परिभाषित करना होगा।
model.fit(train_images, train_labels, epochs=10, batch_size=32)
मॉडल का मूल्यांकन
परीक्षण डेटासेट पर तंत्रिका नेटवर्क के प्रदर्शन का परीक्षण करना इसका मूल्यांकन करने की प्रक्रिया है। इस चरण में, परीक्षण डेटासेट को संसाधित करने के लिए प्रशिक्षित तंत्रिका नेटवर्क का उपयोग किया जाता है, और सटीकता का मूल्यांकन किया जाता है।
न्यूरल नेटवर्क कितने प्रभावी ढंग से नए, अनट्रीटेड डेटा से सही परिणाम की भविष्यवाणी कर सकता है, इसकी सटीकता का एक उपाय है। मॉडल का विश्लेषण करने से यह निर्धारित करने में मदद मिल सकती है कि तंत्रिका नेटवर्क कितनी अच्छी तरह काम कर रहा है और इसे और बेहतर बनाने के तरीके भी सुझा सकता है।
हम अंत में प्रशिक्षण के बाद परीक्षण डेटा का उपयोग करके मॉडल के प्रदर्शन का आकलन कर सकते हैं।
test_loss, test_acc = model.evaluate(test_images, test_labels)
print('Test accuracy:', test_acc)
बस इतना ही! हमने MNIST डेटासेट में अंकों का पता लगाने के लिए एक तंत्रिका नेटवर्क को प्रशिक्षित किया।
डेटा तैयार करने से लेकर प्रशिक्षित मॉडल की प्रभावशीलता का आकलन करने तक, एक तंत्रिका नेटवर्क को प्रशिक्षित करने में कई प्रक्रियाएँ शामिल होती हैं। ये निर्देश नौसिखियों को तंत्रिका नेटवर्क के कुशलतापूर्वक निर्माण और प्रशिक्षण में सहायता करते हैं।
शुरुआती जो विभिन्न मुद्दों से निपटने के लिए तंत्रिका नेटवर्क का उपयोग करना चाहते हैं, वे इन निर्देशों का पालन करके ऐसा कर सकते हैं।
उदाहरण की कल्पना करना
आइए कल्पना करने की कोशिश करें कि बेहतर समझने के लिए हमने इस उदाहरण के साथ क्या किया है।
Matplotlib पैकेज का उपयोग इस कोड स्निपेट में प्रशिक्षण डेटासेट से फ़ोटो के यादृच्छिक चयन को प्लॉट करने के लिए किया जाता है। सबसे पहले, हम Matplotlib के "pyplot" मॉड्यूल को आयात करते हैं और इसे "plt" के रूप में उपनाम देते हैं। फिर, 10 गुणा 10 इंच के कुल आयाम के साथ, हम सबप्लॉट की 5 पंक्तियों और 5 स्तंभों के साथ एक आकृति बनाते हैं।
फिर, हम सबप्लॉट पर पुनरावृति करने के लिए for लूप का उपयोग करते हैं, प्रत्येक पर प्रशिक्षण डेटासेट से एक चित्र प्रदर्शित करते हैं। चित्र प्रदर्शित करने के लिए, "imshow" फ़ंक्शन का उपयोग किया जाता है, फ़ोटो को ग्रेस्केल में प्रदर्शित करने के लिए "cmap" विकल्प को 'ग्रे' पर सेट किया जाता है। संग्रह में संबंधित छवि के लेबल के लिए प्रत्येक सबप्लॉट का शीर्षक भी सेट किया गया है।
अंत में, हम आकृति में प्लॉट किए गए चित्रों को प्रदर्शित करने के लिए "शो" फ़ंक्शन का उपयोग करते हैं। यह फ़ंक्शन हमें डेटासेट से तस्वीरों के नमूने का नेत्रहीन मूल्यांकन करने की अनुमति देता है, जो डेटा की हमारी समझ और किसी भी संभावित चिंताओं की पहचान करने में सहायता कर सकता है।
import matplotlib.pyplot as plt
# Plot a random sample of images
fig, axes = plt.subplots(nrows=5, ncols=5, figsize=(10,10))
for i, ax in enumerate(axes.flat):
ax.imshow(train_images[i], cmap='gray')
ax.set_title(f"Label: {train_labels[i].argmax()}")
ax.axis('off')
plt.show()
महत्वपूर्ण तंत्रिका नेटवर्क मॉडल
- फीडफॉरवर्ड न्यूरल नेटवर्क (FFNN): एक साधारण प्रकार का तंत्रिका नेटवर्क जिसमें सूचना केवल एक ही तरीके से यात्रा करती है, इनपुट परत से आउटपुट परत तक एक या अधिक छिपी हुई परतों के माध्यम से।
- संवेदी तंत्रिका नेटवर्क (सीएनएन): एक तंत्रिका नेटवर्क जिसका आमतौर पर छवि पहचान और प्रसंस्करण में उपयोग किया जाता है। सीएनएन का उद्देश्य स्वचालित रूप से चित्रों से सुविधाओं को पहचानना और निकालना है।
- आवर्तक तंत्रिका नेटवर्क (आरएनएन): एक तंत्रिका नेटवर्क जिसका आमतौर पर छवि पहचान और प्रसंस्करण में उपयोग किया जाता है। सीएनएन का उद्देश्य स्वचालित रूप से चित्रों से सुविधाओं को पहचानना और निकालना है।
- लॉन्ग शॉर्ट-टर्म मेमोरी (LSTM) नेटवर्क: मानक आरएनएन में ग्रेडिएंट गायब होने के मुद्दे को दूर करने के लिए बनाया गया आरएनएन का एक रूप। अनुक्रमिक डेटा में दीर्घकालिक निर्भरता को LSTM के साथ बेहतर तरीके से कैप्चर किया जा सकता है।
- ऑटोएन्कोडर: अनसुपरवाइज्ड लर्निंग न्यूरल नेटवर्क जिसमें नेटवर्क को अपने इनपुट डेटा को उसकी आउटपुट लेयर पर पुन: पेश करना सिखाया जाता है। डेटा संपीड़न, विसंगति का पता लगाने, और चित्र denoising सभी को ऑटोएन्कोडर्स के साथ पूरा किया जा सकता है।
- जनरेटिव एडवरसैरियल नेटवर्क (GAN): एक जनरेटिव न्यूरल नेटवर्क न्यूरल नेटवर्क का एक रूप है जिसे नए डेटा का उत्पादन करने के लिए सिखाया जाता है जो एक प्रशिक्षण डेटासेट के बराबर होता है। GAN दो नेटवर्क से बना होता है: एक जेनरेटर नेटवर्क जो ताज़ा डेटा बनाता है और एक डिस्क्रिमिनेटर नेटवर्क जो बनाए गए डेटा की गुणवत्ता का आकलन करता है।
समापन, आपका अगला कदम क्या होना चाहिए?
तंत्रिका नेटवर्क के प्रशिक्षण के बारे में अधिक जानने के लिए कई ऑनलाइन संसाधनों और पाठ्यक्रमों का अन्वेषण करें। तंत्रिका नेटवर्क की बेहतर समझ हासिल करने के लिए परियोजनाओं या उदाहरणों पर काम करना एक तरीका है।
बाइनरी वर्गीकरण समस्याओं या चित्र वर्गीकरण कार्यों जैसे आसान उदाहरणों से प्रारंभ करें, और फिर अधिक कठिन कार्यों जैसे प्राकृतिक भाषा प्रसंस्करण या पर जाएं सुदृढीकरण सीखना.
परियोजनाओं पर काम करने से आपको वास्तविक अनुभव प्राप्त करने और अपने तंत्रिका नेटवर्क प्रशिक्षण कौशल में सुधार करने में मदद मिलती है।
आप अन्य शिक्षार्थियों और पेशेवरों के साथ बातचीत करने, अपना काम साझा करने और टिप्पणियां और सहायता प्राप्त करने के लिए ऑनलाइन मशीन लर्निंग और न्यूरल नेटवर्क समूहों और मंचों में भी शामिल हो सकते हैं।
एलएसआरएस मोनराड-क्रोहन
⁶ĵत्रुटि न्यूनतमकरण के लिए पायथन प्रोग्राम देखना पसंद करेंगे। अगली परत में वजन परिवर्तन के लिए विशेष चयन नोड्स