Isiqulatho[Fihla][Bonisa]
Kwiminyaka yakutshanje, iinethiwekhi ze-neural ziye zakhula ekuthandeni njengoko zibonise ukuba zilunge kakhulu kuluhlu olubanzi lwemisebenzi.
Baye baboniswa ukuba lukhetho olukhulu lokuqondwa komfanekiso kunye nesandi, ukusetyenzwa kolwimi lwendalo, kunye nokudlala imidlalo enzima efana neGo kunye nechess.
Kule post, ndiza kukuhamba ngayo yonke inkqubo yokuqeqesha inethiwekhi ye-neural. Ndiza kukhankanya kwaye ndichaze onke amanyathelo okuqeqesha inethiwekhi ye-neural.
Ngelixa ndiza kudlula ngamanyathelo ndingathanda ukongeza umzekelo olula ukuze ndiqinisekise ukuba kukho umzekelo osebenzayo.
Ke, yiza, kwaye makhe sifunde ukwenza iinethiwekhi ze-neural
Masiqale ngokulula kwaye sibuze ukuba yintoni amanethiwekhi ekuqaleni.
Yintoni kanye kanye iNeural Networks?
INeural networks yisoftware yekhompyuter elinganisa ukusebenza kwengqondo yomntu. Basenokufunda kwimithamo emikhulu yedatha kunye neepateni zamabala abantu abanokufumanisa kunzima ukuzibhaqa.
Iinethiwekhi ze-Neural zikhule ekudumeni kwiminyaka yakutshanje ngenxa yokuguquguquka kwazo kwimisebenzi enje ngomfanekiso kunye nokuqondwa kweaudio, ukusetyenzwa kolwimi lwendalo, kunye nemodeli yokuxela kwangaphambili.
Lilonke, uthungelwano lwe-neural sisixhobo esomeleleyo kuluhlu olubanzi lwezicelo kwaye sinethuba lokuguqula indlela esijongana ngayo noluhlu olubanzi lwemisebenzi.
Kutheni Sifanele Sazi Ngabo?
Ukuqonda uthungelwano lwe-neural kubalulekile kuba kukhokelele ekufunyenweyo kwiinkalo ezahlukeneyo, kubandakanya umbono wekhompyuter, ukuqondwa kwentetho, kunye nokusetyenzwa kolwimi lwendalo.
Uthungelwano lweNeural, umzekelo, lusembindini wophuhliso lwakutsha nje kwiimoto eziziqhubayo, iinkonzo zokuguqulela ngokuzenzekelayo, kunye noxilongo lwezonyango.
Ukuqonda indlela uthungelwano lwe-neural olusebenza ngayo kunye nendlela yokuyilwa kusinceda ukuba sakhe usetyenziso olutsha kunye nolwakhiwo. Kwaye, mhlawumbi, kunokukhokelela kwizinto ezifunyaniswe ngakumbi kwixesha elizayo.
Inqaku malunga neSifundo
Njengoko benditshilo ngasentla, ndingathanda ukucacisa amanyathelo okuqeqesha inethiwekhi ye-neural ngokunika umzekelo. Ukwenza oku, kufuneka sithethe malunga nedatha ye-MNIST. Lukhetho oludumileyo lwabaqalayo abafuna ukuqalisa ngeenethiwekhi ze-neural.
I-MNIST sisishunqulelo esimele i-Modified National Institute of Standards and Technology. Luluhlu lwedatha olubhalwe ngesandla oluqhele ukusetyenziselwa uqeqesho kunye novavanyo lweemodeli zokufunda zoomatshini, ngakumbi uthungelwano lwe-neural.
Ingqokelela iqulathe ama-70,000 eefoto ezingwevu zamanani abhalwe ngesandla ukusuka ku-0 ukuya ku-9.
Iseti yedatha ye-MNIST luphawu oludumileyo lwe ukuhlelwa komfanekiso imisebenzi. Ihlala isetyenziselwa ukufundisa nokufunda kuba ixinene kwaye kulula ukujongana nayo ngelixa ibeka umngeni onzima kwiialgorithms zokufunda koomatshini ukuphendula.
Iseti yedatha ye-MNIST ixhaswa zizikhokelo zokufunda ngoomatshini kunye namathala eencwadi, kuquka iTensorFlow, iKeras, kunye nePyTorch.
Ngoku siyazi malunga nedatha ye-MNIST, masiqalise ngamanyathelo ethu okuqeqesha inethiwekhi ye-neural.
Amanyathelo asisiseko okuQeqesha iNeural Network
Amathala eencwadi ayimfuneko
Xa uqala ukuqeqesha inethiwekhi ye-neural, kubalulekile ukuba nezixhobo eziyimfuneko ukuyila nokuqeqesha imodeli. Inyathelo lokuqala ekudaleni uthungelwano lwe-neural kukungenisa ngaphandle amathala eencwadi afunekayo afana neTensorFlow, Keras, kunye neNumPy.
La mathala eencwadi asebenza njengeebhloko zokwakha kuphuhliso lothungelwano lwe-neural kwaye abonelele ngezakhono ezibalulekileyo. Indibaniselwano yala mathala eencwadi ivumela ukuyilwa koyilo lwenethiwekhi ye-neural ephucukileyo kunye noqeqesho olukhawulezayo.
Ukuqala umzekelo wethu; siya kungenisa ngaphandle amathala eencwadi afunekayo, aquka iTensorFlow, iKeras, kunye neNumPy. TensorFlow sisikhokelo sokufunda somatshini ovulelekileyo, iKeras yi-API yenethiwekhi ye-neural ephezulu, kwaye iNumPy yilayibrari yamanani yePython yekhompyutha.
import tensorflow as tf
from tensorflow import keras
import numpy as np
Layisha iSeti yedatha
Iseti yedatha kufuneka ilayishwe ngoku. Iseti yedatha yiseti yedatha apho inethiwekhi ye-neural iya kuqeqeshwa khona. Oku kunokuba naluphi na uhlobo lwedatha, kuquka iifoto, iaudio, kunye nokubhaliweyo.
Kubalulekile ukwahlula i-dataset ibe ngamacandelo amabini: enye yokuqeqesha inethiwekhi ye-neural kunye nenye yokuvavanya ukuchaneka kwemodeli eqeqeshiweyo. Amathala eencwadi aliqela, kuquka iTensorFlow, iKeras, kunye nePyTorch, anokusetyenziselwa ukungenisa idatha yedatha.
Kumzekelo wethu, sisebenzisa iiKeras ukulayisha idatha ye-MNIST. Kukho iifoto ze-60,000 zoqeqesho kunye nemifanekiso ye-10,000 yovavanyo kwidathasethi.
mnist = keras.datasets.mnist
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()
Lungiselela kwangaphambili iDatha
Ukulungiswa kwedatha linqanaba elibalulekileyo ekuqeqesheni inethiwekhi ye-neural. Ibandakanya ukulungiswa kunye nokucoca idatha phambi kokuba ifakwe kwinethiwekhi ye-neural.
Ukukala amaxabiso e-pixel, ukuqhelanisa idatha, kunye nokuguqula iilebhile ukuya kwi-encoding enye-eshushu yimizekelo yeenkqubo zokucubungula kwangaphambili. Ezi nkqubo zinceda inethiwekhi ye-neural ekufundeni ngempumelelo ngakumbi nangokuchanekileyo.
Ukusetyenzwa kwangaphambili kwedatha kunokunceda ekunciphiseni ukufakwa ngokugqithisileyo kunye nokuphucula ukusebenza kwenethiwekhi ye-neural.
Kuya kufuneka uqhubele phambili idatha ngaphambi kokuqeqesha inethiwekhi ye-neural. Oku kuquka ukutshintsha iileyibhile ukuya kwi-encoding enye-eshushu kunye nokukala ixabiso le-pixel libe phakathi kuka-0 kunye no-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)
Chaza uMzekelo
Inkqubo yokuchaza imodeli yenethiwekhi ye-neural ibandakanya ukuseka i-architecture yayo, njengenani leengqimba, inani lee-neurons ngomqolo, imisebenzi yokuvula, kunye nohlobo lwenethiwekhi (i-feedforward, i-recurrent, okanye i-convolutional).
Uyilo lwenethiwekhi ye-neural oyisebenzisayo imiselwa luhlobo lwengxaki ozama ukuyisombulula. Uyilo lwenethiwekhi ye-neural oluchazwe kakuhle lunokunceda ekufundeni inethiwekhi ye-neural ngokuyenza isebenze ngakumbi kwaye ichaneke.
Lixesha lokuchaza imodeli yenethiwekhi ye-neural okwangoku. Sebenzisa imodeli elula enemigangatho emibini efihliweyo, nganye ine-neurons ye-128, kunye ne-softmax output layer, ene-10 neurons, kulo mzekelo.
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')
])
Qokelela uMzekelo
Umsebenzi welahleko, isilungisi, kunye neemetrics kufuneka zixelwe ngexesha loqulunqo lwemodeli yenethiwekhi ye-neural. Ubuchule bomsebenzi womnatha we-neural wokuqikelela ngokuchanekileyo imveliso bulinganiswa ngumsebenzi welahleko.
Ukonyusa ukuchaneka kwenethiwekhi ye-neural ngexesha loqeqesho, i-optimizer iguqula iintsimbi zayo. Ukusebenza kwenethiwekhi ye-neural ngexesha loqeqesho kujongwa kusetyenziswa i-metrics. Imodeli kufuneka yenziwe phambi kokuba inethiwekhi ye-neural iqeqeshwe.
Kumzekelo wethu, kufuneka ngoku ngoku sakha imodeli.
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
Qeqesha uMzekelo
Ukugqithiswa kwedatha elungisiweyo kwinethiwekhi ye-neural ngelixa kulungiswa iintsimbi zothungelwano ukunciphisa umsebenzi welahleko kwaziwa njengokuqeqesha inethiwekhi ye-neural.
Idatha yokuqinisekisa isetyenziselwa ukuvavanya inethiwekhi ye-neural ngexesha loqeqesho ukulandelela ukusebenza kwayo kunye nokuthintela ukugqithisa. Inkqubo yoqeqesho inokuthatha ixesha, ngoko ke kubalulekile ukuqiniseka ukuba inethiwekhi ye-neural iqeqeshelwe ngokufanelekileyo ukunqanda ukungafaneleki.
Ukusebenzisa idatha yoqeqesho, ngoku sinokuqeqesha imodeli. Ukwenza oku, kufuneka sichaze ubungakanani bebhetshi (inani leesampuli ezicutshungulwayo ngaphambi kokuba imodeli ihlaziywe) kunye nenani leepochs (inani lokuphindaphinda kwidathasethi epheleleyo).
model.fit(train_images, train_labels, epochs=10, batch_size=32)
Ukuvavanywa koMzekelo
Ukuvavanya ukusebenza kwenethiwekhi ye-neural kwidathasethi yovavanyo yinkqubo yokuyivavanya. Kweli nqanaba, inethiwekhi ye-neural eqeqeshiweyo isetyenziselwa ukucubungula idatha yovavanyo, kwaye ukuchaneka kuyavavanywa.
Indlela inethiwekhi ye-neural enokuqikelela ngayo umphumo ochanekileyo kwidatha entsha, engavavanywanga ngumlinganiselo wokuchaneka kwayo. Ukuhlalutya imodeli kunokuncedisa ekuboneni ukuba inethiwekhi ye-neural isebenza njani kwaye ikwacebisa iindlela zokuyenza ibengcono.
Ekugqibeleni sinokuvavanya ukusebenza komzekelo usebenzisa idatha yovavanyo emva koqeqesho.
test_loss, test_acc = model.evaluate(test_images, test_labels)
print('Test accuracy:', test_acc)
Kuko konke! Siqeqeshe inethiwekhi ye-neural ukubona amanani kwidatha ye-MNIST.
Ukusuka ekulungiseleleni idatha ukuya kuvavanyo lwempumelelo yemodeli eqeqeshiweyo, uqeqesho lwenethiwekhi ye-neural lubandakanya iinkqubo ezininzi. Le miyalelo inceda abaqalayo ekwakhiweni nasekuqeqesheni uthungelwano lwe-neural.
Abaqalayo abafuna ukusebenzisa iinethiwekhi ze-neural ukujongana nemiba eyahlukeneyo banokwenza oko ngokulandela le miyalelo.
Ukubona Umzekelo
Makhe sizame ukuba nomfanekiso-ngqondweni wento esiyenzileyo ngalo mzekelo ukuze sikuqonde ngcono.
Ipakethe yeMatplotlib isetyenziswa kule khowudi yamazwi amancinci ukwenza isicwangciso esikhethiweyo seefoto ukusuka kwidatha yoqeqesho. Okokuqala, singenisa imodyuli kaMatplotlib ethi “pyplot” kwaye siyibiza njenge “plt”. Emva koko, kunye nomlinganiselo opheleleyo we-10 nge-intshi ezili-10, senza umzobo kunye nemigca emi-5 kunye neekholamu ezi-5 ze-subplots.
Emva koko, sisebenzisa i-loop ukuphindaphinda ngaphezulu kwe-subplots, ukubonisa umfanekiso osuka kwidatha yoqeqesho nganye. Ukubonisa umfanekiso, umsebenzi we-“imshow” uyasetyenziswa, kunye nokhetho lwe-“cmap” olusetelwe ku-'grey' ukubonisa iifoto kwi-grayscale. Isihloko seplot nganye sikwamiselwe kwileyibhile yomfanekiso onxulumeneyo kwingqokelela.
Ekugqibeleni, sisebenzisa umsebenzi othi "bonisa" ukubonisa imifanekiso ecwangcisiweyo kumfanekiso. Lo msebenzi usivumela ukuba sihlole ngokubonakalayo isampula yeefoto ezivela kwidathasethi, enokunceda ekuqondeni kwethu idatha kunye nokuchongwa kwayo nayiphi na inkxalabo enokwenzeka.
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()
Iimodeli zeNeural Network ezibalulekileyo
- Uthungelwano lwe-Feedforward Neural (FFNN): Uhlobo olulula lothungelwano lwe-neural apho ulwazi luhamba kuphela ngendlela enye, ukusuka kuluhlu lwegalelo ukuya kumaleko ophumayo ngokusebenzisa umaleko ofihlakeleyo omnye okanye ngaphezulu.
- Convolutional Neural Networks (CNN): Inethiwekhi ye-neural edla ngokusetyenziswa ekubhaqweni komfanekiso nasekuqhubeni. Ii-CNN zenzelwe ukuqaphela kunye nokukhupha iimpawu kwimifanekiso ngokuzenzekelayo.
- Uthungelwano lweNeural oluQhelekileyo (RNN): Inethiwekhi ye-neural edla ngokusetyenziswa ekubhaqweni komfanekiso nasekuqhubeni. Ii-CNN zenzelwe ukuqaphela kunye nokukhupha iimpawu kwimifanekiso ngokuzenzekelayo.
- Uthungelwano lweMemori yeXesha Elifutshane (LSTM): Uhlobo lwe-RNN lwenzelwe ukoyisa umba wokunyamalala kweegradient kwiiRNN eziqhelekileyo. Ukuxhomekeka kwexesha elide kwiidatha ezilandelelanayo kunokubanjwa ngcono ngee-LSTM.
- Iikhowudi ezizenzekelayo: Uthungelwano lwe-neural lokufunda olungagadwanga apho uthungelwano lufundiswa ukuvelisa kwakhona idatha yegalelo lwayo kwimveliso yalo. Uxinzelelo lwedatha, ukufunyaniswa okungaqhelekanga, kunye nokukhutshwa kwemifanekiso konke kunokufezekiswa ngee-autoencoders.
- Uthungelwano loNxibelelwano oluVeliswayo (GAN): Inethiwekhi ye-generative neural luhlobo lwenethiwekhi ye-neural efundiswa ukuvelisa idatha entsha enokuthelekiswa nedatha yoqeqesho. Ii-GAN zenziwe ngamanethiwekhi amabini: inethiwekhi ye-generator eyenza idatha entsha kunye nenethiwekhi yocalucalulo evavanya umgangatho wedatha eyenziwe.
Ukusonga, Yintoni ekufuneka ibe ngamanyathelo akho alandelayo?
Jonga izixhobo ezininzi ze-intanethi kunye nezifundo zokufunda ngakumbi malunga noqeqesho lwenethiwekhi ye-neural. Ukusebenza kwiiprojekthi okanye imizekelo yindlela enye yokufumana ukuqonda ngcono uthungelwano lwe-neural.
Qala ngemizekelo elula njengeengxaki zohlelo lokubini okanye imisebenzi yokuhlelwa kwemifanekiso, kwaye emva koko uye kwimisebenzi enzima ngakumbi njengokuqhubekekisa ulwimi lwendalo okanye nokuqiniswa ukufunda.
Ukusebenza kwiiprojekthi kukunceda ufumane amava okwenyani kwaye uphucule izakhono zoqeqesho lwenethiwekhi ye-neural.
Unokujoyina ukufundwa koomatshini kwi-intanethi kunye namaqela enethiwekhi ye-neural kunye neeforamu zokunxibelelana nabanye abafundi kunye neengcali, wabelane ngomsebenzi wakho, kwaye ufumane amagqabantshintshi kunye noncedo.
I-LSRS MONRAD-KROHN
⁶ĵNdingathanda ukubona inkqubo yepython yokunciphisa impazamo. Iinqununu ezikhethekileyo zokukhetha ukuguqulwa kobunzima kwinqanaba elilandelayo