مواد جي جدول[لڪ][ڏسو]
تازن سالن ۾، نيورل نيٽ ورڪ مقبوليت ۾ وڌي ويا آهن ڇو ته انهن ڪمن جي وسيع رينج تي تمام سٺو ثابت ڪيو آهي.
انهن کي تصوير ۽ آڊيو جي سڃاڻپ، قدرتي ٻولي پروسيسنگ، ۽ گو ۽ شطرنج وانگر پيچيده رانديون کيڏڻ لاءِ هڪ بهترين انتخاب ڏيکاريو ويو آهي.
ھن پوسٽ ۾، مان توھان کي ھلائيندس سڄي عمل جي ذريعي تربيتي نيٽ ورڪ نيٽ ورڪ. مان ذڪر ڪندس ۽ بيان ڪندس سڀني مرحلن کي تربيت ڏيڻ لاءِ نيورل نيٽ ورڪ.
جڏهن ته آئون انهن قدمن تي هليو ويندس، مان هڪ سادي مثال شامل ڪرڻ چاهيندس انهي کي يقيني بڻائڻ لاءِ ته هڪ عملي مثال پڻ موجود آهي.
تنهن ڪري، اچو، ۽ اچو ته سکو ته ڪيئن عمل ڪجي نيورل نيٽ ورڪ
اچو ته سادو شروع ڪريون ۽ پڇو ته ڇا آهن نظرياتي نيٽ ورڪ پهرين جاء تي.
اصل ۾ نيورل نيٽ ورڪ ڇا آهن؟
نيورل نيٽ ورڪ ڪمپيوٽر سافٽ ويئر آهن جيڪي انساني دماغ جي آپريشن کي نقل ڪن ٿا. اهي ڊيٽا جي وسيع مقدار ۽ جڳهه جي نمونن مان سکن ٿا جيڪي ماڻهن کي ڳولڻ ڏکيو پئجي سگهن ٿيون.
نيورل نيٽ ورڪ تازن سالن ۾ مقبوليت ۾ وڌيا آهن ڇاڪاڻ ته انهن جي ڪمن ۾ استحڪام جي ڪري جيئن تصوير ۽ آڊيو جي سڃاڻپ، قدرتي ٻولي پروسيسنگ، ۽ اڳڪٿي واري ماڊلنگ.
مجموعي طور تي، نيورل نيٽ ورڪ ايپليڪيشنن جي وسيع رينج لاءِ هڪ مضبوط اوزار آهن ۽ انهن وٽ هڪ موقعو آهي انهي طريقي سان تبديل ڪرڻ جو اسان جي وڏين حد تائين نوڪريون.
اسان کي انهن بابت ڇو ڄاڻڻ گهرجي؟
اعصابي نيٽ ورڪن کي سمجھڻ ضروري آھي ڇاڪاڻ ته انھن مختلف شعبن ۾ دريافتون ڪيون آھن، جن ۾ ڪمپيوٽر وژن، تقرير جي سڃاڻپ، ۽ قدرتي ٻولي پروسيسنگ شامل آھن.
نيورل نيٽ ورڪ، مثال طور، خود ڊرائيونگ ڪارن، خودڪار ترجمي جي خدمتن، ۽ جيتوڻيڪ طبي تشخيص ۾ تازو ترقيات جي دل تي آهن.
اهو سمجهڻ ته نيورل نيٽ ورڪ ڪيئن ڪم ڪن ٿا ۽ انهن کي ڪيئن ٺاهيو وڃي اسان کي نئين ۽ تخليقي ايپليڪيشنون ٺاهڻ ۾ مدد ڪري ٿي. ۽، شايد، اهو مستقبل ۾ اڃا به وڏي دريافتن جي ڪري سگھي ٿو.
سبق جي باري ۾ هڪ نوٽ
جيئن مون مٿي چيو آهي، مان هڪ مثال ڏئي هڪ اعصابي نيٽ ورڪ جي تربيت جي مرحلن کي بيان ڪرڻ چاهيندس. هن کي ڪرڻ لاء، اسان کي MNIST ڊيٽا سيٽ بابت ڳالهائڻ گهرجي. اهو هڪ مشهور انتخاب آهي شروعاتي لاءِ جيڪو شروع ڪرڻ چاهي ٿو نيورل نيٽ ورڪن سان.
MNIST ھڪڙو مخفف آھي جيڪو تبديل ٿيل نيشنل انسٽيٽيوٽ آف معيار ۽ ٽيڪنالاجي لاء آھي. اهو هڪ هٿ سان لکيل عددي ڊيٽا سيٽ آهي جيڪو عام طور تي استعمال ڪيو ويندو آهي ٽريننگ ۽ ٽيسٽنگ مشين لرننگ ماڊلز، خاص ڪري نيورل نيٽ ورڪ.
هن مجموعن ۾ 70,000 گريس اسڪيل تصويرون شامل آهن جيڪي هٿ سان لکيل انگن اکرن جي 0 کان 9 تائين آهن.
MNIST ڊيٽا سيٽ لاء هڪ مشهور معيار آهي تصوير جي درجه بندي ڪم. اهو اڪثر ڪري تدريس ۽ سکيا لاءِ استعمال ڪيو ويندو آهي ڇاڪاڻ ته اهو ٺهڪندڙ ۽ ڊيل ڪرڻ ۾ آسان آهي جڏهن ته اڃا تائين جواب ڏيڻ لاءِ مشين لرننگ الگورتھم لاءِ هڪ مشڪل چئلينج پيش ڪري رهيو آهي.
MNIST ڊيٽا سيٽ ڪيترن ئي مشين لرننگ فريم ورڪ ۽ لائبريرين جي مدد سان آهي، بشمول TensorFlow، Keras، ۽ PyTorch.
ھاڻي اسان MNIST ڊيٽا سيٽ جي باري ۾ ڄاڻون ٿا، اچو ته شروعات ڪريون اسان جي ھڪ نيورل نيٽ ورڪ جي تربيت جي مرحلن سان.
نيورل نيٽ ورڪ کي تربيت ڏيڻ لاء بنيادي قدم
ضروري لائبريريون درآمد ڪريو
جڏهن پهريون ڀيرو هڪ نيورل نيٽ ورڪ کي تربيت ڏيڻ شروع ڪيو وڃي، اهو ضروري آهي ته ماڊل کي ڊزائين ڪرڻ ۽ تربيت ڏيڻ لاء ضروري اوزار موجود آهن. نيورل نيٽ ورڪ ٺاهڻ ۾ ابتدائي قدم گهربل لائبريرين کي درآمد ڪرڻ آهي جهڙوڪ TensorFlow، Keras، ۽ NumPy.
اهي لائبريريون نيورل نيٽ ورڪ جي ترقي لاءِ بلڊنگ بلاڪ طور ڪم ڪن ٿيون ۽ اهم صلاحيتون مهيا ڪن ٿيون. انهن لائبريرين جو ميلاپ نفيس نيورل نيٽ ورڪ ڊيزائن ۽ تيز تربيت جي تخليق جي اجازت ڏئي ٿو.
اسان جو مثال شروع ڪرڻ لاء؛ اسان گهربل لائبريريون درآمد ڪنداسين، جن ۾ TensorFlow، Keras، ۽ NumPy شامل آهن. TensorFlow هڪ اوپن سورس مشين لرننگ فريم ورڪ آهي، Keras هڪ اعليٰ سطحي نيورل نيٽورڪ API آهي، ۽ NumPy هڪ عددي ڪمپيوٽنگ Python لائبريري آهي.
import tensorflow as tf
from tensorflow import keras
import numpy as np
ڊيٽا سيٽ لوڊ ڪريو
ڊيٽا سيٽ کي هاڻي لوڊ ٿيڻ گهرجي. ڊيٽا سيٽ ڊيٽا جو سيٽ آهي جنهن تي نيورل نيٽ ورڪ کي تربيت ڏني ويندي. اهو ٿي سگهي ٿو ڪنهن به قسم جي ڊيٽا، بشمول فوٽو، آڊيو، ۽ ٽيڪسٽ.
اهو ضروري آهي ته ڊيٽا سيٽ کي ٻن حصن ۾ ورهايو وڃي: هڪ نيورل نيٽ ورڪ جي تربيت لاءِ ۽ ٻيو تربيت يافته ماڊل جي صحيحيت جو جائزو وٺڻ لاءِ. ڪيتريون ئي لائبريريون، بشمول TensorFlow، Keras، ۽ PyTorch، ڊيٽا سيٽ کي درآمد ڪرڻ لاءِ استعمال ٿي سگھن ٿيون.
اسان جي مثال طور، اسان پڻ استعمال ڪندا آهيون Keras MNIST ڊيٽا سيٽ لوڊ ڪرڻ لاءِ. ڊيٽا سيٽ ۾ 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'])
ٽرين ماڊل
تيار ڪيل ڊيٽا سيٽ کي نيورل نيٽ ورڪ ذريعي منتقل ڪرڻ دوران نيٽ ورڪ جي وزن کي تبديل ڪرڻ لاءِ نقصان جي ڪم کي گھٽائڻ کي نيورل نيٽ ورڪ جي تربيت طور سڃاتو وڃي ٿو.
تصديق واري ڊيٽا سيٽ کي استعمال ڪيو ويندو آهي نيورل نيٽورڪ کي ٽيسٽ ڪرڻ لاءِ ٽريننگ دوران ان جي تاثير کي ٽريڪ ڪرڻ ۽ اوورفٽنگ کي روڪڻ لاءِ. ٽريننگ جي عمل ۾ ڪجهه وقت لڳي سگھي ٿو، ان ڪري اهو ضروري آهي ته پڪ ڪرڻ ضروري آهي ته نيورل نيٽ ورڪ کي مناسب تربيت ڏني وڃي ته جيئن انڊرفٽنگ کي روڪي سگهجي.
ٽريننگ ڊيٽا استعمال ڪندي، اسان ھاڻي ماڊل کي تربيت ڏيئي سگھون ٿا. هن کي ڪرڻ لاء، اسان کي وضاحت ڪرڻ گهرجي بيچ جي سائيز (ماڊل اپڊيٽ ٿيڻ کان اڳ پروسيس ٿيل نمونن جو تعداد) ۽ epochs جو تعداد (مڪمل ڊيٽا سيٽ ۾ ورجائي جو تعداد).
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 ڪالمن جي ذيلي پلاٽن سان هڪ شڪل ٺاهيندا آهيون.
ان کان پوء، اسان هڪ لوپ استعمال ڪندا آهيون ذيلي پلاٽ تي ٻيهر ڪرڻ لاء، هر هڪ تي ٽريننگ ڊيٽا سيٽ مان هڪ تصوير ڏيکاريندي. تصوير کي ڊسپلي ڪرڻ لاءِ، ”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): هڪ سادي قسم جو نيورل نيٽ ورڪ جنهن ۾ معلومات صرف هڪ طريقي سان سفر ڪري ٿي، ان پٽ پرت کان آئوٽ پُٽ پرت تائين هڪ يا وڌيڪ لڪيل پرت ذريعي.
- Convolutional Neural Networks (CNN): هڪ اعصابي نيٽ ورڪ جيڪو عام طور تي تصوير جي ڳولا ۽ پروسيسنگ ۾ استعمال ٿيندو آهي. CNNs جو مقصد خودڪار طور تي تصويرن مان خاصيتون سڃاڻڻ ۽ ڪڍڻ لاءِ آھن.
- بار بار نيورل نيٽ ورڪ (RNN): هڪ اعصابي نيٽ ورڪ جيڪو عام طور تي تصوير جي ڳولا ۽ پروسيسنگ ۾ استعمال ٿيندو آهي. CNNs جو مقصد خودڪار طور تي تصويرن مان خاصيتون سڃاڻڻ ۽ ڪڍڻ لاءِ آھن.
- ڊگھي مختصر مدت جي يادگيري (LSTM) نيٽ ورڪ: معياري RNNs ۾ گريجوئيٽ غائب ٿيڻ جي مسئلي کي حل ڪرڻ لاءِ RNN جو هڪ فارم ٺاهيو ويو. ترتيب واري ڊيٽا ۾ ڊگهي مدت جي انحصار کي بهتر طور تي LSTMs سان پڪڙي سگهجي ٿو.
- خودڪار ڪوڊرز: غير نگراني ٿيل لرننگ نيورل نيٽ ورڪ جنهن ۾ نيٽ ورڪ کي سيکاريو وڃي ٿو ته ان جي ان پٽ ڊيٽا کي ان جي آئوٽ پٽ پرت تي ٻيهر پيدا ڪري. ڊيٽا سمپيشن، انوملي جي سڃاڻپ، ۽ تصوير کي رد ڪرڻ سڀ آٽو اينڪوڊرز سان مڪمل ٿي سگھي ٿو.
- پيدا ٿيندڙ دشمني نيٽ ورڪ (GAN): هڪ پيدا ڪندڙ نيورل نيٽورڪ نيورل نيٽ ورڪ جو هڪ روپ آهي جنهن کي نئين ڊيٽا پيدا ڪرڻ سيکاريو ويندو آهي جيڪو ٽريننگ ڊيٽا سيٽ جي مقابلي ۾ هوندو آهي. GANs ٻن نيٽ ورڪن مان ٺهيل آهن: هڪ جنريٽر نيٽ ورڪ جيڪو تازو ڊيٽا ٺاهي ٿو ۽ هڪ امتيازي نيٽ ورڪ جيڪو ٺاهيل ڊيٽا جي معيار جو جائزو وٺندو آهي.
لپ اپ، توهان جا ايندڙ قدم ڇا ٿيڻ گهرجن؟
نيورل نيٽ ورڪ جي تربيت بابت وڌيڪ سکڻ لاءِ ڪيترن ئي آن لائين وسيلن ۽ ڪورسز جي ڳولا ڪريو. منصوبن يا مثالن تي ڪم ڪرڻ هڪ طريقو آهي نيورل نيٽ ورڪ جي بهتر گرفت حاصل ڪرڻ لاءِ.
آسان مثالن سان شروع ڪريو جھڙوڪ بائنري درجي بندي جا مسئلا يا تصويري درجي بندي جا ڪم، ۽ پوءِ وڃو وڌيڪ مشڪل ڪمن جھڙوڪ قدرتي ٻولي پروسيسنگ يا قابليت جي تعليم.
منصوبن تي ڪم ڪرڻ توهان کي حقيقي تجربو حاصل ڪرڻ ۽ توهان جي اعصابي نيٽ ورڪ جي تربيتي صلاحيتن کي بهتر بنائڻ ۾ مدد ڪري ٿي.
توھان پڻ شامل ٿي سگھو ٿا آن لائن مشين لرننگ ۽ نيورل نيٽ ورڪ گروپن ۽ فورمن ۾ ٻين سکندڙن ۽ پروفيسرن سان رابطو ڪرڻ، پنھنجي ڪم کي حصيداري ڪرڻ، ۽ تبصرا ۽ مدد حاصل ڪرڻ لاء.
ايل ايس آر ايس مونراڊ-ڪرون
⁶ĵپٿون پروگرام ڏسڻ پسند ڪن ها ته غلطي کي گھٽائڻ لاءِ. ايندڙ پرت ۾ وزن جي تبديلين لاء خاص چونڊ نوڊس