Neuronak programatzen

Roa Zubia, Guillermo

Elhuyar Zientzia

Eragiketa matematikoak egiteko, garuna baino azkarragoa da ordenagailua; milioika kalkulu egin ditzake garuna kalkulatzen hasterako. Baina kalkulu-abiadura ez da makina batean bilatzen den gauza bakarra; egin ditzakeen lan-motek ere badute garrantzia. Ordenagailu batentzat, abstrakzioa eskatzen duen ia edozein lan oso zaila da. Aurpegi bat ezagutzea, adibidez. Zaila bai, baina ez ezinezkoa; ordenagailuak garun baten antzera egiten badu lan, gauzak aldatu egiten dira.
Neuronak programatzen
2007/12/01 | Roa Zubia, Guillermo | Elhuyar Zientziaren Komunikazioa
(Argazkia: G. Roa)

Duela hamabi urte, 1995ean, ordenagailuz gidatutako auto batek Estatu Batuak zeharkatu zituen. Guztira, 9.600 kilometro. No hands across America izena eman zioten abentura hari, helburua eskurik gabe gidatzea zelako. Autoa ez zen gidaririk gabekoa, pertsona batek azeleratzen eta balaztatzen baitzuen. Baina, bi gauza horiek kenduta, beste guztia PANS izeneko nabigazio-plataformak ( Portable Avanced Navigation Suport ) egiten zuen; ordenagailuz, GPSz eta beste hainbat sistemaz osatutako multzo batek. Geroztik, gidaririk gabeko auto robotikoen mundua asko aurreratu da, baina ez hainbeste software-mailan. PANS sistemak integratua zuen softwarearen antzekoak erabiltzen dituzte gaurko auto robotikoek; programa horiei esker, ordenagailuek garun baten funtzionamendua simulatzen dute.

Garunak neuronen bitartez funtzionatzen du, milioika unitate txiki elkarri konektatuta. Banaka, neuronak ez dira oso ahaltsuak; seinale elektriko txikiak jaso, pixka bat aldatu, eta bidali egiten dituzte. Baina, taldeka, neuronak oso ahaltsuak dira, unitate txiki eta sinple horiek sare handi eta sofistikatu batean daudelako antolatuta.

Neurona bakoitzak beste milaka neuronatatik jasotzen ditu seinaleak. Jasotakoaren arabera, seinalea aurrera bidaliko duen ala ez erabakitzen du, eta, erantzuna baiezkoa izatekotan, seinalean eragin eta beste milaka neuronatara bidaltzen du. Funtzionamendu horrek sekulako ahalmena ematen dio neurona-sareari; besteak beste, lan abstraktuak egiten dituzte.

Neurona informatikoak

Ordenagailu batek adimena izan dezan, metodo ezagunetako bat kalkulu-unitate txikien sare bat osatzea da. Normalean, software mailan egiten da, eta neurona-sare deitzen zaio software horri.
G. Roa

Neuronen sarea ordenagailu batez simula daiteke. Kalkulu-unitate txiki asko defini daitezke, eta haien artean konektatu. Haietako batzuei datuak emanda, sarea abiaraz daiteke, eta, irteerako neuronen bitartez, lanaren emaitza jaso. Hain zuzen ere, informatikariek neurona-sare deitzen diete modu horretan funtzionatzen duten programa informatikoei, eta adimen artifizialaren arloan sailkatzen dituzte. Neurona-sareak ez dira adimen artifiziala sortzeko modu bakarra, baina bai garrantzitsuenetako bat.

Adimen artifizialaren definizio gehienetan, argudiatu, arrazoitu, interpretatu, ikasi eta horrelako aditzak azaltzen dira. Kontua da nola egin ditzakeen ordenagailu batek gauza horiek. Jakina, garunak egiten ditu, milioika neuronaren eta konexioren bitartez. Baina horrelako sistema bat ordenagailuan diseinatzea ezinezkoa da, nahiz eta neurona simulatuen kopurua askoz txikiagoa izan. Adibidez, zer egin behar du neurona bakoitzak, sarearen barruan, robot nekazari batek tomateak biltzeko garaia dela jakiteko? Inork ez daki erantzuna, baina horrek ez du axola. Izan ere, neurona-sare informatiko batek 'ez daki' nola egiten den egin behar duen lana. Ikasi egin behar du.

Programatzaileak hasierako egitura bat ematen dio sareari, eta trebatze-fase batean sartzen du. Horretarako, problema bat ematen dio, eta, problemaren planteamenduarekin batera, problemaren soluzio zuzena. Sareak problema aztertu, eta soluzio bat ematen du; informatikariak emandakoarekin alderatzen du, eta neurona bakoitzaren jarduera egokitzen du sare osoak lortzen duen soluzioa zuzenarekin doitzeko. Berriz saiatzen da; programa ondo eginda badago, bigarren saioan gertuago izango dira sarearen soluzioa eta soluzio zuzena. Berriz alderatuko ditu bi soluzioak, berriz egokituko du neuronen lana eta berriz saiatu. Horrela, soluzio zuzena lortu arte.

Ikaste-sistema honek tranpa dirudi, lortu beharko lukeen soluzioa ematen baitzaio. Baina garunak gauza bera egiten du. Gizakiok, adibidez, modu horretan ikasten dugu irakurtzen edo aurpegi bat ezagutzen: behin eta berriz soluzioa ikusi ondoren. Aurpegien ezagutza adibide ona da; ume jaioberriek hilabeteak ematen dituzte gurasoen aurpegiak ezagutzen ikasten, horretarako abstrakzio-maila minimo bat behar baita. Izan ere, sei hilabeteko ume baten aitak edo amak itxuraz aldatzen badu (ilea moztu, adibidez), litekeena da umeak zailtasun handiak izatea haren aurpegia ezagutzeko.

Inputa eta outputa

Testuak eskaneatu eta karaktereak ezagutzen dituen softwarea ohikoa da gaur egun. Neurona-sareetan oinarrituta dago.
G. Roa

Sareari ikasarazteko, azken batean, lanean jarri behar da. Input bat eman behar zaio, datuak sartu. Datu horiek ez dira zuzenean neurona guztietara iristen; gutxi batzuek hartzen dituzte, tratatzen dituzte eta transmititzen dizkiete konektatuta dituzten neuronei. Seinale elektriko baten modura transmititzen dira datuak neuronaz neurona, irteerako neuronetara iritsi arte. Azken neurona horiek output bat ematen dute.

Inputa eta outputa; informatikaren dogma zaharra. Biak dira beharrezkoak. Izan ere, neurona-sarearen nahitaezko osagaiak dira. Sare posible sinpleenak neurona bakarra izango luke, input sinple bat jaso, eta, eraldatuta, output sinple bat emango lukeena. Neurona bakarra eta datu bakarra tratatzeko. Horrelako sare batek ez luke gauza handirik ikasiko. Eragiketa logiko sinpleak egiten ikasteko ere, sare batek neurona gutxi batzuk behar ditu.

XOR izeneko eragiketan, adibidez, bi datu sartzen dira, zeroak edo batak; bi datuak batekoak direnean, eragiketaren emaitza ere bat da, eta, zeroren bat izanez gero, eragiketaren emaitza zero da. Oso eragiketa sinplea da, eta, hala ere, bost neurona behar dira sare batek hori egiten ikasteko: bi neurona inputaren datuak jasotzeko, beste bat azken outputa emateko eta tarteko beste bi neurona.

Geruzak

Neurona-sareen garapen handiena duela hogei urteko ordenagailuekin egin zuten. Orain ere aurrera egiten ari da programazio-mota hori, baina mantsoago.
Artxibokoa

Tarteko neuronak beharrezkoak dira tarteko lanak egiteko. Eta tarteko lan horiek guztiak ez badira antzekoak, lan bakoitza neurona-talde batek egiten du. Horregatik, informatikariek geruzaka antolatzen dituzte. Lehenengo geruzan, inputa jasotzen duten neuronak daude; gero, behar denean, tarteko lehen geruza dago; gero, tarteko hurrengo geruza guztiak, ordenean; eta, bukatzeko, outputa ematen duen neurona-geruza.

Seinaleak bidaia hori egiten du, inputetik outputeraino, konexioen bidez zehaztutako bide batean. Bide zuzena izan daiteke, edo azken geruzetatik hasierakoetara seinalea birbidaltzen duena; konexioen egitura lanaren araberakoa izango da. Eta oso egitura konplexuek oso lan abstraktuak egin ditzakete.

Garunak antzera funtzionatzen du: neurona batzuek jasotzen dute inputa (ikusitakoa, entzundakoa eta abar), neurona-talde jakin batzuk aktibatzen dira lan-mota jakin bakoitzarentzat, eta beste batzuek eragiten dute outputa (erreakzioa). Baina garuna informatikako neurona-sareak baino askoz konplexuagoa da. Besteak beste, neurona- eta konexio-kopurua handitzen ditu ikasten duen heinean, bizitzaren hasieran behintzat.

Saiakuntza eta errorea

Zenbat eta lan abstraktuagoa izan, orduan eta konplexuagoa izan behar du lan hori egiten ikasten duen sareak. Ezinezkoa dirudi, adibidez, inprimatutako letrak (karaktereak) bereizten dituen neurona-sare bat diseinatzea. Baina ohikoak dira sare horiek: OCR sofware deritze. Nola diseinatu zituzten informatikariek? Nola jakin zuten zenbat neurona erabili behar zituzten, zenbat geruzatan antolatu behar zituzten eta zer konexio zehaztu behar zituzten?

Aurpegiak ezagutzea lan abstraktua eta zaila da, bai ordenagailuarentzat, bai eta garun biologikoarentzat ere.
G. Roa

Erantzuna erraza da: hasieran, ez zekiten. Horrelako lanak egiteko, hasierako neurona-sare bat aukeratzen dute, eta ikasarazi egiten diote. Oso litekeena da sareak ezin ikasi izatea, martxan jarritakoan ez geratzea edo zentzurik gabeko emaitzak ematea. Kasu horietan, sarea doitu egiten dute: neuronak gehitu edo kendu, sarea bera berregituratu edo neurona bakoitzak egiten duen eraldaketa aldatu. Eta berriz egiten dute proba.

Azkenean, sarea ikasteko gai denean, prest dago 'mundu errealean' lan egiteko. Eta orduan ere doitu beharko da sarearen lana, ikasketa-prozesua adibide jakin batzuetatik egiten baitute. Eta mundu errealak kasu ezberdin asko izaten ditu.

Neuronen lana eta pertzeptroiak
Garunean, neuronen eginkizuna seinaleak jaso eta igortzea da. Neurona bakar batek milaka seinale jasotzen ditu, iristen zaizkion milaka konexioetatik. Baina seinale horiek guztiek ez dute garrantzi bera neuronarentzat; batzuek eragin handiagoa dute irteerako seinalean beste batzuek baino. Azkenean, eragin guztiak konbinatuta, irteerako seinale bat sortzen du neuronak, eta beste milaka neuronari igortzen die.
(Argazkia: Artxibokoa)
Informatikan, gauza bera. Neurona bakoitzak 'pisu' bat eman behar dio jasotzen duen seinale bakoitzari (pisu hori, ingelesezko weight , irteerako seinalean izango duen eraginaren neurketa bat da). Hain zuzen ere, ikaste-prozesuaren gakoetako bat pisu horiek doitzea da. Funtzio matematikoak dira neurona-sareak arrakasta izan dezan informatikariek landu behar duten faktore nagusietako bat.
Oso sare sinpleetan erraz ikusten da, pertzeptroietan adibidez. Asmatu ziren garaian, pertzeptroiak neurona bakarreko sistemak ziren. Input asko zituzten, baina output bakarra. Izan ere, output hori 0 edo 1 zenbakia zen, inputeko balioen eta balio horien pisuaren arabera. Gerora ikusi zuten pertzeptroiek ikasteko oso ahalmen mugatua zutela. Horregatik, gaur egungo pertzeptroiek neurona gehiago dituzte, geruzatan antolatuta.
Zertarako?
Ordenagailua garun bihurtzeko asko falta zaio informatikari. Duela bi hamarkada arte, ideia iraultzailea izan zen, eta geroztik poliki aurreratu da. Horregatik, neurona-sareak eta adimen artifiziala ez dituzte asko aipatzen gaurko politikari eta enpresari handiek. Hala ere, tokia hartu dute teknologian.
Testuak eskaneatu eta letrak ezagutzen dituen sistema ohiko adibidea da. OCR sistema deitzen zaio, ingelesezko Optical Character Recognition terminotik. Neurona-sare batean oinarritutakoa da. Baina adibideak ez dira ohiko aplikazioetara mugatzen.
(Argazkia: Artxibokoa)
Ikerketan asko erabiltzen da. Proteinen datu kristalografikoak aztertzeko programa asko, adibidez, neurona-sareak dira. Ingeniaritza kimikoan erabiltzen diren sistema konplexuak kontrolatzen dituzten programa asko ere bai; oro har, industriako kontrol-sistema informatizatu asko.
Iragarpenak egiteko erabili izan dira neurona-sareak. Meteorologian eta klimatologian, adibidez, epe motzeko eta luzeko iragarpenak egiteko, hurrenez hurren. Ekonomian, inbertsio-munduan ere bai. Jokoetako iragarpenetan berdin, xakean jokatzen duten programetan adibidez.
Ia edozertan aplika daitezke neurona-sareak. Kasu bitxi bat: ardien elikatze-faseei ordenagailuz jarraitzeko, animalia horien soinuak aztertzen dituen neurona-sare bat egin zuten Australiako ikertzaile batzuek.
Roa Zubia, Guillermo
3
237
2007
12
033
Adimen artifiziala; Programazioa; Softwarea
Artikulua
29
Babesleak
Eusko Jaurlaritzako Industria, Merkataritza eta Turismo Saila