Efnisyfirlit[Fela][Sýna]
Undanfarin ár hafa taugakerfi vaxið í vinsældum þar sem þau hafa sýnt sig að vera mjög góð í margvíslegum verkefnum.
Sýnt hefur verið fram á að þeir eru frábær kostur fyrir mynd- og hljóðgreiningu, náttúrulega málvinnslu og jafnvel að spila flókna leiki eins og Go og skák.
Í þessari færslu mun ég leiða þig í gegnum allt ferlið við að þjálfa taugakerfi. Ég mun nefna og útskýra öll skrefin til að þjálfa taugakerfi.
Þó ég fari yfir skrefin langar mig að bæta við einföldu dæmi til að tryggja að það sé líka hagnýtt dæmi.
Svo komdu með og við skulum læra hvernig á að vinna úr tauganetum
Við skulum byrja einfalt og spyrja hvað eru taugakerfi Í fyrsta lagi.
Hvað eru taugakerfi nákvæmlega?
Taugakerfi eru tölvuhugbúnaður sem líkir eftir starfsemi mannsheilans. Þeir geta lært af miklu magni af gögnum og komið auga á mynstur sem fólk getur átt erfitt með að greina.
Taugakerfi hafa vaxið í vinsældum undanfarin ár vegna fjölhæfni þeirra í verkefnum eins og mynd- og hljóðgreiningu, náttúrulegri málvinnslu og forspárlíkönum.
Á heildina litið eru taugakerfi sterkt tæki fyrir margs konar forrit og hafa tækifæri til að umbreyta því hvernig við nálgumst fjölbreytt störf.
Hvers vegna ættum við að vita um þá?
Skilningur á tauganetum er mikilvægur vegna þess að þau hafa leitt til uppgötvana á ýmsum sviðum, þar á meðal tölvusjón, talgreiningu og náttúrulegri málvinnslu.
Taugakerfi eru til dæmis kjarninn í nýlegri þróun í sjálfkeyrandi bílum, sjálfvirkri þýðingarþjónustu og jafnvel læknisfræðilegri greiningu.
Að skilja hvernig taugakerfi virka og hvernig á að hanna þau hjálpar okkur að byggja upp ný og frumleg forrit. Og ef til vill gæti það leitt til enn meiri uppgötvana í framtíðinni.
Athugasemd um kennsluna
Eins og ég sagði hér að ofan, langar mig að útskýra skrefin við að þjálfa taugakerfi með því að gefa dæmi. Til að gera þetta ættum við að tala um MNIST gagnasafnið. Það er vinsæll kostur fyrir byrjendur sem vilja byrja með taugakerfi.
MNIST er skammstöfun sem stendur fyrir Modified National Institute of Standards and Technology. Það er handskrifað tölustafa gagnasafn sem er almennt notað til að þjálfa og prófa vélanámslíkön, einkum taugakerfi.
Safnið inniheldur 70,000 grátónamyndir með handskrifuðum tölustöfum á bilinu 0 til 9.
MNIST gagnasafnið er vinsælt viðmið fyrir myndflokkun verkefni. Það er oft notað til að kenna og læra þar sem það er fyrirferðarlítið og auðvelt að takast á við það á meðan það er erfið áskorun fyrir reiknirit vélanáms að svara.
MNIST gagnasafnið er stutt af nokkrum vélanámsramma og bókasöfnum, þar á meðal TensorFlow, Keras og PyTorch.
Nú vitum við um MNIST gagnasafnið, við skulum byrja á skrefum okkar til að þjálfa taugakerfi.
Grunnskref til að þjálfa taugakerfi
Flytja inn nauðsynleg bókasöfn
Þegar byrjað er að þjálfa taugakerfi fyrst er mikilvægt að hafa nauðsynleg verkfæri til að hanna og þjálfa líkanið. Upphafsskrefið í að búa til tauganet er að flytja inn nauðsynleg bókasöfn eins og TensorFlow, Keras og NumPy.
Þessi bókasöfn þjóna sem byggingareiningar fyrir þróun taugakerfisins og veita mikilvæga getu. Samsetning þessara bókasöfna gerir kleift að búa til háþróaða tauganethönnun og hraða þjálfun.
Til að byrja dæmið okkar; við munum flytja inn nauðsynleg bókasöfn, sem innihalda TensorFlow, Keras og NumPy. TensorFlow er opinn uppspretta vélanámsrammi, Keras er há-stigi taugakerfis API og NumPy er tölfræði Python bókasafn.
import tensorflow as tf
from tensorflow import keras
import numpy as np
Hlaða gagnasettinu
Nú þarf að hlaða gagnasafninu. Gagnapakkinn er safn gagna sem tauganetið verður þjálfað á. Þetta getur verið hvers kyns gögn, þar á meðal myndir, hljóð og texta.
Það er mikilvægt að skipta gagnasafninu í tvo hluta: einn til að þjálfa tauganetið og annan til að meta réttmæti þjálfaðs líkansins. Nokkur bókasöfn, þar á meðal TensorFlow, Keras og PyTorch, má nota til að flytja inn gagnasafnið.
Fyrir dæmi okkar notum við einnig Keras til að hlaða MNIST gagnapakkanum. Það eru 60,000 þjálfunarmyndir og 10,000 prófunarmyndir í gagnasafninu.
mnist = keras.datasets.mnist
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()
Forvinnsla gagna
Forvinnsla gagna er mikilvægur áfangi í þjálfun taugakerfis. Það felur í sér að undirbúa og þrífa gögnin áður en þau eru færð inn í taugakerfið.
Stærð pixlagilda, staðla gögn og umbreyta merkjum í einn heitt kóðun eru dæmi um forvinnsluferli. Þessi ferli aðstoða taugakerfið við að læra á skilvirkari og nákvæmari hátt.
Forvinnsla gagna getur einnig hjálpað til við að lágmarka offitun og bæta afköst taugakerfisins.
Þú verður að forvinna gögnin áður en þú þjálfar taugakerfið. Þetta felur í sér að breyta merkingunum í einn heitt kóðun og skala pixlagildin á milli 0 og 1.
train_images = train_images / 255.0
test_images = test_images / 255.0
train_labels = keras.utils.to_categorical(train_labels, 10)
test_labels = keras.utils.to_categorical(test_labels, 10)
Skilgreindu líkanið
Ferlið við að skilgreina tauganetlíkanið felur í sér að koma á arkitektúr þess, svo sem fjölda laga, fjölda taugafrumna á hverju lagi, virkjunaraðgerðir og netgerð (feedforward, endurtekin eða convolutional).
Tauganethönnunin sem þú notar ræðst af hvers konar vandamáli þú ert að reyna að leysa. Vel skilgreind tauganethönnun getur aðstoðað við nám í tauganeti með því að gera það skilvirkara og nákvæmara.
Það er kominn tími til að lýsa taugakerfislíkaninu á þessum tímapunkti. Notaðu einfalt líkan með tveimur falnum lögum, hvert með 128 taugafrumum, og softmax úttakslag, sem hefur 10 taugafrumur, fyrir þetta dæmi.
model = keras.Sequential([
keras.layers.Flatten(input_shape=(28, 28)),
keras.layers.Dense(128, activation='relu'),
keras.layers.Dense(128, activation='relu'),
keras.layers.Dense(10, activation='softmax')
])
Settu saman líkanið
Tapfallsaðgerð, fínstillingu og mæligildi verða að vera tilgreind við söfnun taugakerfislíkans. Geta taugakerfisins til að spá rétt fyrir um úttakið er mæld með tapaðgerðinni.
Til að auka nákvæmni tauganetsins meðan á þjálfun stendur, breytir fínstillingartækið þyngd þess. Skilvirkni taugakerfisins meðan á þjálfun stendur er mæld með mæligildum. Búa þarf til líkanið áður en hægt er að þjálfa tauganetið.
Í okkar dæmi verðum við núna að smíða líkanið.
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
Þjálfa líkanið
Að koma tilbúnu gagnasafninu í gegnum tauganetið á meðan þyngd netsins er breytt til að lágmarka tapvirkni er þekkt sem þjálfun tauganetsins.
Staðfestingargagnagrunnurinn er notaður til að prófa tauganetið meðan á þjálfun stendur til að fylgjast með virkni þess og koma í veg fyrir offitun. Þjálfunarferlið getur tekið nokkurn tíma og því er mikilvægt að ganga úr skugga um að taugakerfið sé þjálfað á viðeigandi hátt til að koma í veg fyrir vanhæfingu.
Með því að nota þjálfunargögnin getum við nú þjálfað líkanið. Til að gera þetta verðum við að skilgreina lotustærð (fjöldi sýna sem unnin er áður en líkanið er uppfært) og fjölda tímabila (fjöldi endurtekningar í öllu gagnasafninu).
model.fit(train_images, train_labels, epochs=10, batch_size=32)
Mat á líkaninu
Að prófa frammistöðu taugakerfisins á prófunargagnagrunninum er ferlið við að meta það. Á þessu stigi er þjálfað tauganet notað til að vinna úr prófunargagnagrunninum og nákvæmni er metin.
Hversu áhrifaríkt tauganet getur spáð fyrir um rétta niðurstöðu úr glænýjum, óreyndum gögnum er mælikvarði á nákvæmni þeirra. Greining á líkaninu getur hjálpað til við að ákvarða hversu vel tauganetið virkar og einnig bent á leiðir til að gera það enn betra.
Við getum loksins metið árangur líkansins með því að nota prófunargögnin eftir þjálfun.
test_loss, test_acc = model.evaluate(test_images, test_labels)
print('Test accuracy:', test_acc)
Það er allt og sumt! Við þjálfuðum taugakerfi til að greina tölustafi í MNIST gagnapakkanum.
Frá því að undirbúa gögnin til að meta virkni þjálfaðs líkans, þjálfun taugakerfis felur í sér nokkra ferla. Þessar leiðbeiningar aðstoða nýliða við að byggja upp og þjálfa taugakerfi á skilvirkan hátt.
Byrjendur sem vilja nota taugakerfi til að takast á við ýmis vandamál geta gert það með því að fylgja þessum leiðbeiningum.
Að sjá dæmið fyrir sér
Við skulum reyna að sjá fyrir okkur hvað við höfum gert með þessu dæmi til að skilja betur.
Matplotlib pakkinn er notaður í þessum kóðabút til að teikna upp handahófsval af myndum úr þjálfunargagnagrunninum. Í fyrsta lagi flytjum við inn „pyplot“ einingu Matplotlib og köllum hana sem „plt“. Síðan, með heildarvídd upp á 10 x 10 tommur, gerum við mynd með 5 línum og 5 dálkum af undirritum.
Síðan notum við for-lykkju til að endurtaka yfir undirritin og sýna mynd úr þjálfunargagnasettinu á hverjum og einum. Til að sýna myndina er „imshow“ aðgerðin notuð, með „cmap“ valmöguleikanum stillt á „grátt“ til að sýna myndirnar í grátóna. Titill hvers undirþáttar er einnig stilltur á merki viðkomandi myndar í safninu.
Að lokum notum við „show“ aðgerðina til að sýna teiknuðu myndirnar á myndinni. Þessi aðgerð gerir okkur kleift að meta sýnishorn af myndum úr gagnasafninu sjónrænt, sem getur hjálpað okkur við skilning okkar á gögnunum og við að bera kennsl á hugsanlegar áhyggjur.
import matplotlib.pyplot as plt
# Plot a random sample of images
fig, axes = plt.subplots(nrows=5, ncols=5, figsize=(10,10))
for i, ax in enumerate(axes.flat):
ax.imshow(train_images[i], cmap='gray')
ax.set_title(f"Label: {train_labels[i].argmax()}")
ax.axis('off')
plt.show()
Mikilvægar taugakerfislíkön
- Feedforward Neural Networks (FFNN): Einföld tegund tauganets þar sem upplýsingar berast aðeins á einn hátt, frá inntakslagi til úttakslags um eitt eða fleiri falin lög.
- Convolutional Neural Networks (CNN): Tauganet sem er almennt notað við myndgreiningu og myndvinnslu. CNN er ætlað að þekkja og draga eiginleika úr myndum sjálfkrafa.
- Endurtekin taugakerfi (RNN): Tauganet sem er almennt notað við myndgreiningu og myndvinnslu. CNN er ætlað að þekkja og draga eiginleika úr myndum sjálfkrafa.
- Langtímaminni (LSTM) netkerfi: Form af RNN búin til til að sigrast á vandamálinu um að hverfa halla í stöðluðum RNN. Langtíma ósjálfstæði í röð gagna er hægt að fanga betur með LSTM.
- Sjálfkóðarar: Taugakerfi án eftirlits þar sem netinu er kennt að endurskapa inntaksgögn sín í úttakslagi þess. Gagnaþjöppun, fráviksuppgötvun og myndafbrigði getur allt verið gert með sjálfkóðara.
- Generative Adversarial Networks (GAN): Generative neural network er form tauganets sem er kennt að framleiða ný gögn sem eru sambærileg við þjálfunargagnasett. GAN eru samsett úr tveimur netum: rafalaneti sem býr til ný gögn og mismununarnet sem metur gæði gagna sem búið er til.
Lokaorð, hver ættu að vera næstu skref þín?
Skoðaðu nokkur úrræði og námskeið á netinu til að læra meira um þjálfun taugakerfis. Að vinna að verkefnum eða dæmum er ein aðferð til að ná betri tökum á tauganetum.
Byrjaðu á auðveldum dæmum eins og tvíundarflokkunarvandamálum eða myndflokkunarverkefnum og farðu síðan í erfiðari verkefni eins og náttúruleg málvinnsla eða styrking nám.
Að vinna að verkefnum hjálpar þér að öðlast raunverulega reynslu og bæta taugakerfisþjálfun þína.
Þú getur líka tekið þátt í vélanámi og tauganethópum og spjallborðum á netinu til að hafa samskipti við aðra nemendur og fagfólk, deila vinnu þinni og fá athugasemdir og hjálp.
LSRS MONRAD-KROHN
⁶ĵHefði viljað sjá python forritið til að lágmarka villu. Sérstakir valhnútar fyrir þyngdarbreytingar í næsta lag