Artificial Intelligence (AI) imepata umaarufu mkubwa katika miaka ya hivi karibuni.
Ikiwa wewe ni mhandisi wa programu, mwanasayansi wa kompyuta, au shabiki wa sayansi ya data kwa ujumla, basi pengine unashangazwa na matumizi mazuri ya uchakataji wa picha, utambuzi wa muundo na utambuzi wa kitu unaotolewa na uwanja huu.
Sehemu ndogo muhimu zaidi ya AI ambayo labda umesikia kuihusu ni Kujifunza kwa Kina. Uga huu huangazia algoriti zenye nguvu (maelekezo ya programu ya kompyuta) zilizoundwa baada ya utendaji kazi wa ubongo wa binadamu unaojulikana kama Mitandao ya Neural.
Katika nakala hii, tutapitia dhana ya Mitandao ya Neural na jinsi ya kujenga, kukusanya, kufaa na kutathmini mifano hii kwa kutumia. Chatu.
Mitandao ya Neural
Mitandao ya Neural, au NNs, ni mfululizo wa algoriti zilizoundwa baada ya shughuli za kibiolojia za ubongo wa binadamu. Mitandao ya Neural inajumuisha nodi, pia huitwa neurons.
Mkusanyiko wa nodi za wima hujulikana kama tabaka. Mfano huo una pembejeo moja, pato moja, na idadi ya tabaka zilizofichwa. Kila safu ina nodes, pia huitwa neurons, ambapo mahesabu hufanyika.
Katika mchoro ufuatao, miduara inawakilisha nodi na mkusanyiko wa wima wa nodi unawakilisha tabaka. Kuna tabaka tatu katika mfano huu.
Nodi za safu moja zimeunganishwa kwenye safu inayofuata kupitia njia za upitishaji kama inavyoonekana hapa chini.
Seti yetu ya data ina data iliyo na lebo. Hii ina maana kwamba kila huluki ya data imepewa thamani fulani ya jina.
Kwa hivyo kwa seti ya data ya uainishaji wa wanyama tutakuwa na picha za paka na mbwa kama data yetu, na lebo zetu ni 'paka' na 'mbwa'.
Ni muhimu kutambua kuwa lebo zinahitaji kubadilishwa kuwa nambari za nambari ili muundo wetu ueleweke, kwa hivyo lebo zetu za wanyama huwa '0' kwa paka na '1' kwa mbwa. Data na lebo zote hupitishwa kupitia mfano.
Kujifunza
Data hulishwa kwa mfano huluki moja kwa wakati mmoja. Data hii imegawanywa katika vipande na kupitishwa kupitia kila nodi ya mfano. Nodi hufanya shughuli za hisabati kwenye vipande hivi.
Huhitaji kujua kazi za hisabati au hesabu za somo hili, lakini ni muhimu kuwa na wazo la jumla la jinsi miundo hii inavyofanya kazi. Baada ya mfululizo wa mahesabu katika safu moja, data hupitishwa kwenye safu inayofuata na kadhalika.
Mara tu itakapokamilika, muundo wetu unatabiri lebo ya data kwenye safu ya pato (kwa mfano, katika shida ya uainishaji wa wanyama tunapata utabiri '0' kwa paka).
Kisha mtindo unaendelea kulinganisha thamani hii iliyotabiriwa na ile ya thamani halisi ya lebo.
Ikiwa thamani zinalingana, muundo wetu utachukua ingizo linalofuata lakini thamani zikitofautiana muundo utakokotoa tofauti kati ya thamani zote mbili, inayoitwa hasara, na kurekebisha hesabu za nodi ili kutoa lebo zinazolingana wakati ujao.
Mifumo ya Kina ya Kujifunza
Ili kuunda Mitandao ya Neural katika msimbo, tunahitaji kuagiza Mifumo ya Kujifunza kwa kina inayojulikana kama maktaba zinazotumia Mazingira Jumuishi ya Maendeleo (IDE).
Miundo hii ni mkusanyiko wa vitendaji vilivyoandikwa awali ambavyo vitatusaidia katika mafunzo haya. Tutakuwa tukitumia mfumo wa Keras kujenga modeli yetu.
Keras ni maktaba ya Python ambayo hutumia ujifunzaji wa kina na hali ya nyuma ya akili ya bandia inayoitwa mtiririko wa tensor kuunda NN kwa njia ya mifano rahisi ya mfuatano kwa urahisi.
Keras pia inakuja na mifano yake ya awali ambayo inaweza kutumika pia. Kwa somo hili, tutakuwa tunaunda muundo wetu wenyewe kwa kutumia Keras.
Unaweza kujifunza zaidi kuhusu mfumo huu wa Kujifunza kwa Kina kutoka kwa Tovuti ya Keras.
Kujenga Mtandao wa Neural (Mafunzo)
Wacha tuendelee kujenga Mtandao wa Neural kwa kutumia Python.
Taarifa ya Tatizo
Mitandao ya Neural ni aina ya suluhisho kwa shida zinazotegemea AI. Kwa somo hili tutakuwa tukipitia Data ya Kisukari ya Wahindi wa Pima, ambayo inapatikana hapa.
ICU Mafunzo ya Mashine yamekusanya mkusanyiko huu wa data na ina rekodi ya matibabu ya wagonjwa wa Kihindi. Mtindo wetu unapaswa kutabiri ikiwa mgonjwa ana mwanzo wa ugonjwa wa kisukari ndani ya miaka 5 au la.
Inapakia Seti ya data
Seti yetu ya data ni faili moja ya CSV inayoitwa 'diabetes.csv' ambayo inaweza kubadilishwa kwa urahisi kwa kutumia Microsoft Excel.
Kabla ya kuunda muundo wetu, tunahitaji kuagiza seti yetu ya data. Kwa kutumia nambari ifuatayo unaweza kufanya hivi:
kuagiza pandas kama pd
data = pd.read_csv('diabetes.csv')
x = data.drop("Matokeo")
y = data["Matokeo"]
Hapa tunatumia Panda maktaba ili kuweza kuchezea data yetu ya faili ya CSV, read_csv() ni kazi iliyojengewa ndani ya Pandas ambayo huturuhusu kuhifadhi maadili katika faili yetu kwa kigezo kiitwacho 'data'.
Tofauti x ina seti yetu ya data bila matokeo (lebo) data. Tunafanikisha hili kwa chaguo la kukokotoa la data.drop() ambalo huondoa lebo za x, ilhali y ina data ya matokeo (lebo).
Kuunda Mfano wa Kufuatana
Hatua ya 1: Kuagiza Maktaba
Kwanza, tunahitaji kuagiza TensorFlow na Keras, pamoja na vigezo fulani vinavyohitajika kwa muundo wetu. Nambari ifuatayo inaturuhusu kufanya hivi:
import tensorflow kama tf
kutoka kwa kera za uingizaji wa tensorflow
kutoka tensorflow.keras.models huleta Mfuatano
kutoka tensorflow.keras.layers leta Uwezeshaji, Mzito
kutoka tensorflow.keras.optimizers huleta Adam
kutoka tensorflow.keras.metrics huleta categorical_crossentropy
Kwa mfano wetu tunaingiza tabaka mnene. Hizi ni tabaka zilizounganishwa kikamilifu; yaani, kila nodi kwenye safu imeunganishwa kikamilifu na nodi nyingine kwenye safu inayofuata.
Pia tunaagiza Activation kazi inayohitajika kwa kuongeza data iliyotumwa kwa nodi. Viboreshaji pia zimeagizwa kutoka nje ili kupunguza hasara.
Adam ni kiboreshaji mashuhuri ambacho hufanya hesabu za nodi zetu za sasisho kwa ufanisi zaidi, pamoja na categorical_crossentropy ambayo ni aina ya chaguo la kukokotoa la upotevu (hukokotoa tofauti kati ya thamani halisi na zilizotabiriwa za lebo) ambazo tutakuwa tukitumia.
Hatua ya 2: Kuunda Mfano Wetu
Mfano ninaounda una pembejeo moja (iliyo na vitengo 16), moja iliyofichwa (iliyo na vitengo 32) na safu moja ya pato (iliyo na vitengo 2). Nambari hizi hazijarekebishwa na itategemea kabisa shida iliyotolewa.
Kuweka idadi sahihi ya vitengo na tabaka ni mchakato ambao unaweza kuboreshwa kwa muda wa ziada kupitia mazoezi. Uamilisho unalingana na aina ya kuongeza tutakuwa tukifanya kwenye data yetu kabla ya kuipitisha kupitia nodi.
Relu na Softmax ni vitendaji maarufu vya kuwezesha kazi hii.
mfano = Mfuatano ([
Mzito(vitengo = 16, input_shape = (1,), kuwezesha = 'relu'),
Mzito (vitengo = 32, uanzishaji = 'relu'),
Mzito (vitengo = 2, uanzishaji = 'softmax')
])
Hivi ndivyo muhtasari wa mfano unapaswa kuonekana kama:
Kufundisha Mfano
Mtindo wetu utafunzwa kwa hatua mbili, ya kwanza ikiwa ni kuunda kielelezo (kuweka kielelezo pamoja) na inayofuata ikiwa ni kufaa kielelezo kwenye hifadhidata fulani.
Hili linaweza kufanywa kwa kutumia kitendakazi cha model.compile() kinachofuatwa na kitendakazi cha model.fit().
model.compile(optimizer = Adam(learning_rate = 0.0001), loss = 'binary_crossentropy', metrics = ['usahihi'])
model.fit(x, y, epochs = 30, batch_size = 10)
Kubainisha kipimo cha 'usahihi' huturuhusu kuchunguza usahihi wa muundo wetu wakati wa mafunzo.
Kwa kuwa lebo zetu ziko katika muundo wa 1 na 0, tutakuwa tukitumia chaguo la kukokotoa la upotezaji wa mfumo wa jozi kukokotoa tofauti kati ya lebo halisi na zilizotabiriwa.
Hifadhidata pia inagawanywa katika vikundi vya 10 (batch_size) na itapitishwa kwa mfano mara 30 (epochs). Kwa mkusanyiko fulani wa data, x itakuwa data na y itakuwa lebo zinazolingana na data.
Mfano wa Kujaribu Kwa Kutumia Utabiri
Ili kutathmini muundo wetu, tunatabiri data ya jaribio kwa kutumia predict() chaguo la kukokotoa.
ubashiri = model.predict(x)
Na hiyo ndio!
Unapaswa sasa kuwa na ufahamu mzuri wa Kujifunza kwa kina maombi, Mitandao ya Neural, jinsi inavyofanya kazi kwa ujumla na jinsi ya kujenga, kutoa mafunzo na kujaribu mfano katika msimbo wa Python.
Natumai somo hili litakupa mwanzo wa kuunda na kupeleka miundo yako ya Kujifunza kwa Kina.
Hebu tujue katika maoni ikiwa makala hiyo ilikuwa ya manufaa.
Acha Reply