فهرست[پټ][ښکاره]
په وروستي کلونو کې، عصبي شبکې په شهرت کې وده کړې ځکه چې دوی د دندو په پراخه لړۍ کې خورا ښه ښودل شوي.
دوی د عکس او آډیو پیژندنې ، طبیعي ژبې پروسس کولو ، او حتی پیچلې لوبې لکه Go او شطرنج لوبولو لپاره غوره انتخاب ښودل شوي.
پدې پوسټ کې ، زه به تاسو ته د عصبي شبکې روزنې ټولې پروسې ته لاړ شم. زه به د عصبي شبکې روزلو لپاره ټول ګامونه ذکر او تشریح کړم.
پداسې حال کې چې زه به ګامونو ته لاړ شم زه غواړم یو ساده مثال اضافه کړم ترڅو ډاډ ترلاسه کړم چې عملي مثال هم شتون لري.
نو، راشئ، او راځئ چې د عصبي شبکو پروسس کولو څرنګوالی زده کړو
راځئ چې ساده پیل وکړو او پوښتنه وکړو چې څه دي نوریال شبکې په لومړي ځای کې.
عصبي شبکې په حقیقت کې څه دي؟
عصبي شبکې د کمپیوټر سافټویر دي چې د انسان دماغ عملیات سموي. دوی کولی شي د ډیټا او ځای نمونو له پراخه حجمونو څخه زده کړي چې خلک یې موندل ستونزمن وي.
عصبي شبکې په وروستیو کلونو کې په دندو کې د استعداد له امله په شهرت کې وده کړې لکه د عکس او آډیو پیژندنه ، د طبیعي ژبې پروسس کول ، او وړاندوینې ماډلینګ.
په ټولیز ډول، عصبي شبکې د غوښتنلیکونو پراخه لړۍ لپاره قوي وسیله ده او فرصت لري چې هغه لاره بدله کړي چې موږ پراخه دندې ته ورسیږو.
ولې موږ باید د دوی په اړه پوه شو؟
د عصبي شبکو پوهیدل خورا مهم دي ځکه چې دوی په بیلابیلو برخو کې د کشفونو لامل شوي ، پشمول د کمپیوټر لید ، د وینا پیژندنه ، او د طبیعي ژبې پروسس کول.
عصبي شبکې، د بیلګې په توګه، د ځان چلولو موټرو، د اتوماتیک ژباړې خدماتو، او حتی طبي تشخیص کې د وروستیو پرمختګونو په زړه کې دي.
پوهیدل چې د عصبي شبکې څنګه فعالیت کوي او څنګه یې ډیزاین کړي موږ سره د نوي او اختراعي غوښتنلیکونو په جوړولو کې مرسته کوي. او، شاید، دا ممکن په راتلونکي کې حتی د لویو موندنو لامل شي.
د ښوونې په اړه یو یادښت
لکه څنګه چې ما پورته وویل، زه غواړم د مثال په ورکولو سره د عصبي شبکې د روزنې مرحلې تشریح کړم. د دې کولو لپاره، موږ باید د MNIST ډیټاسیټ په اړه وغږیږو. دا د پیل کونکو لپاره مشهور انتخاب دی څوک چې غواړي د عصبي شبکو سره پیل وکړي.
MNIST یو لنډیز دی چې د معیارونو او ټیکنالوژۍ ترمیم شوي ملي انسټیټیوټ لپاره ولاړ دی. دا د لاس لیکل شوي ډیجیټل ډیټاسیټ دی چې معمولا د ماشین زده کړې ماډلونو روزنې او ازموینې لپاره کارول کیږي ، په ځانګړي توګه عصبي شبکې.
په دې ټولګه کې د 70,000 څخه تر 0 پورې د لاس لیکل شوي شمیرو 9 خړ سکیل عکسونه شامل دي.
د MNIST ډیټاسیټ د دې لپاره یو مشهور معیار دی د انځور طبقه بندي دندې دا په مکرر ډول د تدریس او زده کړې لپاره کارول کیږي ځکه چې دا کمپیکٹ او د معاملې لپاره اسانه دی پداسې حال کې چې لاهم د ماشین زده کړې الګوریتمونو لپاره د ځواب ویلو لپاره ستونزمن ننګونه رامینځته کوي.
د MNIST ډیټاسیټ د ماشین زده کړې ډیری چوکاټونو او کتابتونونو لخوا ملاتړ کیږي، پشمول د TensorFlow، Keras، او PyTorch.
اوس موږ د MNIST ډیټاسیټ په اړه پوهیږو، راځئ چې د عصبي شبکې روزنې لپاره زموږ ګامونو سره پیل وکړو.
د عصبي شبکې روزنې لپاره لومړني ګامونه
اړین کتابتونونه وارد کړئ
کله چې لومړی د عصبي شبکې روزنه پیل کړئ ، نو دا مهمه ده چې د ماډل ډیزاین او روزنې لپاره اړین وسایل ولرئ. د عصبي شبکې په جوړولو کې لومړنی ګام د اړین کتابتونونو واردول دي لکه TensorFlow، Keras، او NumPy.
دا کتابتونونه د عصبي شبکې د پراختیا لپاره د ودانۍ بلاکونو په توګه کار کوي او مهم ظرفیتونه چمتو کوي. د دې کتابتونونو ترکیب د پیچلي عصبي شبکې ډیزاینونو او ګړندي روزنې رامینځته کولو ته اجازه ورکوي.
زموږ د مثال پیل کولو لپاره؛ موږ به اړین کتابتونونه وارد کړو، چې پکې TensorFlow، Keras، او NumPy شامل دي. ټیسسر فولډ د خلاصې سرچینې ماشین زده کړې چوکاټ دی، کیراس د لوړې کچې عصبي شبکې API دی، او NumPy د شمیرې کمپیوټري Python کتابتون دی.
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 x 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) شبکې: د RNN یوه بڼه رامینځته شوې ترڅو په معیاري RNNs کې د تدریجي ورکیدو مسله حل کړي. په ترتیبي معلوماتو کې اوږدمهاله انحصار د LSTMs سره ښه نیول کیدی شي.
- اتوماتیک کوډر: د غیر څارل شوي زده کړې عصبي شبکه چې په هغه کې شبکه تدریس کیږي ترڅو خپل ان پټ ډیټا په خپل محصول پرت کې بیا تولید کړي. د ډیټا کمپریشن، د بې نظمۍ کشف کول، او د انځور رد کول ممکن ټول د اتوماتیک کوډرونو سره ترسره شي.
- تولیدي مخالفې شبکې (GAN): تولیدي عصبي شبکه د عصبي شبکې یوه بڼه ده چې د نوي ډیټا تولید لپاره ښوونه کیږي چې د روزنې ډیټا سیټ سره پرتله کیږي. GANs له دوه شبکو څخه جوړ شوي دي: د جنراتور شبکه چې تازه معلومات رامینځته کوي او د امتیاز ورکونکي شبکه چې د رامینځته شوي ډیټا کیفیت ارزوي.
بشپړ کړئ، ستاسو راتلونکی ګامونه باید څه وي؟
د عصبي شبکې روزنې په اړه د نورو زده کړې لپاره ډیری آنلاین سرچینې او کورسونه وپلټئ. په پروژو یا مثالونو کار کول د عصبي شبکو د ښه پوهیدو ترلاسه کولو لپاره یوه میتود دی.
د اسانه مثالونو سره پیل کړئ لکه د بائنری طبقه بندي ستونزې یا د انځور طبقه بندي دندې، او بیا نورو ستونزمنو کارونو ته لاړ شئ لکه د طبیعي ژبې پروسس یا د تطبیق زده کړه.
په پروژو کار کول تاسو سره مرسته کوي ریښتینې تجربه ترلاسه کړئ او ستاسو د عصبي شبکې روزنې مهارتونه ښه کړئ.
تاسو کولی شئ د آنلاین ماشین زده کړې او عصبي شبکې ګروپونو او فورمونو کې هم ګډون وکړئ ترڅو د نورو زده کونکو او مسلکيانو سره اړیکه ونیسئ ، خپل کار شریک کړئ ، او نظرونه او مرستې ترلاسه کړئ.
LSRS مونراډ-کرون
د خطا د کمولو لپاره به د python پروګرام لیدل خوښ کړي. راتلونکی پرت ته د وزن بدلونونو لپاره ځانګړي انتخاب نوډونه