Clàr-innse[Falaich][Seall]
Anns na bliadhnachan mu dheireadh, tha lìonraidhean neòil air fàs nas mòr-chòrdte oir tha iad air sealltainn gu bheil iad air leth math air raon farsaing de ghnìomhan.
Thathas air sealltainn gu bheil iad nan deagh roghainn airson aithneachadh ìomhaigh is claisneachd, giollachd cànain nàdarra, agus eadhon a bhith a’ cluich gheamannan toinnte leithid Go agus tàileasg.
Anns an dreuchd seo, coisichidh mi thu tron phròiseas gu lèir de thrèanadh lìonra neural. Bheir mi iomradh agus mìnichidh mi a h-uile ceum gus lìonra neural a thrèanadh.
Fhad ‘s a thèid mi thairis air na ceumannan bu mhath leam eisimpleir shìmplidh a chuir ris gus dèanamh cinnteach gu bheil eisimpleir practaigeach ann cuideachd.
Mar sin, thig air adhart, agus ionnsaichidh sinn mar a làimhsicheas tu lìonraidhean neural
Feuch an tòisich sinn sìmplidh agus faighnich dè a th 'ann lìonraidhean neònach sa chiad àite.
Dè dìreach a th’ ann an lìonraidhean neural?
Is e bathar-bog coimpiutair a th’ ann an lìonraidhean neural a tha coltach ri gnìomhachd eanchainn an duine. Faodaidh iad ionnsachadh bho mhòran dàta agus lorg pàtrain a dh’ fhaodadh a bhith duilich do dhaoine a lorg.
Tha lìonraidhean neural air fàs nas mòr-chòrdte anns na bliadhnachan mu dheireadh air sgàth cho sùbailteachd ‘s a tha iad ann an gnìomhan leithid aithneachadh dhealbhan is claisneachd, giollachd cànain nàdarrach, agus modaladh ro-innseach.
Gu h-iomlan, tha lìonraidhean neural nan inneal làidir airson raon farsaing de thagraidhean agus tha cothrom aca cruth-atharrachadh a dhèanamh air an dòigh sa bheil sinn a’ dèiligeadh ri raon farsaing de dh’ obraichean.
Carson a bu chòir dhuinn fios a bhith againn mun deidhinn?
Tha tuigse air lìonraidhean neural deatamach oir tha iad air leantainn gu lorgan ann an grunn raointean, a’ gabhail a-steach lèirsinn coimpiutair, aithneachadh cainnt, agus giollachd cànain nàdarra.
Tha lìonraidhean neural, mar eisimpleir, aig cridhe leasachaidhean o chionn ghoirid ann an càraichean fèin-dràibhidh, seirbheisean eadar-theangachaidh fèin-ghluasadach, agus eadhon sgrùdaidhean meidigeach.
Le bhith a’ tuigsinn mar a tha lìonraidhean neural ag obair agus mar a dhealbhaicheas iad iad gar cuideachadh gus tagraidhean ùra is innleachdach a thogail. Agus, is dòcha, is dòcha gun lean e gu lorgaidhean eadhon nas motha san àm ri teachd.
Nòta Mu dheidhinn an Tutorial
Mar a thuirt mi gu h-àrd, bu mhath leam na ceumannan mu bhith a’ trèanadh lìonra neural a mhìneachadh le bhith a’ toirt seachad eisimpleir. Gus seo a dhèanamh, bu chòir dhuinn bruidhinn mu dheidhinn an dàta MNIST. Tha e na roghainn mòr-chòrdte dha luchd-tòiseachaidh a tha airson tòiseachadh le lìonraidhean neural.
Tha MNIST na acronaim a tha a’ seasamh airson Institiud Nàiseanta Inbhean is Teicneòlais Atharraichte. Is e stòr-dàta figear làmh-sgrìobhte a th’ ann a thathas gu tric air a chleachdadh airson trèanadh agus deuchainn a dhèanamh air modalan ionnsachaidh innealan, gu sònraichte lìonraidhean neural.
Anns a’ chruinneachadh tha 70,000 dealbh liath-sgèile de àireamhan làmh-sgrìobhaidh eadar 0 is 9.
Tha an stòr-dàta MNIST na shlat-tomhais mòr-chòrdte airson seòrsachadh ìomhaigh gnìomhan. Tha e air a chleachdadh gu tric airson teagasg agus ionnsachadh leis gu bheil e teann agus furasta dèiligeadh ris fhad ‘s a tha e fhathast na dhùbhlan duilich dha algoirmean ionnsachadh innealan freagairt.
Tha grunn fhrèamaichean ionnsachaidh innealan agus leabharlannan a’ toirt taic do sheata-dàta MNIST, nam measg TensorFlow, Keras, agus PyTorch.
A-nis gu bheil fios againn mu stòr-dàta MNIST, leig dhuinn tòiseachadh leis na ceumannan againn gus lìonra neural a thrèanadh.
Ceumannan bunaiteach gus Lìonra Neural a thrèanadh
Cuir a-steach leabharlannan riatanach
Nuair a thòisicheas tu air lìonra neural a thrèanadh an toiseach, tha e deatamach gum bi na h-innealan riatanach ann gus am modail a dhealbhadh agus a thrèanadh. Is e a’ chiad cheum ann an cruthachadh lìonra neural a bhith a’ toirt a-steach leabharlannan riatanach leithid TensorFlow, Keras, agus NumPy.
Tha na leabharlannan sin mar bhlocaichean togail airson leasachadh an lìonra neural agus a’ toirt seachad comasan deatamach. Tha an cothlamadh de na leabharlannan sin a’ ceadachadh dealbhadh lìonra neural sòlaimte agus trèanadh luath a chruthachadh.
Gus ar n-eisimpleir a thòiseachadh ; bheir sinn a-steach na leabharlannan a tha a dhìth, a’ gabhail a-steach TensorFlow, Keras, agus NumPy. TensorFlow na fhrèam ionnsachaidh inneal stòr fosgailte, tha Keras na API lìonra neural àrd-ìre, agus tha NumPy na leabharlann coimpiutaireachd àireamhach Python.
import tensorflow as tf
from tensorflow import keras
import numpy as np
Luchdaich sìos an stòr-dàta
Feumaidh an stòr-dàta a bhith air a luchdachadh a-nis. Is e an stòr-dàta an seata dàta air an tèid an lìonra neural a thrèanadh. Faodaidh seo a bhith mar sheòrsa sam bith de dhàta, a’ toirt a-steach dealbhan, claisneachd, agus teacsa.
Tha e deatamach an dàta a roinn ann an dà phàirt: aon airson an lìonra neural a thrèanadh agus am fear eile airson ceartachd a’ mhodail ionnsaichte a mheasadh. Faodar grunn leabharlannan, nam measg TensorFlow, Keras, agus PyTorch, a chleachdadh gus an dàta a thoirt a-steach.
Mar eisimpleir, bidh sinn a’ cleachdadh Keras cuideachd gus an stòr-dàta MNIST a luchdachadh. Tha 60,000 dealbh trèanaidh agus 10,000 dealbh deuchainn anns an t-seata dàta.
mnist = keras.datasets.mnist
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()
Ro-phròiseas an dàta
Tha ro-phròiseasadh dàta na ìre chudromach ann a bhith a’ trèanadh lìonra neural. Tha e a’ ciallachadh a bhith ag ullachadh agus a’ glanadh an dàta mus tèid a bhiathadh a-steach don lìonra neural.
Tha sgèileadh luachan piogsail, gnàthachadh dàta, agus tionndadh bileagan gu còdachadh aon-teth nan eisimpleirean de mhodhan ro-ghiollachd. Bidh na pròiseasan sin a’ cuideachadh an lìonra neural ann a bhith ag ionnsachadh nas èifeachdaiche agus nas mionaidiche.
Faodaidh ro-ghiollachd an dàta cuideachd cuideachadh le bhith a’ lughdachadh cus fhilleadh agus gus coileanadh an lìonra neural a leasachadh.
Feumaidh tu an dàta ro-phròiseas mus trèanadh thu an lìonra neural. Tha seo a’ toirt a-steach a bhith ag atharrachadh na bileagan gu còdachadh aon-teth agus a’ sgèileadh na luachan piogsail gu bhith eadar 0 agus 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)
Sònraich am Modail
Tha am pròiseas airson modal lìonra neural a mhìneachadh a’ toirt a-steach a bhith a’ stèidheachadh a h-ailtireachd, leithid an àireamh de shreathan, an àireamh de neurons gach còmhdach, gnìomhan gnìomhachaidh, agus seòrsa lìonra (feed air adhart, ath-chuairteach, no convolutional).
Tha an dealbhadh lìonra neural a chleachdas tu air a dhearbhadh leis an t-seòrsa duilgheadas a tha thu a’ feuchainn ri fhuasgladh. Faodaidh dealbhadh lìonra neural a tha air a dheagh mhìneachadh cuideachadh le ionnsachadh lìonra neural le bhith ga dhèanamh nas èifeachdaiche agus nas cruinne.
Tha an t-àm ann cunntas a thoirt air modal lìonra neural aig an ìre seo. Cleachd modail sìmplidh le dà shreath falaichte, gach fear le 128 neurons, agus còmhdach toraidh softmax, anns a bheil 10 neurons, airson an eisimpleir seo.
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')
])
Cruinnich am Modail
Feumar an gnìomh call, optimizer, agus metrics a shònrachadh nuair a bhios modal lìonra neural a’ cruinneachadh. Tha comas an lìonra neural airson an toradh a ro-innse gu ceart air a thomhas leis a’ ghnìomh call.
Gus cruinneas an lìonra neural àrdachadh rè trèanadh, bidh an optimizer ag atharrachadh a chuideaman. Tha èifeachdas an lìonra neural rè trèanadh air a thomhas a’ cleachdadh meatrach. Feumar am modail a chruthachadh mus gabh an lìonra neural a thrèanadh.
Anns an eisimpleir againn, feumaidh sinn an-dràsta am modail a thogail.
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
Trèan am Model
Canar trèanadh an lìonra neural ri bhith a’ dol seachad air an dàta ullaichte tron lìonra neural fhad ‘s a tha e ag atharrachadh cuideaman an lìonra gus an gnìomh call a lughdachadh.
Thathas a’ cleachdadh an dàta dearbhaidh gus an lìonra neural a dhearbhadh rè trèanadh gus sùil a chumail air èifeachdas agus casg a chuir air cus. Faodaidh am pròiseas trèanaidh beagan ùine a thoirt, mar sin tha e cudromach dèanamh cinnteach gu bheil an lìonra neural air a thrèanadh gu h-iomchaidh gus casg a chuir air fo-fhilleadh.
A’ cleachdadh an dàta trèanaidh, is urrainn dhuinn a-nis am modail a thrèanadh. Gus seo a dhèanamh, feumaidh sinn meud baidse a mhìneachadh (an àireamh de shamhlaichean a chaidh a phròiseasadh mus tèid am modail ùrachadh) agus an àireamh de amannan (an àireamh de ath-aithris air feadh an t-sreath iomlan).
model.fit(train_images, train_labels, epochs=10, batch_size=32)
A 'luachadh a' mhodail
Is e a bhith a’ dèanamh deuchainn air coileanadh lìonra neural air an dàta deuchainn am pròiseas airson a mheasadh. Aig an ìre seo, thathas a’ cleachdadh an lìonra neural ionnsaichte gus an dàta deuchainn a phròiseasadh, agus thathas a’ measadh cruinneas.
Tha cho èifeachdach sa dh’ fhaodas lìonra neural ro-innse a dhèanamh air an toradh ceart bho dhàta ùr-nodha gun fheuchainn mar thomhas air cho cinnteach ‘s a tha e. Faodaidh mion-sgrùdadh a’ mhodail cuideachadh le bhith a’ dearbhadh dè cho math ‘s a tha an lìonra neural ag obair agus cuideachd dòighean a mholadh gus a dhèanamh eadhon nas fheàrr.
Is urrainn dhuinn mu dheireadh coileanadh a’ mhodail a mheasadh a’ cleachdadh an dàta deuchainn às deidh trèanadh.
test_loss, test_acc = model.evaluate(test_images, test_labels)
print('Test accuracy:', test_acc)
Sin e! Rinn sinn trèanadh air lìonra neural gus àireamhan a lorg ann an stòr-dàta MNIST.
Bho bhith ag ullachadh an dàta gu bhith a’ measadh èifeachdas a’ mhodail ionnsaichte, tha grunn phròiseasan ann a bhith a’ trèanadh lìonra neural. Bidh an stiùireadh seo a’ cuideachadh luchd-tòiseachaidh ann a bhith a’ togail agus a’ trèanadh lìonraidhean neural gu h-èifeachdach.
Faodaidh luchd-tòiseachaidh a tha airson lìonraidhean neural a chleachdadh gus dèiligeadh ri diofar chùisean sin a dhèanamh le bhith a’ leantainn an stiùiridh seo.
A 'toirt sealladh air an eisimpleir
Feuchaidh sinn ri sealladh a dhèanamh air na rinn sinn leis an eisimpleir seo gus tuigse nas fheàrr fhaighinn.
Tha am pasgan Matplotlib air a chleachdadh anns a’ chriomag còd seo gus taghadh air thuaiream de dhealbhan bhon t-seata trèanaidh a dhealbhadh. An toiseach, bidh sinn a’ toirt a-steach modal “pyplot” Matplotlib agus a-rithist mar “plt”. An uairsin, le tomhas iomlan de 10 le 10 òirleach, bidh sinn a’ dèanamh figear le 5 sreathan agus 5 colbhan de subplots.
An uairsin, bidh sinn a’ cleachdadh lùb airson ath-aithris thairis air na fo-phlotaichean, a’ taisbeanadh dealbh bhon t-seata trèanaidh air gach fear. Gus an dealbh a thaisbeanadh, thathas a’ cleachdadh a’ ghnìomh “imshow”, leis an roghainn “cmap” air a shuidheachadh gu ‘liath’ gus na dealbhan a thaisbeanadh ann an sgèile-gràine. Tha tiotal gach subplot cuideachd air a shuidheachadh ri leubail na h-ìomhaigh co-cheangailte sa chruinneachadh.
Mu dheireadh, bidh sinn a’ cleachdadh a’ ghnìomh “show” gus na dealbhan dealbhte san fhigear a thaisbeanadh. Leigidh an gnìomh seo leinn measadh lèirsinneach a dhèanamh air sampall de dhealbhan bhon stòr-dàta, a chuidicheas le ar tuigse air an dàta agus le bhith ag aithneachadh draghan sam bith a dh’ fhaodadh a bhith ann.
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()
Modalan Lìonra Neural cudromach
- Lìonraidhean Neural Feedforward (FFNN): Seòrsa sìmplidh de lìonra neural anns nach bi fiosrachadh a’ siubhal ach ann an aon dòigh, bhon ìre cuir a-steach gu ìre toraidh tro aon no barrachd shreathan falaichte.
- Lìonraidhean Neural Convolutional (CNN): Lìonra neural a thathas a’ cleachdadh gu cumanta ann a bhith a’ lorg agus a’ giullachd ìomhaighean. Tha CNNn an dùil feartan aithneachadh agus a thoirt a-mach à dealbhan gu fèin-ghluasadach.
- Lìonraidhean Neural Ath-chuairteach (RNN): Lìonra neural a thathas a’ cleachdadh gu cumanta ann a bhith a’ lorg agus a’ giullachd ìomhaighean. Tha CNNn an dùil feartan aithneachadh agus a thoirt a-mach à dealbhan gu fèin-ghluasadach.
- Lìonraidhean Cuimhne Fad-ùine Geàrr-ùine (LSTM): Seòrsa de RNN air a chruthachadh gus faighinn thairis air a’ chùis mu bhith a’ dol à bith ann an ìrean RNN àbhaisteach. Faodar eisimeileachd fad-ùine ann an dàta sreath a ghlacadh nas fheàrr le LSTM.
- Autoencoders: Lìonra neural ionnsachaidh gun stiùireadh anns a bheil an lìonra air a theagasg gus an dàta cuir a-steach aca ath-riochdachadh aig an ìre toraidh aige. Faodar teannachadh dàta, lorg neo-riaghailteachd, agus àicheadh dhealbhan uile a choileanadh le autoencoders.
- Lìonraidhean Gineadach Nàimhdeil (GAN): Is e seòrsa de lìonra neural a th’ ann an lìonra neural ginealach a thathas a’ teagasg gus dàta ùr a thoirt gu buil a tha coltach ri seata-dàta trèanaidh. Tha GANan air an dèanamh suas de dhà lìonra: lìonra gineadair a chruthaicheas dàta ùr agus lìonra leth-bhreith a bhios a’ measadh càileachd an dàta a chaidh a chruthachadh.
Còmhdaich, Dè na h-ath cheumannan a bu chòir a bhith agad?
Rannsaich grunn ghoireasan agus chùrsaichean air-loidhne gus barrachd ionnsachadh mu bhith a’ trèanadh lìonra neural. Tha a bhith ag obair air pròiseactan no eisimpleirean mar aon dòigh air tuigse nas fheàrr fhaighinn air lìonraidhean neural.
Tòisich le eisimpleirean furasta leithid duilgheadasan seòrsachaidh dà-chànanach no gnìomhan seòrsachadh dhealbhan, agus an uairsin rachaibh gu gnìomhan nas duilghe leithid giollachd cànain nàdarra no ionnsachadh daingneachaidh.
Bidh obair air pròiseactan gad chuideachadh gus fìor eòlas fhaighinn agus do sgilean trèanaidh lìonra neural adhartachadh.
Faodaidh tu cuideachd a dhol còmhla ri buidhnean ionnsachadh inneal air-loidhne agus lìonra neòil agus fòraman gus eadar-obrachadh le luchd-ionnsachaidh agus proifeiseantaich eile, an obair agad a cho-roinn, agus beachdan is cuideachadh fhaighinn.
LSRS MONRAD-KROHN
⁶ĵBu mhath leam am prògram python fhaicinn airson lughdachadh mhearachdan. Nòtaichean taghaidh sònraichte airson atharrachaidhean cuideam air an ath shreath