Neuronak programatzen
2007/12/01 Roa Zubia, Guillermo - Elhuyar Zientzia Iturria: Elhuyar aldizkaria
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
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
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
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?
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.
Gai honi buruzko eduki gehiago
Elhuyarrek garatutako teknologia