Table of Contents[Qari][muuji]
Maskaxdu waxay la mid tahay shabakadaha neerfaha. Kani waa isbarbardhigga sida caadiga ah loo isticmaalo in lagu caawiyo qof ku cusub mawduuca si uu u fahmo fikradaha ka dambeeya barashada mashiinka iyo shabakadaha neerfaha ee macmalka ah.
Sababtoo ah waxaa jira dhowr lakab oo xisaabaadka xisaabeed iyo xisaabaadka ka socda daaha gadaashiisa, qeexida shabakadahan shaqo xisaabeed waa hab aad u horumarsan.
Tani waxaa loogu talagalay dadka dhab ahaantii xiisaynaya barashada mashiinka oo raba inay arkaan sida Python neural code loo qoro.
Maqaalkan, waxaan ku tusi doonaa sida loo dhiso shabakad qoto dheer oo neural ah (DNN) oo si buuxda ugu xidhan Python 3.
Dulmar guud oo ku saabsan Qaab dhismeedka faylka ee Xeerkeena Shabakada Neural ee Python
Waxaa jiri doona saddex fayl oo la abuurayo halkan. Midka koowaad waa faylka nn.py ee fudud, kaas oo lagaga hadli doono "Dabbajinta Hawlaha Caawinta" iyo "Dhisida Shabakadda Neural ee xoqitaanka."
Waxaan sidoo kale lahaan doonaa fayl la yiraahdo mnist loader.py si aan ugu shubno xogta imtixaanka, sida lagu qeexay "Loading Data MNIST."
Ugu dambeyntii, waxaan haysan doonaa fayl lagu magacaabo test.py kaas oo laga bilaabi doono terminalka si loo tijaabiyo shabakadayada neerfaha.
Faylkan waxaa si faahfaahsan loogu sharraxay "Tijaabooyin socda."
Rakibaadda
Maktabada NumPy Python waa in la soo dejiyo si loo raaco casharkan. Waxaad tan ku fulin kartaa adiga oo isticmaalaya amarka soo socda ee terminalka:
Soo dejinta Modules iyo dejinta shaqada Caawinta
Labada maktabadood ee kaliya ee aan u baahanahay waa random iyo NumPy, kuwaas oo aan isla markiiba soo dejin doono. Miisaanka bilowga ah ee shabakadayada neural, waxaanu isku shaandheyn doonaa iyaga oo isticmaalaya maktabadda random.
Si loo dedejiyo xisaabintayada, waxaanu isticmaali doonaa NumPy ama np (aqoon ahaan, inta badan waxaa loo soo dhoofiyaa np ahaan). Labadayada shaqo ee caawiye waxa la samayn doonaa ka dib soo dejintayada. Laba hawlood oo sigmoid ah: mid iyo sigmoid Prime.
Dib-u-celinta Logistic waxay kala saari doontaa xogta iyadoo la adeegsanayo shaqada sigmoid, halka dib-u-celinta ay xisaabin doonto delta ama gradient iyadoo la adeegsanayo sigmoid Prime function.
Abuuritaanka Fasalka Shabakadda
Dhisida shabakad neerfaha oo si buuxda isugu xidhan ayaa ah waxa kaliya ee diirada la saarayo qaybtan. Fasalka shabakadu wuxuu koobayaa dhammaan hawlaha ka dambeeya. Shaqada Object() {[native code]} waxa lagu abuuri doonaa bilawga fasalkayada shabakada.
Hal dood, cabbirro, ayaa looga baahan yahay shaqada Object() {[code native]}. Doorsoomayaasha cabbiradu waa ururinta qiyamka tirooyinka taasoo ka dhigan tirada qanjidhada gelinta ee ku jirta lakab kasta oo ka mid ah shabakadayada neerfaha.
Waxaan ku bilownay afar guri habkayaga __init__. Doorsoomayaasha wax gelinta, cabbirrada, ayaa loo isticmaalaa in lagu dejiyo liiska cabbirrada lakabka iyo tirada lakabyada, lakabyada nambarada, siday u kala horreeyaan.
Talaabada ugu horeysa waa in si aan kala sooc lahayn loo qoondeeyo eexda bilowga ah ee shabakadayada lakab kasta oo raacaya lakabka wax gelinta.
Ugu dambeyntii, xiriir kasta oo ka dhexeeya gelinta iyo lakabyada wax soo saarka ayaa miisaankiisa si aan kala sooc lahayn u soo baxay. Np.Random.Randn() waxa ay ku siinaysaa muunad random ah oo laga soo qaatay qaybinta caadiga ah ee macnaha guud.
Feed Forward function
Shabakadda neerfaha, macluumaadka waxaa loo soo gudbiyaa shaqada quudinta. Hal dood, a, oo muujinaysa vector firfircoonida hadda, ayaa looga baahan doonaa shaqadan.
Shaqadani waxay qiyaastay dhaqdhaqaaqa lakab kasta iyada oo ku celcelinaysa dhammaan eexda iyo miisaanka shabakada. Jawaabta la bixiyay waa saadaasha, taas oo ah firfircoonida lakabka ugu dambeeya.
Hoos-u-dhac-yar oo gradient ah
Faras-shaqeedka fasalka Shabakaddayada ayaa ah Hoos-u-socod. Noocan, waxaanu isticmaalnaa dufcad-yar (stochastic) farcanka gradient, kala duwanaansho la beddelay.
Tani waxay tusinaysaa in dufcad yar oo dhibco xog ah loo isticmaali doono in lagu cusboonaysiiyo qaabkayaga. Afar loo baahan yahay iyo hal dood oo ikhtiyaari ah ayaa loo gudbiyay habkan. Afarta doorsoome ee loo baahan yahay waa xogta tababarka, tirada xilliyada, cabbirka dufcadaha yaryar, iyo heerka waxbarashada (eta).
Xogta tijaabada ayaa la heli karaa marka la codsado. Waxaan bixin doonaa xogta tijaabada marka aan ugu dambeyntii qiimeyno shabakadan. Tirada shaybaarka ee shaqadan ayaa marka hore lagu dejiyay dhererka liiska marka xogta tababarka loo beddelo nooc liis ah.
Waxaan sidoo kale ku dabaqnaa isla habraaca si aan u tijaabino xogta lagu bixiyo. Tani waa sababta oo ah halkii dib noogu soo celin lahaa liis ahaan, runtii waa zips ee liisaska. Markaan soo rarno muunadaha xogta MNIST hadhow, waxaan wax badan ka baran doonaa tan.
Haddii aan hubin karno inaan u bixinno labada nooc ee xogta liis ahaan, markaa ka-qaadista noocan ahi daruuri maaha.
Marka aan helno xogta, waxaan uga gudubnaa waayihii tababarka si wareeg ah. Muddada tababarku waa hal wareeg oo kaliya ee tababarka shabakada neerfaha. Waxaan marka hore isku shaandheyneynaa xogta xilli kasta si aan u hubinno randomity ka hor inta aan sameynin liiska dufcadaha yaryar.
Shaqada Dufcaddii yarayd ee cusboonaysiinta, kaas oo hoos lagaga hadlay, waxa loogu yeedhi doonaa dufcad kasta oo yar. Saxnaanta tijaabada sidoo kale waa la soo celin doonaa haddii xogta tijaabada la heli karo.
Shaqada caawiye-ka-soo-saar ee kharashka
Aynu marka hore horumarino shaqada caawiye ee loo yaqaan qiimaha derivative ka hor inta aynaan runtii abuurin koodka faafinta. Haddii aan khalad ku samayno lakabkayaga wax soo saarka, shaqada ka soo baxda kharashka ayaa tusi doonta.
Waxay u baahan tahay laba qalab: habaynta firfircoonida wax soo saarka iyo y-isku xidhka qiyamka wax soo saarka ee la filayo.
Shaqada faafinta
Dhaqdhaqaaqayada firfircoon ee hadda jira, firfircoonida, iyo sidoo kale dhaqdhaqaaq kasta oo kale oo firfircoon, firfircoonida, iyo z-vectors, zs, waa in dhamaantood maskaxda lagu hayaa. Lakabka loo yaqaan lakabka wax gelinta ayaa marka hore la hawlgeliyay.
Waxaan dulmarayn doonaa eex kasta iyo miisaan kasta ka dib markii iyaga la dhigay. Wareeg kastaa waxa uu ku lug leeyahay xisaabinta z vector sida sheyga dhibco ee miisaanka iyo firfircoonida, ku darida liiska zs, dib u xisaabinta hawlgelinta, iyo ku darista hawlgelinta la cusboonaysiiyay ee liiska hawlgelinta.
Ugu dambeyntii, xisaabta. delta, oo la mid ah qaladkii ka yimid lakabkii hore oo lagu dhufto sigmoid Prime ee qaybta ugu dambeysa ee vectors zs, ayaa la xisaabiyaa ka hor intaanan bilaabin kaarka dambe.
Lakabka ugu dambeeya ee nabla b waxa loo dejiyay inuu noqdo delta, lakabka ugu dambeeya ee nabla w waxa loo dejiyay inuu noqdo sheyga dhibicda delta iyo lakabka labaad ee u dambeeya ee firfircoonida (loo soo rogay si aan dhab ahaantii u samayn karno xisaabta) .
Waxaan u soconaa sidii hore, ka bilowda lakabka labaad oo ku soo gabagabeynaya kan ugu dambeeya, oo ku celi habka ka dib marka la dhammeeyo lakabyadan ugu dambeeya. Nablasyada ayaa markaa dib loogu celiyaa tuple ahaan.
Cusbooneysiinta soo degitaanka dufcada-yar
Habkayaga SGD (stochastic gradient deescent) ka hor wuxuu ku daraa cusboonaysiinta dufcada yar. Maadaama laga isticmaalo SGD laakiin sidoo kale u baahan tahay dib-u-celin, waxaan ka dooday halka la dhigo shaqadan.
Ugu dambayntii, waxaan doortay inaan halkan ku dhejiyo. Waxay ku bilaabataa soo saarista 0 vector ee eexda' iyo miisaanka 'nablas', si la mid ah shaqadayada dib-u-celinta ayaa samaysay.
Waxay u baahan tahay dufc-yar-yar iyo heerka waxbarashada eta sidii labadeeda wax-soo-saarka. Dufcaddii-yar-yar, waxaan markaa isticmaalnaa shaqada dhabarka si aan u helno duleelka nabla array kasta ee wax-soo-gelinta, x, iyo soo-saarka, y. Liisaska nabla ayaa markaa lagu cusboonaysiiyaa deltaskan.
Ugu dambayntii, waxaanu isticmaalnaa heerka waxbarashada iyo nablasyada si aanu u cusboonaysiino miisaanka shabakada iyo eexda. Qiime kasta waxaa loo cusboonaysiiyaa qiimihii ugu dambeeyay, in ka yar heerka waxbarashada, waxaa lagu dhufto cabbirka minibatch, ka dibna lagu daraa qiimaha nabla.
Qiimee shaqada
Shaqada qiimeyntu waa tan ugu dambeysa ee aan u baahanahay inaan qorno. Xogta tijaabadu waa gelinta kaliya ee hawshan. Shaqadan, waxaan kaliya barbar dhignaa wax soo saarka shabakada iyo natiijada la filayo, y. Marka la quudiyo gelinta, x, hore, wax soo saarka shabakadda ayaa la go'aamiyaa.
Koodhka oo dhamaystiran
Marka aan isku darno dhammaan koodka, tani waa sida ay u muuqato.
Tijaabinta Shabakadda Neural
Soodejinaya xogta MNIST
The Xogta MNIST waa qaabka .pkl.gz, kaas oo aanu ku furi doono GZIP oo aanu ku shubi doono qajaar. Aynu qorno hab degdeg ah si aan xogtan ugu shubno sidii tuple ka kooban saddex, una qaybsan tababarka, xaqiijinta, iyo xogta tijaabada.
Si xogtayada loogu fududeeyo maaraynta, waxaanu qori doonaa hawl kale si aanu y ugu dhigno 10-shayood oo kooban. Soo diyaaridu waxay noqon doontaa dhammaan 0s marka laga reebo 1 oo u dhigma tirada saxda ah ee sawirka.
Waxaan isticmaali doonaa xogta culeyska aasaasiga ah iyo hal hab oo kulul si aan ugu shubno xogtayada qaab la akhriyi karo. Hawl kale ayaa la qori doonaa taas oo u beddeli doonta x qiyamkayaga liis cabbir ah 784, oo ku habboon sawirka 784 pixels, iyo y qiyamkayaga oo u beddeli doona qaabkooda vector ee kulul.
Kadib waxaan isku dari doonaa x iyo y qiyamka si uu hal tusmeeyo kan kale u dhigmo. Tani waxay khusaysaa tababarka, ansixinta, iyo xogta tijaabada. Waxaan markaa soo celineynaa xogta la beddelay.
Imtixaannada socda
Waxaan samayn doonaa fayl cusub oo la yiraahdo "mnist loader" kaas oo soo dejin doona labadaba shabakada neerfaha ee aan hore u dhisnay (fudud nn) iyo xogta MNIST dejinta ka hor intaanan bilaabin tijaabinta.
Faylkan, waxa kaliya ee aan u baahanahay inaan sameyno waa soo dejinta xogta, dhisno shabakad leh cabbirka lakabka gelinta ee 784 iyo cabbirka lakabka wax soo saarka ee 10, ku socodsii shaqada shabakada SGD xogta tababarka, ka dibna tijaabi adoo isticmaalaya xogta tijaabada.
Maskaxda ku hay in liiskayaga lakabyada gelinta, wax farqi ah ma samaynayso waxa mid ka mid ah tirooyinka u dhexeeya 784 iyo 10. Waxaan u bedeli karnaa lakabyada kale si kasta oo aan rabno; kaliya cabbirka wax-gelinta iyo wax-soo-saarka ayaa go'an.
Saddex lakab lagama maarmaan; Waxaa laga yaabaa inaan isticmaalno afar, shan, ama xitaa laba kaliya. Ku raaxayso tijaabinta.
Ugu Dambeyn
Halkan, anagoo adeegsanayna Python 3, waxaan ka abuurnaa shabakad neural ah oo xoqan. Iyadoo ay weheliso xisaabta heerka sare ah, waxaanu sidoo kale ka wada hadalnay waxyaabaha gaarka ah ee hirgelinta.
Waxaan ku bilownay fulinta hawlaha caawiyayaasha. Si ay neerfayaasha u shaqeeyaan, sigmoid iyo sigmoid prime functional waa muhiim. Waxaanu markaa dhaqan gelinay shaqada feedforward, taas oo ah habka aasaasiga ah ee xogta quudinta shabakada neerfaha.
Marka xigta, waxaan ku abuurnay shaqada farcanka gradient ee Python, matoorka kaxeeya shabakadayada neerfaha. Si loo helo "minima local" oo aan kor ugu qaadno miisaankooda iyo eexdooda, shabakadeena neural waxay adeegsataa asal tartiib tartiib ah. Waxaan abuurnay shaqada dib-u-faafinta anagoo adeegsanayna soo degid tartiib ah.
Soo gudbinta cusboonaysiinta marka wax-soo-saarku ayna ku habboonayn calaamadaha saxda ah, shaqadani waxay awood u siinaysaa shabakadda neural inay "barto."
Ugu dambeyntii, waxaan dhignay Python-kayaga cusub shabakada neuralada Imtixaanka iyadoo la isticmaalayo xogta MNIST. Wax walba si habsami leh ayey u shaqeeyeen.
Koodh Farxad leh!
Leave a Reply