Entèlijans atifisyèl (AI) te genyen yon kantite siyifikatif popilarite nan dènye ane yo.
Si ou se yon enjenyè lojisyèl, yon syantis enfòmatik, oswa yon antouzyast syans done an jeneral, Lè sa a, ou se pwobableman entrige pa aplikasyon yo etonan nan pwosesis imaj, rekonesans modèl ak deteksyon objè ki bay nan jaden sa a.
Sous-champ ki pi enpòtan nan AI ke ou pwobableman tande pale de se Deep Learning. Domen sa a konsantre sou algoritm pwisan (enstriksyon pwogram òdinatè) ki modelize apre fonksyonalite nan sèvo imen ke yo rekonèt kòm Rezo nè.
Nan atik sa a, nou pral ale sou konsèp Rezo Neural ak kijan pou konstwi, konpile, anfòm ak evalye modèl sa yo lè l sèvi avèk Piton.
Rezo nè
Rezo neral, oswa NNs, se yon seri algoritm ki modelize apre aktivite byolojik sèvo imen an. Rezo neral konpoze de nœuds, yo rele tou newòn.
Yon koleksyon nœuds vètikal yo konnen kòm kouch. Modèl la konsiste de yon sèl antre, yon sèl pwodiksyon, ak yon kantite kouch kache. Chak kouch konsiste de nœuds, yo rele tou newòn, kote kalkil yo pran plas.
Nan dyagram ki anba la a, sèk yo reprezante nœuds yo epi koleksyon nœuds vètikal yo reprezante kouch yo. Gen twa kouch nan modèl sa a.
Nœuds yo nan yon kouch yo konekte ak pwochen kouch la atravè liy transmisyon jan yo wè anba a.
Dataset nou an konsiste de done ki make. Sa vle di ke chak antite done yo te asiyen yon valè non sèten.
Se konsa, pou yon seri done klasifikasyon bèt nou pral gen imaj chat ak chen kòm done nou an, ak 'chat' ak 'chen' kòm etikèt nou yo.
Li enpòtan pou sonje ke etikèt yo bezwen konvèti nan valè nimerik pou modèl nou an fè sans nan yo, kidonk etikèt bèt nou yo vin '0' pou chat ak '1' pou chen. Tou de done yo ak etikèt yo pase nan modèl la.
Aprann
Done yo bay modèl yon sèl antite alafwa. Done sa yo divize an fragman epi yo pase nan chak ne nan modèl la. Nœuds fè operasyon matematik sou moso sa yo.
Ou pa bezwen konnen fonksyon matematik oswa kalkil pou leson patikilye sa a, men li enpòtan pou w gen yon lide jeneral sou fason modèl sa yo travay. Apre yon seri kalkil nan yon kouch, done yo pase sou pwochen kouch la ak sou sa.
Yon fwa fini, modèl nou an predi etikèt la done nan kouch pwodiksyon an (pa egzanp, nan yon pwoblèm klasifikasyon bèt nou jwenn yon prediksyon '0' pou yon chat).
Lè sa a, modèl la ap konpare valè sa a prevwa ak valè etikèt aktyèl la.
Si valè yo koresponn, modèl nou an ap pran pwochen opinyon men si valè yo diferan modèl la ap kalkile diferans ki genyen ant tou de valè yo, yo rele pèt, epi ajiste kalkil ne yo pou pwodui etikèt matche pwochen fwa.
Kad aprantisaj pwofon
Pou konstwi rezo neral nan kòd, nou bezwen enpòte Kad aprantisaj pwofon ke yo rekonèt kòm bibliyotèk lè l sèvi avèk Anviwònman Devlopman Entegre nou an (IDE).
Kad sa yo se yon koleksyon fonksyon pre-ekri ki pral ede nou nan leson patikilye sa a. Nou pral sèvi ak kad Keras la pou konstwi modèl nou an.
Keras se yon bibliyotèk Python ki itilize yon backend aprantisaj pwofon ak entèlijans atifisyèl ki rele koule tensor yo kreye NNs nan fòm lan nan modèl sekans senp ak fasilite.
Keras tou vini ak pwòp modèl ki deja egziste ki ta ka itilize tou. Pou leson patikilye sa a, nou pral kreye pwòp modèl nou lè l sèvi avèk Keras.
Ou ka aprann plis sou fondasyon Deep Learning sa a nan Sit entènèt Keras.
Konstwi yon rezo neral (Didacticiel)
Ann kontinye nan bati yon rezo neral lè l sèvi avèk Python.
Deklarasyon Pwoblèm
Rezo neral yo se yon kalite solisyon pou pwoblèm ki baze sou AI. Pou leson patikilye sa a nou pral ale sou done Pima Indians Dyabèt, ki disponib isit la.
UCI Machine Learning te konpile done sa a epi li gen yon dosye medikal pasyan Endyen yo. Modèl nou an gen pou predi si pasyan an gen yon aparisyon dyabèt nan 5 ane oswa ou pa.
Chaje Dataset
Dataset nou an se yon sèl dosye CSV ki rele 'diabetes.csv' ki ka fasilman manipile lè l sèvi avèk Microsoft Excel.
Anvan nou kreye modèl nou an, nou bezwen enpòte dataset nou an. Sèvi ak kòd sa a ou ka fè sa:
enpòte panda kòm pd
done = pd.read_csv('diabetes.csv')
x = data.drop ("Rezilta")
y = done[“Rezilta”]
Isit la nou ap itilize a Panda bibliyotèk pou kapab manipile done dosye CSV nou an, read_csv() se yon fonksyon entegre nan Pandas ki pèmèt nou estoke valè yo nan dosye nou an nan yon varyab ki rele 'done'.
Varyab x la gen seri done nou an san rezilta (etikèt) done yo. Nou reyalize sa a ak fonksyon data.drop() ki retire etikèt yo pou x, pandan y ap gen sèlman done rezilta (etikèt).
Modèl sekans bilding
Etap 1: Enpòte bibliyotèk
Premyèman, nou bezwen enpòte TensorFlow ak Keras, ansanm ak sèten paramèt ki nesesè pou modèl nou an. Kòd sa a pèmèt nou fè sa:
enpòte tensorflow kòm tf
soti nan tensorflow enpòte keras
soti nan tensorflow.keras.models enpòte Sequential
soti nan tensorflow.keras.layers enpòte Aktivasyon, Dans
soti nan tensorflow.keras.optimizers enpòte Adan
soti nan tensorflow.keras.metrics enpòte categorical_crossentropy
Pou modèl nou an nou ap enpòte kouch dans. Sa yo se kouch konplètman konekte; sa vle di, chak ne nan yon kouch konplètman konekte ak yon lòt ne nan pwochen kouch la.
Nou ap tou enpòte yon deklanchman fonksyon ki nesesè pou eskalade done yo voye nan nœuds. Optimizatè yo te enpòte tou pou minimize pèt yo.
Adan se yon optimiseur renome ki fè kalkil node aktyalizasyon modèl nou an pi efikas, ansanm ak kategorik_crossentropy ki se ki kalite fonksyon pèt (kalkile diferans ant valè etikèt aktyèl ak prevwa) ke nou pral itilize.
Etap 2: Konsepsyon modèl nou an
Modèl m ap kreye a gen yon sèl antre (avèk 16 inite), yon sèl kache (avèk 32 inite) ak yon sèl pwodiksyon (avèk 2 inite). Nimewo sa yo pa fiks epi yo pral depann antyèman sou pwoblèm yo bay la.
Mete bon kantite inite ak kouch se yon pwosesis ki ka amelyore lè siplemantè atravè pratik. Aktivasyon koresponn ak kalite dekale nou pral fè sou done nou yo anvan yo pase l nan yon ne.
Relu ak Softmax yo se fonksyon aktivasyon ki renome pou travay sa a.
modèl = Sekans ([
Dans (inite = 16, fòm_safe = (1,), aktivasyon = 'relu'),
Dans (inite = 32, aktivasyon = 'relu'),
Dans (inite = 2, aktivasyon = 'softmax')
])
Men ki jan rezime modèl la ta dwe sanble:
Fòmasyon modèl la
Modèl nou an pral resevwa fòmasyon nan de etap, premye a se konpile modèl la (mete modèl la ansanm) ak pwochen an ap anfòm modèl la sou yon seri done yo bay yo.
Sa ka fèt lè l sèvi avèk fonksyon model.compile() ki te swiv pa fonksyon model.fit().
model.compile (optimiseur = Adan (learning_rate = 0.0001), pèt = 'binary_crossentropy', metrics = ['presizyon'])
model.fit(x, y, epòk = 30, batch_size = 10)
Espesifye 'presizyon' metrik la pèmèt nou obsève presizyon nan modèl nou an pandan fòmasyon.
Piske etikèt nou yo nan fòm 1 ak 0, nou pral sèvi ak yon fonksyon pèt binè pou kalkile diferans ki genyen ant etikèt aktyèl ak prevwa.
Yo tou divize done yo an pakèt 10 (batch_size) epi yo pral pase nan modèl la 30 fwa (epòk). Pou yon seri done yo bay, x ta dwe done yo epi y ta dwe etikèt ki koresponn ak done yo.
Tès Modèl Sèvi ak Prediksyon
Pou evalye modèl nou an, nou fè prediksyon sou done tès yo lè l sèvi avèk fonksyon predi () la.
prediksyon = model.predict(x)
Epi se tout!
Ou ta dwe kounye a gen yon bon konpreyansyon sou la Aprantisaj fon aplikasyon, Rezo neral, ki jan yo travay an jeneral ak ki jan yo bati, fòme ak teste yon modèl nan kòd Python.
Mwen espere leson patikilye sa a ba ou demaraj pou kreye ak deplwaye pwòp modèl Deep Learning ou.
Fè nou konnen nan kòmantè yo si atik la te itil.
Kite yon Reply