Ang Artipisyal nga Kaalam (AI) nakakuha og daghang kabantog sa bag-ohay nga mga tuig.
Kung ikaw usa ka software engineer, computer scientist, o data science enthusiast sa kinatibuk-an, nan lagmit nainteres ka sa mga katingad-an nga aplikasyon sa pagproseso sa imahe, pag-ila sa pattern ug pagtuki sa butang nga gihatag niini nga natad.
Ang labing importante nga subfield sa AI nga tingali imong nadunggan mao ang Deep Learning. Kini nga natad nagpunting sa kusgan nga mga algorithm (mga panudlo sa programa sa kompyuter) nga gimodelo pagkahuman sa paggana sa utok sa tawo nga nailhan nga Mga Networks sa Neural.
Niini nga artikulo, atong hisgotan ang konsepto sa Neural Networks ug kung unsaon paghimo, pag-compile, pagpahaom ug pagtimbang-timbang niini nga mga modelo gamit ang Python.
Mga Networks sa Neural
Ang mga Neural Network, o NNs, usa ka serye sa mga algorithm nga gimodelo sa biolohikal nga kalihokan sa utok sa tawo. Ang mga Neural Network naglangkob sa mga node, gitawag usab nga mga neuron.
Ang usa ka koleksyon sa mga bertikal node nailhan nga mga sapaw. Ang modelo naglangkob sa usa ka input, usa ka output, ug usa ka gidaghanon sa mga tinago nga mga layer. Ang matag layer naglangkob sa mga node, gitawag usab nga mga neuron, diin ang mga kalkulasyon mahitabo.
Sa mosunod nga diagram, ang mga lingin nagrepresentar sa mga node ug ang bertikal nga koleksyon sa mga node nagrepresentar sa mga layer. Adunay tulo ka mga lut-od niini nga modelo.
Ang mga node sa usa ka layer konektado sa sunod nga layer pinaagi sa transmission lines nga makita sa ubos.
Ang among dataset naglangkob sa gimarkahan nga datos. Kini nagpasabut nga ang matag entidad sa datos gihatagan usa ka piho nga kantidad sa ngalan.
Mao nga para sa usa ka dataset sa klasipikasyon sa mananap aduna kitay mga hulagway sa mga iring ug iro isip atong datos, nga adunay 'iring' ug 'iro' isip atong mga label.
Importante nga timan-an nga ang mga label kinahanglang i-convert sa numerical values para sa atong modelo aron masabtan kini, mao nga ang atong mga animal label mahimong '0' para sa iring ug '1' para sa iro. Ang datos ug ang mga label gipasa sa modelo.
Pagkat-on
Ang datos gipakaon sa modelo sa usa ka entidad matag higayon. Kini nga datos gibahin ngadto sa mga tipik ug gipasa sa matag node sa modelo. Ang mga node naghimo sa mga operasyon sa matematika sa kini nga mga tipik.
Dili nimo kinahanglan nga mahibal-an ang mga function o kalkulasyon sa matematika alang niini nga panudlo, apan hinungdanon nga adunay usa ka kinatibuk-ang ideya kung giunsa kini nga mga modelo molihok. Human sa sunodsunod nga mga kalkulasyon sa usa ka layer, ang data ipasa ngadto sa sunod nga layer ug uban pa.
Kung nahuman na, ang among modelo nagtagna sa label sa datos sa output layer (pananglitan, sa usa ka problema sa klasipikasyon sa hayop makakuha kami usa ka panagna '0' alang sa usa ka iring).
Ang modelo unya mopadayon sa pagtandi niining gitagna nga bili sa aktuwal nga label nga bili.
Kung ang mga kantidad magkatugma, ang among modelo magkuha sa sunod nga input apan kung ang mga kantidad magkalainlain ang modelo magkalkula sa kalainan tali sa duha nga mga kantidad, gitawag nga pagkawala, ug i-adjust ang mga kalkulasyon sa node aron makagama ang mga label nga parehas sa sunod nga higayon.
Lawom nga Pagkat-on Frameworks
Aron matukod ang mga Neural Network sa code, kinahanglan namon nga mag-import Mga gambalay sa lawom nga pagkat-on nailhan nga mga librarya gamit ang atong Integrated Development Environment (IDE).
Kini nga mga gambalay usa ka koleksyon sa nauna na nga sinulat nga mga gimbuhaton nga makatabang kanato niini nga panudlo. Gamiton namon ang balangkas sa Keras aron matukod ang among modelo.
Ang Keras usa ka librarya sa Python nga naggamit ug lawom nga pagkat-on ug gitawag nga backend sa artificial intelligence dagan sa tensor sa paghimo sa mga NN sa porma sa yano nga sunud-sunod nga mga modelo nga dali.
Ang Keras nag-uban usab sa kaugalingon nga mga preexisting nga mga modelo nga magamit usab. Alang sa kini nga panudlo, maghimo kami kaugalingon nga modelo gamit ang Keras.
Makakat-on ka og dugang mahitungod niining balangkas sa Deep Learning gikan sa Website sa Keras.
Pagtukod og Neural Network (Tutorial)
Mopadayon kita sa pagtukod og Neural Network gamit ang Python.
Problema nga pamahayag
Ang Neural Networks usa ka tipo sa solusyon sa mga problema nga nakabase sa AI. Alang sa kini nga panudlo, susihon namon ang Pima Indians Diabetes Data, nga magamit dinhi.
ICU Ang Machine Learning nag-compile niini nga dataset ug adunay usa ka medikal nga rekord sa mga pasyente sa India. Kinahanglan nga matagna sa among modelo kung ang pasyente adunay pagsugod sa diabetes sa sulod sa 5 ka tuig o wala.
Nag-load sa Dataset
Ang among dataset kay usa ka CSV file nga gitawag og 'diabetes.csv' nga daling mamanipula gamit ang Microsoft Excel.
Sa dili pa maghimo sa among modelo, kinahanglan namon nga i-import ang among dataset. Gamit ang mosunod nga code mahimo nimo kini:
import pandas ingon pd
datos = pd.read_csv('diabetes.csv')
x = data.drop(“Resulta”)
y = data [“Resulta”]
Dinhi among gigamit ang Pandas librarya aron makahimo sa pagmaniobra sa among CSV file data, read_csv() kay usa ka built-in nga function sa Pandas nga nagtugot kanamo sa pagtipig sa mga value sa among file ngadto sa variable nga gitawag og 'data'.
Ang variable x naglangkob sa among dataset nga walay resulta (mga label) nga datos. Among makab-ot kini gamit ang data.drop() function nga nagtangtang sa mga label para sa x, samtang ang y naglangkob lang sa resulta (label) nga datos.
Pagtukod sa Sequential Model
Lakang 1: Pag-import sa mga Librarya
Una, kinahanglan natong i-import ang TensorFlow ug Keras, uban ang pipila ka mga parameter nga gikinahanglan alang sa atong modelo. Ang mosunod nga code nagtugot kanato sa pagbuhat niini:
import tensorflow ingon tf
gikan sa tensorflow import keras
gikan sa tensorflow.keras.models import Sequential
gikan sa tensorflow.keras.layers import Activation, Dense
gikan sa tensorflow.keras.optimizers import Adam
gikan sa tensorflow.keras.metrics import categorical_crossentropy
Alang sa among modelo nag-import kami og mga dasok nga mga lut-od. Kini mga bug-os nga konektado nga mga sapaw; ie, ang matag node sa usa ka layer hingpit nga konektado sa lain nga node sa sunod nga layer.
Nag-import usab kami usa ka pagpaaktibo function nga gikinahanglan alang sa scaling data nga gipadala ngadto sa mga node. Mga Optimizer gi-import usab aron maminusan ang pagkawala.
Si Adan usa ka bantog nga optimizer nga naghimo sa among modelo nga pag-update sa mga kalkulasyon sa node nga mas episyente, kauban ang categorical_crossentropy nga ang matang sa pagkawala function (nagkalkulo sa kalainan tali sa aktuwal ug gitagna label values) nga atong gamiton.
Lakang 2: Pagdesinyo sa Atong Modelo
Ang modelo nga akong gimugna adunay usa ka input (nga adunay 16 ka yunit), usa nga gitago (nga adunay 32 ka yunit) ug usa ka output (nga adunay 2 ka yunit) nga layer. Kini nga mga numero wala gitakda ug magdepende sa hingpit sa gihatag nga problema.
Ang pagtakda sa husto nga gidaghanon sa mga yunit ug mga lut-od usa ka proseso nga mahimong mapauswag sa overtime pinaagi sa praktis. Ang pagpaaktibo katumbas sa klase sa scaling nga among himuon sa among data sa dili pa kini ipasa sa usa ka node.
Ang Relu ug Softmax mga bantog nga mga gimbuhaton sa pagpaaktibo alang niini nga buluhaton.
modelo = Sequential([
Dasok(mga yunit = 16, input_shape = (1,), pagpaaktibo = 'relu'),
Dasok(mga yunit = 32, pagpaaktibo = 'relu'),
Dasok(mga yunit = 2, pagpaaktibo = 'softmax')
])
Ania kung unsa ang hitsura sa summary sa modelo:
Pagbansay sa Modelo
Ang among modelo pagabansayon sa duha ka mga lakang, ang una mao ang pag-compile sa modelo (pagbutang sa modelo nga magkauban) ug ang sunod nga pagpahaum sa modelo sa usa ka gihatag nga dataset.
Mahimo kini gamit ang model.compile() function nga gisundan sa model.fit() function.
model.compile(optimizer = Adan(learning_rate = 0.0001), pagkawala = 'binary_crossentropy', metrics = ['accuracy'])
model.fit(x, y, mga panahon = 30, batch_size = 10)
Ang pagpiho sa sukatan sa 'tukma' nagtugot kanamo nga maobserbahan ang katukma sa among modelo sa panahon sa pagbansay.
Tungod kay ang among mga label anaa sa porma sa 1's ug 0's, mogamit kami og binary loss function aron makalkula ang kalainan tali sa aktuwal ug gitagna nga mga label.
Ang dataset gibahin usab sa mga batch nga 10 (batch_size) ug ipasa sa modelo sa 30 ka beses (mga panahon). Alang sa gihatag nga dataset, ang x mao ang datos ug ang y mao ang mga label nga katumbas sa datos.
Modelo sa Pagsulay Gamit ang mga Prediksyon
Aron sa pagtimbang-timbang sa among modelo, naghimo kami mga panagna sa datos sa pagsulay gamit ang predict() function.
panagna = modelo.tagna(x)
Ug mao kana!
Ikaw kinahanglan nga karon adunay usa ka maayo nga pagsabut sa Maayong Pagkat-on aplikasyon, Neural Networks, kung giunsa nila pagtrabaho sa kinatibuk-an ug kung giunsa paghimo, pagbansay ug pagsulay sa usa ka modelo sa Python code.
Nanghinaut ko nga kini nga panudlo maghatag kanimo sa kickstart sa paghimo ug pag-deploy sa imong kaugalingon nga Deep Learning nga mga modelo.
Ipahibalo kanamo sa mga komento kung ang artikulo makatabang.
Leave sa usa ka Reply