L-Intelliġenza Artifiċjali (AI) kisbet ammont sinifikanti ta 'popolarità f'dawn l-aħħar snin.
Jekk inti inġinier tas-softwer, xjenzat tal-kompjuter, jew dilettant tax-xjenza tad-dejta b'mod ġenerali, allura probabilment int intrigued mill-applikazzjonijiet tal-għaġeb tal-ipproċessar tal-immaġni, rikonoxximent tal-mudelli u skoperta tal-oġġetti pprovduti minn dan il-qasam.
L-aktar subqasam importanti tal-AI li probabilment smajt dwaru huwa t-Tagħlim Profond. Dan il-qasam jiffoka fuq algoritmi qawwija (struzzjonijiet tal-programm tal-kompjuter) immudellati fuq il-funzjonalità tal-moħħ tal-bniedem magħrufa bħala Netwerks newrali.
F'dan l-artikolu, aħna ser nimxu fuq il-kunċett tan-Netwerks Newrali u kif nibnu, niġbru, twaħħlu u nevalwaw dawn il-mudelli bl-użu Python.
Netwerks newrali
Netwerks newrali, jew NNs, huma serje ta 'algoritmi mmudellati wara l-attività bijoloġika tal-moħħ tal-bniedem. Netwerks newrali jikkonsistu minn nodi, imsejħa wkoll newroni.
Ġabra ta 'nodi vertikali huma magħrufa bħala saffi. Il-mudell jikkonsisti minn input wieħed, output wieħed, u numru ta 'saffi moħbija. Kull saff jikkonsisti minn nodi, imsejħa wkoll newroni, fejn isiru l-kalkoli.
Fid-dijagramma li ġejja, iċ-ċrieki jirrappreżentaw in-nodi u l-ġbir vertikali tan-nodi jirrappreżentaw is-saffi. Hemm tliet saffi f'dan il-mudell.
In-nodi ta 'saff wieħed huma konnessi mas-saff li jmiss permezz ta' linji ta 'trażmissjoni kif jidher hawn taħt.
Is-sett tad-dejta tagħna jikkonsisti minn dejta tikkettata. Dan ifisser li kull entità tad-dejta ġiet assenjata ċertu valur tal-isem.
Għalhekk għal dataset ta' klassifikazzjoni tal-annimali se jkollna immaġini ta' qtates u klieb bħala d-data tagħna, b''qattus' u 'kelb' bħala t-tikketti tagħna.
Huwa importanti li wieħed jinnota li t-tikketti jeħtieġ li jiġu kkonvertiti f'valuri numeriċi biex il-mudell tagħna jagħmel sens minnhom, għalhekk it-tikketti tal-annimali tagħna jsiru '0' għall-qtates u '1' għall-kelb. Kemm id-dejta kif ukoll it-tikketti jgħaddu mill-mudell.
Tagħlim
Id-dejta tingħata lill-mudell ta' entità waħda kull darba. Din id-dejta hija maqsuma f'biċċiet u mgħoddija minn kull nodu tal-mudell. In-nodi jwettqu operazzjonijiet matematiċi fuq dawn il-biċċiet.
M'għandekx bżonn tkun taf il-funzjonijiet matematiċi jew il-kalkoli għal dan it-tutorja, iżda huwa importanti li jkollok idea ġenerali ta 'kif jaħdmu dawn il-mudelli. Wara serje ta 'kalkoli f'saff wieħed, id-dejta tgħaddi fuq is-saff li jmiss u l-bqija.
Ladarba jitlesta, il-mudell tagħna jbassar it-tikketta tad-dejta fis-saff tal-output (pereżempju, fi problema ta 'klassifikazzjoni tal-annimali nġibu tbassir '0' għal qattus).
Il-mudell imbagħad jipproċedi biex iqabbel dan il-valur imbassar ma 'dak tal-valur attwali tat-tikketta.
Jekk il-valuri jaqblu, il-mudell tagħna jieħu l-input li jmiss imma jekk il-valuri jvarjaw il-mudell jikkalkula d-differenza bejn iż-żewġ valuri, imsejħa telf, u jaġġusta l-kalkoli tan-nodi biex jipproduċi tikketti li jaqblu l-ħin li jmiss.
Oqfsa ta' Tagħlim Profond
Biex nibnu Netwerks Newrali fil-kodiċi, għandna bżonn li timportaw Oqfsa Deep Learning magħrufa bħala libreriji li jużaw l-Ambjent ta’ Żvilupp Integrat (IDE) tagħna.
Dawn l-oqfsa huma ġabra ta’ funzjonijiet miktuba minn qabel li se jgħinuna f’dan it-tutorja. Se nkunu qed nużaw il-qafas Keras biex nibnu l-mudell tagħna.
Keras hija librerija Python li tuża backend deep learning u intelliġenza artifiċjali msejħa Fluss tat-tensjoni biex toħloq NNs fil-forma ta 'mudelli sekwenzjali sempliċi b'faċilità.
Keras jiġi wkoll mal-mudelli preeżistenti tiegħu stess li jistgħu jintużaw ukoll. Għal dan it-tutorja, se nkunu qed noħolqu l-mudell tagħna stess billi nużaw Keras.
Tista' titgħallem aktar dwar dan il-qafas ta' Tagħlim Profond mill- Il-websajt ta' Keras.
Bini ta' Netwerk Neural (Tutorja)
Ejja ngħaddu għall-bini ta' Netwerk Neurali bl-użu ta' Python.
Dikjarazzjoni tal-Problema
Netwerks newrali huma tip ta 'soluzzjoni għal problemi bbażati fuq l-AI. Għal dan it-tutorja se nkunu għaddejjin mid-Data tad-Dijabete tal-Indjani Pima, li hija disponibbli hawn.
ICU Machine Learning ikkompila dan is-sett tad-dejta u fih rekord mediku ta' pazjenti Indjani. Il-mudell tagħna jrid ibassar jekk il-pazjent għandux bidu tad-dijabete fi żmien 5 snin jew le.
Tagħbija tas-Sett tad-Data
Is-sett tad-dejta tagħna huwa fajl CSV wieħed imsejjaħ 'diabetes.csv' li jista' jiġi mmanipulat faċilment bl-użu ta' Microsoft Excel.
Qabel ma noħolqu l-mudell tagħna, għandna bżonn li jimportaw id-dataset tagħna. Permezz tal-kodiċi li ġej tista 'tagħmel dan:
jimporta pandas bħala pd
data = pd.read_csv('diabetes.csv')
x = data.drop ("Eżitu")
y = data[“Eżitu”]
Hawnhekk qed nużaw il- pandas librerija biex tkun tista' timmanipula d-data tal-fajl CSV tagħna, read_csv() hija funzjoni inkorporata ta' Pandas li tippermettilna naħżnu l-valuri fil-fajl tagħna għal varjabbli msejħa 'data'.
Il-varjabbli x fiha s-sett tad-dejta tagħna mingħajr id-dejta tar-riżultat (tikketti). Dan nilħqu bil-funzjoni data.drop() li tneħħi t-tikketti għal x, filwaqt li y fiha biss id-dejta tar-riżultat (tikketta).
Mudell Sekwenzjali tal-Bini
Pass 1: L-importazzjoni tal-Libreriji
L-ewwelnett, għandna bżonn li jimportaw TensorFlow u Keras, flimkien ma 'ċerti parametri meħtieġa għall-mudell tagħna. Il-kodiċi li ġej jippermettilna nagħmlu dan:
importazzjoni tensorflow bħala tf
minn tensorflow importazzjoni keras
minn tensorflow.keras.models importazzjoni Sekwenzjali
minn tensorflow.keras.layers importazzjoni Attivazzjoni, Dens
minn tensorflow.keras.optimizers importazzjoni Adam
minn tensorflow.keras.metrics importazzjoni categorical_crossentropy
Għall-mudell tagħna aħna qed jimportaw saffi densi. Dawn huma saffi kompletament konnessi; jiġifieri, kull node f'saff huwa kompletament konness ma 'node ieħor fis-saff li jmiss.
Aħna wkoll qed jimportaw an attivazzjoni funzjoni meħtieġa għall-iskala tad-dejta mibgħuta lin-nodi. Ottimizzaturi ġew importati wkoll biex jitnaqqas it-telf.
Adam huwa ottimizzatur rinomat li jagħmel il-kalkoli tagħna ta 'node ta' aġġornament tal-mudell b'mod aktar effiċjenti, flimkien ma ' categorical_crossentropy li hija it-tip ta 'funzjoni ta' telf (jikkalkula d-differenza bejn il-valuri tat-tikketta attwali u mbassra) li se nkunu qed nużaw.
Pass 2: Disinn tal-Mudell Tagħna
Il-mudell li qed noħloq għandu input wieħed (b'16-il unità), wieħed moħbi (b'32 unità) u saff wieħed ta' output (b'2 unitajiet). Dawn in-numri mhumiex fissi u jiddependu kompletament fuq il-problema mogħtija.
L-issettjar tan-numru t-tajjeb ta 'unitajiet u saffi huwa proċess li jista' jittejjeb is-sahra permezz tal-prattika. L-attivazzjoni tikkorrispondi għat-tip ta 'skala li se nkunu qed inwettqu fuq id-dejta tagħna qabel ma ngħadduha minn node.
Relu u Softmax huma funzjonijiet ta 'attivazzjoni magħrufa għal dan il-kompitu.
mudell = Sekwenzjali([
Dens(unitajiet = 16, input_shape = (1,), attivazzjoni = 'relu'),
Dens(unitajiet = 32, attivazzjoni = 'relu'),
Dens (unitajiet = 2, attivazzjoni = 'softmax')
])
Hawn hu kif għandu jidher is-sommarju tal-mudell:
Taħriġ tal-Mudell
Il-mudell tagħna se jiġi mħarreġ f'żewġ passi, l-ewwel ikun il-kumpilazzjoni tal-mudell (il-ġbir tal-mudell flimkien) u l-ieħor ikun it-twaħħil tal-mudell fuq sett ta 'dejta partikolari.
Dan jista' jsir bl-użu tal-funzjoni model.compile() segwita mill-funzjoni model.fit().
model.compile(optimizer = Adam(learning_rate = 0.0001), loss = 'binary_crossentropy', metrics = ['preċiżjoni'])
model.fit(x, y, epochs = 30, batch_size = 10)
L-ispeċifikazzjoni tal-metrika tal-'preċiżjoni' tippermettilna nosservaw l-eżattezza tal-mudell tagħna waqt it-taħriġ.
Peress li t-tikketti tagħna huma fil-forma ta '1's u 0's, se nkunu qed nużaw funzjoni ta' telf binarju biex nikkalkulaw id-differenza bejn it-tikketti attwali u mbassra.
Is-sett tad-dejta qed jinqasam ukoll f'lottijiet ta' 10 (batch_size) u se jiġi mgħoddi mill-mudell 30 darba (epochs). Għal sett ta' dejta partikolari, x tkun id-dejta u y tkun it-tikketti li jikkorrispondu għad-dejta.
Mudell ta 'ttestjar li juża tbassir
Biex nevalwaw il-mudell tagħna, nagħmlu tbassir fuq id-dejta tat-test billi tuża l-funzjoni previd().
previżjonijiet = model.predict(x)
U dak hu!
Issa għandu jkollok fehim tajjeb tal- Tagħlim fil-fond applikazzjoni, Netwerks Neural, kif jaħdmu b'mod ġenerali u kif jibnu, iħarrġu u jittestjaw mudell fil-kodiċi Python.
Nittama li dan it-tutorja jagħtik il-kickstart biex toħloq u tuża l-mudelli Deep Learning tiegħek stess.
Għidilna fil-kummenti jekk l-artiklu kienx ta’ għajnuna.
Ħalli Irrispondi