Artificial Intelligence (AI) hat de lêste jierren in signifikante hoemannichte populariteit opdien.
As jo in software-yngenieur, kompjûterwittenskipper, as entûsjast fan gegevenswittenskip yn 't algemien binne, dan binne jo wierskynlik yntrigearre troch de geweldige tapassingen fan byldferwurking, patroanherkenning en objektdeteksje levere troch dit fjild.
It wichtichste subfjild fan AI dat jo wierskynlik heard hawwe is Deep Learning. Dit fjild rjochtet him op krêftige algoritmen (ynstruksjes foar kompjûterprogramma's) modeleare nei minsklike harsensfunksjonaliteit bekend as Neurale netwurken.
Yn dit artikel sille wy it konsept fan neurale netwurken besjen en hoe't jo dizze modellen bouwe, kompilearje, passe en evaluearje mei Python.
Neurale netwurken
Neurale netwurken, of NN's, binne in searje algoritmen dy't modeleare binne nei de biologyske aktiviteit fan it minsklik brein. Neurale netwurken besteane út knopen, ek wol neuroanen neamd.
In samling fertikale knopen wurde bekend as lagen. It model bestiet út ien ynfier, ien útfier, en in oantal ferburgen lagen. Elke laach bestiet út knopen, ek wol neuroanen neamd, dêr't de berekkeningen plakfine.
Yn it folgjende diagram fertsjintwurdigje de sirkels de knopen en de fertikale kolleksje fan knopen fertsjintwurdigje de lagen. D'r binne trije lagen yn dit model.
De knopen fan de iene laach binne ferbûn mei de folgjende laach troch oerdracht rigels lykas sjoen hjirûnder.
Us dataset bestiet út markearre gegevens. Dit betsjut dat elke gegevens-entiteit in bepaalde nammewearde is tawiisd.
Dus foar in dataset foar dierklassifikaasje sille wy ôfbyldings hawwe fan katten en hûnen as ús gegevens, mei 'kat' en 'hûn' as ús labels.
It is wichtich om te notearjen dat labels moatte wurde omboud ta numerike wearden foar ús model om har sin te meitsjen, sadat ús dieretiketten '0' wurde foar kat en '1' foar hûn. Sawol de gegevens as de labels wurde troch it model trochjûn.
learning
Gegevens wurde fieden oan it model ien entiteit op in tiid. Dizze gegevens wurde opdield yn brokken en trochjûn troch elke knooppunt fan it model. Knooppunten fiere wiskundige operaasjes út op dizze brokken.
Jo hoege de wiskundige funksjes of berekkeningen net te witten foar dizze tutorial, mar it is wichtich om in algemien idee te hawwen fan hoe't dizze modellen wurkje. Nei in rige fan berekkeningen yn ien laach, gegevens wurde trochjûn op de folgjende laach ensafuorthinne.
Ienris foltôge, foarseit ús model it gegevensetiket by de útfierlaach (bygelyks, yn in probleem foar dierklassifikaasje krije wy in foarsizzing '0' foar in kat).
It model giet dan troch om dizze foarseine wearde te fergelykjen mei dy fan 'e eigentlike labelwearde.
As de wearden oerienkomme, sil ús model de folgjende ynfier nimme, mar as de wearden ferskille, sil it model it ferskil tusken beide wearden berekkenje, neamd ferlies, en knooppuntberekkeningen oanpasse om de folgjende kear passende etiketten te produsearjen.
Deep Learning Frameworks
Om neurale netwurken yn koade te bouwen, moatte wy ymportearje Deep Learning frameworks bekend as biblioteken mei ús Integrated Development Environment (IDE).
Dizze kaders binne in samling foarskreaune funksjes dy't ús sille helpe yn dizze tutorial. Wy sille it Keras-ramt brûke om ús model te bouwen.
Keras is in Python-bibleteek dy't in backend foar djippe learen en keunstmjittige yntelliginsje brûkt Tensorstream om NN's te meitsjen yn 'e foarm fan ienfâldige opfolgjende modellen mei gemak.
Keras komt ek mei har eigen foarôf besteande modellen dy't ek kinne wurde brûkt. Foar dizze tutorial sille wy ús eigen model meitsje mei Keras.
Jo kinne mear leare oer dit Deep Learning-ramt fan 'e Keras webside.
Bouwe in neural netwurk (tutorial)
Litte wy trochgean mei it bouwen fan in neural netwurk mei Python.
Probleemferklearring
Neurale netwurken binne in soarte fan oplossing foar AI-basearre problemen. Foar dizze tutorial sille wy de Pima Indians Diabetes Data oergean, dy't beskikber is hjir.
ICU Machine Learning hat dizze dataset gearstald en befettet in medysk rekord fan Yndiaanske pasjinten. Us model moat foarsizze oft de pasjint binnen 5 jier in begjin fan diabetes hat of net.
Dataset laden
Us dataset is in inkeld CSV-bestân neamd 'diabetes.csv' dat maklik kin wurde manipulearre mei Microsoft Excel.
Foardat jo ús model meitsje, moatte wy ús dataset ymportearje. Mei de folgjende koade kinne jo dit dwaan:
ymportearje panda's as pd
data = pd.read_csv('diabetes.csv')
x = data.drop(“Outcome”)
y = data["Utkomst"]
Hjir brûke wy de pandas bibleteek om ús CSV-bestângegevens te kinnen manipulearje, read_csv() is in ynboude funksje fan Pandas wêrtroch wy de wearden yn ús bestân kinne opslaan yn in fariabele neamd 'gegevens'.
De fariabele x befettet ús dataset sûnder de útkomst (labels) gegevens. Wy berikke dit mei de data.drop () funksje dy't ferwideret de labels foar x, wylst y befettet allinnich de útkomst (label) gegevens.
Bouwe sekwinsjele model
Stap 1: Biblioteken ymportearje
As earste moatte wy TensorFlow en Keras ymportearje, tegearre mei bepaalde parameters nedich foar ús model. De folgjende koade lit ús dit dwaan:
ymportearje tensorflow as tf
fan tensorflow ymportearje keras
fan tensorflow.keras.models ymportearje Sequential
út tensorflow.keras.layers ymportearje Activation, Dense
fan tensorflow.keras.optimizers ymportearje Adam
fan tensorflow.keras.metrics ymportearje categorical_crossentropy
Foar ús model ymportearje wy dichte lagen. Dit binne folslein ferbûn lagen; ie, elk knooppunt yn in laach is folslein ferbûn mei in oare knooppunt yn de folgjende laach.
Wy binne ek ymportearje in aktivaasje funksje nedich foar skaalfergrutting fan gegevens stjoerd nei knopen. Optimizers binne ek ymportearre om ferlies te minimalisearjen.
Adam is in renommearre optimizer dy't ús model fernijing node berekkeningen effisjinter makket, tegearre mei categorical_crossentropy dat is it type ferliesfunksje (berekkent ferskil tusken werklike en foarseine labelwearden) dat wy sille brûke.
Stap 2: Untwerp ús model
It model dat ik meitsje hat ien input (mei 16 units), ien ferburgen (mei 32 units) en ien útfier (mei 2 units) laach. Dizze nûmers binne net fêst en sille folslein ôfhingje fan it opjûne probleem.
It ynstellen fan it juste oantal ienheden en lagen is in proses dat kin wurde ferbettere oerwurk troch praktyk. Aktivearring komt oerien mei it type skaalfergrutting dat wy sille útfiere op ús gegevens foardat se troch in knooppunt passe.
Relu en Softmax binne ferneamde aktivearring funksjes foar dizze taak.
model = Sequential([
Dense(ienheden = 16, input_shape = (1,), aktivearring = 'relu'),
Dense(ienheden = 32, aktivearring = 'relu'),
Dicht (ienheden = 2, aktivearring = 'softmax')
])
Hjir is hoe't de gearfetting fan it model der útsjen moat:
Training it model
Us model sil wurde oplaat yn twa stappen, de earste is it kompilearjen fan it model (it model tegearre) en de folgjende is it passen fan it model op in bepaalde dataset.
Dit kin dien wurde mei de funksje model.compile () folge troch de funksje model.fit ().
model.compile(optimizer = Adam(learning_rate = 0.0001), ferlies = 'binary_crossentropy', metrics = ['accuracy'])
model.fit(x, y, epochs = 30, batch_size = 10)
It spesifisearjen fan 'e 'krektens'-metriek lit ús de krektens fan ús model observearje tidens training.
Sûnt ús etiketten binne yn 'e foarm fan 1's en 0's, sille wy in binêre ferliesfunksje brûke om it ferskil te berekkenjen tusken werklike en foarseine etiketten.
De dataset wurdt ek opdield yn batches fan 10 (batch_size) en sil troch it model 30 kear (epochs) wurde trochjûn. Foar in opjûne dataset soe x de gegevens wêze en y soe de labels wêze dy't oerienkomme mei de gegevens.
Testing Model Using Predictions
Om ús model te evaluearjen, meitsje wy foarsizzings oer de testgegevens mei de funksje foarsizze ().
predictions = model.predict(x)
En dat is it!
Jo moatte no hawwe in goed begryp fan 'e Djippe learen applikaasje, Neural Networks, hoe't se wurkje yn it algemien en hoe te bouwen, trein en test in model yn Python koade.
Ik hoopje dat dit tutorial jo de kickstart jout om jo eigen Deep Learning-modellen te meitsjen en yn te setten.
Lit ús witte yn 'e opmerkingen as it artikel nuttich wie.
Leave a Reply