Adimen artifizialak (AI) ospe handia lortu du azken urteotan.
Software-ingeniaria, informatikaria edo, oro har, datu-zientzien zalea bazara, ziurrenik eremu honek eskaintzen dituen irudiak prozesatzeko, ereduak ezagutzeko eta objektuak hautemateko aplikazio harrigarriek intrigatuko zaituzte.
Ziurrenik entzun zenuen AIaren azpieremurik garrantzitsuena Deep Learning da. Eremu honek giza garunaren funtzionaltasunaren arabera eredututako algoritmo indartsuetan oinarritzen da (ordenagailu-programaren argibideak). Neuronen sareak.
Artikulu honetan, Sare Neuronalen kontzeptua aztertuko dugu eta nola eraiki, konpilatu, egokitu eta ebaluatu eredu hauek erabiliz. Python.
Neuronen sareak
Sare neuronalak edo NNak, giza garunaren jarduera biologikoaren arabera modelatutako algoritmo-multzo bat dira. Sare neuronalak nodoz osatuta daude, neurona ere deituak.
Nodo bertikalen bildumari geruza izenez ezagutzen da. Ereduak sarrera bat, irteera bat eta ezkutuko geruza ugari ditu. Geruza bakoitza nodoz osatuta dago, neurona ere deituak, non kalkuluak egiten diren.
Hurrengo diagraman, zirkuluek nodoak adierazten dituzte eta nodoen bilduma bertikalak geruzak. Eredu honetan hiru geruza daude.
Geruza bateko nodoak hurrengo geruzara konektatzen dira transmisio-lerroen bidez, behean ikusten den moduan.
Gure datu multzoa etiketatutako datuek osatzen dute. Horrek esan nahi du datu-entitate bakoitzari izen-balio jakin bat esleitu zaiola.
Beraz, animalien sailkapeneko datu-multzo baterako katuen eta txakurren irudiak izango ditugu datu gisa, 'katua' eta 'txakurra' etiketa gisa.
Garrantzitsua da kontuan izan etiketak zenbakizko balioetara bihurtu behar direla gure ereduak zentzua izan dezan, beraz, gure animalien etiketak "0" bihurtzen dira katuarentzat eta "1" txakurrentzat. Datuak zein etiketak eredutik pasatzen dira.
Ikastea
Datuak aldi berean entitate ereduari elikatzen zaizkio. Datu hauek zatitan banatzen dira eta ereduaren nodo bakoitzetik pasatzen dira. Nodoek eragiketa matematikoak egiten dituzte zati horietan.
Ez duzu tutorial honetarako funtzio matematikoak edo kalkuluak ezagutu behar, baina garrantzitsua da eredu hauek nola funtzionatzen duten jakiteko. Geruza batean kalkulu batzuk egin ondoren, datuak hurrengo geruzara pasatzen dira eta abar.
Amaitutakoan, gure ereduak datuen etiketa aurreikusten du irteerako geruzan (adibidez, animalien sailkapen arazo batean katu baten iragarpena '0' lortzen dugu).
Ondoren, ereduak aurreikusitako balio hori benetako etiketaren balioarekin alderatzen du.
Balioak bat datoz, gure ereduak hurrengo sarrera hartuko du, baina balioak desberdinak badira ereduak bi balioen arteko aldea kalkulatuko du, galera izenekoa, eta nodoen kalkuluak egokituko ditu hurrengoan bat datozen etiketak sortzeko.
Ikaskuntza Sakoneko Esparruak
Sare neuronalak kodean eraikitzeko, inportatu behar dugu Deep Learning esparruak Liburutegiak izenez ezagutzen dira gure Garapen Integratua Ingurune (IDE) erabiliz.
Esparru hauek tutoretza honetan lagunduko diguten aurrez idatzitako funtzioen bilduma dira. Keras esparrua erabiliko dugu gure eredua eraikitzeko.
Keras Python liburutegi bat da, ikaskuntza sakona eta adimen artifiziala izeneko backend bat erabiltzen duena Tentsorflow eredu sekuentzial sinpleen formako NNak erraz sortzeko.
Keras-ek ere erabil daitezkeen eredu propioekin dator. Tutorial honetarako, gure eredua sortuko dugu Keras erabiliz.
Deep Learning esparru honi buruzko informazio gehiago jaso dezakezu Keras webgunea.
Sare neuronal bat eraikitzea (tutoriala)
Goazen Python erabiliz Sare Neuronala eraikitzera.
Arazoen adierazpena
Sare neuronalak AIan oinarritutako arazoetarako irtenbide mota bat dira. Tutorial honetarako eskuragarri dauden Pima Indians Diabetes Datuak aztertuko ditugu hemen.
UCI Machine Learning-ek datu multzo hau bildu du eta Indiako pazienteen mediku erregistroa dauka. Gure ereduak 5 urteko epean pazienteak diabetesa agertzen duen edo ez aurreikusteko du.
Datu multzoa kargatzen
Gure datu multzoa "diabetes.csv" izeneko CSV fitxategi bakarra da, eta erraz manipula daiteke Microsoft Excel erabiliz.
Gure eredua sortu aurretik, gure datu multzoa inportatu behar dugu. Honako kodea erabiliz hau egin dezakezu:
inportatu pandak pd gisa
datuak = pd.read_csv('diabetes.csv')
x = data.drop ("Emaitza")
y = datuak[“Emaitza”]
Hemen erabiltzen ari gara pandas liburutegian gure CSV fitxategiaren datuak manipulatu ahal izateko, read_csv() Pandas-en funtzio integratua da, gure fitxategiko balioak 'data' izeneko aldagai batean gordetzeko aukera ematen diguna.
x aldagaiak gure datu multzoa dauka emaitza (etiketak) daturik gabe. Hori x-ren etiketak kentzen dituen data.drop() funtzioarekin lortzen dugu, y-k emaitza (etiketa) datuak baino ez dituen bitartean.
Eraikuntzaren eredu sekuentziala
1. urratsa: Liburutegiak inportatzea
Lehenik eta behin, TensorFlow eta Keras inportatu behar ditugu, gure eredurako beharrezkoak diren zenbait parametrorekin batera. Kode honek hau egiteko aukera ematen digu:
inportatu tensorflow tf gisa
tensorflow inportazio keras batetik
tensorflow.keras.models inportazio sekuentziala
tensorflow.keras.layers inportaziotik Aktibazioa, trinkoa
tensorflow.keras.optimizers-ek Adam inportatu
tensorflow.keras.metrics-tik inportatu categorical_crossentropy
Gure eredurako geruza trinkoak inportatzen ari gara. Hauek guztiz konektatutako geruzak dira; hau da, geruza bateko nodo bakoitza hurrengo geruzako beste nodo batekin guztiz lotuta dago.
bat ere inportatzen ari gara aktibazioa nodoetara bidalitako datuak eskalatzeko behar den funtzioa. Optimizatzaileak galerak gutxitzeko ere inportatu dira.
Adam ospe handiko optimizatzaile bat da, gure ereduaren eguneratze-nodoen kalkuluak eraginkorrago egiten dituena entropia_kategorikoa hau da erabiliko dugun galera-funtzio mota (etiketako balio errealaren eta aurreikusitakoen arteko aldea kalkulatzen du).
2. urratsa: Gure eredua diseinatzea
Sortzen ari naizen ereduak sarrera bat (16 unitaterekin), ezkutuko bat (32 unitaterekin) eta irteera bat (2 unitaterekin) geruza ditu. Zenbaki hauek ez dira finkoak eta emandako arazoaren araberakoak izango dira guztiz.
Unitate eta geruza kopuru egokia ezartzea praktikaren bidez ordu osagarrietan hobetu daitekeen prozesu bat da. Aktibazioa nodo batetik pasa aurretik gure datuetan egingo dugun eskalatze motari dagokio.
Relu eta Softmax zeregin horretarako aktibazio-funtzio ezagunak dira.
eredua = sekuentziala([
trinkoa (unitateak = 16, sarrera_forma = (1,), aktibazioa = 'relu'),
trinkoa (unitateak = 32, aktibazioa = 'relu'),
trinkoa (unitateak = 2, aktibazioa = 'softmax')
])
Hona hemen ereduaren laburpena nolakoa izan behar den:
Ereduaren prestakuntza
Gure eredua bi urratsetan trebatuko da, lehenengoa eredua osatzea (eredua bateratzea) eta hurrengoa eredua datu multzo jakin batean egokitzea.
Hau model.compile() funtzioa eta ondoren model.fit() funtzioa erabiliz egin daiteke.
model.compile (optimizatzailea = Adam (ikaskuntza_tasa = 0.0001), galera = 'gurutze-entropia_bitarra', metrika = ['zehaztasuna'])
model.fit(x, y, epochs = 30, batch_size = 10)
"Zehaztasuna" metrika zehazteak gure ereduaren zehaztasuna behatzeko aukera ematen digu prestakuntzan zehar.
Gure etiketak 1 eta 0 formakoak direnez, galera-funtzio bitar bat erabiliko dugu benetako eta aurreikusitako etiketen arteko aldea kalkulatzeko.
Datu-multzoa 10eko loteetan banatzen ari da (batch_size) eta eredutik 30 aldiz pasatuko da (garaiak). Datu-multzo jakin baterako, x datuak izango lirateke eta y datuei dagozkien etiketak.
Eredua probatzea Iragarpenak erabiliz
Gure eredua ebaluatzeko, probako datuen iragarpenak egiten ditugu predict() funtzioa erabiliz.
iragarpenak = model.predict(x)
Eta hori da!
Orain ondo ulertu beharko zenuke Deep Learning aplikazioa, Sare Neuronalak, nola funtzionatzen duten orokorrean eta nola eraiki, entrenatu eta probatu eredu bat Python kodean.
Espero dut tutorial honek zure Deep Learning ereduak sortzeko eta zabaltzeko abiarazpena ematea.
Esan iezaguzu iruzkinetan artikulua lagungarria izan den.
Utzi erantzun bat