Kaundan[Itago][Ipakita]
Sa bag-ohay nga mga tuig, ang mga neural network mitubo sa pagkapopular tungod kay kini gipakita nga labi ka maayo sa daghang mga buluhaton.
Gipakita sila nga usa ka maayong kapilian alang sa pag-ila sa imahe ug audio, pagproseso sa natural nga sinultian, ug bisan sa pagdula sa mga komplikado nga dula sama sa Go ug chess.
Sa kini nga post, tudluan ko ikaw sa tibuuk nga proseso sa pagbansay sa usa ka neural network. Akong hisgutan ug ipasabut ang tanan nga mga lakang sa pagbansay sa usa ka neural network.
Samtang ako moadto sa ibabaw sa mga lakang gusto ko sa pagdugang sa usa ka yano nga panig-ingnan sa pagsiguro nga adunay usa ka praktikal nga panig-ingnan usab.
Busa, kuyog, ug tun-an nato kung unsaon pagproseso ang mga neural network
Magsugod ta sa simple ug mangutana kung unsa neural networks sa una.
Unsa gyud ang Neural Networks?
Ang mga neural network kay computer software nga nagsundog sa operasyon sa utok sa tawo. Makakat-on sila gikan sa daghang gidaghanon sa datos ug mga pattern nga makita nga lisud mahibal-an sa mga tawo.
Ang mga neural network nahimong popular sa bag-ohay nga mga tuig tungod sa ilang versatility sa mga buluhaton sama sa picture ug audio recognition, natural nga pagproseso sa pinulongan, ug predictive modeling.
Sa kinatibuk-an, ang mga neural network usa ka lig-on nga himan alang sa usa ka halapad nga mga aplikasyon ug adunay higayon nga mabag-o ang paagi sa among pagduol sa daghang mga trabaho.
Nganong Angay Natong Mahibaloan Bahin Kanila?
Ang pagsabut sa mga neural network hinungdanon tungod kay kini nagdala sa mga nadiskobrehan sa lainlaing mga natad, lakip ang panan-aw sa kompyuter, pag-ila sa sinultihan, ug pagproseso sa natural nga sinultian.
Ang mga neural network, pananglitan, mao ang sentro sa bag-ong mga kalamboan sa nagmaneho sa kaugalingon nga mga awto, awtomatikong serbisyo sa paghubad, ug bisan ang medikal nga mga diagnostic.
Ang pagsabut kung giunsa ang paglihok sa mga neural network ug kung giunsa kini pagdesinyo makatabang kanamo sa paghimo og bag-o ug imbentibo nga mga aplikasyon. Ug, tingali, mahimo’g mosangput kini sa labi pa nga mga nadiskobrehan sa umaabot.
Usa ka Pahinumdom Bahin sa Tutorial
Sama sa akong giingon sa ibabaw, gusto nako ipasabut ang mga lakang sa pagbansay sa usa ka neural network pinaagi sa paghatag usa ka pananglitan. Aron mahimo kini, kinahanglan naton hisgutan ang bahin sa dataset sa MNIST. Kini usa ka popular nga kapilian alang sa mga nagsugod nga gusto magsugod sa mga neural network.
Ang MNIST usa ka acronym nga nagpasabut sa Modified National Institute of Standards and Technology. Kini usa ka sinulat sa kamot nga digit nga dataset nga sagad gigamit alang sa pagbansay ug pagsulay sa mga modelo sa pagkat-on sa makina, labi na ang mga neural network.
Ang koleksyon adunay 70,000 ka grayscale nga mga litrato sa sinulat sa kamot nga mga numero gikan sa 0 hangtod 9.
Ang dataset sa MNIST kay popular nga benchmark para sa klasipikasyon sa imahe mga buluhaton. Kanunay kini nga gigamit alang sa pagtudlo ug pagkat-on tungod kay kini compact ug dali nga atubangon samtang naghatag usa ka lisud nga hagit alang sa mga algorithm sa pagkat-on sa makina nga tubagon.
Ang dataset sa MNIST gisuportahan sa daghang mga balangkas sa pagkat-on sa makina ug mga librarya, lakip ang TensorFlow, Keras, ug PyTorch.
Karon nahibal-an na namon ang bahin sa dataset sa MNIST, magsugod kita sa among mga lakang sa pagbansay sa usa ka neural network.
Pangunang mga Lakang sa Pagbansay sa Neural Network
Pag-import sa Gikinahanglan nga mga Librarya
Sa una nga pagsugod sa pagbansay sa usa ka neural network, hinungdanon nga adunay kinahanglan nga mga himan sa pagdesinyo ug pagbansay sa modelo. Ang inisyal nga lakang sa paghimo og neural network mao ang pag-import sa gikinahanglang mga librarya sama sa TensorFlow, Keras, ug NumPy.
Kini nga mga librarya nagsilbi nga mga bloke sa pagtukod alang sa pagpalambo sa neural network ug naghatag hinungdanon nga mga kapabilidad. Ang kombinasyon sa kini nga mga librarya nagtugot alang sa paghimo sa sopistikado nga mga disenyo sa neural network ug paspas nga pagbansay.
Sa pagsugod sa atong panig-ingnan; atong i-import ang gikinahanglan nga mga librarya, nga naglakip sa TensorFlow, Keras, ug NumPy. TensorFlow usa ka open-source machine learning framework, ang Keras kay high-level neural network API, ug ang NumPy usa ka numerical computing Python library.
import tensorflow as tf
from tensorflow import keras
import numpy as np
I-load ang Dataset
Kinahanglang makarga na ang dataset. Ang dataset mao ang set sa datos diin ang neural network pagabansayon. Kini mahimong bisan unsang matang sa datos, lakip ang mga litrato, audio, ug teksto.
Importante nga bahinon ang dataset sa duha ka bahin: ang usa para sa pagbansay sa neural network ug ang lain para sa pagtimbang-timbang sa pagkahusto sa gibansay nga modelo. Daghang mga librarya, lakip ang TensorFlow, Keras, ug PyTorch, mahimong gamiton sa pag-import sa dataset.
Alang sa among pananglitan, gigamit usab namon ang Keras aron ma-load ang MNIST dataset. Adunay 60,000 nga mga litrato sa pagbansay ug 10,000 nga mga imahe sa pagsulay sa dataset.
mnist = keras.datasets.mnist
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()
Preprocess Ang Data
Ang preprocessing sa datos usa ka importante nga yugto sa pagbansay sa usa ka neural network. Naglangkob kini sa pag-andam ug paglimpyo sa datos sa wala pa kini ipakaon sa neural network.
Ang pag-scale sa mga kantidad sa pixel, pag-normalize sa datos, ug pag-convert sa mga label ngadto sa usa ka init nga encoding mao ang mga pananglitan sa mga pamaagi sa preprocessing. Kini nga mga proseso nagtabang sa neural network sa pagkat-on nga mas epektibo ug tukma.
Ang pag-preprocess sa datos makatabang usab sa pagpamenos sa overfitting ug pagpalambo sa performance sa neural network.
Kinahanglan nimo nga iproseso ang datos sa dili pa magbansay sa neural network. Naglakip kini sa pagbag-o sa mga label sa usa ka mainit nga pag-encode ug pag-scale sa mga kantidad sa pixel nga tali sa 0 ug 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)
Ipasabut ang Modelo
Ang proseso sa pagdeterminar sa modelo sa neural network naglakip sa pag-establisar sa arkitektura niini, sama sa gidaghanon sa mga layer, gidaghanon sa mga neuron matag layer, activation function, ug network type (feedforward, recurrent, o convolutional).
Ang disenyo sa neural network nga imong gigamit gitino sa matang sa problema nga imong gisulayan pagsulbad. Ang usa ka maayo nga gipasabut nga disenyo sa neural network makatabang sa pagkat-on sa neural network pinaagi sa paghimo niini nga mas episyente ug tukma.
Panahon na aron ihulagway ang modelo sa neural network sa kini nga punto. Gamita ang usa ka yano nga modelo nga adunay duha ka tinago nga mga layer, ang matag usa adunay 128 nga mga neuron, ug usa ka softmax output layer, nga adunay 10 ka mga neuron, alang niini nga pananglitan.
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')
])
Pagtipon sa Modelo
Ang function sa pagkawala, optimizer, ug mga sukatan kinahanglan nga itakda sa panahon sa pag-compile sa modelo sa neural network. Ang katakus sa neural network sa husto nga pagtagna sa output gisukod sa function sa pagkawala.
Aron madugangan ang katukma sa neural network sa panahon sa pagbansay, gibag-o sa optimizer ang mga gibug-aton niini. Ang pagka-epektibo sa neural network sa panahon sa pagbansay gisukod gamit ang mga sukatan. Kinahanglang himoon ang modelo sa dili pa mabansay ang neural network.
Sa atong panig-ingnan, kita kinahanglan nga karon sa pagtukod sa modelo.
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
Bansaya ang Modelo
Ang pagpasa sa giandam nga dataset pinaagi sa neural network samtang ang pagbag-o sa mga gibug-aton sa network aron maminusan ang pagkawala sa function nailhan nga pagbansay sa neural network.
Ang validation dataset gigamit sa pagsulay sa neural network sa panahon sa pagbansay aron masubay ang pagka-epektibo niini ug malikayan ang overfitting. Ang proseso sa pagbansay mahimo’g magdugay, busa hinungdanon nga masiguro nga ang neural network tukma nga gibansay aron malikayan ang pagkadaot.
Gamit ang datos sa pagbansay, mahimo na naton mabansay ang modelo. Aron mahimo kini, kinahanglan natong ipasabut ang gidak-on sa batch (ang gidaghanon sa mga sample nga giproseso sa wala pa ma-update ang modelo) ug ang gidaghanon sa mga epoch (ang gidaghanon sa mga pagbalik-balik sa tibuok nga dataset).
model.fit(train_images, train_labels, epochs=10, batch_size=32)
Pagtimbang-timbang sa Modelo
Ang pagsulay sa performance sa neural network sa test dataset mao ang proseso sa pagtimbang-timbang niini. Niini nga yugto, ang nabansay nga neural network gigamit sa pagproseso sa mga datos sa pagsulay, ug gisusi ang katukma.
Unsa ka epektibo ang usa ka neural network nga makatagna sa husto nga resulta gikan sa bag-o, wala pa nasulayan nga datos usa ka sukod sa katukma niini. Ang pag-analisar sa modelo mahimong makatabang sa pagtino kung unsa ka maayo ang neural network nga nagtrabaho ug nagsugyot usab og mga paagi aron mahimo kini nga labi ka maayo.
Sa katapusan mahimo namong masusi ang pasundayag sa modelo gamit ang datos sa pagsulay pagkahuman sa pagbansay.
test_loss, test_acc = model.evaluate(test_images, test_labels)
print('Test accuracy:', test_acc)
Mao ra na! Nagbansay kami og neural network aron makaila sa mga digit sa MNIST dataset.
Gikan sa pag-andam sa datos hangtod sa pagtimbang-timbang sa pagkaepektibo sa gibansay nga modelo, ang pagbansay sa usa ka neural network naglakip sa daghang mga proseso. Kini nga mga panudlo nagtabang sa mga bag-ohan sa episyente nga pagtukod ug pagbansay sa mga neural network.
Ang mga nagsugod nga gustong mogamit og mga neural network aron masulbad ang lainlaing mga isyu mahimo kini pinaagi sa pagsunod niini nga mga panudlo.
Pagtan-aw sa Ehemplo
Atong sulayan ang paghanduraw kung unsa ang atong nahimo niini nga pananglitan aron mas masabtan.
Ang Matplotlib nga pakete gigamit niini nga code snippet aron magplano ug random nga pagpili sa mga litrato gikan sa training dataset. Una, gi-import namo ang "pyplot" nga module sa Matplotlib ug gi-alyas kini nga "plt". Dayon, nga adunay kinatibuk-ang dimensyon nga 10 sa 10 ka pulgada, naghimo kami og numero nga adunay 5 ka laray ug 5 ka kolum sa subplots.
Dayon, migamit kami og for loop aron i-uli sa ibabaw sa mga subplots, nga magpakita og hulagway gikan sa training dataset sa matag usa. Aron ipakita ang hulagway, ang “imshow” function gigamit, nga ang “cmap” nga opsyon gibutang sa 'gray' aron ipakita ang mga litrato sa grayscale. Ang titulo sa matag subplot gibutang usab sa label sa kaubang imahe sa koleksyon.
Sa katapusan, gigamit namon ang function nga "ipakita" aron ipakita ang giplano nga mga litrato sa numero. Kini nga function nagtugot kanato sa biswal nga pagtimbang-timbang sa usa ka sample sa mga litrato gikan sa dataset, nga makatabang sa atong pagsabot sa data ug sa pag-ila sa bisan unsa nga posible nga mga kabalaka.
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()
Importante nga mga Modelo sa Neural Network
- Feedforward Neural Networks (FFNN): Usa ka yano nga matang sa neural network diin ang impormasyon mobiyahe lamang sa usa ka paagi, gikan sa input layer ngadto sa output layer pinaagi sa usa o daghan pang hidden layers.
- Convolutional Neural Networks (CNN): Usa ka neural network nga sagad gigamit sa pagkakita ug pagproseso sa imahe. Ang mga CNN gituyo sa pag-ila ug pagkuha sa mga feature gikan sa mga hulagway nga awtomatiko.
- Balik-balik nga Neural Networks (RNN): Usa ka neural network nga sagad gigamit sa pagkakita ug pagproseso sa imahe. Ang mga CNN gituyo sa pag-ila ug pagkuha sa mga feature gikan sa mga hulagway nga awtomatiko.
- Long Short-Term Memory (LSTM) Networks: Usa ka porma sa RNN nga gihimo aron mabuntog ang isyu sa pagkawala sa mga gradient sa standard nga RNNs. Ang mga long-term dependencies sa sequential data mahimong mas maayo nga makuha sa mga LSTM.
- Autoencoders: Unsupervised learning neural network diin ang network gitudloan sa pagkopya sa input data niini sa output layer niini. Ang data compression, anomaliya detection, ug picture denoising mahimo ang tanan sa mga autoencoders.
- Generative Adversarial Networks (GAN): Ang usa ka generative neural network usa ka porma sa neural network nga gitudlo aron makahimo og bag-ong datos nga ikatandi sa usa ka dataset sa pagbansay. Ang mga GAN gilangkoban sa duha ka network: usa ka generator network nga nagmugna ug bag-ong datos ug usa ka discriminator network nga nag-assess sa kalidad sa gibuhat nga datos.
Wrap-Up, Unsa ang Kinahanglan Nimong Sunod nga mga Lakang?
Pag-usisa sa daghang mga kapanguhaan sa online ug mga kurso aron mahibal-an ang dugang bahin sa pagbansay sa usa ka neural network. Ang pagtrabaho sa mga proyekto o mga pananglitan usa ka pamaagi aron mas masabtan ang mga neural network.
Pagsugod sa sayon nga mga pananglitan sama sa binary classification nga mga problema o picture classification nga mga buluhaton, ug dayon adto sa mas lisud nga mga buluhaton sama sa natural nga pagproseso sa pinulongan o pagpalig-on sa pagkat-on.
Ang pagtrabaho sa mga proyekto makatabang kanimo nga makakuha og tinuud nga kasinatian ug mapaayo ang imong kahanas sa pagbansay sa neural network.
Mahimo ka usab nga moapil sa online machine learning ug neural network nga mga grupo ug mga forum aron makig-uban sa ubang mga estudyante ug propesyonal, ipaambit ang imong trabaho, ug makadawat og mga komentaryo ug tabang.
LSRS MONRAD-KROHN
⁶ĵGusto nga makita ang programa sa python alang sa pagpaminus sa sayup. Espesyal nga mga node sa pagpili alang sa pagbag-o sa gibug-aton sa sunod nga layer