M'ndandanda wazopezekamo[Bisani][Show]
Ubongo umafanana ndi neural network. Uwu ndiye fanizo lomwe nthawi zambiri limagwiritsidwa ntchito kuthandiza wina watsopano pamutuwu kuti amvetsetse malingaliro omwe amaphunzira pamakina ndi maukonde opangira ma neural.
Chifukwa pali zigawo zingapo za masamu ndi ziwerengero zomwe zikuchitika kuseri kwazithunzi, kufotokozera maukondewa ngati ntchito ya masamu ndi njira yapamwamba kwambiri.
Izi ndi za anthu omwe ali ndi chidwi ndi kuphunzira kwamakina ndipo akufuna kuwona momwe Python neural network code imalembedwera.
M'nkhaniyi, tikuwonetsani momwe mungapangire netiweki yakuya ya neural (DNN) kuyambira pachiyambi. Python 3.
Chidule cha Fayilo Yathu ya Python Neural Network Code
Padzakhala mafayilo atatu opangidwa apa. Yoyamba ndi fayilo yosavuta ya nn.py, yomwe idzakambidwe mu "Kukhazikitsa Ntchito Zothandizira" ndi "Kumanga Neural Network kuchokera ku Scratch."
Tidzakhalanso ndi fayilo yotchedwa mnist loader.py kuti tiyike zoyeserera, monga tafotokozera mu "Kutsegula Data ya MNIST."
Pomaliza, tidzakhala ndi fayilo yotchedwa test.py yomwe idzayambitsidwe mu terminal kuyesa neural network yathu.
Fayiloyi ikufotokozedwa mwatsatanetsatane mu "Running Tests."
unsembe
Laibulale ya NumPy Python iyenera kutsitsidwa kuti mutsatire phunziroli. Mutha kuchita izi pogwiritsa ntchito lamulo ili pa terminal:
Kulowetsa ma modules ndikukhazikitsa ntchito ya Wothandizira
Ma library awiri okha omwe timafuna ndiwachisawawa ndi NumPy, omwe tidzatumiza nthawi yomweyo. Pazolemera zoyamba za neural network, tidzazisakaniza pogwiritsa ntchito laibulale yachisawawa.
Kuti tifulumizitse kuwerengera kwathu, tidzagwiritsa ntchito NumPy kapena np (mwamsonkhano, nthawi zambiri amatumizidwa ngati np). Ntchito zathu ziwiri zothandizira zidzapangidwa pambuyo potumiza kunja. Ntchito ziwiri za sigmoid: imodzi ndi sigmoid prime.
Kuwongolera kwazinthu kumagawa deta pogwiritsa ntchito ntchito ya sigmoid, pomwe kubweza kumbuyo kudzawerengera delta kapena gradient pogwiritsa ntchito sigmoid prime function.
Kupanga Network Class
Kupanga neural network yolumikizidwa kwathunthu ndizomwe zimangoyang'ana gawoli. Gulu la netiweki lidzaphatikiza ntchito zonse zomwe zimabwera pambuyo pake. Ntchito Object() {[native code] } idzapangidwa koyambirira mu kalasi yathu yama network.
Mtsutso umodzi, kukula kwake, kumafunika ndi ntchito Object() {[native code]}. Kusiyanasiyana kwa makulidwe ndi kusonkhanitsa kwa manambala komwe kumayimira kuchuluka kwa ma node omwe amapezeka mugawo lililonse la neural network.
Timayamba zinthu zinayi munjira yathu __init__. Zosintha zolowera, kukula, zimagwiritsidwa ntchito kukhazikitsa mndandanda wa makulidwe osanjikiza ndi kuchuluka kwa magawo, magawo a num, motsatana.
Gawo loyamba ndikugawa mosasintha zokonda za netiweki yathu pagawo lililonse lomwe limatsatira gawo lolowera.
Pomaliza, ulalo uliwonse pakati pa magawo olowera ndi otulutsa umakhala ndi zolemera zake zopangidwa mwachisawawa. Np.Random.Randn() imapereka zitsanzo mwachisawawa zochokera kugawa kwanthawi zonse kwa nkhani.
Feed Forward Function
Mu neural network, chidziwitso chimatumizidwa patsogolo ndi ntchito ya feedforward. Mtsutso umodzi, a, kusonyeza vekitala yamakono, idzafunidwa ndi ntchitoyi.
Ntchitoyi imayerekeza ma activation pagawo lililonse pobwereza zokonda ndi zolemera zonse za netiweki. Yankho lomwe laperekedwa ndikulosera, komwe ndi kutsegulira kwa gawo lomaliza.
Kutsika kwa Mini-batch Gradient
Gulu lathu la Network class ndi Gradient Descent. Mu mtundu uwu, timagwiritsa ntchito mini-batch (stochastic) gradient kutsika, kusinthika kosinthika kwa kutsika kwa gradient.
Izi zikuwonetsa kuti gulu laling'ono la data lidzagwiritsidwa ntchito kukonzanso chitsanzo chathu. Zinayi zofunika ndipo mkangano umodzi wosankha umaperekedwa ku njirayi. Zosintha zinayi zofunika ndi seti ya data yophunzitsira, kuchuluka kwa nthawi, kukula kwa magulu ang'onoang'ono, ndi kuchuluka kwa maphunziro (eta).
Zoyeserera zimapezeka mukapempha. Tidzapereka data yoyeserera tikawunika netiwekiyi. Chiwerengero cha zitsanzo mu ntchitoyi chimayikidwa poyamba kutalika kwa mndandanda pamene deta yophunzitsira yasinthidwa kukhala mndandanda wa mndandanda.
Timagwiritsanso ntchito njira yomweyi poyesa deta yomwe yaperekedwa. Izi zili choncho chifukwa m'malo mobwezeredwa kwa ife monga mindandanda, iwo alidi zipi zamndandanda. Tikayika zitsanzo za data ya MNIST kenako, tiphunzira zambiri za izi.
Ngati titha kuwonetsetsa kuti tikupereka mitundu yonse iwiri ya data ngati mindandanda, ndiye kuti kutulutsa kwamtunduwu sikofunikira.
Tikakhala ndi deta, timadutsa nthawi zophunzitsira mozungulira. Nthawi yophunzitsira ndi gawo limodzi lokha la maphunziro a neural network. Choyamba timasakaniza deta mu nthawi iliyonse kuti tiwonetsetse kuti zachitika mwachisawawa tisanapange mndandanda wamagulu ang'onoang'ono.
Ntchito yosinthira mini batch, yomwe ikukambidwa pansipa, idzayitanidwa pa mini-batch iliyonse. Kulondola kwa mayeso kudzabwezedwanso ngati zoyeserera zilipo.
Mtengo wothandizira wothandizira
Tiyeni tipange ntchito yothandizira yotchedwa cost derivative poyamba tisanapange code backpropagation. Ngati tilakwitsa mu gawo lathu lotulutsa, ntchito yotengera mtengo idzawonetsa.
Pamafunika zolowetsa ziwiri: zotulutsa zotulutsa ndi ma y-coordinates amitengo yomwe ikuyembekezeredwa.
Backpropagation ntchito
vekitala yathu yamakono, kutsegula, komanso ma vector ena aliwonse, ma activation, ndi ma z-veeta, zs, ziyenera kukumbukiridwa. Chigawo chotchedwa Input layer chimatsegulidwa poyamba.
Tidzadutsa kukondera kulikonse ndi kulemera pambuyo poziyika. Lupu lililonse limaphatikizapo kuwerengera z vector ngati dontho la zolemera ndi kuyatsa, ndikuwonjezera pamndandanda wa zs, kuwerengeranso kuyatsa, ndikuwonjezera kutsegulira komwe kwasinthidwa pamndandanda wazoyambitsa.
Pomaliza, masamu. Delta, yomwe ili yofanana ndi cholakwika kuchokera pagawo lapitalo lochulukitsidwa ndi sigmoid prime ya chinthu chomaliza cha zs vectors, imawerengedwa tisanayambe kupita kwathu chakumbuyo.
Gawo lomaliza la nabla b lakhazikitsidwa kukhala delta, ndipo gawo lomaliza la nabla w lakhazikitsidwa kuti likhale dontho la delta ndi gawo lachiwiri mpaka lomaliza la ma activation (losinthidwa kuti tithe kuchita masamu) .
Timapitilira monga kale, kuyambira ndi gawo lachiwiri ndikumaliza ndi lomaliza, ndikubwereza ndondomekoyi mutamaliza zigawo zomalizazi. Kenako nablas amapatsidwanso ngati tuple.
Kusintha Mini-batch gradient kutsika
Njira yathu ya SGD (stochastic gradient descent) kuyambira kale imaphatikizapo kusinthidwa kwa mini-batch. Popeza imagwiritsidwa ntchito mu SGD komanso imafuna backprop, ndidakambirana komwe ndingayike ntchitoyi.
Pomaliza, ndidasankha kuziyika pano. Zimayamba ndikupanga 0 ma vectors a biases 'ndi weights' nablas, monga momwe ntchito yathu yakumbuyo idachitira.
Zimafunika mini-batch ndi eta yophunzirira ngati zolowa zake ziwiri. Mu mini-batch, timagwiritsa ntchito backprop ntchito kuti tipeze delta ya gulu lililonse la nabla pazolowetsa, x, ndi zotuluka, y. Mindandanda ya nabla imasinthidwa ndi ma deltas awa.
Pomaliza, timagwiritsa ntchito kuchuluka kwa maphunziro ndi nablas kukonzanso zolemera za netiweki ndi kukondera. Mtengo uliwonse umasinthidwa kukhala mtengo waposachedwa kwambiri, kuchepera kwa kuchuluka kwa maphunziro, kuchulukitsidwa ndi kukula kwa minibatch, ndiyeno kuwonjezeredwa ku mtengo wa nabla.
Unikani ntchito
Ntchito yowunika ndiyomaliza yomwe tiyenera kulemba. Deta yoyeserera ndiyo yokhayo yolowera pa ntchitoyi. Mu ntchitoyi, timangoyerekeza zotsatira za netiweki ndi zotsatira zomwe tikuyembekezeredwa, y. Mwa kudyetsa zolowetsa, x, patsogolo, zotuluka pa intaneti zimatsimikiziridwa.
Code Complete
Tikaphatikiza ma code onse, umu ndi momwe amawonekera.
Kuyesa Neural Network
Kutsegula data ya MNIST
The Zambiri za MNIST ili mumtundu wa .pkl.gz, womwe tidzatsegula pogwiritsa ntchito GZIP ndikuyika pickle. Tiyeni tilembe njira yachangu yoyika deta iyi ngati tuple ya kukula kwachitatu, yogawidwa mu maphunziro, kutsimikizira, ndi data yoyesa.
Kuti deta yathu ikhale yosavuta kuwongolera, tilemba ntchito ina yoyika y kukhala mndandanda wazinthu 10. Gululi lidzakhala ma 0 onse kupatula 1 yomwe ikufanana ndi manambala oyenera a chithunzicho.
Tidzagwiritsa ntchito deta yoyambira ndi njira imodzi yowotchera kuti tiyike deta yathu m'njira yowerengeka. Ntchito ina idzalembedwa yomwe idzasintha ma x athu kukhala mndandanda wa kukula kwa 784, kufanana ndi ma pixel a 784, ndi ma y athu kukhala mawonekedwe awo amodzi otentha.
Kenako tidzaphatikiza milingo ya x ndi y kuti index imodzi ifanane ndi inzake. Izi zikugwiranso ntchito pamaphunziro, kutsimikizira, ndi ma seti a data yoyeserera. Kenako timabwezera zomwe zasinthidwa.
Kuthamanga Mayeso
Tipanga fayilo yatsopano yotchedwa "mnist loader" yomwe idzalowetse neural network yomwe tidakhazikitsa kale (simple nn) ndi MNIST data set loader tisanayambe kuyesa.
Mu fayiloyi, zonse zomwe tikuyenera kuchita ndikulowetsa deta, kumanga maukonde okhala ndi kukula kwa 784 ndi kukula kwa 10, yendetsani ntchito ya SGD ya netiweki pa data yophunzitsira, kenako yesani pogwiritsa ntchito mayeso.
Kumbukirani kuti pamndandanda wathu wamagawo olowetsa, sizikupanga kusiyana kuti manambala aliwonse ali pakati pa 784 ndi 10. Titha kusintha zigawo zina mwanjira iliyonse yomwe timakonda; kungolowetsa ndi kutulutsa kukula kumakhazikika.
Zigawo zitatu sizofunikira; titha kugwiritsa ntchito zinayi, zisanu, kapena ziwiri zokha. Sangalalani mukuyesa nazo.
Kutsiliza
Apa, pogwiritsa ntchito Python 3, timapanga neural network kuyambira poyambira. Pamodzi ndi masamu apamwamba, tinakambirananso zachindunji cha kukhazikitsa.
Tinayamba ndi kukhazikitsa ntchito zothandizira. Kuti ma neuron agwire ntchito, ntchito zazikulu za sigmoid ndi sigmoid ndizofunikira. Kenako timagwiritsa ntchito feedforward, yomwe ndi njira yoyambira yoperekera deta mu neural network.
Kenako, tidapanga ntchito yotsika ku Python, injini yomwe imayendetsa neural network yathu. Kuti tipeze "minima yakomweko" ndikuwongolera zolemera ndi zokonda zawo, neural network yathu imagwiritsa ntchito kutsika kwa gradient. Tinapanga backpropagation ntchito pogwiritsa ntchito kutsika kwa gradient.
Popereka zosintha pamene zotuluka sizikugwirizana ndi zilembo zoyenera, ntchitoyi imathandizira neural network "kuphunzira."
Pomaliza, tidayika Python yathu yatsopano neural network kuyesa pogwiritsa ntchito seti ya data ya MNIST. Zonse zinkayenda bwino.
Makalata Odala!
Siyani Mumakonda