Table of Contents[Qari][muuji]
Sanadihii la soo dhaafay, shabakadaha neerfayaasha ayaa ku koray caan ah tan iyo markii ay muujiyeen in ay aad ugu fiican yihiin hawlo kala duwan.
Waxaa la tusay inay door weyn u yihiin aqoonsiga sawirka iyo maqalka, habaynta luqadda dabiiciga ah, iyo xataa ciyaarista ciyaaraha adag sida Go iyo chess.
Maqaalkan, waxaan kugu socon doonaa habka oo dhan ee tababarka shabakada neerfaha. Waan sheegi doonaa oo sharxi doonaa dhammaan tillaabooyinka lagu tababarayo shabakadda neerfaha.
Inta aan ka gudbi doono talaabooyinka waxaan jeclaan lahaa in aan ku daro tusaale fudud si aan u hubiyo in uu jiro tusaale wax ku ool ah sidoo kale.
Marka, kaalay, oo aan barano sida loo farsameeyo shabakadaha neerfaha
Aan ku bilowno fudud oo weydii waxa ay yihiin shabakadaha neerfaha marka hore.
Maxay yihiin sida saxda ah Shabakadaha Neural?
Shabakadaha neerfaha waa software kombuyuutar oo u ekaysiiya shaqada maskaxda bini'aadamka. Waxay wax ka baran karaan tiro badan oo xog ah iyo qaababka meelaha ay dadku ku adkaan karto in la ogaado.
Shabakadaha neerfaha ayaa caan ku koray sannadihii ugu dambeeyay sababtoo ah kala duwanaanshahooda hawlaha sida sawirka iyo aqoonsiga maqalka, habaynta luqadda dabiiciga ah, iyo qaabaynta saadaalinta.
Guud ahaan, shabakadaha neerfaha ayaa ah qalab xooggan oo loogu talagalay codsiyo badan oo kala duwan waxayna fursad u leeyihiin inay beddelaan habka aan u wajaheyno shaqooyin badan oo kala duwan.
Maxaynu uga ogaanaa iyaga?
Fahamka shabakadaha neerfaha waa muhiim sababtoo ah waxay keeneen sahanno dhinacyo kala duwan ah, oo ay ku jiraan aragtida kombuyuutarka, aqoonsiga hadalka, iyo habaynta luqadda dabiiciga ah.
Shabakadda neerfaha, tusaale ahaan, waa udub dhexaadka horumarkii ugu dambeeyay ee baabuurta iswada, adeegyada turjumaada tooska ah, iyo xitaa ogaanshaha caafimaadka.
Fahamka sida shabakadaha neerfaha u shaqeeyaan iyo sida loo qaabeeyo waxay naga caawinaysaa inaan dhisno codsiyo cusub oo hal abuur leh. Iyo, laga yaabee, inay horseeddo daah-furnaan ka sii weyn mustaqbalka.
Qoraal ku saabsan Casharka
Sida aan kor ku sheegay, waxaan jeclaan lahaa inaan sharaxo tillaabooyinka tababbarka shabakada neerfaha anigoo tusaale bixinaya. Si tan loo sameeyo, waa inaan ka hadalnaa xogta MNIST. Waa doorasho caan ah oo loogu talagalay bilowgayaasha raba inay ku bilaabaan shabakadaha neerfaha.
MNIST waa erey la soo gaabiyey oo u taagan Machadka Heerarka iyo Tignoolajiyada Qaranka ee la beddelay. Waa xog-qore gacan-ku-qoran oo caadi ahaan loo isticmaalo tababarka iyo tijaabinta moodooyinka barashada mashiinka, gaar ahaan shabakadaha neerfaha.
Ururinta waxa ay ka kooban tahay 70,000 sawiro cawlan oo nambaro gacanta lagu qoray oo u dhexeeya 0 ilaa 9.
Xogta MNIST waa bartilmaameedka caanka ah ee kala soocidda sawirka hawlaha. Waxaa inta badan loo adeegsadaa waxbarida iyo barashada maadaama ay adagtahay oo ay fududahay in wax laga qabto iyadoo ay weli caqabad adag ku tahay barashada algorithms-yada mashiinka si looga jawaabo.
Xogta MNIST waxaa taageera dhowr qaab-dhismeedka barashada mashiinka iyo maktabado, oo ay ku jiraan TensorFlow, Keras, iyo PyTorch.
Hadda waxaan ognahay xogta MNIST, aan ku bilowno talaabooyinkayaga tababarka shabakada neerfaha.
Tillaabooyinka aasaasiga ah ee lagu tababaro Shabakadda Neural
Soo rar maktabadaha lagama maarmaanka ah
Marka ugu horeysa ee la bilaabo tababarka shabakada neerfaha, waxaa muhiim ah in la helo qalabka lagama maarmaanka ah si loo naqshadeeyo loona tababaro qaabka. Tallaabada ugu horreysa ee abuurista shabakad neural waa in la soo dejiyo maktabadaha loo baahan yahay sida TensorFlow, Keras, iyo NumPy.
Maktabadahani waxay u adeegaan sidii blocks-dhismaha horumarinta shabakada neerfaha waxayna bixiyaan awoodo muhiim ah. Isku dhafka maktabadahan ayaa u oggolaanaya abuurista naqshadaha shabakada neerfaha ee casriga ah iyo tababar degdeg ah.
Si aan u bilowno tusaale ahaan; waxaan soo dejin doonaa maktabadaha loo baahan yahay, oo ay ku jiraan TensorFlow, Keras, iyo NumPy. TensorFlow waa qaab-dhismeedka barashada mashiinka il-furan, Keras waa shabakad neural API heer sare ah, iyo NumPy waa maktabad xisaabinta Python tiro ahaan.
import tensorflow as tf
from tensorflow import keras
import numpy as np
Soo deji Xogta
Qalabka xogta waa in hadda la raro. Xog-ururinta ayaa ah xogta xogta lagu tababari doono shabakadda neerfaha. Tani waxay noqon kartaa nooc kasta oo xog ah, oo ay ku jiraan sawirro, cod, iyo qoraal.
Waa muhiim in xogta loo qaybiyo laba qaybood: mid tababarida shabakada neerfaha iyo mid kale oo lagu qiimeeyo saxnaanta qaabka la tababaray. Dhawr maktabadood, oo ay ku jiraan TensorFlow, Keras, iyo PyTorch, ayaa laga yaabaa in loo isticmaalo soo dejinta xogta.
Tusaale ahaan, waxaan sidoo kale isticmaalnaa Keras si aan ugu shubno xogta MNIST. Waxa jira 60,000 oo sawiro tababar ah iyo 10,000 oo sawir oo tijaabo ah
mnist = keras.datasets.mnist
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()
Horudhac Xogta
Diyaarinta xogtu waa marxalad muhiim ah oo lagu tababarayo shabakada neerfaha. Waxay ka kooban tahay diyaarinta iyo nadiifinta xogta ka hor inta aan la gelin shabakada neerfaha.
Cabbiraadda qiyamka pixel, caadi ka dhigista xogta, iyo u beddelashada summada codaynta hal-kulul waa tusaalayaal habraacyada horudhac u ah. Nidaamyadani waxay caawiyaan shabakada neerfaha si ay u bartaan si wax ku ool ah oo sax ah.
Horudhac u samaynta xogta waxay sidoo kale kaa caawin kartaa in la yareeyo ku-habboonaanta xad dhaafka ah iyo hagaajinta waxqabadka shabakada neerfaha.
Waa inaad horay u sii diyaarisaa xogta ka hor inta aanad tababarin shabakada neerfaha. Tan waxaa ka mid ah in loo beddelo summada oo loo beddelo hal-kuleed codayn iyo cabbiridda qiyamka pixel si ay u noqdaan inta u dhaxaysa 0 iyo 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)
Qeex Qaabka
Habka qeexida qaabka shabakada neerfaha waxay ku lug leedahay samaynta qaabdhismeedkeeda, sida tirada lakabyada, tirada neerfayaasha lakabka, hawlaha firfircoonida, iyo nooca shabakada (fid-horumarin, soo noqnoqota, ama kacdoon).
Naqshadaynta shabakada neerfaha ee aad isticmaashid waxaa lagu go'aamiyaa nooca dhibaatada aad isku dayayso inaad xaliso. Naqshadaynta shabakada neerfaha ee si wanaagsan loo qeexay ayaa caawin karta barashada shabakada neerfaha iyadoo ka dhigaysa mid hufan oo sax ah.
Waa waqtigii lagu qeexi lahaa qaabka shabakada neerfaha ee meeshan. Isticmaal qaab fudud oo leh laba lakab oo qarsoon, mid walbana leh 128 neurons, iyo lakabka wax soo saarka softmax, kaas oo leh 10 neuron, tusaale ahaan.
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')
])
Samee Qaabka
Shaqada luminta, hagaajinta, iyo cabbirada waa in la cayimaa inta lagu guda jiro ururinta moodeelka shabakadda neerfaha. Awoodda shabakadda neerfayaasha si ay si sax ah u saadaaliso wax soo saarka waxaa lagu qiyaasaa shaqada luminta.
Si loo kordhiyo saxnaanta shabakada neerfayaasha inta lagu jiro tababarka, hagaajinta ayaa wax ka beddeleysa miisaankeeda. Waxtarka shabakada neerfaha inta lagu jiro tababarka waxaa lagu qiyaasaa iyadoo la isticmaalayo qiyaaso. Qaabka waa in la sameeyaa ka hor inta aan la tababarin shabakada neerfaha.
Tusaalahayaga, waa inaan hadda dhisnaa qaabka.
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
Tabobar Qaabka
U gudbinta xogta diyaarsan ee shabakada neerfaha iyadoo la bedelayo miisaanka shabakada si loo yareeyo shaqada luminta waxaa loo yaqaanaa tababarka shabakada neerfaha.
Xogta xaqiijinta waxaa loo isticmaalaa in lagu tijaabiyo shabakada neerfaha inta lagu jiro tababarka si loola socdo waxtarkeeda loogana hortago ku-habboonaanta. Habka tababarku wuxuu qaadan karaa wakhti, sidaas awgeed waa muhiim in la hubiyo in shabakada neerfaha si habboon loogu tababaray si looga hortago inay ku habboonaato.
Isticmaalka xogta tababarka, waxaan hadda tababari karnaa qaabka. Si taas loo sameeyo, waa in aan qeexnaa cabbirka dufcadda (tirada shaybaarrada la farsameeyay ka hor inta aan la cusboonaysiin moodeelka) iyo tirada xilliyada (tirada soo noqnoqda ee dhammaan xogta xogta oo dhammaystiran).
model.fit(train_images, train_labels, epochs=10, batch_size=32)
Qiimaynta Qaabka
Tijaabinta waxqabadka shabakada neerfaha ee xogta xogta tijaabada waa habka qiimaynta. Marxaladdan, shabakadda neerfaha ee la tababaray ayaa loo isticmaalaa in lagu farsameeyo xogta xogta, saxnaantana waa la qiimeeyaa.
Sida ugu waxtarka leh ee shabakada neerfaha u saadaalin karto natiijada saxda ah ee ka timid nooca cusub, xogta aan la tijaabin ayaa ah cabbirka saxnimadeeda. Falanqaynta qaabka ayaa laga yaabaa inay caawiso go'aaminta sida wanaagsan ee shabakada neerfaha u shaqeyso iyo sidoo kale waxay soo jeedisaa siyaabo aad uga sii fiicnaan lahayd.
Waxaan ugu dambeyntii qiimeyn karnaa waxqabadka moodeelka iyadoo la adeegsanayo xogta imtixaanka tababarka ka dib.
test_loss, test_acc = model.evaluate(test_images, test_labels)
print('Test accuracy:', test_acc)
Waa intaas! Waxaan tababarnay shabakad neural ah si loo ogaado tirooyinka ku jira xogta MNIST.
Laga soo bilaabo diyaarinta xogta ilaa qiimeynta waxtarka qaabka la tababaray, tababarka shabakada neerfaha waxay ku lug leedahay dhowr habab. Tilmaamahani waxay ka caawinayaan kuwa cusub inay si hufan u dhisaan una tababaraan shabakadaha neerfaha.
Bilawga raba inay isticmaalaan shabakadaha neerfaha si ay wax uga qabtaan arrimo kala duwan waxay sidaas samayn karaan iyagoo raacaya tilmaamahan.
Sawirka Tusaalaha
Aan isku dayno inaan sawirno waxa aan samaynay tusaalahan si aan si fiican u fahanno.
Xirmada Matplotlib waxaa loo adeegsaday qayb ka mid ah code-kan si loogu sawiro sawiro aan kala sooc lahayn oo laga soo qaatay xogta tababarka. Marka hore, waxaan soo dejineynaa moduleka "pyplot" ee Matplotlib waxaana loo yaqaannaa "plt". Dabadeed, iyadoo wadarta cabbirkeedu yahay 10 illaa 10 inji, waxaanu samaynaa sawir leh 5 saf iyo 5 tiir oo sariiro hoose ah.
Kadibna, waxaanu isticmaalnaa loop-ka si aanu ugu celcelino qormooyinka hoose, anagoo muujinayna sawir ka mid ah xogta tababarka mid kasta. Si loo muujiyo sawirka, shaqada "imshow" ayaa la isticmaalaa, iyadoo ikhtiyaarka "cmap" loo dejiyay 'cawlan' si loogu muujiyo sawirada cabbirka cawl. Cinwaanka hindise-hoosaad kasta waxa kale oo lagu dejiyay calaamadda sawirka la xidhiidha ururinta.
Ugu dambeyntii, waxaan isticmaalnaa shaqada "muujinta" si aan u muujino sawirada la duubay ee shaxanka. Shaqadani waxay noo ogolaanaysaa in aan si muuqaal ah u qiimayno muunad sawiro ah oo laga soo qaaday xogta xogta, taas oo gacan ka geysan karta fahamkayaga xogta iyo aqoonsiga wixii walaac ah ee suurtogalka ah.
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()
Moodooyinka Shabakadda Neural ee Muhiimka ah
- Feedforward Neural Networks (FFNN): Nooc fudud oo ka mid ah shabakada neerfaha kaas oo akhbaartu u socoto hal hab oo kaliya, laga bilaabo lakabka wax gelinta ilaa lakabka wax soo saarka iyada oo loo marayo hal ama dhowr lakab oo qarsoon.
- Isku xirka Neural Networks (CNN): Shabakad neural ah oo caadi ahaan loo isticmaalo ogaanshaha iyo habaynta sawirka. CNN-yada waxaa loogu talagalay inay aqoonsadaan oo ay si toos ah uga soo saaraan muuqaalada sawirrada.
- Shabakadaha Neural-ka ee soo noqnoqda (RNN): Shabakad neural ah oo caadi ahaan loo isticmaalo ogaanshaha iyo habaynta sawirka. CNN-yada waxaa loogu talagalay inay aqoonsadaan oo ay si toos ah uga soo saaraan muuqaalada sawirrada.
- Shabakadaha Xusuusta Muddada-Gaaban (LSTM): Nooc ka mid ah RNN oo loo sameeyay si looga gudbo arrinta gradients ee lumaya ee heerka RNNs. Ku-tiirsanaanta muddada-dheer ee xogta taxanaha ah ayaa si wanaagsan loogu qabsan karaa LSTM-yada.
- Cod-bixiyayaasha otomaatiga ah: Shabakadda neerfaha ee barashada aan la kormeerin taaso shabkada lagu baray in ay dib u soo saarto xogteeda lakabka wax soo saarka. Isku-buufinta xogta, ogaanshaha cillad-xumada, iyo diidista sawirka ayaa laga yaabaa in dhammaantood lagu dhammeeyo cod-bixiyeyaal.
- Shabakadaha Adversarial Networks (GAN): Shabakadda abuurista neural waa nooc ka mid ah shabakada neerfaha oo la baray si ay u soo saarto xog cusub oo u dhiganta xogta xogta tababarka. GAN-yadu waxay ka kooban yihiin laba shabakadood: shabakad koronto-dhaliye ah oo abuurta xog cusub iyo shabakad takoor ah oo qiimeeya tayada xogta la abuuray.
Isku soo wada duuboo, Maxay Noqon Talaabadaada Xiga?
Sahami dhowr agab online iyo koorsooyin si aad wax badan uga barato tababbarka shabakada neerfaha. Ka shaqaynta mashaariicda ama tusaalooyinka waa hal qaab oo lagu helo fahan wanaagsan oo shabakadaha neerfaha.
Ku bilow tusaalooyin fudud sida dhibaatooyinka kala saarista binary ama hawlaha kala saarista sawirka, ka dibna u gudub hawlo aad u adag sida habaynta luqadda dabiiciga ah ama barashada xoojinta.
Ka shaqaynta mashaariicda waxay kaa caawinaysaa inaad hesho khibrad dhab ah oo aad wanaajiso xirfadaha tababarka shabakada neerfaha.
Waxa kale oo aad ku biiri kartaa barashada mishiinada khadka tooska ah iyo kooxaha shabakadaha neerfaha iyo golayaasha si aad ula falgasho bartayaasha kale iyo xirfadlayaasha, la wadaagto shaqadaada, oo aad u hesho faallooyin iyo caawimo.
LSRS MONRAD-KROHN
Waxaan jeclaan lahaa inaan arko barnaamijka Python si loo yareeyo khaladka. Nudaha xulashada gaarka ah ee miisaanka isbeddelka lakabka xiga