Erabiltzaile Tresnak


hizk:1:8

Ikasketa automatikoa

Ez da erraza ikasketa automatikoa ondo definitzea. Ikasketa “ikastearen ekintza eta ondorioa; bereziki ezagutzak handiagotzeko buru-ahalmenen ahalegina” bada, nola definitu ba ikasketa automatikoa? Alde praktikotik ikusita, esan daiteke ezagutza modu automatikoan eskuratzea dela, makinaren bidez ikastea, alegia. Ikasketa prozesu bat burutzeko, helburu bat izan behar da, hau da, garbi eduki behar da zer ikasi nahi dugun, eta hori lortzeko metodologia bat, nondik ikasi nahi dugun eta nola ikasi nahi dugun. Makina edo konputagailu batek ezagutza lortzeko sarrera gisa datu-multzoak behar ditu, horiek aztertu eta ondorioak ateratzeko. Horretarako programak edo algoritmoak erabiliko ditu. Programa hauek sarrerako datuak jaso, bertan aurkitzen den informazioa orokortu, eta helburu gisa duen arazoari irtenbidea emateko “esperientzian” oinarritutako erabakiak hartuko lituzkete.

Hizkuntzalaritza konputazionalari buruz ari garelarik, bi hurbilpen nagusi bereiztu izan dira: erregeletan oinarritutakoa eta datuetan oinarritutakoa. Lehenbizikoaren kasuan hizkuntzalariak erregelak idatzi ohi ditu eredu formal batean eta algoritmo batek erregela horiek interpretatuko ditu. Adibidez, hizkuntzalariak euskararen erregela sintaktikoak deskribatuko lituzke (perpausa → izen_sintagma aditz_sintagma), eta algoritmo batek (analizatzaile sintaktiko deiturikoak) halako erregela multzo zabalaren arabera “gaua da” bezalako perpausaren egitura itzuliko luke, hau da, izen sintagma eta aditz sintagmaz osatutako perpausa zuzena dela. Hurbilpen hau arrazionalismoa deritzon korronte filosofikoari lotuta legoke.

Bigarren kasuan, datuetan oinarritutako hurbilpena genuke, enpirismoari lotuago legokeena, eta ikasketa automatikoaz baliatzen dena. Kasu honetan hizkuntzalariak datuak etiketatzen ditu, eta ikasketa automatikoan oinarritutako algoritmoak datu horiek aztertu, erregelak induzitu, eta datu berriak erregela horien arabera interpretatuko lituzke. Adibidez, hizkuntzalariak “gaua da” esaldiaren egitura zehaztuko luke (izen sintagma eta aditz sintagmaz osatutako perpausa) eta ikasketa automatikoan oinarritutako algoritmo batek halako hainbat esaldi aztertu eta erregelak induzituko (ikasiko) lituzke.

Bi hurbilpen hauen arteko tentsioan bolada ezberdinak egon dira hizkuntzalaritza konputazionalaren historian, baina azken aldian datuetan oinarritutako hurbilpenak gailentzen ari dira. Laurogeigarren hamarkadan ahotsaren ezagutza edo kategoriaren desanbiguazioan gailentzen hasi baziren ere, urteak joan hala etiketatuko corpusak hedatu dira, eta hizkuntzaren prozesamenduko maila gehienetan gailentzen ari dira, hara nola ahotsaren trataeran, sintaxian, semantikan eta pragmatikan ere, baita ere itzulpen automatikoa eta informazioaren berreskuratzean ere.

Ikasketa automatikoaren arrakastaren muinean, erregelekiko duen abantaila dago. Alde batetik, datuetatik hedatzen duenez naturalki daki zein fenomeno diren usuak eta zein arraroak. Erregelak aldiz, maila berean egon dira denak, usu aplikatzen direnak eta arraroagoak. Bestalde, hizkuntzaren anbiguotasunaren aurrean, erregelek gaitasun gutxi dute erregelen artean aukerak egiteko. Adibidez, GPSG deritzon hurbilpen gainean garatutako Ingelesaren gramatikako erregelen arabera, 10 hitzeko esaldi arrunt batek, 1000 analisi ezberdin baino gehiago onartzen zituen. Ikasketa automatikoak aldiz, datuak zuzenean aztertu, desanbiguaziorako gakoak ikasi, eta analisia egiten duen heinean desanbiguazio erabakiak hartu ohi ditu. Honela, 10 hitzeko esaldi arrunterako milaka analisi posible sortzeko gai dira ikasketa automatikoan oinarritutako analizatzaile sintaktikoak, baina guzti horiek probabilitatearen arabera ordenatu, eta egokiena aukeratzeko gaitasuna dute.

Ondoren ikasketa automatikoaren jana diren corpusak azalduko ditugu. Jarraian, corpus horiek baliatzeko modu nagusiak ikusiko ditugu: gainbegiratuak eta ez-gainbegiratua. Bukatzeko metodologia eta ebaluazioari buruz jardungo gara.

Corpusa

Esan dugun bezala, ikasketa automatikoa aplikatzeko sarrerako datu multzo bat behar da algoritmoek datu horietatik ikas dezaten. Hizkuntzalaritza konputazionalaz ari garenez, datu sorta hori testuz osatu ohi da, eta corpus deitzen diogu.
Corpusaren balioa bi alderdiren inguruan eman ohi da: alde batetik corpus horri gehitu zaizkion marka linguistikoak, eta bestetik corpus horren tamaina. Marka linguistikorik ez duen corpusa, erabilgarria bada ere, lema, kategoria, egitura sintaktiko eta abarrez markatuta dagoen corpusak baino balio gutxiago izango du. Tamaina ere garrantzitsua da, hau da, corpus handiago batek balio gehiago izango du, batez ere kontuan izaten badugu ikasketa automatikoaren algoritmoak datuak jaten dituztela, eta geroa eta datu gehiago emaitza hobeagoak.

Nahiz eta corpusean ez egon inongo markaketarik, ikasketa ez-gainbegiratua deritzona gai da horietatik informazio baliagarria ikasteko, hara nola domeinu jakin bateko terminoak, edo hitzen agerkidetzak, edo berri multzo erlazionatuak. Dena den, metodo gainbegiratuak dira erabilienak. Gainbegiratuak deritze gizakiak gainbegiratzen duelako (markaketa linguistikoen bidez) ikasi beharrekoa.

Euskararako badira hainbat corpus.

Ikasketa ez-gainbegiratua

Ikasketa ez-gainbegiratua ikasketa automatikoaren atal bat da. Bere ezaugarri nagusia aurrezagutzarik gabeko ikasketa dela da, hau da, etiketatu gabeko corpus batean oinarrituta, sistema gai da bertatik ezagutza ondorioztatzeko. Metodo horien adibiderik erabilienetakoa multzokatzea (clustering) da.

Multzokatze sistemetan, adibideak ezaugarri multzo bateaz definituta daude, baina haien klasea adierazten duen etiketarik ez dute. Horrela, multzokatze-algoritmoen helburua adibideen artean multzoak edo taldeak egitea izango da, haien ezaugarrien arteko loturak edo antzekotasuna neurtuz.

Hizkuntza naturalaren prozesamenduan, ikasketa ez-gainbegiratua hainbat atazatan aplika daiteke, dokumentuen multzokatzea, terminoen erauzketa, analisi sintaktikoa, itzulpen automatikoa, eta abar. Sistema horien funtzionamendua hobeto ulertzeko dokumentuen multzokatzea azalduko dugu adibide gisa. Helburua corpus bateko antzeko testuak bilatzea izango da, horretarako antzekotasun neurriren bat (kosinu antzekotasuna edo euklidestarra) erabiliko da. Neurri hauek testuen ezaugarriak izango dituzte kontuan, eta emaitzen arabera, multzo batean edo bestean kokatuko da dokumentua.

Ikasketa gainbegiratua

Ikasketa gainbegiratua egiteko, lehenbizi datuak ikasi nahi den informazioaz etiketatu behar dira. Adibidez, analisi sintaktikoa egiten ikasi nahi badugu, lehenbizi corpus bateko esaldiak beraien zuhaitz sintaktikoez etiketatu behar ditugu. Ikasketa gainbegiratua egiten duen algoritmo batek, orduan, corpus horretatik ikasiko luke esaldi berriei dagozkien zuhaitz sintaktikoak automatikoki egiten. Gaur egungo prozesatzaile linguistiko gehienak ikasketa automatiko gainbegiratua dute gunean, hala nola esaldi mugak jarri, hitzen kategoria desanbiguatu, entitateak markatu eta sailkatu, analisi sintaktikoa egin, rol semantikoak desanbiguatu, hitzen adierak desanbiguatu, anaforak eta koreferentziak ebaztu, eta diskurtsoaren egitura markatu.

Adibide bat: Testu sailkapena

Lengoaia naturaleko testuak etiketatzeko edo sailkatzeko prozesua aurredefinitutako kategoria-sistema baten arabera. 80. hamarkadara arte sailkatzaile automatikoak eskuz egiten ziren (sistema adituak), hau da, erregelak definituz.
90. hamarkadan, hardware-aren ahalmenari esker, ikasketa automatiko gainbegiratua erabiltzen hasi zen ataza honentzat, eta orain oso emaitza onak lortzen dira.
Sailkapen prozesua, dokumentuei kategoriak esleitzean datza. Kategoriak aurrez definitutako etiketak dira eta dokumentuak sailkatu beharreko testuak. Ikasi ahal izateko, ikasketa algoritmoak eskuz sailkatutako dokumentuak behar ditu. Oro har, dokumentuak osatzen dituzten hitzak dira sailkapenean erabiltzen diren ezaugarriak, eta horrelakoetan dokumentua hitz multzo bat balitz bezala tratatzen da.
Testu sailkapena hainbat alorretan da erabilia:

  • Interneteko direktorioetan edo katalogoetan web orriak automatikoki sailkatzeko.
  • Berri agentzietan, artikuluak dagozkien ataletan kokatzeko (politika, kultura, kirola, …)
  • Dokumentuak iragazteko, adibidez posta elektronikoan hainbeste azaltzen diren zabor-mezuak (spam) baliozko mezuetatik automatikoki bereizteko

Metodologia

Ohikoa da hasieran daukagun corpusa hiru zatitan banatzea prozesu osoari aurre egiteko. Zati handiena sailkatzailea entrenatzeko (entrenatzeko corpusa edo training set), beste zati bat algoritmoen parametroak doitzeko (garapenerako corpusa edo development set), eta azkeneko zatia, lortu dugun sailkatzailea ebaluatzeko (ebaluaziorako corpusa edo testing set).

Entrenatzeko corpusa (train)

Corpus osoaren zati handi bat, % 75 - % 80 inguru, erabiltzen da entrenatzeko. Bertatik ikasi behar du sistemak, beraz, garrantzitsua da entrenatzeko zatian ahalik eta kasu gehien, ahal izanez gero denak, agertzea. Sistema batek entrenatzeko corpusean aurkitzen ez duena ezingo du ikasi, eta ikusi ez duen kasu berri bat datorkionean ezingo du emaitza zuzenik eman.
Demagun sistema bat egin nahi dugula egunkari bateko berriak sailkatzeko hainbat kategorietan. Entrenatzeko daukagun corpusean kategoria bateko artikulu edo berririk ez badago, sistemak ez du jakingo zein ezaugarri dituzten kategori horretako berriek, eta ondorioz, horrela lortutako sailkatzaileak ezingo du ondo sailkatu mota horretako artikulurik.
Hori dela eta, corpusaren banaketa egiterakoan, inportantea da kategoria guztietako instantzia edo adibideak hartzea. Saiatu behar dugu kategori bakoitzeko dagoen adibide kopuruaren proportzioa mantentzen, hau da, 1000 dokumentuko corpus bat badugu, eta horietako 600 (% 60a) k1 kategoriakoak badira eta beste 400 (% 40a) k2-koak badira, entrenamendu corpusa antolatzeko orduan, guztira 800 dokumentu hartuko ditugu, % 80a, baina bi kategorien proportzioak mantenduz, hau da 480 dokumentu (% 60a) k1 kategoriakoak eta 320 dokumentu (% 40a) k2 kategoriakoak. Dokumentuak ausaz aukeratzen dira.

Garapenerako corpusa (development)

Entrenamendua egin eta gero, komenigarria de algoritmoen parametroak ondo doitzea, eta horretarako, corpusaren zati bat erabiltzen da. Zati honi garapenerako corpusa deituko diogu. Normalean, zati hau entrenamendurako corpusetik hartzen da (% 10a) eta ez da erabiltzen hasierako ikasketa fasean. Lehenengo entrenamendua egin eta gero, zatitxo honetan probatzen da eta emaitzen arabera, algoritmoaren parametroak egokitzen dira. Prozesu hau hainbat aldiz errepika daiteke testa fasera pasa aurretik. Sistema egokia dela erabakitzen denean, testerako corpusa erabil daiteke azken ebaluazioa egiteko.

Testerako corpusa (test)

Entrenatzeko eta garapenerako corpusekin sailkatzailea sortu eta gero, jakin behar da sailkatzaile hori zein ona den, hau da, ze estaldura edo zehaztapen lortzen dugun sortu dugun sistemarekin. Hori dela eta, jatorrizko corpusaren gainerako zatia, hau da, entrenatzeko erabili ez duguna, % 20 - % 25a, sistema testatzeko edo probatzeko erabiltzen da. Corpusaren zati honetan adibide edo instantzia bakoitzak kategoria ere definituta izango du, baina sailkatzaileak ez du kategoria hori kontuan izaten iragarpena egiteko, baizik eta, ikasitakoan oinarrituz emango du bere ustez instantzia bakoitzari dagokion kategoria. Gero, sailkatzaileak iragarritako kategoriak errealekin konparatzen dira eta emaitzak ateratzen dira, asmatze-tasak eta bestelako neurriak kalkulatuz.

Cross-validation

Ikasketa automatikoko teknikak aplikatzeko beharrezkoa da, abiapuntu gisa, corpus egituratu eta tamaina handikoa izatea. Zenbat eta handiago izan corpusa, orduan eta ikasketa zabalagoa egiteko aukera izango dugu eta, ondorioz, sistema hobea lortuko dugu.
Askotan ordea errealitatea beste bat da, eta corpusak txikiak izaten dira. Horrelakoetan, ikasteko % 75 edo % 80a erabili behar badugu, gerta daiteke informazio nahikorik ez izatea ezagutza corpusetik lortzeko. Hori dela eta, entrenamendurako eta testerako corpusa zatitzeko orduan, beste aukera bat ere badago. Aukera honi cross-validation esango diogu.
Ideia da corpusa antzeko tamaina duten k zatitan banatzea; gero, k aldiz egiten da entrenamendu fasea, aldi bakoitzean k-1 datu-multzo erabiliz eta kanpoan utzi den datu-multzoa testerako erabiliz. Horrela eginez gero, guztira k sailkatzaile ditugu. Sailkatzaile hauek konbinatu daitezke emaitza bakarra emateko.
Ohikoa da 10 multzoko cross-validation erabiltzea.

Ebaluazioa

Sailkapen prozesuetan, askotan ez da erraza izaten sistemen arteko konparaketa garbiak egitea. Demagun 100 dokumentu dauzkagula sailkatzeko. Horietatik 60 k kategoriakoak dira eta gainerako 40ak ez. Sailkatzaile batek (S1) 45 dokumentu k kategorikoak direla esaten du eta horietatik, 35ean asmatzen du. Bigarren sailkatzaile batek (S2) 65 dokumentu k kategorikoak direla esaten du eta horietatik 40an asmatzen du. Datu hauei erreparatuz esango genuke S2 S1 baino hobea dela, edo behintzat, gehiagotan asmatzen duela (40 S2k eta 35 S1ek). Baina aztertuko bagenu zer gertatzen den hutsegiteekin ikusten dugu S1ek 10 kasutan esan duela k kategorikoak direla dokumentuak horrela izan gabe, eta S2k berriz, 15 kasutan egin du hori. Hau ikusita esango genuke S2k S1ek baino gehiagotan huts egiten duela. Beraz, zein da sailkatzaile hobea? Galdera honi erantzuteko jakin beharko genuke zer den lortu nahi duguna, eta horren arabera erabaki. Hau dela eta, sailkapen sistemak ebaluatzeko zenbait neurri definitu izan dira, eta horiek azalduko dira ondoko definizioetan.

Nahasmen-matrizea (Confusion-matrix)

Klase anitzeko iragarpenetan test multzoaren gainean lortutako emaitzak azaltzeko erabiltzen den bi dimentsiotako matrizea.
Bi kategoriatako iragarpenetan, kategoriak bai eta ez motakoak direnean, lau dira emaitza posibleak. True positive (TP), instantzia baten kategoria erreala eta iragarpena bat datozenean. True negative (TN), instantziaren iragarpenean kategoria ez dagokiola esan bada eta horrela bada. False positive (FP), iragarpena kategoriakoa dela esan bada eta iragarpena okerra bada. Eta false negative (FN) iragarpenean kategorikoa ez dela esan bada eta benetan kategoriakoa bada. Lehenengo bi aukerak TP eta TN emaitza zuzenak dira, besteak berriz okerrak.
Matrizeak bi errenkada izango ditu, kategoria errealei dagozkienak, eta bi zutabe, iragarritako kategoriei dagozkienak. Osagai bakoitzak test multzoko instantzia kopuru bat adieraziko du, kategoria erreala eta iragarritakoaren arteko erlazioa erakutsiz. Honela beteko litzateke matrizea:

Kategoria Errealitatea
Bai Ez
Iragarritakoa Bai TP FP
Ez FN TN

Adibidea: Demagun 100 dokumentu dauzkagula sailkatzeko. Horietatik 60 k kategoriakoak dira eta gainerako 40ak ez. Sailkatzaile batek (S1) 45 dokumentu k kategoriakoak direla esaten du eta 55 ez direla. 45 horietatik, 35 bai dira benetan k kategoriakoak, hots, true positive dira (TP=35), baina beste 10ak ez dira, hau da, false positive dira (FP=10). Ezezkoa esan duen 55 horietatik, 25 k kategoriakoak dira, false negative (FN=25) eta gainerako 30ak ez dira, true negative (TN=30). Sailkapen honi dagokion nahasmen-matrizea honako hau da:

k kategoria Errealitatea
Bai Ez
S1 sailkatzailea Bai 35 10
Ez 25 30

Bi kategoria baino gehiago badira, matrizean kategoria bakoitzeko errenkada eta zutabe bana daude. Matrizeko osagai bakoitzak testeko instantzia kopuru bat adierazten du, non kategoria erreala da errenkadari dagokiona eta iragarritako kategoria da zutabeari dagokiona.
Emaitza onak lortzen dira diagonal nagusian kopuru altuak daudenean eta gainerako elementuak (diagonal nagusitik kanpo) kopuru txikiak edo zeroak direnean.

Doitasuna (precision)

Dokumentu bat k kategorian sailkatu bada, erabaki hau zuzena izatearen probabilitatea, hau da, Pr = TP / (TP + FP).
Aurreko adibidea hartzen badugu, 0,77ko doitasuna lortzen dugu (Pr = 35/(35+10))

Estaldura (recall)

Dokumentu bat k kategorikoa bada, horrela sailkatu izanaren probabilitatea, hots, Re = TP / (TP + FN).
Aurreko adibidea hartzen badugu, 0,538ko estaldura lortzen dugu (Re = 35/(35+30))

F neurria (F-measure)

Askotan, aurreko bi neurriak (Pr eta Re) erabiltzen badira bi sistema konparatzeko, lortzen diren emaitzak ez dira erabakigarriak, eta neurri bakarra izateak lagundu dezake erabakiak hartzen. Doitasun eta estalduraren arteko bataz-besteko harmonikoa da F neurria, hots, F = 2 • Pr • Re / (Pr + Re)
Aurreko adibidea, F = 2 • 0,77 • 0,538 / (0,77 + 0,538) = 0,6334

Demagun beste sailkatzaile bat dugula, S2, ondoko nahasmen-matrizearekin:

k kategoria Errealitatea
Bai Ez
S2 sailkatzailea Bai 40 25
Ez 20 15

Pr(S2) = 0,61 eta Re(S2) = 0,72
F-measure (S2) = 2 • 0,61 • 0,72 / (0,61 + 0,72) = 0,6604

Kontuan izan, doitasun eta estaldura kontuan izanez gero, zaila dela esatea zein den sistema onena; egia da kategoria esleitzerakoan S2k gehiagotan asmatu duela, baina, bestalde, kategoriakoak ez direnen artean okerrago ibili da. Esan dezakegu lehenengo sailkatzailea zehatzagoa dela, baina baiezko gutxiago lortzen ditu. Bigarrenak berriz, estaldura handiagoa du, baiezko gehiago topatzea lortzen du. F neurria erabiltzerakoan ordea, ikusi daiteke, oro har, S2 S1 baino zertxobait hobea dela.

Zehaztasuna (Accuracy)

Asmatze-tasa orokorra definitzeko balio du. Errealitatean eta iragarpenean bat datozen balio guztiak (true positive eta true negative) hartzen ditu kontuan.
Zehastasuna = TP + TN / (TP + TN + FP + FN).
Oro har, F-measure neurria baino balio altuagoa ematen du.
S1 sailkatzaileari dagokion adibidea hartzen badugu, 0,65 balioa lortzen dugu (35+30)/100

lanaren aipamena nola egin...

Euskara Institutua, EHU, "Ikasketa automatikoa", Sareko Euskal Gramatika (SEG), www.ehu.eus/seg
ISBN: 978-84-693-9891-3