105
UNIVERSITATEA BABEŞ-BOLYAI CLUJ-NAPOCA FACULTATEA DE MATEMATICǍ ŞI INFORMATICǍ SPECIALIZAREA INFORMATICĂ LUCRARE DE LICENȚĂ ÎNVĂȚAREA BAYESIANĂ Conducător ştiinţific Prof. univ. dr. Czibula Gabriela Absolvent Bianca Cristina Drăgoescu

Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

UNIVERSITATEA BABEŞ-BOLYAI CLUJ-NAPOCA

FACULTATEA DE MATEMATICǍ ŞI INFORMATICǍ

SPECIALIZAREA INFORMATICĂ

LUCRARE DE LICENȚĂ

ÎNVĂȚAREA BAYESIANĂ

Conducător ştiinţificProf. univ. dr. Czibula Gabriela

Absolvent Bianca Cristina Drăgoescu

2015

Page 2: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

CUPRINS

INTRODUCERE........................................................................................................................4

1. TEHNICI DE ÎNVĂȚARE AUTOMATĂ ÎN INTELIGENȚA ARTIFICIALĂ...............5

1.1. Inteligența artificială....................................................................................................5

1.2. Introducere în învățarea automată................................................................................6

1.3. Module generice ale unui sistem care învață...............................................................7

1.4. Tipuri de învățare automată..........................................................................................8

1.5. Probleme care pot apărea în învățarea automată..........................................................9

1.6. Aplicații ale învățării automate..................................................................................10

2. ÎNVĂȚAREA BAYESIANĂ............................................................................................13

2.1. Teorema lui Bayes......................................................................................................14

2.2. Abordări ale ipotezei cu probabilitatea maximă........................................................16

2.3. Clasificatorul optimal Bayes......................................................................................19

2.4. Clasificatorul naiv Bayes...........................................................................................20

2.5. Rețelele Bayesiene.....................................................................................................22

2.5.1. Deducția în rețelele Bayesiene............................................................................24

2.5.2. Învățarea Rețelelor Bayesiene.............................................................................26

2.5.3. Regula Gradientului Ascendent în Rețelele Bayesiene......................................27

2.5.4. Algoritmul Expectation-Maximization...............................................................28

3. DOMENII DE APLICARE ALE ÎNVĂȚĂRII BAYESIENE.........................................31

3.1. Recunoașterea expresiilor faciale și a emoțiilor.........................................................31

3.2. Recunoașterea vizuală a gesturilor.............................................................................32

3.3. Clasificarea plantelor și a animalelor pe baza MicroARN-ului.................................34

3.4. Optimizarea deciziilor pentru tratamente...................................................................34

3.5. Proiectarea produselor alimentare..............................................................................36

3.6. Clasificarea imaginilor satelitare................................................................................37

3.7. Clasificarea solurilor agricole....................................................................................38

3.8. Procesarea limbajului natural.....................................................................................39

4. APLICAȚIA PRACTICĂ.................................................................................................40

2

Page 3: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

4.1. Enunț..........................................................................................................................40

4.2. Analiză și proiectare...................................................................................................40

4.3. Implementare..............................................................................................................47

4.4. Manual de utilizare.....................................................................................................54

4.5. Rezultate obținute.......................................................................................................60

4.6. Extinderi posibile.......................................................................................................64

CONCLUZIE............................................................................................................................66

BIBLIOGRAFIE.......................................................................................................................67

3

Page 4: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

INTRODUCERE

În ultimul timp, datorită evoluției rapide a tehnologiei, ființa umană a început să conștientizeze tot mai mult necesitatea unor sisteme inteligente, care să îi poată ușura alegerile din viața de zi cu zi. În această direcție, au fost descoperite o multitudine de concepte, de mecanisme capabile să imite într-o oarecare măsură inteligența umană.

În lucrarea de față, se dorește evidențierea conceptului de Învățare Bayesiană, în raport cu încadrarea sa în domeniul Inteligenței Artificiale, mai exact în domeniul Învățării Automate. Acest concept reprezintă o metodă de inferență probabilistică, reușind prin simplitatea sa, în anumite cazuri, să egaleze, sau chiar să surclaseze performanța altor algoritmi de învățare automată considerați puternici și robuști, precum rețelele neuronale, mașinile cu suport vectorial sau arborii de decizie.

Vom începe prin prezentarea tehnicilor de învățare automată în Inteligența Artificială. Acest prim capitol are rolul de a ne obișnui cu elementele esențiale ale acestui domeniu și de a ne oferi o perspectivă de ansamblu, o introducere în ceea ce înseamnă conceptul de învățare în termeni informatici.

În cel de-al doilea capitol, vom detalia raționamentul Bayesian, prin prezentarea teoremei lui Bayes, ilustrarea diverselor abordări ale ipotezei cu probabilitatea maximă, precum și prin explicarea metodelor de învățare Bayesiană. Ne vom axa în special pe Clasificatorul optimal Bayes, Clasificatorul naiv Bayes și Rețelele Bayesiene, evidențiind pe lângă aspecte teoretice concrete și eventuale îmbunătățiri care pot fi aduse, respectiv eventuale aplicații practice ale acestora.

Învățarea Bayesiană a fost abordată în foarte multe domenii, în special în acelea care fie erau instabile, fie necesitau un timp de execuție scurt, ori nu aveau posibilitatea de a oferi un set de informații inițiale consistent, obținând rezultate foarte bune.În vederea ilustrării acestor caracteristici, vom aborda ca tematică pentru capitolul al treilea mai multe domenii de aplicare a metodelor de învățare Bayesiană.

În final, în ultimul capitol vom prezenta o aplicație menită să ilustreze capacitățile clasificatorului naiv Bayes aplicat pentru categorizarea documentelor textuale. Sistemul de față va oferi utilizatorului un set complet de funcționalități, alături de o interfața grafică prietenoasă și ușor de utilizat și nu în ultimul rând o performanță ridicată, menită să ofere siguranța utilizării.

4

Page 5: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

1. TEHNICI DE ÎNVĂȚARE AUTOMATĂ ÎN INTELIGENȚA ARTIFICIALĂ

1.1. Inteligența artificială

Ființa umană, după cum bine știm, are o înclinare aparte către descoperirea diverselor modalități de înțelegere și perpetuare a conceptului de inteligență. Întrucât capacitățile noastre psihice sunt cele care ne ajută să relaționăm cu celelalte persoane din cadrul societății în care trăim, este normal să încercăm în permanență să ne dezvoltăm această latură definitorie pentru noi.

În această direcție, a apărut și inteligența artificială, având ca scop principal înțelegerea entităților inteligente. Spre deosebire de psihologie și filozofie, care de asemenea își îndreaptă studiile către înțelegerea raționamentului uman, inteligența artificială se laudă și cu posibilitatea de creare a unui astfel de sistem inteligent, care să fie capabil să își soluționeze singur problemele care i-au fost atribuite într-o manieră inteligentă, fără intervenția directă a factorului uman.

Desigur, această abordare a fost privită cu reticență de către cercetători înainte de primele rezultate satisfăcătoare obținute și considerată aproape imposibil de realizat. Era foarte greu de acceptat ideea că un anumit mecanism, lipsit de stări emoționale va fi vreodată capabil să perceapă, să înțeleagă și să manipuleze o lume infinit mai mare și mai complexă decât el insuși.

Totuși, știința a evoluat rapid, într-o ascensiune exemplară și ne-a dezvăluit faptul că orice este posibil dacă ne străduim suficient de mult. Au fost necesari 2000 de ani de tradiție în filozofie (pentru înțelegerea diverselor teorii ale gândirii și învățării), 400 de ani de cercetare matematică (pentru dobândirea conoștințelor corespunzătoare logicii, probabilisticii, luării deciziilor și calculelor), cunoștințe din domeniul psihologiei (pentru investigarea minții umane), cunoștințe din domeniul lingvisticii (pentru structurarea și înțelegerea limbajului natural) și nu în ultimul rând de informatica clasică, pentru ca acest domeniu de studiu să devină realitate [16].

Inteligența artificială a prins contur, iar acum este un domeniu vast, care își așteaptă noi descoperitori. Cuprinde o varietate foarte mare de sub-domenii, pornind de la percepție și raționament logic, până la rezolvarea unor probleme specifice precum jocul de șah, dezvotarea unor teoreme matematice, sau chiar diagnosticarea pacienților cu o anumită boală.

5

Page 6: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

1.2. Introducere în învățarea automată

Învățarea, precum inteligența, acoperă o gamă variată de procese pe care nu le putem defini concret, luând în cosiderare multiplele păreri subiective ale specialiștilor în domeniu. Totuși, în limite largi, putem spune că un sistem învață ori de câte ori își modifică structura, modul de programare, sau informațiile deținute (fie că ne referim la datele de intrare ale problemei, ori la rezultatul obținut), cu scopul de a obține îmbunătățiri ale performanței pe viitor.

Cu siguranță că există asemenea modificări pe care nu le-am putea include în categoria unor sisteme care învață, precum modificarea structurii unei baze de date. Dacă ne referim însă la îmbunătățirea performanțelor unui sistem care joacă șah după ce a exersat de mai multe ori cu un alt sistem, sau cu o persoană, oferirea titlului de sistem capabil să învețe este oarecum justificată.

De cele mai multe ori, problemele asociate învățării automate [14] sunt strâns legate de domeniul inteligenței artificiale și implică recunoaștere, diagnoză, planificare, controlul roboților, predicție, șamd. Pentru a exemplifica această conexiune, prezentăm urmatoarea schemă ce evidențiză arhitectura unui agent inteligent [14]:

După cum se poate observa, un agent percepe și modelează mediul înconjurător pentru determinarea acțiunilor potrivite, prin anticipare efectelor acestora. Modificările făcute

6

Perceptie

Sistem

Comportament

Planificare și raționament

Semnale senzori

Acțiuni

Funcții țintă

Page 7: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

oricărei componente din figură determină învățarea sistemului, iar alegerea mecanismului de învățare care trebuie adoptat într-o anumită situație se face în funcție de subsistemul care suferă schimbări.

Desigur, pe lângă faptul că această ramură a inteligenței artificiale este foarte interesantă, captivantă și provocatoare, atât din punct de vedere psihic, cât și tehnologic, există câteva motive bine puse la punct conform cărora necesitatea studierii ei este clară:

Uneori, cerințele problemei nu pot fi definite cu exactitate, în sesul că putem preciza perechi de tipul: intrări/ieșiri, însă nu putem găsi o relație concretă între cele două. Avem nevoie de sisteme care să își poată ajusta structura internă, în vederea determinării unor rezultate corecte, pentru un număr consistent de date de intrare și care să poată determina funcții de aproximare a acestei relații.

Diverse metode de învățare pot fi folosite pentru a extrage informații importante din cadrul unor seturi foarte mari de date (data mining [14]).

Uneori, oamenii produc sisteme care nu se mulează perfect pe arhitectura mediului în care sunt utilizate, tocmai datorită faptului ca în etapa de producție sunt omise anumite specificații. Învățarea automată ar putea elimina aceste probleme, prin posibilitatea îmbunătățirii sistemului în funcție de factorii externi.

Întrucât cunoștințele unei ființe umane sunt limitate, anumite probleme ar putea depăși puterea de înțelegere și decizie a acesteia. Un sistem auto-instruibil ar putea însă în timp, să depășească această limitare a creierului uman și chiar să găsească soluții.

Tehnologia se află într-o continuă ascensiune, fiind direct proporțională cu numărul de descoperiri făcute, cantitatea de cunoștințe acumulate și cu schimbările majore care apar constant atât din punct de vedere al tehnologiei, cât și al mediului în care trăim. Redesign-ul constant al sistemelor inteligente este astfel impractic. Învățarea automată ar putea totuși să determine urmărirea continuă a modificărilor care apar și găsirea unor modalități de a ține pasul cu acestea.

1.3. Module generice ale unui sistem care învață

Pentru caracterizarea conceptului de învățare automată, au fost definite 4 module generice, care vor fi prezentate succint în cele ce urmează. Totuși, această clasificare nu se pretează oricărui tip de algoritm de acest fel, fiind menită să ofere o percepție largă asupra materializării îvățării.

Modulul de performanță are rolul de a îmbunătăți performanța sistemului pe baza funcțiilor țintă învățate. Preia o instanță nouă a problemei ca dată de intrare și produce ca rezultat succesiunea stărilor obținute până la soluționarea problemei [13].

Modulul critic preia ca date de intrare istoricul stărilor și obține ca rezultat un set de date de antrenament pentru funcția țintă. Astfel, fiecărei instanțe din cadrul setului de

7

Page 8: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

antrenament îi este asociată o anumită stare a sistemului, alături de aproximarea valorii funcției țintă corespunzătoare [13].

Modulul de generalizare are rolul de a descoperi o funcție generală de acoperire a tuturor cazurilor prevăzute în setul de antrenament și care să poată pe cât posibil să identifice și posibile apariții ale unor situații încă neîntâlnite [13].

Modulul de generare a unor experimente noi are rolul de a prelua funcția învățată anterior, în vederea găsirii unei noi probleme care să fie atribuită sistemului de performanță. Alegerile trebuie făcute astfel încât rata de învățare a sistemului să fie maximizată constant [13].

1.4. Tipuri de învățare automată

Pentru a reduce această abstractizare și generalizare a mecanismului de învățare automată, au fost concepute mai multe clasificări, în funcție de caracteristicile luate în considerare. Astfel că, referindu-ne la modul de inițiere al algoritmului de învățare precum și la feedback-ul obținut în urma rulării acestuia, mașinile auto-instruibile folosesc 3 mari tipuri de învățare:

Învățarea supervizată: pornind de la un set de date de antrenament, adică de la o colecție de exemple de instanțe ale unei anumite probleme, se dorește determinarea unei funcții șablon, pe baza căreia vor putea fi clasificate ulterior noile instanțe apărute. Sistemul este deci pregătit pentru procesul de antrenare, prin primirea inițială a unor informații corecte, exemplificate, care constituie resursele necesare începerii procesului de învățare. Setul de antrenament este reprezentat sub forma unui dicționar cu elemente de tip (cheie, valoare), unde cheie reprezintă instanța, iar valoare constituie clasa căreia i-a fost atribuită această instanță . Un scenariu ideal, ar permite algoritmului astfel creat să generalizeze informațiile primite spre înțelegere și învățare, fiind astfel capabil să determine soluția problemelor apărute, chiar dacă acestea nu au fost învățate până în momentul respectiv.

Pentru ca o anumită problemă să poată fi rezolvată prin învățare supervizată, trebuie respectată o ”rețetă” bine pusă la punct. Avem nevoie de anumite ”ingrediente”, iar pașii vor fi făcuți în ordine.

Pentru început, trebuie determinat tipul instanțelor folosite pentru antrenament. De exemplu, în cazul recunoașterii scrisului de mână, o astfel de instanță ar putea fi reprezentată de un caracter, un cuvânt, o frază, sau chiar de către un document întreg.

Pasul următor este constituit de găsirea unui set de date de antrenament, care să corespundă cerințelor noastre și ale sistemului. Informațiile obținute pot proveni atât de la specialiști umani, cât și de la diverse măsurători făcute în mediul real, cu aplicabilitate în viața de zi cu zi.

Urmează determinarea modului de reprezentare a caracteristicilor unei instanțe, acest pas având o influență majoră asupra acurateții funcției învățate. De cele mai mlte ori, aceste

8

Page 9: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

caracteristici formează un vector, iar numărul lor trebuie să fie cât mai mic, dar să conțină totuși suficiente informații, în vederea găsirii rezultatului corect.

În acest pas, vor fi alese structura funcției de învățare și algoritmul corespunzător acesteia. Se poate opta pentru folosirea unor rețele neuronale, a arborilor de decizie, a mașinilor cu suport vectorial, a metodelor de învățare bayesiană șamd.

Până în momentul de față, a fost creat scheletul aplicației de învățare. Urmează pasul cel mai important și anume antrenarea sistemului. Pe baza datelor de antrenament primite, mașina auto-instruibilă va fi capabilă să învețe și să își definească o concepție clară asupra problemei.

Ultimul pas este cel de testare al sistemului. Astfel, este evaluată acuratețea funcției învățate, cu ajutorul unui set de date nou, diferit de cel oferit pentru antrenare. Se măsoară numărul de greșeli făcute, cât și numărul de decizii care au fost luate corect. Astfel, va putea fi trasă o concluzie asupra calității sistemului și vor putea fi luate eventuale decizii de îmbunătățire a acestuia.

Învățarea nesupervizată încearcă să găsească structura ascunsă a unor date de intrare neetichetate, spre deosebire de învățarea supervizată, unde se preciza concret valoarea unei anumite instanțe. Astfel, în evaluarea potențialei soluții nu există erori, greșeli sau modalități de recompensă (ca în cazul învățării prin întărire), iar scopul algoritmului nu este unul predefinit, evoluția acestuia fiind una spontană. Acest tip de învățare este asociat problemelor de estimare a densităților din statistică și cuprinde multe alte tehnici de căutare și preprocesare a informațiilor (de exemplu data mining), probleme de clasificare, aplicații ale modelelor Markov ascunse, separarea oarbă a semnalelor folosind tehnici de extragere a caracteristicilor pentru reducerea dimensionalității.

Învățarea prin întărire este inspirată din psihologia comportamentală, și se preocupă de modul în care agenții informatici ar trebui să se comporte într-un anumit mediu, astfel încât noțiunea de recompensă cumulativă să fie maximizată. Acest tip de învățare diferă de învățarea supervizată, cât și de cea nesupervizată, avand în vedere faptul că datele de intrare etichetate/neetichetate lipsesc cu desăvârșire. Accentul cade asupra găsirii unei balanțe între explorarea teritoriului necunoscut și exploatarea cunoștințelor existente. Astfel, un model de învățare prin întărire este constituit din: un set de stări reprezentative mediului, un set de acțiuni, reguli de trecere dintr-o stare în alta, reguli de determinare a unui factor de recompensă în urma unei astfel de tranziții, precum și reguli care descriu percepția agentului asupra mediului [13].

1.5. Probleme care pot apărea în învățarea automată

De cele mai multe ori, partea de cercetare a învățării automate este oarecum separată de motivația aplicării practice a acestor algoritmi. Totuși, un astfel de sistem auto-instruibil ar trebui să fie scalabil la potențialele probleme care pot apărea în timpul dezvoltării unei

9

Page 10: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

aplicații din viața reală, care pe cât de interesantă și captivantă ar putea părea, pe atât este de imprevizibilă și instabilă.

În urma unor studii amănunțite, s-a demostrat că alegerea algoritmilor de învățare (de exemplu: mașini cu suport vectorial, arbori de decizie, rețele neuronale șamd.) influențează de cele mai multe ori performanța sistemului într-o măsură foarte mică, iar pentru multe probleme din viața reală este ușor să găsim soluția optimă în ceea ce privește metoda utilizată (de exemplu validarea încrucișată).

Totuși, există și cazuri în care niciunul dintre algoritmii de învățare automată nu se ridică la măsura așteptărilor noastre. În asemenea situații, ar trebui să ne îndreptăm privirea către setul de date de antrenament folosit, care poate fi de asemenea problematic, din 3 puncte de vedere diferite [14]:

Fie setul de date colectat este prea mic pentru ca sistemul să poată învăța o generalizare a modelului, fie conține informații eronate sau irelevante, care nu reflectă adevărata situație a problemei propuse spre a fi rezolvată.

În al doilea rând, este posibil ca datele oferite către antrenament să conțină ”zgomot”. Fie valorile instanțelor conțin ”zgomot” aleator sau sistematic, fie caracteristicile/etichetele acestora sunt deficitare.

În al treilea rând, este posibil ca aceste caracteristici ce descriu instanțele să nu fie suficiente pentru o deosebire concretă. De exemplu, mărimea pantofului unui pacient, nu va ajuta la diagnosticarea tipului de afecțiune pulmonară pe care acesta o are.

Compromisul interferență-variație (”dilema”) poate reprezenta de asemenea o problemă a performanței scăzute, în cazul algoritmilor de învățare supervizată. Ne-am dori cu siguranță să putem găsi o modalitate prin care să obținem o acuratețe ridicată luând în considerare atât datele de antrenament care ne sunt oferite inițial, cât și capacitatea sistemului de a generaliza pe baza unor date încă necunoscute. Așadar, se încearcă minimizarea simultană a două surse diferite ale erorii, lucru care previne generalizarea unei funcții pe baza setului de antrenament [19].

Eroarea de interferență se datorează predicțiilor greșite ale algoritmului de învățare. O valoare ridicată a acesteia poate cauza omiterea unor relații relevante dintre caracteristicile instanțelor și funcțiile țintă.

Eroarea de variație este dată de fluctuațiile care pot apărea la nivelul predicțiilor sistemului. O valoare ridicată a acesteia semnalează obținerea unor rezultate aleatoare, care nu sunt reprezentative pentru caracterizarea performanței.

Întrucât aceste două tipuri de erori se află în balanță, iar dacă dorim minimizarea uneia dintre ele, implicit cauzăm accentuarea celeilalte, este nevoie de un compromis care să poată rezolva într-o anumită manieră această ”dilemă” și să crească pe cât posibil performanța sistemului.

10

Page 11: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

1.6. Aplicații ale învățării automate

Încă din momentul în care au apărut calculatoarele iar știința a început sa evolueze tot mai mult în această direcție, ne-am întrebat dacă vom fi vreodată capabili să concepem un astfel de sistem care să învețe, care să poată fi îmbunătățit automat, prin intermediul experienței acumulate.

Impactul reușitei ar fi unul major, gândindu-ne la reducerea semnificativă a intervenței umane în cazuri care necesită o bază foarte mare de cunoștințe, sau care au nevoie de o atitudine fermă, lipsită de trăiri emoționale ce ar putea influența în mod negativ un anumit rezultat, sau chiar periclita vieți umane.

De asemenea, există si varianta opusă, conform căreia tocmai lipsa factorului emoțional ar putea constitui problema majoră a învățării automate, în sensul în care un astfel de sistem nu ar putea reproduce naturalețea și spontaneitatea unei ființe umane. Tocmai din această cauză, încă există o oarecare reticență în aplicarea acestor algoritmi, mai ales în anumite domenii cu factor de risc ridicat, precum medicina.

Până în prezent, evoluția învățării automate a urmat un drum ascendent, având în vedere faptul că au fost descoperiți diverși algoritmi aplicabili în domeniul de față cu rezultate foarte bune, conducând astfel la o fundamentare teoretică solidă.

De exemplu, conturile de mail pe care le folosim au în spate algoritmi ai învățării automate, care identifică spam-ul. Google folosește de asemenea astfel de algoritmi pentru a identifica și reduce pe cât posibil apariția spam-ului web. Companii prestigioase de ecommerce folosesc această tehnologie alături de alte instrumente, pentru a opri folosirea frauduloasă a cărților de credit.

În continuare, vom prezenta câteva astfel de sisteme autonome, care au fost deja create, sau care sunt încă în proces de dezvoltare și optimizare, dar care promit efectul garantat al unei revoluții spectaculoase tehnologice, în momentul în care vor fi pregătite pentru a putea fi utilizate în viața reală [18]:

Amazon, unul dintre inițiatorii învățării automate bazată pe conceperea motoarelor de recomandare și a algoritmilor de categorizare a prețurilor, încearcă să dezvolte un sistem care să decidă autonom drepturile de acces la diferite resurse care ar trebui oferite fiecărui angajat în parte. În rezolvarea acestei probleme, este folosită o bază de date consistentă, ce conține informații relevante despre rolurile angajaților și nivelele de acces care le-au fost acordate.

Universitatea Cornell lucrează în prezent la un algoritm de identificare a balenelor din ocean pe baza unor înregistrări audio, astfel încât navele să le poată evita. De asemenea, Universitatea de Stat din Oregon încearcă să dezvolte un produs soft care va fi capabil să determine specia unei păsări pe baza unor înregistrări audio colectate din mediul natural.

11

Page 12: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

Companiile și organizațiile de asistență medicală folosesc o tehnică numită Simularea Evenimentelor Discrete, pentru a prezice timpul de așteptare al unui pacientului în camera de așteptare a departamentului de urgențe. Pentru ca acest lucru să fie posibil, se folosesc datele pacienților, diagrame ale departamentului de urgență și chiar structura camerei respective.

Cercetătorii de la IMB au reușit să găsească o modalitate de a extrage criterii de diagnosticare a insuficienței cardiace, pe baza unor documente/notițe puse la dispoziția tuturor de către medicii de specialitate. Aceștia au conceput apoi un sistem inteligent de regăsire a informației, prin intermediul unei tehnici numită Procesarea Limbajului Natural. Softul astfel obținut, poate, pe baza unor criterii inițiale preluate de la pacient, să decidă dacă acesta suferă de insuficiență cardică, sau nu.

Organizația Healint din Singapore a creat o aplicație numită JustShakeIt, menită să vină în ajutorul persoanelor care suferă de boli care pot cauza convulsii. Aceasta permite trimiterea unui mesaj de urgenţă unei liste de contacte prestabilite, prin agitarea telefonului cu o mână. Învăţarea automată este folosită în cazul de față, pentru a distinge cazurile de urgenţă reale față de mișcarea firească a telefonului.

12

Page 13: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

2. ÎNVĂȚAREA BAYESIANĂ

Învățarea Bayesiană este o metodă de deducție probabilistică, care se bazează pe

conceptul conform căruia elementele cantitative sunt direct influențate de către distribuția probabilităților, iar pentru luarea unei decizii optime ar trebui să luăm în calcul comportamentul acestor probabilități, în conformitate cu datele de antrenament observate. În ceea ce privește învățarea automată, învățarea Bayesiană este importantă, întrucât ne oferă o abordare numerică a evidenței ipotezelor alternative.

Acest tip de deducție reprezintă temelia algoritmilor care manipulează probabilitățile, constituind în același timp și o modalitate de înțelegere, aprofundare și dezvoltare a unor algoritmi din literatură care nu se axează în mod explicit pe acest aspect.

Există două motive concrete care scot în evidență relevanța acestor algoritmi de învățare Bayesiană [13].

Primul dintre acestea se referă la acei algoritmi care calculează în mod explicit probabilitatea pentru fiecare ipoteză în parte, spre exemplu Clasificatorul Naiv Bayes. Dacă ne uităm puțin la abordările anumitor probleme de învățare de până acum din literatură, vom observa faptul că acești algoritmi se pretează cel mai bine, fiind cei mai practici și ușor de aplicat. De-a lungul timpului au fost făcute diverse studii comparative menite să evidențieze diferențele comportamentale dintre clasificatorul naiv Bayes și alți algoritmi puternici de învățare automată, precum arborii de decizie sau rețelele neuronale. S-a demonstrat astfel că primul algoritm menționat era competitiv cu celelalte două, reușind în prisma simplității sale să obțină în anumite cazuri rezultate mai bune, într-un timp de execuție mai scurt.

Al doilea motiv conform căruia metodele de învățare Bayesiană sunt demne de folosit, este reprezentat de faptul că aceste abordări ne oferă o perspectivă interesantă de înțelegere a altor algoritmi, care nu se axează pe teoria probabilistică. Astfel, poate fi realizată o analiză prin care să se poată determina condițiile care ar trebui respectate în vederea obținerii ipotezei cu probabilitatea cea mai mare, pe baza datelor de antrenament. De asemenea, în cazul rețelelor neuronale abordarea Bayesiană ar putea fi folosită pntru minimizarea sumei pătratelor erorii, iar în cazul arborilor de decizie ar putea fi realizată o analiză a interferenței inductive, în vederea obținerii unor reprezentări cât mai mici a acestora.

În cele ce urmează, voi prezenta câteva caracteristici esențiale ale învățării Bayesiene [13]:

13

Page 14: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

Probabilitatea estimată a corectitudinii fiecărei ipoteze este direct influențată de setul de date de antrenament, fiecare instanță nouă putând crește, respectiv micșora această valoare. Acest lucru oferă flexibilitate algoritmului, comparativ cu alte abordări care elimină complet acele ipoteze inconsistente cu una sau mai multe instanțe observate.

În vederea determinării probabilității finale a unei ipoteze, cunoștințele inițiale a acesteia (aflate sub forma unei probabilități inițiale, căreia îi este atribuită o anumită distribuție a probabilității) sunt acumulate cu instanțele noi observate.

Metodele de învățare Bayesiană pot utiliza ipoteze care reprezintă în sinea lor predicții probabilistice (de exemplu: ”un anumit pacient care suferă de pneumonie are 94% șanse de a se recuprea complet”).

Clasificarea instanțelor noi se realizează prin combinarea valorilor probabilistice a mai multor ipoteze.

Chiar și în cazurile în care calculele se dovedesc a fi greu de făcut, metodele Bayesiene sunt capabile să găsească o modalitate de luare a unor decizii optime.

Desigur, ca în orice domeniu existent, odată cu beneficiile aduse de utilizarea anumitor metode, apar și anumite dificultăți, sau dezavantaje. În cazul de față, o dificultate practică a învățarii Bayesiene este constituită de necesitatea cunoașterii unor probabilități inițiale. Dacă acestea lipsesc, atunci este necesară aproximarea acestor valori, în funcție de cunoștințele existente. De asemenea, costul computațional ridicat pentru determinarea ipotezei optime în cazul general, poate constitui o dificultate practică, aceasta fiind totuși redusă semnificativ în anumite cazuri.

2.1. Teorema lui Bayes

Teorema lui Bayes stă la baza teoriei probabilităților, fiind inițial stabilită de către Reverend Thomas Bayes. În termeni largi, reprezintă înțelegerea modului în care probabilitatea unei ipoteze considerată ca fiind corectă poate fi influențată de apariția unei instanțe noi. A fost folosită într-o varietate mare de domenii, de la biologie marină, până la conceperea unor sisteme de blocare e emailurilor de tip spam, iar în filozofia științelor, a fost utilizată pentru a clarifica relația dintre terorie și dovadă.

Pentru a putea enunța concret Teorema lui Bayes, vor fi utilizate următoarele notații: Pentru o anumită ipoteză h, vom nota cu P(h) probabilitatea inițială a acesteia, înainte

să fie observată vreo dată de antrenament. P(h) este deseori numită probabilitatea anterioară a lui h și poate evidenția orice informație inițială pe care o avem despre posibilitatea ca h să fie o ipoteză corectă. În cazul în care nu avem cunoștințe anterioare, putem atribui fiecărei ipoteze aceeași probabilitate.

Similar, vom nota cu P(D) probabilitatea inițială/anterioară a datelor de antrenament D care vor fi observate.

14

Page 15: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

P(D∨h) va reprezenta probabilitatea datelor de antrenament D, în raport cu ipoteza h.

Ceea ce ne interesează de fapt pe noi, se numește probabilitatea posterioară a ipotezei h și este calculată după vizulizarea datelor de antrenament D. Se notează cu P(h∨D) și reflectă influența datelor de antrenament D, în contrast cu probabilitatea anterioară P(h) care este independentă de D.

Astfel, putem defini teorema lui Bayes care calculează probabilitatea posterioară P(h∨D), în funcție de: probabilitatea anterioară - P(h), probabilitatea anterioară a datelor de antrenament - P(D) și probabilitatea datelor de antrenament D în raport cu ipoteza h - P(D∨h):

P (h|D )=P ( D|h )∗P (h)

P(D)În majoritatea algoritmilor de învățare, dintr-o mulțime de ipoteze H , se dorește găsirea

acelei ipoteze h∈Hcare are probabilitatea cea mai mare de a fi corectă (sau măcar una dintre ele, în cazul în care sunt mai multe ipoteze care respectă această condiție), luând în considerare un set de date observate D. O astfel de ipoteză se numește ipoteză MAP (Maximum A Priori) [13] (notată cu hMAP) și poate fi identificată cu ajutorul formulei lui Bayes. Practic, se calculează probabilitatea posterioară pentru fiecare ipoteză candidat, alegându-se ulterior ipoteza cu valoarea probabilistică cea mai mare.

hMAP= P(h∨D)h∈Hargmax =

P (D|h )∗P (h )P ( D )h∈H

argmax

= P (D|h )∗P (h )h∈Hargmax

Întrucât P ( D ) este o constantă și nu depinde de h, nu influențează în niciun fel determinarea ipotezei cu probabilitatea posterioară maximă. Astfel, ecuația a fost simplificată, renunțându-se la acest termen.

În unele cazuri, probabilitățile anterioare ale fiecărei ipoteze sunt egale (P (hi )=P ( h j ) ,∀ hi ,h j∈H) fapt pentru care va fi exclus și termenul P (h ), rămânând doar

termenul P ( D|h ) care va determina rezultatul. Orice ipoteză care maximizează acest termen se numește ipoteza cu probabilitatea maximă ML (Maximum Likelihood) [13] (notată cu hML).

hML= P(D∨h)h∈Hargmax

Pentru a fi clară conexiunea dintre teorema lui Bayes și problemele de învățare automată, ne-am referit la setul de date observate D ca la la un set de date de antrenament corespunzătoare anumitor funcții țintă, iar la Hca reprezentând spațiul acestor funcții. Urmărirea acestor pași generali definește conceptul de învățare Bayesian prin forță brută, care în ciuda faptului că este un consumator puternic din punct de vedere computațional (deoarece este aplicată teorema lui Bayes pentru fiecare ipoteză dinH pentru a calculaP (h|D )), reușește în anumite cazuri concrete să egaleze sau chiar să surclaseze performanța altor algoritmi de învățare automată considerați mult mai eficienți.

15

Page 16: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

Totuși teorema lui Bayes nu se rezumă doar la atât, fiind generală și deci ușor scalabilă la diferite abordări. De exemplu spațiul ipotezelor H ar putea fi înlocuit cu un set de propoziții care se exclud reciproc, respectându-se condiția ca suma probabilităților lor să fie exact 1.

2.2. Abordări ale ipotezei cu probabilitatea maximă

Metodele de învățare Bayesiană pot fi utilizate în anumite cazuri pentru determinarea ipotezelor cu probabilitatea maximă a unor algoritmi, chiar dacă aceștia nu manipulează în mod direct probabilitățile, adică nu folosesc formula lui Bayes pentru determinarea acestora.

În ceea ce privește problemele de învățare care au o funcție țintă cu valori continue (precum rețelele neuronale sau regresia liniară), un studiu amănunțit în cadrul căruia s-au utilizat metode Bayesiene ne arată faptul că sub anumite circumstanțe, orice algoritm care minimizează suma pătratelor erorii dintre predicțiile ipotetice și datele de antrenament va găsi o ipoteză de probabilitate maximă [13].

Pentru a demonstra acest lucru, să presupunem că avem un algoritm de învățare L care folosește un spațiu al instanțelor X și un spațiu al ipotezelor H compus din clase având funcții cu valori reale definite peste X (fiecare ipoteză h din H este o funcție de forma: h : X → ϑ undeϑ reprezintă setul de date reale). Rolul algoritmului de învăţare L este acela de a învăţa o funcţie target necunoscută h : X → ϑ pe baza ipotezelor din H. Avem disponibil un set de date de antrenament m, fiecare instanţă având valoarea funcției target coruptă de un zgomot ales aleator, corespunzător distribuției probabilistice normale. Astfel, fiecare exemplu din setul de

date de antrenament poate fi văzut sub forma unei perehi ¿ x i , d i>¿, unde d i=f ( x i )+e i. În

cazul de față f ( x i ) reprezintă valoarea funcției target lipsită de zgomot, iar e i este o variabilă

aleatoare ce reprezintă zgomotul. Considerăm că valorile e i sunt independente, având ca model de distribuție cea Normală, cu media 0. Scopul algoritmului de învățare este acela de a găsi ipoteza cu probabilitatea maximă.

16

Page 17: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

Pentru exemplificare, se poate observa imaginea precedentă [13], problema prezentată fiind aceea de învățare a unei funcții liniare, cu valori reale. Funcția target f corespunde liniei solide, iar datele de antrenament de forma ¿ x i , d i>¿ sunt reprezentate de cele cinci puncte. Linia punctată corespunde funcției liniare care minimizează suma pătratelor erorii, fiind de asemenea și ipoteza cu probabilitatea maximă hML. După cum se poate observa, hML nu este aceeași cu ipoteza corectă, iar acest lucru se datorează faptului că a fost aleasă în urma observării doar a cinci instanțe și acestea prezentând zgomot.

Întrucât este vorba despre numere reale, este imposibil să le asignăm valori aleatoare astfel încât suma acestora să fie 1. Din această cauză, ne sunt necesare densitățile probabilităților. Vom nota p(x0) densitatea probabilității, aceasta fiind calculată astfel:

p(x0)≡ limϵ →0

P(x0≤ x≤ x0+ϵ )

În ceea ce privește Distribuția Normală, reprezintă un model de distribuție sub formă de clopot care este caracterizată de media ei μ și de către deviația standard σ .

Scopul nostru este acela de a arăta faptul că ipoteza care minimizează suma pătratelor erorii este chiar hML, adică ipoteza cu probabilitatea maximă. Astfel, vom scrie formula maximizării valorii ipotezelor, folosindu-ne de această dată de densitatea probababilităților:

hML= p(d i∨h)h∈Hargmax

Având în vedere faptul că instanțele din setul de date de antrenament sunt independente, putem considera p ( D|h ) ca fiind produsul mai multor entități de forma p (d i|h ):

hML= ∏i=1

m

p (d i∨h)h∈H

argmax

Deoarece zgomotul e i îndeplinește o Distribuție Normală cu media 0 și varianță σ 2 necunoscută, fiecare d i trebuie de asemenea să îndeplinească o Distribuție Normală centrată

mai degrabă în jurul funcției target f (x i) decât în 0. Astfel, p (d i|h¿ poate fi scris ca o Distribuție Normală cu varianța σ 2 și media μ= f (x i). Obținem:

17

Page 18: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

hML= ∏i=1

m 1√2π σ2

h∈H

argmax

e−12σ2 (d i−μ)2

= ∏i=1

m 1√2 π σ 2

h∈H

argmax

e−12σ 2 (di−h ( x i))

2

Întrucât funcția logaritmică este monotonă, putem să ne simplificăm munca prin maximizarea logaritmului expresiei:

hML= ∏i=1

m

ln 1√2 π σ2

− 12 σ2 (d i−h ( x i ))

2

h∈H

argmax

Primul termen poate fi eliminat, deoarece este independent de h:

hML= ∏i=1

m −12σ 2 (d i−h ( xi ))

2

h∈H

argmax

Maximizarea unei valori negative este egală cu minimizarea valorii pozitive a acesteia, fapt pentru care putem elimina semnul negativ, alături de valorile constante:

hML= ∏i=1

m

(d i−h ( x i ))2

h∈H

argmin

După cum se poate observa, rezultatul obținut ne confirmă faptul că ipoteza cu probabilitate maximă hML este reprezentată de minimizare sumei pătratelor erorii dintre datele de antrenament observate d i și predicțiile ipotezelor h ( x i ). Acestă abordare este deseori utilizată în diverse analize ale metodelor de învățare Bayesiană, datorită faptului că este mult mai ușor de urmărit și demonstrat din punct de vedere matematic. După cum am precizat și anterior, este posibil ca hML să nu fie identic cu hMAP, reprezentând intenția de atingere a idealului. Totuși, această egalitate poate fi atinsă, dacă ne asumăm uniformitatea probabilităților inițiale ale ipotezelor.

Importanța abordării acestei probleme, constă în faptul că se folosește deseori în rețelele neuronale, cât și în alte abordări ale estimării funcțiilor cu valori reale. Există însă și anumite limitări ale acestui model, având în vedere faptul că s-a luat în considerare zgomotul doar în cazul funcțiilor țintă ale datelor de antrenament.

O altă problemă care se pretează funcțiilor cu valori reale, ar putea fi reprezentată de învățarea sistemului să prezică probabilități. Să presupunem că avem o funcție nedeterministă f : X → {0,1 }, unde X reprezintă spațiul instanțelor, iar f (x) cu x∈ X reprezintă valoarea funcției target (0 sau 1). Această definiție presupune excluderea mutuală a celor două funcții țintă, în sensul că fiecare dintre acestea corespunde negării celeilalte. Util ar fi ca sistemul să nu scoată în evidență doar acel rezultat pe care îl consideră ca fiind cel mai bun, ci să ne prezinte și predicția probabilistică ce l-a determinat să ia această decizie. Așadar, dorim ca algoritmul să învețe o nouă funcție țintă f ' : X → {0,1 }, astfel încât f ' ( x )=P (f ( x )=0). Vom putea deduce apoi P( f (x )=1) prin scăderea din 1 a valorii obținute.

Dacă am dori de exemplu să abordăm această problemă în rețelele neuronale, astfel încât acestea să învețe funcția f ' , o modalitate nu foarte elevată ar putea fi constituită de identificarea frevențelor de apariție a fiecărei valori pe care o poate lua f ' , luând în considerare fiecare instanță din X, acestea fiind ulterior folosite în procesul de antrenare.

Există totuși o modalitate directă de instruire a unor astfel de sisteme pe baza setului de date de antrenament, astfel încât să poată fi obținută o ipoteză de probabilitate maximă pentru f ' . Considerăm setul de date de antrenament D ca fiind compus din perechi de forma: ¿ x i , d i>¿ unde d i reprezintă valoarea lui f (x i), adică 0 sau 1. De asemenea, instanțele corespunzătoare setului de deate pentru antrenament sunt considerate ca fiind independente. Pe baza acestor presupuneri, se obține [13]:

18

Page 19: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

hML= ∏i=1

m

h ( x i )di(1−h ( x i ))

1−di

h∈H

argmax

Expresia din partea dreaptă a ecuației poate fi văzută ca o generalizare a Distribuției binomiale. De asemenea, ca în cazul precedent, uneori poate fi mai ușor să lucrăm cu funcția logaritmică. Astfel obținem:

hML=∏i=1

m

di ln h ( x i )+¿( ¿h∈Hargmax 1−d i) ln (1−h ( xi ))¿¿

Această ecuație ne prezintă cantitatea care trebuie maximizată în vederea obținerii ipotezei cu probabilitatea maximă, rezultat anolog problemei prezentată anterior, în care, pe baza unor setări prestabilite ipoteza hMLera obținută prin intermediul sumei pătratelor erorii.

Definiția ipotezei de probabilitate maximă ar putea ajuta la analiza Principiului descrierii lungimii minime, în vederea găsirii unor reprezentări cât mai mici a arborilor de decizie. Pentru realizarea acestui lucru, este necesară cunoașterea tuturor probabilităților inițiale P(h), cât și probabilitățile datelor de antrenament D în raport cu ipotezele h, adicăP(D∨h).

Această abordare nu scoate însă în evindență faptul că ipotezele cele mici sunt întotdeauna și cele mai bune.

2.3. Clasificatorul optimal Bayes

Acest clasificator mai este numit și algoritmul optim de învățare Bayesiană, având în vedere faptul că nicio altă metodă de clasificare nu poate să îl surclaseze, dacă sunt luate în considerare aceleași cunoștințe inițiale și același spațiu al ipotezelor. Acest lucru se datorează faptului că pentru clasificarea unei instanțe noi sunt observate toate ipotezele h, eliminându-se conceptul de independență al acestora.

Pentru exemplificare, să presupunem că avem un spațiu al ipotezelor H={h 1 ,h2 , h3}, probabilitățile posterioare ale acestora după observarea datelor de antrenament fiind: P ( D|h1 )=0.5, P ( D|h2 )=0.4, P ( D|h3 )=0.4. Corespunzător acestor valori, h 1 este ipoteza cu probabilitatea maximă. Considerăm că o instanță nouă x a fost clasificată ca fiind corectă de către ipoteza h 1, respectiv greșită de către ipotezele h 2 și h 3. Luând toate ipotezele în considerare, probabilitatea ca instanța x să fie corectă este 0.5 (valoare corespunzătoare ipotezei h 1), respectiv 0.8 probabilitatea ca instanța x să fie greșită (valoare corespunzătoare însumării probabilitățiler posterioare ale ipotezelor h2 și h3). După cum se poate observa, clasificarea noii instanţe negative în cazul de faţă este diferită de clasificarea generată de ipoteza cu probabilitatea maximă.

Astfel, considerăm că probabilitatea unei noi instanțe a cărei clasificări poate lua orice valoare v j∈V , este determinată de următoarea expresie:

P (v j|D )=∑hi∈H

P ( v j|h i) P (hi|D )

Desigur, scopul nostru este acela de a identifica acea ipoteză cu probabilitatea maximă de

a fi corectă, adică valoarea v j pentru care P (v j|D )este maximă:

19

Page 20: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

∑hi∈H

P ( v j|hi ) P (h i|D )v j∈V

argmax

Ceea ce este interesant la acest clasificator este faptul că există posibilitatea ca anumite predicții să nu corespundă unei anumite ipoteze h aflată în spațiul ipotezelor H , deoarece etichetarea acestora este diferită de etichetarea instanțelor noi.

O abordare a acestei situații este constituită de considerarea unui spațiu al ipotezelor H ' pentru Clasificatorul optimal Bayes diferit de spațiul ipotezelor H pe care este aplicată efectiv teorema lui Bayes. Astfel, H ' conține ipotezele comparative corespunzătoare combinațiilor liniare ale predicțiilor pentru ipotezele din H [13].

Din păcate, acest clasificator nu poate fi aplicat în practică decât pentru problemele simple, iar în continuare vor fi prezentate câteva motive:

Spațiile ipotezelor sunt în general mult prea mari astfel încât iterarea să poată fi facută corespunzător formulei.

Anumite ipoteze reprezintă predicții ale unei singure clase/categorii, astfel că

determinarea probabilității pentru fiecare categorie în parte P (v j|hi ) nu își mai are

sensul. Având în vedere faptul că algoritmul de clasificare optimal Bayes este destul de

costisitor, s-a dorit identificarea unei abordări noi care să elimine acestă problemă. Astfel, a apărut algoritmul Gibbs, o simplificare a predecesorului său, care se axează pe alegerea aleatoare a unei ipoteze h∈H în conformitate cu distribuția probabilităților posterioare peste H . Această ipoteză aleasă este folosită ulterior pentru clasificarea următoarei instanțe.

Totuși, deși ne-am aștepta la obținerea unui algoritm nu foarte performant, în anumite circumstanțe, eroarea de clasificare obținută este de cel mult două ori mai mare decât eroarea obținută prin utilizarea clasificatorului optimal Bayes.

Această abordare a estimării Bayesiene nu doar că a făcut posibilă rezolvarea problemelor complexe, ci a și devenit o rutină în anumite cazuri în care s-a demonstarat faptul că această metodă de clasificare se pretează cel mai bine.

2.4. Clasificatorul naiv Bayes

Clasificatorul naiv Bayes (CNB) face parte din familia clasificatorilor probabilistici, are la bază teorema lui Bayes și presupune independența caracteristicilor. A început să fie studiat din anul 1950 și s-a evidențiat prin capacitatea de a surclasa în anumite cazuri alți algoritmi de învățare automată considerați robuști și puternici, precum rețelele neuronale, arborii de decizie sau mașinile cu suport vectorial. În domeniul clasificării documentelor de tip text, clasificatorul naiv Bayes se descurcă neașteptat de bine, mai ales în cazul în care partea de preprocesare este realizată corespunzător.

Este ușor adaptabil, datorită simplității sale. Modelele care asignează etichete instanțelor problemei sunt reprezentate sub forma unui vector de atribute, iar procesul de antrenare

20

Page 21: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

decurge foarte bine, mai ales în cazul în care setările sistemului corespund învățării supervizate. În majoritatea aplicațiilor practice, estimarea parametrilor pentru aceste modele naive se realizează prin metoda probabilității maxime, prezentată anterior, nefiind necesară utilizarea altor metode de învățare Bayesiană.

Clasificatorul naiv Bayes se aplică la acele probleme de învățare, unde fiecare instanță x este descrisă de succesiunea unor valori corespunzătoare atributelor ¿a1 , a2 , …, an>¿, iar fiecare funcție target f (x) poate lua orice valoare dintr-un spațiu finit V .

Algoritmul de învățare este constituit de următorii pași esențiali: pentru fiecare funcție target în parte este oferit un set de date de antrenament, iar în momentul în care este prezentată o instanță nouă, sistemul își va evidenția decizia luată cu privire la clasificarea acesteia. Abordarea Bayesiană constă deci, în determinarea funcției țintă cu probabilitatea cea mai mare luând în considerare vectorul de valori corespunzătoare atributelor ce descriu noua instanță [13].

vMAP=P(v j∨ ¿v j∈Vargmax a1 , a2 , …,an)¿

Putem folosi teorema lui Bayes pentru a rescrie această expresie, obținând:

P (a1 , a2 , …, an|v j ) P (v j)P(a1 , a2, …,an)

= P ( a1 , a2, …, an|v j ) P(v j)v j∈Vargmax

v j∈V

argmax

În vederea estimării valorii P(v j) s-ar putea determina frecvența apariției valorii v j în cadrul setului de date pentru antrenament. Totuși, aplicarea aceleiași metode pentru estimarea

termenilor P (a1 , a2 ,…, an|v j ) nu este fezabilă decât în cazul în care avem un set foarte mare

de date.Întrucât clasificatorul naiv Bayes se bazează pe conceptul conform căruia valorile

atributelor sunt independente în raport cu valoarea funcției țintă, putem considera că probabilitatea de a observa succesiunea a1 , a2 , …, an este determinată de produsul probabilităților pentru fiecare atribut în parte, astfel că:

P (a1 , a2 , …, an|v j )=∏i

P(a i∨v j)

Înlocuind aceasta în expresia de mai sus, obținem modul de lucru al Clasificatorului naiv Bayes, unde vNB reprezintă funcția target identificată:

vNB= P(v j)v j∈Vargmax ∏

iP(ai∨v j)

După cum se poate observa, numărul de termeni distincți P(ai∨v j) care trebuie estimați pe baza setului de date de antrenament este redus drastic, comparativ cu abordarea anterioară

care necesita estimarea tuturor termenilor P (a1 , a2 , …, an|v j ).În mod normal, probabilitatea P(ai∨v j) se calculează după formula

număr cazuri favorabilenumăr cazuri posibile . Deși în majoritatea cazurilor probabilitatea obținută este bună, s-a

observat faptul că în momentul în care numărul cazurilor favorabile este foarte mic, estimările obținute nu sunt extraordinare. De asemenea, dacă estimarea probabilității este 0,

21

Page 22: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

clasificatorul va fi influențat în viitor, tocmai datorită faptului că formula de identificare a rezultatului presupune multiplicarea acestei valori cu celelalte probabilități.

Pentru evitarea acestei probleme, s-a adoptat o nouă abordare a clasificatorului, estimarea probabilităților realizându-se prin intermediul următoarei formule:

număr cazuri favorabile+m∗pnumăr cazuri posibile+m

Astfel, preprezintă estimarea inițială a probabilității pe care dorim să o determinăm, iar mreprezintă o constantă, care influențează valoarea lui p raportată la setul de date de antrenament. În cazul în care nu există cunoștințe inițiale, se ia în considerare metoda atribuirii uniforme a probabilităților.

Totuși, acest clasificator are și limitările sale. În cazul problemelor de clasificare binară, nu se poate învăța decât o funcție liniară, astfel încât optimalitatea scade în cazul conceptelor inseparabile din punct de vedere liniar (un exemplu clasic reprezentativ ar putea fi constituit de funcția XOR). Odată cu creșterea numărului valorilor pe care le poate avea funcția țintă, clasificatorul poate învăța și funcții polinomiale.

Aceste limitări nu constituie însă o piedică în calea succesului clasificatorului naiv Bayes, acesta obținând performanțe foarte bune în practică, iar deciziile de clasificare sunt de multe ori corecte, chiar dacă estimarea probabilităților este inexactă.

În urma unor cercetări, CNB s-a dovedit a fi la nivelul maxim al performanței, în două cazuri concrete: când este luată în considerare independența completă a caracteristicilor (ceea ce este de așteptat), respectiv dependența funcțională a caracteristicilor (ceea ce este surprinzător) [15].

2.5. Rețelele Bayesiene

Rețelele Bayesiene reprezintă modele grafice [17] pentru evidențierea relațiilor probabilistice ale unor variabile în medii incerte. Astfel că fiecare nod al grafului este constituit de o variabilă aleatoare, în timp ce arcele dintre noduri constituie dependențe probabilistice dintre variabilele aleatoare corespunzătoare. Aceste dependențe condiționale din cadrul grafului sunt deseori estimate prin folosirea unor metode computaționale de natură statistică.

Modelele grafice care înlocuiesc prezența arcelor cu cea a muchiilor sunt numite în general Rețele Markov, aceste prezentând o simplă definiție a independenței dintre două noduri distincte. Rețelele Bayesiene corespund unei structuri grafice diferite, denumită și graf aciclic direcționat și sunt deseori utilizate în domenii precum statistica, inteligența artificială sau învățarea automată. Această popularitate se datorează atât fundamentării matematice solide cât și posibilității de înțelegere intuitivă a acestora.

Rețelele Bayesiene obțin o performanță ridicată în cazul în care seturile de date sunt incomplete, eliminând problema predicțiilor inconsistente datorate lipsei corelațiilor dintre

22

Page 23: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

variabilele de intrare. De asemenea, acestea permit învățarea relațiilor cauzale care ne sunt utile în momentul în care dorim să înțelegem domeniul problemei, ajutându-ne de asemenea și la obținerea predicțiilor în condiții instabile.

Cu ajutorul tehnicilor de statistică Bayesiene, rețelele Bayesiene contribuie la formarea unui domeniu vast de cunoștințe și informații necesare oricărei analize de natură probabilistică, iar cu ajutorul celorlalte metode Bayesiene și a altor modele ne oferă o abordare eficientă pentru evitarea aglomerării datelor [19].

Pentru a scoate în evidență reprezentarea rețelelor Bayesiene, vom considera că acestea sunt alcătuite din două seturi: setul nodurilor și setul arcelor. Nodurile constituie variabile aleatoare și sunt desenate sub forma unor cercuri etichetate cu numele variabilelelor, în timp ce arcele constituie dependențe directe între aceste variabile și sunt desenate sub forma unor săgeți între noduri.

Considerând concret un arc care pornește din nodul Y i și se termină în nodul Y j, înțelegem faptul că valoarea variabilei Y j depinde de valoarea variabilei Y i, adică Y i influențează Y j. Astfel, nodul Y i este numit și părintele nodului Y j. Similar, nodul Yx j este numit și copilul nodului Y j. Dacă abordăm însă o extensie a acestor denumiri, ne referim la setul nodurilor care pot fi obținute prin drumuri directe pornind din nodul curent ca fiind succesorii nodului respectiv, în timp ce setul nodurilor care conduc prin drumuri directe către nodul curent se numesc predecesorii acestuia. Structura unui astfel de graf aciclic, ne garantează faptul că niciunul dintre noduri nu poate fi propriul său succesor sau predecesor, condiție care este de altfel foarte importantă pentru factorizarea probabilității comune a nodurilor.

Pentru completarea acestei structuri, trebuie să specificăm și modul în care sunt descriși parametrii modelului. Aceștia se bazează pe proprietatea Markoviană, conform căreia distribuția probabilităților condiționale pentru fiecare nod în parte depinde doar de părinții acestuia. În ceea ce privește variabilele discrete aleatoare, aceste probabilități condiționale sunt deseori reprezentate sub forma unui tabel care conține pentru fiecare probabilitate locală pe care un nod copil o poate lua, valorile corespunzătoare fiecărei combinații posibile dintre nodurile părinți.

Fie Y 1 ,… ,Y nun set arbitrar de variabile aleatoare, unde fiecare variabilă Y i poate lua orice

valoare din setul de valori posibile V (Y i). Definim spațiul comun [13] al setului de variabile

Y ca fiind reprezentat de următorul produs V (Y 1 )∗V (Y 2 )∗…∗V (Y n). Astfel, fiecare element

din spațiul comun corespunde unei posibile atribuiri de valori din cadrul tuplului de variabile:¿Y 1 …Y n>¿. Distribuția probabilității peste acest spațiu se mai numește și distribuția comună a probabilităților, fiind reprezentată de către probabilitățile pentru fiecare conexiune posibilă de variabile ¿ y1… yn>¿ din cadrul tuplului ¿Y 1 …Y n>¿. Fiecare rețea Bayesiană descrie o astfel de distribuție pentru un anumit set de variabile.

Formula corespunzătoare acestor probabilități poate fi evidențiată în felul următor:

23

Page 24: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

P ( y1 … yn )=∐i=1

n

P(¿ y i∨Părinți ( Y i ))¿

Aici,P ă rinț i (Y i ) se referă la mulțimea predecesorilor imediați ai nodului Y i, din cadrul

rețelei, iar valorile P( y i∨Părinți ( Y i )) vor fi ulterior trecute în tabelele probabilităților

condiționale corespunzătoare nodului Y i.Pentru a putea evidenția mai bine conceptul de independență condițională, vom considera

X, Y și Z trei valori discrete aleatoare. Spunem că X este condițional independent de Y, în raport cu Z, dacă distribuția probabilităților corespunzătoare lui X este independentă de valoarea lui Y, luând în considerare o valoare pentru Z.

Astfel, obținem următoarea formulă:

(∀ x i , y j , zk ) ,P ( X=x i|Y= y j|Z=zk )=P(X=xi∨Z=zk ), unde x i∈V ( X ) , y j∈V (Y ) , zk∈V ( Z ).

Deseori scriem această formulă sub formă abreviată, astfel: P ( X|Y , Z )=P (X∨Z). Desigur, această definiție a independenței condiționale poate fi extinsă și la seturi de variabile. Spunem deci că setul de variabile X1 ,…, X t este condițional independent cu setul de variabile Y 1 , …,Y m având în vedere setul de variabile Z1 , …, Zn dacă: P( X1, …, X t∨Y 1 ,…, Y m , Z1 ,…,Zn)=P(X1 , …, X t∨Z1 ,…, Zn).

Pentru a putea scoate în evidență caracteristicile rețelelor Bayesiene, prezentăm următoarea figură [17]:

Ne este prezentată o structură care scoate în evidență posibilitatea ca o anumită persoană să sufere de o afecțiune a spatelui, acest eveniment fiind reprezentat de variabila Spate (SPA). Afecțiunea respectivă poate fi datorată unor activități sportive inadecvate reprezentate de variabila Sport (SPO), precum și unor surse de odihnă neconfortabile reprezentate de variabila Scaun (SC) și poate cauza la rândul ei dureri, evidențiate de variabila Durere (D). În ultimul rând, pentru ca acest scenariu să fie relevant, este necesară prezența unei persoane care să

24

Scaun

Persoană Spate Durere

SportP(SC=T

)P(SC=F)

0.8 0.2

P(SPO=T)

P(SPO=F)

0.02 0.98

C P(P=T|SC)

P(P=F|SC)

T 0.9 0.1F 0.01 0.99

SC

SPO P(SPA=T|SC,SPO) P(SPA=F|SC,SPO)

T F 0.9 0.1T F 0.2 0.8T F 0.9 0.1T F 0.01 0.99

SPA

P(D=T|SPA)

P(D=F|SPA)

T 0.7 0.3F 0. 1 0.9

Page 25: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

sufere de această afecțiune, evenimentul fiind reprezentat de variabila Persoană (P). Toate aceste variabile sunt binare, adică pot fi ori adevărate, ori false.

Conform conceptului de independență abordat de rețelele Bayesiene, în cadrul figurii de mai sus pot fi observate mai multe astfel de stări. De exemplu, variabilele Scaun și Sport sunt marginal independente, însă dacă luăm în considerare și variabila Spate, atunci acestea vor deveni condițional dependente. Acest principiu conferă o factorizare compactă a distribuției comune a probabilităților, iar numărul de parametrii ai modelului este redus semnificativ, datorită distribuției multinomiale în acest caz, de la 25−1=31 la 10.

2.5.1. Deducția în rețelele Bayesiene

Rețelele Bayesiene pot fi utilizate în deducția valorilor pentru anumite variabile țintă, în funcție de valorile observate ale altor variabile. Având în vedere faptul că se lucrează cu variabile aleatoare, de cele mai multe ori, asignarea unei singure valori ca rezultat nu va fi corectă. Scopul nostru este acela de a identifica distribuția probabilităților pentru funcțiile țintă și poate fi realizat cu ușurință, în cazul în care cunoaștem toate valorile variabilelor rămase în cadrul rețelei. Vizualizând această problemă într-o manieră mai generală, putem spune că dorim să găsim distribuția probabilităților pentru anumite variabile, luând în considerare doar un subset din variabilele rămase.

De-a lungul timpului, au fost folosite mai multe modalități de inferență, două dintre cele mai cunoscute fiind următoarele [17]:

suport predictiv pentru nodul X i, bazat pe evidența nodurilor conectate la acesta, prin intermediul nodurilor părinte (se mai numește și inferență de jos în sus).

suport diagnostic pentru nodul X i, bazat pe evidența nodurilor conectate la acesta prin intermediul nodurilor copii (se mai numește și inferență de sus în jos).

Dacă ne referim la exemplul prezentat anterior și luăm în considerare inferența de sus în jos în ceea ce privește instalarea unor scaune inconfortabile la biroul unei persoane care ulterior acuză dureri de spate, putem deduce următoarele formule:

P (SC=T|D=T )= P (SC=T ,D=T )P (D=T )

unde:P (SC=T , D=T )= ∑

SPO , P , SPA∈ {T , F }P (SC=T ) P ( SPO )∗P (P|SC=T ) P ( SPA|SPO,SC=T ) P (D∨SPA)

șiP ( A=T )= ∑

SPO ,P ,SPA∈ {T , F }P ( SC ) P (SPO ) P ( P|SC ) P (SPA|SPO , SC ) P(D=T∨¿SPA )¿

Se poate observa faptul că deși ne confruntăm cu o problemă binară, determinarea distribuției comune a probabilităților are complexitatea O(2n), unde n reprezintă numărul de noduri. Această însumare a probabilităților crește deci exponențial. Pentru diminuarea acestei

25

Page 26: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

dificultăți au fost evidențiați câțiva algoritmi eficienți, care să realizeze o deducție exactă, restricționată doar la anumite clase ale rețelei. Cel mai popular algoritm de acest gen se numește algoritmul de trimitere a mesajelor [17] și reușește să rezolve problema în O(n) pași (adică obținem de această dată o complexitate lineară) pentru rețelele în care există cel mult un drum între oricare două noduri.

În literatură, au fost de asemenea abordate metode de inferență aproximată, precum Simplifcarea Monte Carlo care îmbunătățește treptat estimările, pe măsura observării noilor instanțe. Au fost abordate de asemenea și metode corespunzătoare Lanțurilor Markov Monte Carlo, incluzând Simplificarea Gibbs și Algoritmul Metropolis-Hastings. S-au utilizat și metode variaționale, respectiv deducții cu ajutorul buclelor, care aproximează sume mari de variabile aleatoare prin intermediul mediilor acestora.

2.5.2. Învățarea Rețelelor Bayesiene

În ceea ce privește învățarea automată, ne interesează dacă putem utiliza rețelele Bayesiene pentru îndeplinirea acestui scop, astfel încât să obținem algoritmi eficienți de învățare, în funcție de problematica abordată. Desigur, există mai multe setări inițiale pe care sistemul le poate primi, astfel încât fie cunoaștem de la început structura rețelei, fie aceasta trebuie dedusă pe baza setului de date de antrenament, iar variabilele rețelei pot fi observate pentru fiecare instanță în parte a setului de date, sau unele dintre acestea pot rămâne neobservate.

În funcție de aceste setări, comportamentul sistemului se schimbă radical, permițând astfel mutiple rezolvări ale problemei, care pot fi observate și în tabelul următor [17]:

Index

Structura rețelei Bayesiene

Observabilitatea Metoda de învățare propusă

1 Cunoscută Completă Estimarea probabilității maxime2 Cunoscută Parțială Algoritmul Expectation-Maximization,

Metoda gradientului ascendent, Lanțuri Markov Monte Carlo

3 Necunoscută Completă Căutare în domeniul modelului4 Necunoscută Parțială Algoritmul Expectation-Maximization +

Căutare în domeniul modelului

În cazul în care cunoaștem de la început structura rețelei, iar variabilele sunt observate în întregime în setul de date, învățarea tabelelor cu probabilități condiționale este foarte simplă, având în vedere faptul că estimarea entităților corespunzătoare tabelelor poate fi realizată în conformitate cu regulile clasificatorului naiv Bayes.

Situația se complică însă, dacă deși cunoaștem structura sistemului, nu există posibilitatea de observare a tuturor variabilelor, în urma consultării instanțelor de antrenare. Această problemă este oarecum similară cu învățarea ponderilor pentru unitățile ascunse din cadrul

26

Page 27: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

rețelelor neuronale, unde nodurile de intrare și ieșire sunt date, însă valorile unităților ascunse nu sunt specificate în setul de date de antrenament.

În acest caz, se poate utiliza algoritmul Expectation maximization, pentru identificarea unei estimări locale și optime a probabilității maxime. Lanțurile Markov Monte Carlo reprezintă o abordare alternativă a celei din urmă, fiind folosită pentru estimarea parametrilor din cadrul modelului corespunzător rețelei Bayesiene. Metoda gradientului ascendent [13] reprezintă o procedură de învățare a entităților prezente în tabelele cu probabilități condiționale. Se caracterizează prin procese de căutare în cadrul domeniului ipotezelor corespunzătoare tuturor celulelor din tabele, iar funcția care este maximizată pe parcursul acestei proceduri, este reprezentată de probabilitatea P(D∨h) a datelor de antrenament D în raport cu ipoteza h.

În cazul al treilea, când structura rețelei Bayesiene este necunoscută, însă observabilitatea variabilelor este completă, scopul este acela de a învăța un graf aciclic care să reprezinte cât mai bine informațiile, complexitatea problemei fiind însă exponențială. O abordare a rezolvării poate fi constituită de asumarea principiului conform căruia variabilele sunt condițional independente în raport cu o anumită clasă, ceea ce determină existența unui singur nod părinte comun pentru toate celelalte noduri corespunzătoare varibilelor.

În ultimul rând, când nu cunoaștem reprezentarea rețelei, iar observabilitatea variabilelor este parțială, ceea ce rămâne de făcut este să marginalizăm atât nodurile ascunse, cât și parametrii. De cele mai multe ori, acest lucru nu se poate realiza, fapt pentru care este necesară utilizarea unei aproximări asimptotice a probabilităților posterioare, numită și Criteriul de informare Bayesian [17], sau Principiul descrierii lungimii minime. O alternativă ar putea fi reprezentată de îmbinarea căutării locale cu algoritmul Expectation-Maximization, dând naștere unui alt algoritm și anume: Structural Expectation-Maximization.

2.5.3. Regula Gradientului Ascendent în Rețelele Bayesiene

Regula gradientului ascendent a fost enunțată de către Rusell (1995) și este constituită de maximizarea lui P ( D|h ), prin urmărirea gradientului ln P(D∨h) în raport cu evaluarea parametrilor care definesc tabelele cu probabilități condiționale corespunzătoare rețelei Bayesiene [13].

Fie w ijk o entitate corespunzătoare uneia dintre probabilitățile condiționale din tabel. În particular, putem spune că w ijk reprezintă probabilitatea condițională pe care variabila Y i o ia pentru valoarea y ij, luând în considerare părinții U i care au valorile reprezentate de uik.

Gradientul expresiei ln P(D∨h) este dat de către derivatele ∂ ln P ( D|h )

∂ w ijk pentru fiecare w ijk.

Fiecare derivată poate fi calculată astfel:

27

Page 28: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

∂ ln P ( D|h )∂w ijk

=∑d∈D

P (Y i= y ij ,U i=uik∨d )wijk

În cazul variabilelor neobservate de instanța d din setul de date de antrenament D, probabilitățile condiționale pot fi calculate luând în considerare acele variabile care au fost totuși observate de către d, prin folosirea deducției rețelelor Bayesiene.

Pentru a simplifica puțin notația, vom considera Ph(D) în locul P ( D|h ). Scopul nostru

este acela de a deriva gradientul definit de setul de derivate ∂ ln P ( D|h )

∂ w ijk pentru fiecare i, j și k.

Având în vedere faptul că instanțele d sunt independente, obținem:∂ ln Ph(D)

∂ w ijk= ∂

∂ w ijkln∏

dϵDPh ( d )=∑

dϵD

∂ ln Ph(D)∂ w ijk

=∑dϵD

1Ph(d )

∂ Ph(D)∂ wijk

După cum se poate observa, ultima expresie a fost obținută datorită ecuației generale ∂ ln f (x )

∂ x= 1

f (x )∂ f (x)

∂ x. În continuare, vom introduce și valorile variabilelor Y i și U i, unde

U i=Părinți (Y i), prin însumarea tuturor valorilor posibile ale acestora y ij ' și uik '.∂ ln Ph(D)

∂ w ijk=∑

dϵD

1Ph(d)

∂∂ wijk

∑j' ,k '

Ph (d|y i j ' ,u i k' ) Ph ( y i j ' ,ui k ' )=∑dϵD

1Ph(d)

∂∂ w ijk

∑j ' , k '

Ph (d|y i j ' , ui k ') Ph ( y i j '∨u i k' ) Ph (ui k ' )

Având în vedere faptul că w ijk=Ph( y ij , uik), iar singurul termen pentru care ∂

∂ wijk≠ 0 este

acela pentru care j'= j și i'=i,obținem:∂ ln Ph(D)

∂w ijk=∑

dϵD

1Ph(d)

∂∂ wijk

Ph ( d|y ij , uik ) Ph ( y ij∨uik ) Ph (u ik )=∑dϵD

1Ph(d)

∂∂ w ijk

Ph (d|y ij , uik ) wijk Ph (uik )=∑dϵD

1Ph(d )

Ph (d|y ij , uik ) Ph (u ik )

Aplicând teorema lui Bayes pentru a rescrie Ph (d|y ij , uik ), obținem:

∂ ln Ph(D)∂ w ijk

=∑dϵD

1Ph(d)

Ph ( d|y ij , uik ) Ph (d ) Ph (u ik )Ph( y ij , uik)

=∑dϵD

Ph (d|y ij , uik ) Ph (u ik )Ph( y ij ,uik )

=∑dϵD

Ph (d|y ij , uik )Ph( y ij ,u ik)

=∑dϵD

Ph ( d|y ij , uik )wijk

Este necesar ca ponderile w ijk să rămână probabilități valide în intervalul [0,1]. De

asemenea, suma ∑j

wijk să fie 1 pentru toate valorile pe care i și j le pot lua. Pentru a satisface

aceste condiții, în primul rând vom modifica fiecare pondere w ijk prin metoda gradientului ascendent, astfel:

w ijk ←w ijk+η∑dϵD

Ph ( d y ij ,uik|d )w ijk

În ecuația de mai sus, η reprezintă o constantă mică, numită și rata de învățare. În al doilea rând, vom renormaliza ponderile w ijk pentru a ne asigura că acele constrângeri precizate mai sus sunt respectate. Acest proces va converge în cele din urmă la o ipoteză locală de probabilitate maximă pentru probabilitățile condiționale din rețeaua Bayesiană [13].

28

Page 29: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

2.5.4. Algoritmul Expectation-Maximization

Algoritmul Espectation-Maximization (EM) are rolul de a estima parametrii din modelele probabilistice care se confruntă cu seturi de date de antrenement incomplete. Ideea generală a acestuia constă în alternarea următorilor pași [20]:

Ghicirea distribuției probabilităților pentru datele care lipsesc din modelul curent (se mai numește și Pasul E – „estimation” – în general, nu este necesară identificarea distribuției probabilistice explicit, ci se dorește găsirea unor statistici previzibile suficiente);

Reestimarea parametrilor modelului utilizând completările obținute în pasul precedent (se mai numește și Pasul M – „maximization” – procesul putând fi văzut ca o maximizarea a logaritmului probabilității).

Acest algoritm a fost introdus inițial de către Ceppellini în anul 1950, în contextul estimării frecvenței genelor, fiind aprofundat ulterior de către Hartley și Baum în contextul Modelelor Markov ascunse, unde este cunoscut ca Algoritmul Baum-Welch. Reprezintă o generalizare naturală a estimării probabilității maxime, în cazul seturilor de date incomplete.

În continuare, vom considera următoarele notații: X={x1 ,…, xm } reprezintă datele observate dintr-un set de m instanțe independente, Z={z1 ,… ,zm }elementele neobservate din același set de instanțe, iar Y=X∪Z setul complet de date. Elementele din Z pot fi văzute ca niște variabile aleatoare a căror distribuție probabilistică depinde de parametrii necunoscuți θ și de datele observate din X . Vom folosi h pentru a reprezenta valorile ipotetice curente ale parametrilor θ și h’ pentru reprezentarea valorilor reestimate la fiecare iterație a algoritmului.

Algoritmul Expectation-Maximization caută ipoteza cu probabilitatea maximă h’ care

maximizează expresia E ¿ .

Pentru a înțelege concret semnificația acestei expresii, știm deja că P(Y ∨h') este probabilitatea setului de date Y în raport cu ipoteza h’ . Întrucât dorim să găsim acea ipoteză h’ care maximizează o anumită funcție pentru datele existente, acest lucru poate fi obținut prin maximizarea logaritmului probabilității, adică ln P(Y ∨h').

În continuare, vom introduce conceptul de valoare așteptată E ¿, deoarece setul de date în sine reprezintă o variabilă aleatoare. Având în vedere faptul că Y conține și date care nu au fost observate, adică Z, este necesar să determinăm o evaluare a posibilelor valori ale lui Z în funcție de probabilitățile acestora. Cu alte cuvinte, valoarea E ¿ este calculată în funcție de distribuția probabilistică peste setul de variabile aleatoare Y.

În general, această distribuție probabilistică nu este cunoscută, deoarece este determinată tocmai de către parametrii θ pe care încercăm să îi estimăm. În aceste sens, algoritmul Expectation-Maximization folosește ipoteza curentă h în locul parametrilor θ pentru estimarea

distribuției. Fie Q (h'|h ) ce reprezintă expresia E ¿ sub forma unei funcții pentru h’,

considerând că θ=h ' și având în vedere setul de date observate X din Y [13].

29

Page 30: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

Q (h'|h )=E ¿Astfel, putem relua pașii generali ai algoritmului EM prezentați anterior, abordându-i

într-o manieră matematică:

Pasul E: se calculează Q (h'|h ) folosind ipoteza curentă h și datele observate X pentru

estimarea distribuției probabilistice peste Y:

Q (h'|h )=E ¿ Pasul M: se înlocuiește ipoteza h cu ipoteza h’ în vederea maximizării funcției:

h ← Q (h'|h )h 'argmax

În cazul în care funcția Q este continuă, algoritmul va converge către un punct fix al

funcției probabilistice p (Y|h' ), iar dacă această funcție are un singur maxim, EM va converge

către maximul global al estimării probabilității pentru h ’. În caz contrar, ne este garantată doar convergența către un punct de maxim local.

Algoritmul Expectation-Maximization este deseori folosit în domeniul bio-informaticii, abordând probleme precum: învățarea profilelor proteice și a familiilor de ARN, descoperirea modulelor transcripționale, identificarea proteinelor și a imagisticii medicale, șamd. În fiecare caz în parte, acest algoritm oferă o modalitate simplă, ușor de implementat și eficientă pentru învățarea parametrilor unui model. Din momentul în care acești parametrii sunt cunoscuți, poate fi utilizată deducția probabilistică pentru identificarea diverselor caracteristici ale modelului (de exemplu: Cărei grupări îi aparține o anumită genă?). Astfel, EM ne oferă un mecanism simplist de învățare a parametrilor modelului, prin construirea și antrenarea unui sistem probabilistic puternic.

30

Page 31: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

3. DOMENII DE APLICARE ALE ÎNVĂȚĂRII BAYESIENE

Deși metodele de învățare Bayesiană au fost studiate timp de mai mulți ani, de curând aplicațiile practice ale acestora au început să fie foarte răspândite. Datorită evoluării continue a tehnologiei și respectiv apariției unor calculatoare rapide, algoritmii Bayesieni pot ajunge la un rezultat într-un timp relativ scurt, surclasând de multe ori alte metode de învățare automată mai complicate. În cele ce urmează, vor fi prezentate câteva astfel de aplicații, pentru a scoate în evidență simplitatea prin care această abordare poate face față unui set diversificat de probleme care pot apărea în viața de zi cu zi.

3.1. Recunoașterea expresiilor faciale și a emoțiilor

Întrucât recunoașterea expresiilor faciale și a emoțiilor cu ajutorul unui sistem inteligent reprezintă o problemă pe cât de interesantă pe atât de provocatoare, mulți cercetători au încercat de-a lungul timpului să găsească o metodă cât mai bună pentru realizarea acestui lucru.

Emoțiile fac parte din noi, ca ființe umane, materializându-se prin gesturi ale mâinilor, ale corpului, prin expresii faciale, precum și prin tonul folosit în cadrul unei conversații. Fiecare individ se caracterizează astfel printr-o modalitate unică de manifestare, prin exprimarea, sau din contră, ascunderea propriilor sentimente.

Interacțiunea dintre 2 sau mai multe persoane poate decurge natural tocmai prin cunoașterea acestei laturi emoționale, spre deosebire de interacțiunea dintre un om și un calculator, cel din urmă nefiind capabil să înțeleagă și să reacționeze în conformitate cu starea de spirit a interlocutorului său.

În ultima perioadă, s-a dezvoltat un interes crescut pentru îmbunătățirea acestor relații dintre om și calculator. Ekman și Friesen au dezvoltat în anul 1978 un sistem de măsurare al comportamentului facial [6] aplicat pe mai multe înregistrări video, preluate în timp ce subiecților le erau arătate imagini cu impact emoțional atât pozitiv cât și negativ. Aceștia considerau că emoțiile sunt strict legate de mimica feței, existând șase expresii faciale universale [6] de bază și anume: fericirea, uimirea, supărarea, frica, furia și disprețul.

31

Page 32: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

Din anul 1900, comunitatea de ingineri a început să studieze aceste rezultate, în vederea construirii unor metode automate de recunoaștere a expresiilor faciale și a emoțiilor [17] pe baza expresiilor faciale, din imagini și înregistrări video.

În anul 2002, un grup de cercetători au venit cu o propunere nouă pentru rezolvarea acestei probleme și anume utilizarea clasificatorului naiv Bayes, având ca model de distribuție, distribuția Cauchy. Această alegere a fost făcută luând în considerare faptul că distribuția Gaussiană poate fi uneori invalidă.

În vederea rezolvării acestei probleme, a fost ales un model facial care era împărțit în 16 suprafețe, pe baza cărora au fost evidențiate 12 măsurători de mișcare a diverselor componente ale feței. Ca modalitate de testare a algoritmului, setul de date inițial a fost împărțit în două categorii: date de antrenament și date de test, urmând să fie extras din setul de date destinat antrenării un subset de date pe baza căruia să fie aplicată o clasificarea inițială. Modelul de distribuție (distribuția Cauchy sau distribuția Gaussiană) care obținea cel mai bun rezultat, urma să fie utilizată în clasificarea instanțelor din setul de testare.

Baza de date utilizată conținea imagini preluate de la cinci persoane (care nu erau actori) și care au fost instruiți să mimeze expresii faciale corespunzătoare celor șase tipuri de emoții prezentate mai sus. După fiecare astfel de mimare, se revenea la o expresie neutră, tocmai pentru a nu influența în niciun fel următoarele reprezentări.

În urma acestor experimente, utilizarea distribuției Cauchy a determinat o medie a acurateților luând în considerare cele 5 persoane de 80.05%, pe când distribuția Gaussiană a obținut o medie a acurateților de 79,36% [17]. Se poate observa faptul că prima metodă nu a adus o îmbunătățire spectaculoasă sistemlui, iar acest lucru se datorează tocmai utilizării aceluiași mediu de urmărire pentru fiecare persoană.

Repetându-se acești pași, dar reducând domeniul de clase la un număr de patru (neutru, bună dispoziție, indispoziție, surprindere), sistemul poate prezice acum prin utilizarea distribuției Cauchy cu o acuratețe de 88-89% [17] dacă o anumită persoană exprimă o expresie facială fericită, supărată sau surprinsă.

A urmat un nou test, pentru a putea lua în considerare independența celor 5 persoane. Astfel, pentru antrenare au fost folosite imaginile preluate de la patru dintre subiecți, iar imaginile rămase au fost folosite pentru testare. Pentru a putea evidenția toate cazurile posibile, acest experiment a fost repetat de cinci ori. Întrucât modul de exprimare al fiecărei ființe umane este diferit, acuratețea sistemului a scăzut în cazul distribuției Cauchy la 63,58%, iar în cazul distribuției Gaussiene la 58, 94%.

3.2. Recunoașterea vizuală a gesturilor

În domeniul învățării automate, studierea roboților mobili constituie de asemenea un subiect interesant, deseori abordat de către specialiști. Pentru a putea determina un sistem să

32

Page 33: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

recunoască anumite gesturi, reprezentate de altfel de mișcări corporale, este nevoie de o tehnologie avansată, atât din punct de vederere al componentelor fizice utilizate, cât și din punct de vedere al logicii aplicate.

Modelele Markov ascunse au constituit o metodă des folosită pentru rezolvarea acestei probleme. Totuși, s-a observat faptul că numărul de parametrii necesari pentru a defini modelul cresc exponențial, pe măsură ce crește și numărul de stări observate.

Pentru a depăși această limitare, prin găsirea unui model de recunoaștere a gesturilor care să poată fi antrenat pe baza unui set mic de date și în același timp să dea rezultate bune, a fost propusă o extensie a clasificatorului naiv Bayes, numită Clasificatorul Naiv Bayes Dinamic [8], care simplifică modelul prin descompunerea stării observate într-un set de atribute independente.

Acesta este format dintr-o pereche de forma {A , C } unde A=\{ An1 , An

2 , … , AnT \}, fiecare

Ant cu t=1. .T reprezentând un set de n atribute instanțiate (generate de un proces dinamic),

iar C={C 1 ,C 2, …,CT } un set de T variabile C t generate de același proces la un moment t . Clasificatorului naiv Bayes dinamic i-a fost atribuită următoarea funcție de distribuție a

probabilității: P ( A ,C )=P(C1)∏t=1

T

∏j=1

n

P( A jt∨¿C t)∏

i=2

T

P(C t∨Ct −1)¿, unde:

P(C1) reprezintă distribuția probabilității inițiale pentru variabila de clasă C1,

P( A jt∨C t) reprezintă distribuția probabilității unui atribut dintr-o anumită clasă,

P(C t∨Ct−1) reprezintă tranziția distribuției probabilității dintre clase, în timp.

Produsul ∏j=1

n

P (A jt ∨¿Ct)¿ este folosit tocmai pentru susținerea presupunerii naive

conform căreia atributele claselor sunt independente.Această abordare a fost folosită pentru un set de 150 de exemple corespunzătoare celor

cinci gesturi principale: atenție, oprește-te, mergi la stânga, mergi la dreapta, vino. Aceste exemple au fost preluate în diferite condiții de iluminare, distanța dintre persoană și cameră variind între trei și cinci metrii. Au fost obținute două seturi de atribute reprezentative pentru descrierea gesturilor: atribute de mișcare pentru descriera deplasării mâinii în spațiu și atribute de staționare pentru descrierea relațiilor dintre poziția mâinii și celelalte părți ale corpului[8].

Setul de imagini obținute a fost divizat astfel: 60% pentru antrenament, iar restul de 40% pentru testare. Modelul a fost antrenat de mai multe ori, numărul de exemple utilizate pentru procesul de antrenare variind între 5% și 100%, folosindu-se de fiecare dată setul complet pentru testare.

În urma acestor experimente, a fost obținută o medie a ratei de recunoaștere de 96,75%, comparativ cu 98,47% rata de recunoaștere obținută în urma folosirii modelelor Markov ascunse. Diferența majoră se observă însă în momentul în care se folosesc între 1% și 10% (între două și cincisprezece imagini pentru fiecare gest) din setul de date de antrenament,

33

Page 34: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

clasificatorul dinamic având o performanță mai ridicată, chiar daca numărul de parametrii folosiți este mult mai mic decat în cazul modelelor Markov.

3.3. Clasificarea plantelor și a animalelor pe baza MicroARN-ului

MicroARN-urile reprezintă molecule de ARN monocatenare, având molecule de aproximativ 21-23 nucleotide cu complementaritate imperfectă [10]. În ultimii ani, s-a demonstrat faptul că aceste molecule mici de ARN noncodant sunt implicate direct în procesele de diferențiere neuronală și dezvoltare cerebrală, putând genera afecțiuni precum: boala Alzheimer, boala Parkinson, retardul mintal și atrofia musculară spinală.

Experimentele de laborator tradiționale realizate în vederea clasificării microARN-urilor plantelor și animalelor s-au dovedit a fi costisitoare atât din punct de vedere al resurselor utilizate, cât și din punct de vedere al timpului consumat. Din această cauză, s-a dorit aprofundarea acestui domeniu prin intermediul unor surse informatice, precum învățarea automată.

Un studiu recent ne arată cum un grup de cercetători a ales să aplice clasificatorul naiv Bayes pentru rezolvarea acestei probleme. Au fost preluate caracteristici reprezentative ale MicroARN-ului precum: numărul de gene MicroARN prezente, locul de amplasare în cadrul genomului prezența grupurilor de MicroARN, biosinteza MicroARN-ului, locația legăturilor de MicroARN în raport cu genele țintă, numărul de astfel de legături și funcțiile îndeplinite de către aceste gene, obținându-se astfel diferențele dintre plante și animale [10].

Totuși, nu au fost utilizate toate aceste atribute în procesul de clasificare. Spre exemplu, atributele precum prezența cluster-ilor nu au fost luate în considerare, informațiile oferite de către acestea fiind considerate irelevante. Caracteristicile cu adevărat importante și reprezentative pentru această problemă au fost în număr de patru, referindu-se la complementaritete, numărul de nepotriviri cu ARN-ul țintă, numărul de gene țintă și dimensiunea fold back loop [10].

Pentru evaluarea sistemului, a fost aleasă validarea încrucișată, utilizându-se nouă zecimi din setul de date pentru antrenare și restul de o zecime pentru testare. Acest proces a fost repetat de 10 ori, de fiecare dată preluându-se informațiile din setul de date în mod aleator. În urma acestor experimente, a fost obținută o acuratețe de 85,71%, fiind clasificate corect 84 de instanțe, dintr-un număr total de 98.

3.4. Optimizarea deciziilor pentru tratamente

34

Page 35: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

În domeniul medical, s-a încercat de asemenea această apropiere de resursele informatice, dorindu-se crearea unui sistem care să vină în ajutorul medicilor, prin oferirea unor posibile soluții, unor sfaturi, rolul lor nefiind acela de înlocuire totală a implicației umane. Acest lucru se datorează risculul major care învăluie medicina, viața pacienților având o importanță mult prea mare pentru a putea fi acordată încredere absolută unei mașini inteligente lipsită de emoții.

Totuși, un ajutor în plus venit în manieră obiectivă nu strică, fapt pentru care mai mulți cercetători au aprofundat această problemă, care pe cât este de interesantă și utilă, pe atât este de dificilă.

O astfel de abordare, a fost reprezentată de aplicarea clasificatorului naiv Bayes (CNB) în evaluarea riscului de progresie, respectiv revenire a cancerului, în urma radioterapiei. Această abordare a fost puțin problematică, deoarece chiar dacă CNB este tolerant cu datele zgomotoase și incomplete prezentând astfel anumite beneficii, mulți specialiști consideră faptul că independența atributelor ar putea constitui un deficit pentru domeniul medical.

În cadrul acestui studiu au fost analizate datele preluate de la 140 de pacienți diagnosticați cu tumoare pe creier, care au fost tratați incepând cu 1 ianuarie 2000, până în 31decembrie 2005. Informațiile obținute au ajutat la obținerea a 96 de atribute reprezentative pentru descrierea celor două clase de diagnosticare a pacienților:

0 – revenirea, respectiv progresia cancerului în urma radioterapiei, 1 – stabilizarea, respectiv lipsa progresiei cancerului în urma radioterapiei.Aceste atribute selectate pentru categorizare, au fost împărțite în următoarele categorii

[10]: histologie (tipul histolgic al tumorii), imagistica craniană, locația tumorii primare, simptomele neurologice înainte de tratament, tratamentul chirurgical, radioterapia, boli coexistente, descoperirile făcute în laborator, tratamentul de susținere, pacientul.

Pentru determinarea calității sistemului, a fost folosită validarea încrucișată, comparându-se rezultatele oferite de către sistem, cu rezultatele reale obținute în urma aplicării tratamentelor pentru pacienții bolnavi. Acuratețea inițială a sistemului a fost de 82% (din 142 de cazuri, 116 pacienți au fost clasificați corect, în timp ce restul de 26 de pacienți au fost clasificați incorect). Sensibilitatea sistemului a fost de 0,79 iar specificitatea de 0,83. În urma unor optimizări făcute cu ajutorul evaluatorilor WEKA, procentul acurateții a crescut la 84%, sensibilitatea fiind acum 0,80 iar specificitatea 0,87.

Rezultatele obținute cu ajutorul clasificatorului naiv Bayes au fost promițătoare, însă scopul principal fiind determinarea celui mai bun sistem capabil să rezolve problema de față, au fost abordate și alte metode de învățare automată precum: arborii de decizie și rețelele Bayesiene (care sunt de altfel unele dintre cele mai populare sisteme folosite în medicină), comparațiile fiind prezentate în tabelul următor [10]:

Acuratețe Sensibilitate SpecificitateClasificatorul naiv Bayes 82% 0,79 0,83

Rețelele Bayesiene 80% 0,73 0,85

35

Page 36: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

Arborii de decizie 71% 0,62 0,75

S-a observat faptul că folosirea clasificatorului naiv Bayes oferă rezultate mult mai bune, comparativ cu celelalte două metode abordate. Abilitatea de a adăuga cu ușurință atribute noi sistemului, într-un mediu aflat în continuă dezvoltare și schimbare precum medicina, face din acest clasificator un instrument valoros. De asemenea, ușurința utilizării acestui sistem constituie un avantaj, având în vedere faptul că atât arborii de decizie, cât și rețelele neuronale necesită depunerea unui efort mult mai mare din partea clinicianului care utilizează programul.

În cazul arborilor de decizie, ar trebui eliminate acele reguli greșite generate de către sistem, în timp ce extinderea acestor arbori cu atribute noi reprezintă o operațiune costisitoare din punct de vedere al timpului consumat. În ceea ce privește rețelele neuronale, evaluarea importanței atributelor este imposibilă, procesul de optimizare și generalizare fiind astfel îngreunat.

3.5. Proiectarea produselor alimentare

Chiar dacă pare greu de crezut, domeniul învățării automate s-a extins atât de mult, încât a reușit să atragă atenția chiar și specialiștilor din industria alimentară. Competitivitatea ridicată, precum și lupta pentru supraviețuire într-un astfel de mediu aflat în continuă schimbare, a determinat necesitatea dezvoltării unui sistem artificial, capabil să facă față cerințelor diverse ale consumatorilor.

În mod normal, dezvoltarea unui produs alimentar nou, implică prelevarea anumitor informații din trei surse diferite: panouri senzoriale, panouri preferențiale și date instrumentale [5].

Panoul senzorial este reprezentat de un grup de aproximativ 10-20 de persoane atent selectate și antrenate pentru o periadă de mai multe luni. În urma unor discuții, sunt extrași între 8 și 20 de descriptori care sunt mai apoi folosiți în vederea descrierii mai multor varietăți de produse, selectate astfel încât să reprezinte o gama largă de arome, culori șamd. Aceste produse le sunt mai apoi oferite spre testare membrilor grupului, care pe baza propriilor simțuri precum și pe baza elementelor învățate vor completa panoul senzorial, prin atribuirea unei valori fiecărui descriptor.

Panoul preferențial este reprezentat de un grup de 50-500 de oameni necalificați, potențiali consumatori, aceștia fiind supuși unui test asemănător cu cel prezentat anterior, diferența constând în abordarea simplistă a descriptorilor, astfel încât să nu fie necesară o pregătire anterioară a subiecților.

Datele instrumentale se referă la caracteristici specifice produselor, putând include imagini digitale, precum și detalii despre compușii chimici folosiți.

36

Page 37: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

După cum se poate observa, întregul proces de prelevare al acestor informații este unul costisitor atât din punct de vedere financiar, cât și din punct de vedere al timpului utilizat. De asemenea, subiectivitatea oamenilor determină o anumită inconsistență a descriptorilor.

Un studiu recent a arătat că 90% din cele aproximativ 13000 de produse noi care apar în fiecare an în US sunt destinate eșecului. Acest procent deloc scăzut a determinat apariția unui studiu, prin intermediul căruia să se poată proiecta un sistem care să ajute la conceperea ”produselor ideale”, realizându-se pe această cale o comparație între 3 tehnici utilizate: rețelele neuronale, clasificatorul naiv Bayes și rețelele Byesiene.

A fost utilizat un set de 20 de înregistrări, fiecare înregistrare reprezentând informațiile complete pentru un singur aliment (o valoare preferențială P1 reprezentând funcția target, și opt valori senzoriale S1...S8 care au fost folosite pentru predicție). Pentru determinarea performanțelor sistemului, s-a recurs la validarea încrucișată: 19 instanțe pentru antrenare și o instanță pentru testare. Acest experiment a fost repetat de 20 de ori, astfel încât fiecare posibilitate să fie luată în calcul și a fost obținut următorul tabel (între paranteze rotunde este prezentată deviația standard a fiecărei valori) [5]:

Acuratețe Probabilitate comună înregistratăRețelele neuronale 0,796

(0,05)N/A

Clasificatorul naiv Bayes 0.800 (0,00)

-123,08 (0,00)

Rețelele Bayesiene 0.800 (0,00)

-107,51 (1,03)

După cum se poate observa, rețelele neuronale, clasificatorul naiv Bayes, precum și rețelele Bayesiene dau rezultate similare când vine vorba de prezicerea preferințelor anumitor produse pe baza panourilor senzoriale.

Totuși, este de remarcat faptul că rețelele Bayesiene sunt construite astfel încât să poată modela întregul set de date și nu se bazează pe găsirea unei singure relații reprezentative, spre deosebire de celelalte două tehnici utilizate, care se axează concret pe construirea unui model care să evidențieze problema de față. Acestea aduc așadar un plus sistemului, întrucât pot fi construite dintr-un set de date modest, cu sau fără cunoștințe anterioare, fiind totuși scalabile datorită faptului că permit optimizare locală [5].

3.6. Clasificarea imaginilor satelitare

La Goddard Earth Sciences Distributed Active Archive Center (GES DAAC) sunt încărcate zilnic aproximativ un Tb de imagini preluate de la sateliți, acestea fiind ulterior distribuite mai multor centre de cercetare și analiză, în funcție de domeniul vizat [11].

37

Page 38: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

Dificultatea apare însă în momentul în care se dorește găsirea acelor imagini care corespund unui scop concret. Volumul de date este foarte mare, minimizând posibilitatea de identificare a informațiilor relevante dintr-un anumit punct de vedere. De asemenea, datorită resurselor limitate, doar un număr mic de imagini ar putea fi stocate pe disk în vederea accesului direct.

Deși există deja diverși algoritmi științifici de prelucrare a informațiilor utile din surse directe (pământ, oceane, atmosferă), timpul necesar obținerii unor rezultate variază de la 30 de minute până la câteva zile, fapt pentru care, de cele mai multe ori, informațiile neclasificate ajung să fie folosite și chiar șterse din memorie. Astfel a apărut necesitatea folosirii unor algoritmi de învățare automată, scopul fiind acela de a reduce atât timpul de procesare, cât și cerințele de calcul, astfel încât estimările realizate să poată fi integrate în fluxul de date, iar deciziile să poată fi luate în timp util.

Aplicarea metodelor de învățare automată în cadrul aplicațiilor științifice poate fi dificilă, dacă ne gândim la constrângerile de discretizare, la inexistența bazelor fizice, precum și la construirea setului de antrenament. Totuși, aceste dificultăți se diminuează când vine vorba despre suportul decizional. De cele mai multe ori este suficient să știm dacă un anumit atribut depășește un prag anume, valoarea concretă a acestuia fiind mai puțin importantă. De asemenea, un alt avantaj al utilizării acestor metode este constituit de timpul relativ scurt de execuție, odată ce sistemul a fost antrenat.

În vederea conceperii unui sistem care să satisfacă cerințele prezentate anterior, un grup de cercetători de la NASA au ales clasificatorul naiv Bayes, oferindu-i ca date de antrenament rezultatele obținute de la algoritmii științifici existenți în momentul respectiv, dar care nu erau eficienți din punct de vedere al timpului de rulare. Instanțele urmau să fie clasificate în categorii precum: nori, zăpadă, lumină solară, apă puțin adâncă, apă adâncă, foc, ghețari, deșert și pământ.

Procesul de antrenare al acestui algoritm consta în estimarea funcției de distribuție a probabilităților pe baza unor histograme corespunzătoare diferitelor clase de pixeli, iar determinarea probabilităților condiționale era influențată atât de sezon, cât și de poziționarea geografică [11].

În urma evaluării sistemului, clasificatorul naiv Bayes s-a dovedit a fi mai puțin eficient decât algoritmii tradiționali, discrepanțele dintre cele două abordări fiind totuși suficient de mici astfel încât să se poată permite utilizarea clasificatorului pentru gestionarea informațiilor. În ceea ce privește însă timpul de execuție, îmbunătățirile au fost considerabile.

Conceptual simplu și robust în practică acest algoritm a demonstrat încă o dată că poate fi scalabil la mai multe domenii, necesitând intervenție minimă din partea utilizatorului. În plus, rezultatul nu este reprezentat de o simplă clasificare nominală, incluzând de asemenea și câte o probabilitate atribuită fiecărei clase.

38

Page 39: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

3.7. Clasificarea solurilor agricole

Un alt domeniu care necesită aplicabilitatea unor algoritmi de învățare automată este acela al agriculturii, în vederea determinării unor șabloane reprezentative diverselor profile de soluri existente.

Acesta reprezintă un subiect dinamic, având în vedere structura sistemului, definirea claselor, precum și aplicabilitatea practică a problemei în sine, iar sistemele de clasificare moderne care îl abordează sunt construite astfel încât să permită tranziția ușoară între observațiile făcute în teren și predicția proprietăților solurilor.

Cel mai cunoscut sistem de clasificare al solurilor din America de Nord este Unified Soil Classification System (USCS), având trei mari categorii de clasificare: soluri cu textură grosieră (de exemplu: nisipuri și pietrișuri), soluri cu textură fină ( de exmplu: aluviuni și argile) și soluri organice.

Un grup de cercetători din Madanapalli, respectiv Tirupati au ales să realizeze un sistem asemănător, prin folosirea învățării Bayesiene. În urma unor sondaje de sol realizate în numeroase locații agricole din Chandragiri Mandal și Chittoor District, a fost obținut setul de date, acesta conținând diverse informații despre clasificarea profilelor de sol, precum și despre caracteristicile chimice ale acestora [18].

În urma unor experimente realizate care utilizau un set mic de date, clasificatorul naiv Bayes a reușit să clasifice toate instanțele corect. Acuratețea sistemului, precum și timpul de execuție au fost mult mai bune comparativ cu alte metode de învățare automată, precum rețelele Bayesiene.

3.8. Procesarea limbajului natural

Sistemele actuale de recunoaștere a vorbirii nu sunt lipsite de erori, fapt pentru care este necesar să cunoaștem fiabilitatea fiecărui cuvânt ipoteză [16]. Această abordare ar putea fi văzută ca o problemă de recunoaștere convențională, în care fiecare cuvânt ipoteză să fie transformat într-un vector de caracteristici și clasificat ulterior ca fiind corect sau incorect. Deciziile importante care trebuie luate în conceperea unui astfel de sistem, țin de alegerea șablonului de recunoaștere și a modelului de clasificare.

Clasificatorul naiv Bayes a venit în rezolvarea acestei probleme, parametrii fiind estimați prin intermediul unor tehnici de netezire sofisticate preluate din modelarea limbajului statistic. Pentru a putea fi realizate experimentele necesare, au fost preluate mai multe conversații purtate în limba italiană de către recepționerul unui hotel.

Criteriul folosit pentru măsurarea performanței clasificatorului se numește Rata de încredere a erorii (CER) și constă în numărul de erori de clasificare divizat la numărul total de cuvinte recunoscute corect. Prin utilizarea șabloanelor de recunoaștere în mod individual, a

39

Page 40: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

fost obținută o rată de aproximativ16,4. Modelul naiv Bayes a avut rolul de a determina performanța clasificatorului, luând în considerare mai multe combinații de astfel de șabloane. În continuare, va fi prezentat un tabel care surprinde rezultatele obținute [16]:

Features CER(%) red.(%)AcScore + WgTOTmax + WTSmax + Dur + AS + WgLMavg 13.1 37.6

WTSmax + Dur + AS + WgLMavg 13.6 35.2Dur + AS + WgLMmax 14.4 31.4

AS + WgLMmax 14.5 31.0AS + WgLMmax 16.4 21.9

Baseline 21.0 -

4. APLICAȚIA PRACTICĂ

4.1. Enunț

În capitolele anterioare au fost prezentate diverse metode de Învățare Bayesiană, alături de importanța și necesitatea folosirii lor în anumite domenii. Alături de o fundamentare matematică solidă și în ciuda simplității aparente, acești algoritmi de învățare automată sunt capabili să detetemine o reducere vizibilă a timpului de execuție, fără a influența însă foarte mult acuratețea sistemului.

În vederea demonstrării acestor caracteristici, vom lua în considerare contextul clasificării textuale. Ne dorim așadar, să concepem un sistem care să fie capabil să asigneze categorii predefinite unor documente de tip text noi. O astfel de abordare, care informatizează de altfel procesul de clasificare textuală pe baza raționamentului uman, este foarte utilă în ceea ce privește reducerea timpulul consumat, alături de eliminarea posibilelor erori apărute datorită oboselii.

De exemplu, știrile sunt de obicei clasificate în funcție de categoriile subiectelor, documentele academice sunt împărțite în domenii tehnice și sub-domenii ale acestora, fișele medicale ale pacienților din instituțiile medicale sunt deseori indexate pe baza unor aspecte reprezentative precum: tipurile de proceduri chirurgicale. De asemenea, filtrarea automată a email-urilor în categorii precum ham, spam este foarte des utilizată în prezent, având de asemenea un grad ridicat al importanței, în ceea ce privește ușurarea activităților noastre zilnice.

Având în vedere aceste lucruri, existența unui soft care să poată fi antrenat în vederea recunoașterii oricâtor categorii de documente, de ori câte ori, fără modificări ale codului sursă (adică o aplicație care să poată fi utilizată de către oricine indiferent de cunoștințele din domeniul informaticii) ar fi de un real folos, ajutându-ne să ne clasificăm documentele în ce

40

Page 41: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

categorii dorim, condiția fiind să dispunem de un set de documente relevante acestui scop, necesare procesului de antrenare.

Se va folosi deci, o metodă de învățare Bayesiană pentru rezolvarea acestei probleme, testându-se algoritmul final atât pentru clasificarea binară, cât și pentru clasificarea în mai mult de două categorii. Softul va putea fi folosit în orice domeniu, cât timp se pretează categorizării de natură textuală.

4.2. Analiză și proiectare

Propunem utilizarea clasificatorului naiv Bayes pentru conceperea sistemului destinat clasificării documentelor de tip text.

După cum am precizat și anterior în descrierea comportamentului acestui clasificator, avem nevoie de un spațiu al instanțelor X , care să descrie toate documentele de tip text existente, precum și de un set de date de antrenament corespunzătoare unor funcții target necunoscute f(x) care pot lua orice valoare dintr-un anume set finit V . Scopul sistemului este acela de a învăța pe baza acestor date de antrenament să prezică valoarea funcției țintă, adică denumirea categoriei din care face parte un document nou, oferit spre clasificare.

În ceea ce privește raportarea acestei probleme de categorizare textuală la utilizarea concretă a clasificatorului naiv Bayes, intervin două aspecte importante care țin de proiectare. În primul rând, trebuie să decidem cum vom reprezenta un document text sub forma unor atribute, iar în al doilea rand trebuie să identificăm o modalitate de estimare a probabilităților necesare clasificatorului.

În cazul de față, pentru un anumit document, atributele vor fi definite pentru fiecare poziție a unui cuvânt, valoarea acestora fiind reprezentată tocmai de către cuvintele corespunzătoare. Este ușor de intuit faptul că pentru anumite documente, care au o lungime foarte mare și numărul de atribute va fi ridicat. Totuși acest detaliu nu ne va cauza probleme, după cum vom putea observa în cele ce urmează.

Pentru a putea ilustra modul de lucru al clasificatorului naiv Bayes în contextul actual, vom lua un exemplu concret, pe baza căruia vom creiona anumite caracteristici esențiale, urmând să prezentăm și beneficiile suplimentare pe care le va avea utilizatorul pe lângă posibilitatea de antrenare și testare a sistemului respectiv. Presupunem că avem la dispoziție un set de 600 de documente pentru antrenament corespunzătoare unei anumite categorii cu numele: C1 și alte 400 de documente corespunzătoare unei alte categorii: C2. În conformitate cu scopul nostru, în urma procesului de antrenare vom dori, cel mai probabil, să clasificăm un document nou, în una dintre cele două categorii. Pentru realizarea acestui lucru, clasificatorul va trebui să instanțieze următoarea formulă:

vNB=P( ¿v jϵVargmax v j)∏

ai

P(ai∨v j)¿

41

Page 42: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

Practic, clasificarea naivă vNB maximizează probabilitatea de a observa acele cuvinte care au fost găsite în document, datorită presupunerii naive de independență a cuvintelor, conform căreia probabilitățile cuvintelor de pe o anumită poziție sunt independente de cele ale cuvintelor care apar pe alte poziții. Această presupunere poate fi considerată însă incorectă. De exemplu: probabilitatea de observare a cuvântului „learning” pe o anumită poziție ar trebui să fie mai mare în cazul în care pe poziția precedentă s-ar afla cuvântul „machine”. Totuși, această abordare ne este necesară pentru reducerea numărului de probabilități calculate, iar clasificatorul naiv Bayes reușește să obțină performanțe ridicate în ciuda acestui compromis.

Pentru calcularea vNB avem nevoie de probabilitățile inițiale P(v¿¿ j)¿, care pot fi estimate pentru fiecare categorie în parte prin calcularea raportului dintre: numărul de documente dintr-o anumită categorie și numărul total de documente (în cazul nostru 600/1000=0.6 pentru categoria C1, respectiv 300/1000=0.3 pentru categoria C2).

Estimarea probabilităților condiționale este însă mai problematică, deoarece necesită calcularea unui astfel de termen probabilistic pentru fiecare combinație a pozițiilor din text, a cuvintelor și a valorii funcției țintă.

Să presupunem că luăm în considerare vocabularul englez în care există aproximativ 50000 de cuvinte distincte și nu folosim conceptul de independență condițională, rămânând în rest aceleași setări ca mai sus (adică avem la dispoziție două categorii și i poziții în cadrul unui anumit document). Va trebui deci, să estimăm 2∗i∗50000=100000∗i termeni. În cazul în care documentul are 100 de poziții (adică dacă i=100) vom obține 100000∗100=10000000 termeni, o valoare mult prea mare pentru a putea fi luată în considerare.

Acesta este și motivul pentru care vom considera independența condițională a atributelor și distribuția identică a acestora, obținând în acest caz pe același exemplu 2∗50000 de termeni probabilistici diferiți, de i ori mai puțini.

În continuare, trebuie să alegem o metodă de estimare a probabilităților. Vom folosi tehnica m-estimare cu proirități uniforme, unde m va fi egal cu dimensiunea vocabularului de cuvinte. Astfel, estimarea parametrului P(ai∨v j) va fi obținută cu ajutorul formulei:

P (ai|v j )=ni+1

n+¿Vocabular∨¿¿n reprezintă numărul total de poziții ale cuvintelor din toate documentele pentru antrenare

a căror valoare țintă este v j, nieste numărul de apariții al cuvântului w i pe aceste poziții, iar ¿Vocabular∨¿ reprezintă numărul total de cuvinte distincte din cadrul setului de date de antrenament.

Pașii prezentați anterior corespund procesului de antrenare al sistemului, respectiv clasificare a unor documente noi. Având estimările probabilităților condiționale, următorul pas constă în realizarea testării, astfel încât să ne putem raporta la calitatea acestuia prin compararea rezultatelor obținute. Pentru a realiza acest lucru, sistemului ii vor fi oferite spre clasificare documente noi (care nu au fost folosite în procesul de antrenare) și în funcție de

42

Page 43: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

rezultatele obținute se va calcula acuratețea algoritmului după formula

Diagrama cazurilor de utilizare:

Diagrama corespondențelor dintre pachete:

43

Page 44: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

Pentru realizarea acestei aplicații am utilizat arhitectura Model-View-Controller, ce reprezintă un şablon arhitectural folosit în industria de software development. Această modalitate de lucru reuşeşte cu succes să izoleze partea logică de interfaţa proiectului, rezultând aplicaţii extrem de uşor de modificat. În această organizare, modelul reprezintă informaţia (datele) de care are nevoie aplicaţia, view-ul corespunde elementelor de interfaţă iar controller-ul reprezintă sistemul comunicativ şi decizional ce procesează datele informaţionale, făcând legătură între model şi view.

Diagrama de clase, împărțită pe pachete:

44

Page 45: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

45

Page 46: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

46

Page 47: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

Diagrama de clase, corespunzătoare logicii aplicației (cuprinde clasele din pachetele:

model, utile, service, dao)

4.3. Implementare

După ce au fost evidențiate conceptele care stau la baza funcționării clasificatorului naiv Bayes, implementarea acestuia se desfășoară natural, principalele decizii și alegeri fiind determinate strict de modul în care dorim să arate și să se comporte sistemul în final.

Scopul nostru este acela de a realiza o aplicație care să reușească printr-un design atractiv să îndeplinească cerințele utilizatorului. Performanța reprezintă de asemenea o caracteristică importantă, întrucât stă la baza încrederii pe care un personaj uman o poate acorda unui sistem soft, iar independența de platformă constituie un plus în momentul în care ne raportăm la distribuția pe scară largă a produsului pe care îl concepem.

Acestea fiind spuse, am ales ca limbaj de programare Java, un limbaj orientat obiect, puternic tipizat. Un avantaj al acestuia este reprezentat de posibilitatea rulării unui program compilat în prealabil, pe orice platformă care are instalată o mașină virtuală Java (Java Virtual Machine – JVM). Acest lucru este posibil datorită faptului că în urma compilării unor surse Java obținem un format standard, numit cod de octeți, care constituie o cale de mijloc între codul mașină (o caracteristică specifică tipului de calculator) și codul sursă.

Pentru a putea oferi utilizatorului o perspectivă clară asupra performanțelor sistemului, am ales utilizarea unui sistem de gestiune a bazelor de date relaționale, mai exact MySQL, care este de asemenea independent de platformă, alături de Hibernate, care reprezintă o soluție

47

Page 48: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

de mapare obiect-relațională (Object-Relational Mapping - ORM) pentru Java, oferind de asemenea și facilități de interogare a datelor.

În acest sens, am avut nevoie de o bază de date nouă, pe care am denumit-o clasificatornaivbayes. Aceasta conține la rândul ei trei tabele: acuratete, functiitinta, probabilitaticonditionale. Vom prezenta structura acestora în cele ce urmează:

acurateteColoană Tip Nul Cheie primară

dataOraTestării datetime Nu Dacategorii varchar(500) Nu Nu

microPrecizie double Nu NumicroSensibilitate double Nu Nu

microScorF1 double Nu NumacroPrecizie double Nu Nu

macroSensibilitate double Nu NumacroScorF1 double Nu Nu

acuratete double Nu Nuobservatii varchar(500) Nu Nu

functiitintaColoană Tip Nul Cheie primară

categorie varchar(50) Nu Daprobabilitate double Nu Nu

probabilitaticonditionaleColoană Tip Nul Cheie primară

cuvant varchar(50) Nu Dacategorie varchar(50) Nu Da

probabilitate double Nu Nu

În urma procesului de antrenare, vor rezulta probabilitățile condiționale, respectiv funcțiile țintă, care vor fi utile ulterior în cadrul procesului de testare, respectiv de clasificare a unor documente noi. Pentru a nu fi nevoie ca la fiecare pornire a aplicației să se inițieze procesul de antrenare al sistemului, este necesară salvarea acestor informații obținute în cadrul unei baze de date. Astfel, utilizatorul va putea testa sistemul, respectiv clasifica documente noi, pe baza unei antrenări făcute anterior, sau va putea alege opțiunea de antrenare a sistemului în momentul respectiv, dacă dorește acest lucru.

Pentru a putea ține o evidență clară asupra comportamentului programului în funcție de setările făcute, sau având în vedere diverse categorii ale documentelor folosite pentru procesul de antrenare, acuratețile obținute în urma testărilor au fost salvate într-un tabel. Acestea sunt utilizate ulterior pentru reprezentarea unor grafice grupate pe categorii.

În continuare, vom prezenta succint clasele cele mai importante folosite în realizarea funcționalității acestui sistem:

48

Page 49: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

PreprocesatorText.java::Ne oferă posibilitatea de a preprocesa o listă de cuvinte, punând la dispoziția utilizatorului

trei setări care pot fi activate, respectiv dezactivate, după voia acestuia: Eliminare stop-words – această tehnică este deseori utilizată pentru filtrarea

documentelor de tip text și constă în eliminarea cuvintelor cele mai uzuale din vocabularul englez, acestea fiind preluate în cadrul algoritmului din fișierul stopwords.txt;

Aplicare Stemmer – acest termen este utilizat în morfologia lingvistică, precum și în tehnicile de regăsire a informațiilor, caracterizându-se prin reducerea cuvintelor la o formă mai scurtă, datorită eliminării inflexiunilor și a sufixelor comune din punct de vedere morfologic;

Aplicare Lemmatizer – este un proces asemănător Stemmer-ului, având un grad de dificultate mai ridicat, datorită faptului că în acest caz cuvintele sunt reduse la rădăcina lor, rezultatele obținute fiind la rândul lor cuvinte reale.

Document.java: Pentru a instanția un astfel de obiect avem nevoie de calea către un fișier text, categoria

din care acesta face parte și de un obiect instanță a clasei PreprocesatorText. Cuvintele din cadrul documentului sunt găsite prin intermediul unor separatori prestabiliți aflați în fișierul separatori.txt, acestea fiind ulterior supuse unei preprocesări. În cele din urmă se obține un container de forma Dicționar<Cuvânt, Frecvență> care conține toate cuvintele preprocesate din fișier, alături de numărul de apariții corespunzător.

GeneratorDocumente.java:Are rolul de a genera în mod automat și aleator documentele pentru antrenare, respectiv

pentru testare, respectând raportul 2/3 1/3. Pe baza unui folder, care este oferit ca parametru constructorului, vor fi obținute două liste, care conțin căile documentelor din folderul respectiv. Una dintre acestea va corespunde fișierelor pentru antrenare, iar cealaltă fișierelor pentru testare. Fiecărei categorii în parte îi va corespunde o instanță a clasei GeneratorDocumente.

FunctieTinta.java:Reprezintă o categorie, în care va putea fi ulterior clasificat un document nou. Reține

denumirea categoriei, precum și probabilitatea inițială a acesteia.ProbabilitateConditionala.java:Constituie probabilitatea condițională asignată unui cuvânt, în raport cu o anumită

categorie. În urma antrenării sistemului, pentru fiecare cuvânt din cadrul vocabularului final va rezulta un număr egal de probabilități, deci și un număr egal de instanțe ale clasei ProbabilitateCondițională, acesta fiind egal cu numărul de categorii folosite.

Acuratete.java:

49

Page 50: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

Reprezintă feedback-ul pe care îl obținem în urma antrenării sistemului, fiind relevant tocmai datorită faptului că putem vizualiza calitatatea algoritmului și comportamentul acestuia în funcție de setările folosite, de categoriile observate, de numărul acestora precum și de bazele de date pentru antrenare utilizate. Fiecare instanță a acestei clase conține informații relevante despre realizarea unui anumit proces de testare care corespunde la rândul său unui proces concret de antrenare, precum: categoriile, data și ora testării, micro-precizia, micro-sensibilitatea, micro-scorF1, macro-precizia, macro-sensibilitatea, macro-scorF1, acuratețea și nu în ultimul rând observațiile despre setările folosite în momentul antrenării.

Vocabular.java:Un obiect corespunzător acestei clase va reprezenta fie vocabularul cuvintelor pentru o

anumită categorie, fie vocabularul final, care le cuprinde pe celelalte. Aceste informații sunt reținute sub forma unui Dicționar<Cuvânt, Frecvență>. De asemenea, această clasă ne oferă posibilitatea de a elimina din cadrul vocabularului acele cuvinte al căror număr de apariție nu se încadrează într-un interval prestabilit.

AcurateteHibernateDAO.java, FunctieTintaHibernateDAO.java, ProbabilitateCondiționalăHibernateDAO.java:Aceste clase asigură persistența obiectelor corespunzătoare claselor Acuratete,

FunctieTinta și ProbabilitateConditionala în cadrul bazei de date, prin intermediul operațiilor de tip CRUD.

Antrenare.java:După cum ne sugerează și numele, în cadrul acestei clase se desfășoară antrenarea

sistemului, fiind apelate mai multe metode din clasele prezentate anterior. Termenul antrenare se referă în cazul de față la determinarea funcțiilor țintă și a probabilităților condiționale care sunt necesare ulterior pentru clasificările documentelor noi. Pentru a înțelege mai bine acest proces, vom prezenta pe scurt pașii urmați.

Pentru ca antrenarea să poată fi realizată, avem nevoie de o listă de obiecte instanțe ale clasei GeneratorDocumente. Cu ajutorul acesteia, preluând doar acele documente corespunzătoare antrenării, putem să identificăm vocabularele pentru fiecare categorie în parte, urmând ca acestea să fie mai apoi integrate într-un vocabular complet. În funcție de setările alese de către utilizator, cuvintele pot fi obținute prin aplicarea unui stemmer sau a unui lemmatizer putând fi eliminate dintre acestea și cuvintele uzuale. De asemenea, din vocabularul mare pot fi eliminate cuvintele cu frecvența cuprinsă într-un anumit interval.

În cazul în care nu beneficiem de anumite cunoștințe anterioare, probabilităților inițiale corespunzătoare funcțiilor țintă sunt evaluate la aceeași valoare, aceasta fiind calculată astfel: numărul de documente pentruo anumităcategorie

numărul totalde documente .

Urmează calcularea probabilităților condiționale pentru fiecare cuvânt în parte, acest lucru realizându-se prin intermediul metodei:

50

Page 51: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

calculeazaProbabilitatiConditionale (List<GeneratorDocumente> listaGeneratoareDocumente) care este prezentată mai jos:

private void calculeazaProbabilitatiConditionale(List<GeneratorDocumente> listaGeneratoareDocumente) {for (String cuvant : this.vocabularToateCategoriile.getDictionarCuvantFrecventa().keySet()){

Map<String, Double> categorieProbabilitate = new HashMap<String, Double>();Double marimeVocabular = new

Double(this.vocabularToateCategoriile.getDictionarCuvantFrecventa().size());for (GeneratorDocumente generatorDocumente : listaGeneratoareDocumente) {

String categorie = generatorDocumente.getDenumireFolder();Vocabular vocabularCategorie = this.dictionarCategorieVocabular.get(categorie);Integer nk = vocabularCategorie.getDictionarCuvantFrecventa().get(cuvant);if (nk == null) {

nk = new Integer(0);}Double n = new Double(vocabularCategorie.getDictionarCuvantFrecventa().size());Double probabilitate = (new Double(nk) + 1.0)/(n + marimeVocabular); categorieProbabilitate.put(categorie, probabilitate);

}this.probabilitatiConditionale.put(cuvant, categorieProbabilitate);

}}

Ulterior, probabilitățile condiționale, alături de funcțiile țintă sunt salvate în baza de date, prin apelul metodelor: stergeIncarcaFunctiiTintaBD(), stergeIncarcaProbabilitatileBD().

ClasificatorNaivBayes.java:După ce a fost realizată antrenarea sistemului, putem să clasificăm un document nou în

una din categoriile care au fost învățate, cu ajutorul probabilităților condiționale și a funcțiilor țintă preluate din baza de date. Desigur, acest document este supus inițial unui PreprocesatorText, urmând ca pentru fiecare categorie în parte să se calculeze probabilitatea ca fișierul text respectiv să îi corespundă. În cele din urmă, se alege ca rezultat final acea categorie cu probabilitatea cea mai mare:

private Map<String, Double> calculeazaProduseProbabilitatiCategorii(Document document) {this.produsuriProbabilitati = new HashMap<String, Double>();for (FunctieTinta functieTinta : this.functiiTinta) {

Double probabilitateFunctieTinta = functieTinta.getProbabilitate();Double produs = probabilitateFunctieTinta;for (String cuvant : document.getDictionarCuvantFrecventaPrelucrat().keySet()) {

Map<String, Double> dictionarCategorieProbabilitate = this.probabilitatiConditionale.get(cuvant);

if (dictionarCategorieProbabilitate != null) {Double probabilitateCategorie =

dictionarCategorieProbabilitate.get(functieTinta.getCategorie());produs = produs * probabilitateCategorie;

}}this.produsuriProbabilitati.put(functieTinta.getCategorie(), produs);

}return produsuriProbabilitati;

}

public String clasificaDocument(Document document) {this.produsuriProbabilitati = calculeazaProduseProbabilitatiCategorii(document);Double probabilitateMaxima = 0.0;for (Map.Entry<String, Double> entry : this.produsuriProbabilitati.entrySet()) {

51

Page 52: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

if (probabilitateMaxima.compareTo(entry.getValue()) == -1) {probabilitateMaxima = entry.getValue();

}}for (Map.Entry<String, Double> entry : this.produsuriProbabilitati.entrySet()) {

if (probabilitateMaxima.compareTo(entry.getValue()) == 0) {return entry.getKey();

}}return "";

}

Această clasă ne mai oferă o funcționalitate, și anume aceea de a calcula pentru fiecare categorie în parte, probabilitatea corespunzătoare documentului nou oferit spre clasificare. Această abordare este utilă, tocmai datorită faptului că ne oferă posibilitatea de a vizualiza, pe lângă clasa aleasă de către sistem și probabilitatea pe baza căreia a fost luată această decizie, alături de probabilitățile corespunzătoare celorlalte clase.

În acest sens, pot fi identificate asemănările, respectiv deosebirile dintre categorii, prin studierea variațiilor valorilor probabilistice de la o categorie la alta. Metoda corespunzătoare acestei abordări este: calculeazaProbabilitatiCategorii(Document document).

Testare.java:Această clasă ne oferă mai multe funcționalități în ceea ce privește evaluarea sistemului,

în urma procesului de antrenare. Cu ajutorul unei instanțe a clasei ClasificatorNaivBayes, documentele corespunzătoare testării sunt clasificate, rezultatele obținute fiind mai apoi comparate cu adevăratele categorii care ar fi trebuit alese.

Informațiile obținute sunt relevante pentru construirea matricei confuziei, sau a erorilor cum mai este denumită, care permite vizualizarea performanțelor algoritmului. Coloanele corespund instanțelor categoriilor prezise, iar rândurile corespund instanțelor din categoriile corecte. Metoda implicată în rezolvarea acestei funcționalități este apelată ulterior în cadrul metodei principale, care cu ajutorul matricei confuziei instanțiază un obiect al clasei Acuratete. Atât acuratețea, cât și matricea confuziei sunt salvate în cadrul unor fișiere, astfel încât la pornirea viitoare a aplicației, utilizatorul să poată vedea aceste informații.

public void testeazaAlgoritm(List<GeneratorDocumente> listaGeneratoareDocumente) {int nrDocumenteClasificate = 0;Map<String, Map<String, Integer>> matriceaConfuziei =

this.calculeazaMatriceaConfuziei(listaGeneratoareDocumente);Double sensibilitateTotal = 0.0;Double precizieTotal = 0.0;Double scorF1Total = 0.0;int adevaratPozitiveTotal = 0;int falsPozitiveTotal = 0;int adevaratNegativeTotal = 0;int falsNegativeTotal = 0;for (String denumireCategorie : this.preiaDenumiriCategorii(listaGeneratoareDocumente)) {

//numarul de elemente clasificate corect pentru aceasta categorieint adevaratPozitive = matriceaConfuziei.get(denumireCategorie).get(denumireCategorie);//numarul de elemente din alte categorii care au fost clasificate ca facand parte din categoria de fataint falsPozitive = 0;for (String key : matriceaConfuziei.keySet()) {

52

Page 53: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

if (!key.equals(denumireCategorie)) {falsPozitive = falsPozitive + matriceaConfuziei.get(key).get(denumireCategorie);

}}//numarul de elemente din acesta categorie care au fost clasificate ca facand parte din alte categoriiint falsNegative = 0; Map<String, Integer> hashMap = matriceaConfuziei.get(denumireCategorie);for (String key : hashMap.keySet()) {

if (!key.equals(denumireCategorie)) {falsNegative = falsNegative + hashMap.get(key);

}}//numarul de elemente care au fost clasificate corect, ca facand parte din alte categoriiint adevaratNegative = 0;for (String key : matriceaConfuziei.keySet()) {

if (!key.equals(denumireCategorie)) {for (String key1 : matriceaConfuziei.get(key).keySet()) {

if (!key1.equals(denumireCategorie)) {adevaratNegative = adevaratNegative +

matriceaConfuziei.get(key).get(key1);}

}}

}if (nrDocumenteClasificate == 0) {

nrDocumenteClasificate = nrDocumenteClasificate + adevaratNegative + adevaratPozitive + falsNegative + falsPozitive;

}adevaratPozitiveTotal += adevaratPozitive;falsPozitiveTotal += falsPozitive;falsNegativeTotal += falsNegative;adevaratNegativeTotal += adevaratNegative;Double sensibilitate = 0.0;Double precizie = 0.0;Double scorF1 = 0.0;if ((adevaratPozitive + falsNegative) > 0) {

sensibilitate = new Double(adevaratPozitive)/(adevaratPozitive + falsNegative);}if ((adevaratPozitive + falsPozitive) > 0) {

precizie = new Double(adevaratPozitive)/(adevaratPozitive + falsPozitive);}if ((2 * adevaratPozitive + falsPozitive + falsNegative) > 0) {

scorF1 = new Double(2 * adevaratPozitive)/(2 * adevaratPozitive + falsPozitive + falsNegative);

}sensibilitateTotal = sensibilitateTotal + sensibilitate;precizieTotal = precizieTotal + precizie;scorF1Total = scorF1Total + scorF1;

}Double macroSensibilitate = sensibilitateTotal/listaGeneratoareDocumente.size();Double macroPrecizie = precizieTotal/listaGeneratoareDocumente.size();Double macroScorF1 = scorF1Total/listaGeneratoareDocumente.size();Double microSensibilitate = new Double(adevaratPozitiveTotal)/(adevaratPozitiveTotal + falsPozitiveTotal);Double microPrecizie = new Double(adevaratPozitiveTotal)/(adevaratPozitiveTotal + falsNegativeTotal);Double microScorF1 = 2/(1/microSensibilitate + 1/microPrecizie);Double acuratete = new Double(adevaratPozitiveTotal)/(nrDocumenteClasificate);DateFormat df = new SimpleDateFormat("yy/MM/dd HH:mm:ss");Calendar calobj = Calendar.getInstance();Acuratete ac = new Acuratete(this.preiaDenumiriCategorii(listaGeneratoareDocumente).toString(),

df.format(calobj.getTime()), microPrecizie, microSensibilitate, microScorF1, macroPrecizie, macroSensibilitate, macroScorF1, acuratete, observatii);

acurateteHibernateDAO.saveAcuratete(ac);Serializable.serializeazaObiect("src/fisiere/acuratete.txt", ac);Serializable.serializeazaObiect("src/fisiere/matriceaConfuziei.txt", matriceaConfuziei);

}

53

Page 54: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

4.4. Manual de utilizare

În momentul în care dăm dublu-click pe executabil, se deschide următoarea fereastră:

54

Page 55: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

Ne aflăm în fereastra corespunzătoare procesului de antrenare. Dacă dăm click pe butonul Adaugati folder in lista se deschide o fereastră nouă, prin intermediul căreia putem alege folderele corespunzătoare categoriilor documentelor:

Alegem un folder, apăsăm butonul Select Folder, iar lista din fereastra principală va fi actualizată. În cazul în care am ales din greșeală un director greșit și dorim să îl eliminăm, îl selectăm și apăsăm butonul Stergeti folderul selectat din lista:

55

Page 56: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

Pentru a putea începe antrenarea sistemului, în lista folderelor trebuie să existe cel puțin două elemente. În cazul în care nu respectăm acest lucru și apăsăm butonul Incepeti antrenarea sistemului, va fi afișat un mesaj de eroare corespunzător. Un astfel de mesaj își va face apariția și în cazul în care apăsăm butonul de ștergere al unui folder fără a îl selecta. Exemplu:

În momentul în care apăsăm butonul Setări, apare o fereastră nouă, care conține setările prestabilite ale sistemului pentru antrenare. Aceste setări pot fi modificate în funcție de preferințele noastre, salvate cu ajutorul butonului Salvati setarile și vizualizate prin selectarea butonului Setari initiale. În cazul în care cele două câmpuri completate nu sunt valide , la

tentativa de salvare a acestora, va apărea un mesaj de eroare reprezentativ.

56

Page 57: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

Să presupunem că lăsăm setările inițiale ale sistemului, adăugăm încă 3 foldere în lista pentru antrenare și apăsăm butonul Incepeti antrenarea sistemului. În timpul în care se derulează procesul de antrenare, cursorul se transformă într-un progress indicator, urmând ca

la final, dacă totul a decurs cu bine, să fim anunțați printr-un mesaj.Pentru a putea vedea acuratețea sistemului în urma antrenării, dăm click pe tab-ul în dreptul căruia scrie Testare.

Noua fereastră conține în partea stângă detalii despre ultima antrenare, respectiv testare a sistemului, iar în partea dreaptă, matricea confuziei corespunzătoare.

Dacă dăm click pe tab-ul Clasificare, va apărea următoarea fereastră:

57

Page 58: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

După cum se poate observa, avem la dispoziție trei opțiuni. Prima dintre acestea, ne dă posibilitatea de a crea un document nou care să poată fi ulterior clasificat. Pentru aceasta, apăsăm butonul Creare document nou și ni se va deschide o fereastră nouă, în care vom putea completa conținutul noului fișier:

Apăsăm butonul salvare document și vom putea alege denumirea acestuia și locul în care dorim să îl salvăm.

58

Page 59: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

Dacă dăm click pe butonul Alegeti documente pentru clasificare ni se va deschide o fereastră similară cu cea pentru alegerea directoarelor pentru antrenare, de unde putem alege unul sau mai multe documente pentru a fi clasificate. După aceasta, fișierele alese vor fi supuse procesului de clasificare, rezultatele putând fi observate în partea stângă a ecranului, sub următoarea formă: categorie probabilitatea cu care a fost aleasă.

59

Page 60: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

În cazul în dorim să vizualizăm și probabilitățile pentru celelalte categorii, apăsăm butonul Detalii și se va deschide o altă fereastră cu un tabel care conține aceste informații. Accesarea butonului Detalii va cauza apariția unui mesaj de eroare, dacă nu au fost alese înainte documente pentru clasificare.

Ultimul tab corespunde graficelor acurateților obținute de-a lungul timpului, pentru toate grupările de categorii care au fost folosite în procesul de antrenare. În partea de sus a ferestrei, există un combo-box, de unde putem alege acea structură a categoriilor pentru care dorim să vizualizăm graficul. Implicit, este selectată și reprezentată prima astfel de grupare existentă. În momentul în care ducem cursorul deasupra unui nod, apare probabilitatea completă corespunzătoare acestuia.

60

Page 61: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

4.5. Rezultate obținute

Întrucât sistemul a fost realizat într-o modalitate care să permită antrenarea cu ușurință pentru oricât de multe categorii, am ales două seturi de date care să scoată în evidență atât clasificarea binară cât și cea multi-class.

Astfel, primul set de date este Newsgroup, colectat de către Ken Lang. Acesta conține 20000 articole care au fost împărțite în 20 categorii (Joachims 1997), multe dintre acestea fiind totuși ușor de confundat. De exemplu, cinci dintre ele au denumirea sub forma comp.*, conținând diferse discuții de grup, iar trei dintre ele au ca temă pricipală religia.

Setul de date a fost împărțit astfel: 2/3 pentru procesul de antrenare și 1/3 pentru testare. După cum am precizat și anterior, această repartajare se face aleator. Ca setări pentru procesul de antrenare, am ales eliminarea așa-numitelor stop-words, aplicarea stemmer-ului și eliminarea cuvintelor cu frecvența de apariție mai mică decât 3 și mai mare decât 100. Pentru a putea observa evoluția sistemului în funcție de numărul de categorii alese, am decis să preluăm acurateților obținute după 15 rulări pentru 20, 15, 10, 7, 4 și 2 categorii. Rezultatele obținute pot fi observate în graficele care urmează:

61

0 2 4 6 8 10 120

2

4

6

8

10

12

20 categorii

0 2 4 6 8 10 120

2

4

6

8

10

12

15 categorii

Page 62: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

62

0 2 4 6 8 10 120

2

4

6

8

10

12

10 categorii

0 2 4 6 8 10 120

2

4

6

8

10

12

7 categorii

0 2 4 6 8 10 120

2

4

6

8

10

12

4 categorii

Page 63: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

Astfel, pentru antrenarea sistemului pe toate cele 20 de categorii, am obținut o medie a acurateților de 0,804601487, adică o performanță de aproximativ 80,5%, care este comparabil mai mare decât o valoare de 5% care ar fi obținută în cazul alegerii aleatoare a rezultatelor.

Pentru 15 clase, media acurateților a fost 0,884754109, pentru 10 clase: 0,913706699, pentru 7 clase: 0,928769077, pentru 4 clase: 0,940818363, iar în cele din urmă pentru 2 clase: 0,973552894. După cum se poate observa, acuratețea algoritmului crește pe măsură ce numărul de clase scade, iar datorită acestei variații, ne-am putea raporta la acuratețea finală ca fiind media acurateților obținute în urma tuturor experimentelor realizate.Obținem așadar următoarea valoare: 0,907700438.

În continuare, vom realiza o paralelă între programul dezvoltat și experimentele realizate de către Tom Mitchell [13], pe același set de date. Spre deosebire de abordarea noastră, acesta a eliminat primele 100 cuvinte în ordinea descrescătoare a frecvenței de apariție, precum și cele cu numărul de apariție mai mic decât 3. Nu a fost aplicată niciun fel de preprocesare a textului în prealabil. Întrucât nu sunt precizate explicit metodele de evaluare a performanței sistemului, experimentele nu pot fi reproduse cu exactitate. Totuși, este de remarcat faptul că media acurateților pe care am obținut-o depășește rezultatul lui Tom Mitchell cu mai mult de un procent, crescând de la 89% la 90,77%.

În cadrul unei lucrări de cercetare, Andrew McCallum și Kamal Nigam [12] au scos în evidență performanțele obținute pe același set de date, folosind însă Clasificatorul naiv Bayes Bernoulli, unde un anumit document este văzut sub forma unui vector binar peste spațiul de cuvinte. Articolele au fost împărțite în mod aleator în 2/3 pentru antrenare si restul de 1/3 pentru testare, fiind eliminate din vocabularul final acele cuvinte care apăreau o singură dată. Au fost realizate mai multe experimente, obținându-se o medie a acurateților de 0,74 adică o performanță a sistemului de 74%, semnificativ mai mică decât performanța obținută de către sistemul nostru.

63

0 2 4 6 8 10 120

2

4

6

8

10

12

2 categorii

Page 64: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

Pentru a prezenta și clasificarea binară, am ales să utilizăm o colecție de 5574 de mesaje scurte (sms-uri), dintre care 4827 corespunzătoare categoriei: ham și restul de 747 corespunzătoare categoriei: spam.

În ceea ce privește realizarea experimentelor, am utilizat aceeași împărțire a documentelor ca cea prezentată anterior. Am eliminat așa numitele stop-words, am ales opțiunea de aplicare a stemmerului, iar din cadrul vocabularului final nu am eliminat cuvintele a căror frecvență de apariție să corespundă unui anumit interval. Am repetat procesul de antrenare, respectiv testare de 50 de ori, rezultatele obținute fiind prezentate în graficul următor:

După cum se poate observa, acuratețile obținute variază între 0,977 și 0,987, media lor fiind reprezentată de valoarea: 0,980236814.

Grupul de cercetători care au reușit să acumuleze toate mesajele necesare compunerii acestui set de date [13], au testat mai multe metode de învățare automată, astfel încât să poată evidenția niște rezultate concrete în raport cu măsurarea potențialului datelor colectate. În acest sens, au utilizat două modalități de identificare a cuvintelor în cadrul documentelor:

tok1: cuvintele încep cu un caracter printabil, urmat de caractere numerice și alfanumerice, excluzând punctele, virgulele și caracterul două puncte din mijlocul secvenței.

tok2: orice secvență de caractere separate de spații goale, caracterul de linie nouă, puncte, virgule, două puncte și liniuțe, este considerată cuvânt.

Aceștia nu au luat în considerare nicio tehică de preprocesare a textului precum: eliminarea stop-words, sau aplicarea unui stemmer, întrucât credeau că acuratețea sistemului ar avea de suferit în ceea ce privește detectarea spam-ului.

Pentru realizarea experimentelor, au fost folosite implementările din WEKA pentru mai mulți algoritmi de învățare automată, luând în considerare toate setările inițiale, cu excepția

64

0 5 10 15 20 25 30 35 40 45 500

2

4

6

8

10

12

Spam - Ham

Page 65: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

numărului maxim de iterații care a fost setat la valoarea 20. Setul de date a fost împărțit astfel: 30% pentru antrenare (1674 mesaje), iar restul pentru testare (3900 mesaje).

Clasificatorii utilizați alături de rezultatele obținute, pot fi urmăriți în tabelul de mai jos:Clasificator Acuratețe %

Linear Support Vector Machine + tok1 97,64Boosted NB + tok2 97,50

Boosted C4.5 + tok2 97,50PART + tok2 97,50

Minimum Description Length + tok1 96,26C4.5 + tok2 95,00

Multivariate Bernoulli NB + tok1 94,00Multinomial term frequency NB + tok1 93,74

Multinomial Boolean NB + tok1 93,72K-Nearest Neighbors (K = 1) + tok2 92,70

Basic NB + tok1 77,13Gauss NB + tok1 91,95

Flexible NB + tok1 90,72Boolean NB + tok1 77,13

K-Nearest Neighbors (K = 3) + tok2 90,10Expectation-Maximization + tok2 85,54

TR 86,95

Cea mai bună performanță a fost obținută prin folosirea mașinilor cu suport vectorial, alături de prima variantă de identificare a cuvintelor în cadrul documentelor: tok1. În acest caz, acuratețea exprimată în procente a fost 97,64 %.

Așadar, algoritmul nostru de categorizare textuală reușește cu succes să depășească toate metodele de învățare automată prezentate în tabelul de mai sus, aplicabile pe setul de date de față și folosind setările precizate anterior.

4.6. Extinderi posibile

Produsul soft dezvoltat oferă posibilitatea utilizatorilor de a clasifica documente text noi pe baza unei antrenări realizate în prealabil, necesară sistemului pentru a putea învăța categoriile dorite. În momentul de față, performanțele obținute sunt demne de luat în considerare, însă cu siguranță există posibilitatea unor îmbunătățiri, atât din punct de vedere computațional, cât și la nivelul interfeței grafice.

În vederea creșterii acurateții, ar putea fi realizate modificări, respectiv îmbunătățiri în partea de preprocesare a textului. O variantă ar putea fi reprezentată de oferirea posibilității de modificare a fișierului cu separatori, respectiv posibilitatea de creare a unor șabloane corespunzătoare identificării cuvintelor, bazate pe expresii regulare, pentru utilizatorii inițiați. Întrucât programul a fost realizat astfel încât să poată fi antrenat pe oricâte categorii, nu au putut fi luate decizii de preprocesare care să se muleze perfect pe toate variantele posibile.

65

Page 66: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

Așadar, ideea precedentă ar fi utilă pentru maparea produsului soft pe anumite categorii concrete.

Momentan, utilizatorul are acces la informații despre ultima antrenare realizată, pe baza căreia pot face și clasificări ale unor documente noi. O oportunitate de extindere a funcționalității sistemului ar putea fi constituită de stocarea unui jurnal al antrenărilor, existând și posibilitatea de gestionare al acestuia. În acest fel, utilizatorul ar putea alege orice antrenare anterioară în vederea clasificării, fără a fi nevoit să inițieze din nou procesul de antrenare.

Deși există și acum grafice care scot în evidență performanțele sistemului în funcție de categoriile pe care a fost antrenat, această parte vizuală ar putea fi extinsă prin includerea mai multor elemente de acest gen, care să faciliteze interacțiunea utilizatorului cu programul.

Toate aceste propuneri, reprezintă posibile extinderi ale produsului actual, menite să ajute la îmbunătățirea acestuia. Totuși, stadiul în care ne aflăm este unul suficient pentru o utilizare intuitivă și sugestivă a programului, funcționalitățile acestuia fiind reprezentate într-o manieră prietenoasă.

66

Page 67: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

CONCLUZIE

În lucrarea de față am încercat să scoatem în evidență posibilitatea integrării metodelor de învățare Bayesiană în viața noastră de zi cu zi, prin simplificarea proceselor de luare a unor decizii în raport cu implicarea sistemelor inteligente de natură artificială.

Pe lângă prezentarea conceptelor teoretice care stau la baza îndeplinirii scopului nostru, am decis să demonstrăm și aplicabilitatea practică a acestuia, prin enunțarea și conceperea unui produs soft capabil să satisfacă cerințele utilizatorilor atât din punct de vedere funcțional cât și din punct de vedere al ușurinței de înțelegere și utilizare a aplicației.

Tematica abordată în vederea realizării acestui program s-a axat pe conceptul de categorizare textuală. În acest sens, produsul final oferă posibilitatea de clasificare a unor documente noi în una din categoriile pentru care a fost antrenat sistemul. O caracteristică interesantă și utilă în același timp, este dată de faptul că rigiditatea clasică a clasificatorilor corespunzătoare unor seturi de date fixate este înlocuită cu alegerea liberă a categoriilor, proces care poate fi repetat de un număr nelimitat de ori.

Datorită utilizării unor tehnici de preprocesare variate a textelor, precum și datorită oferirii posibilității de alegere a categoriilor pentru efectuarea procesului de antrenare, performanțele obținute au fost neașteptat de bune, surclasând în anumite cazuri abordările unor cercetători, pe aceleași seturi de date pe care le-am utilizat și noi pentru realizarea experimentelor.

Alături de o interfață grafică prietenoasă și ușor de intuit, produsul final poate fi integrat cu ușurință într-o varietate mare domenii, pornind de la cel jurnalistic și ajungând la cel medical, cât timp este respectat conținutul de natură textuală a elementelor ce se doresc a fi clasificate. Datorită portabilității oferită de independența de platformă a sistemului, nu sunt necesare eforturi suplimentare de rezolvare a problemelor de incompatibilitate.

Așadar, această lucrare are rolul de a oferi o perspectivă clară asupra metodelor de învățare Bayesiană, în raport cu realizarea unei aplicații practice care să vină în ajutorul consolidării acestor fundamentări de natură teoretică.

67

Page 68: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

BIBLIOGRAFIE

[1] Vicent Alabau, Jesûs Andrès, Francisco Casacuberta, Jorge Civera Josè Garcia-Hernàndez, Adrià Gimènez, Alfons Juan, Alberto Sanchis, Enrique Vidal - The naive Bayes model, generalisations and applications, Agencia Valenciana de Ciencia y Tecnología, 004 (2005)

[2] Tiago A. Almeida, José María Gómez, Akebo Yamakami - Contributions to the Study of SMS Spam Filtering: New Collection and Results, in Proceedings of the 2011 ACM Symposium on Document Engineering, Mountain View, (2011), 259-262

[3] P.Bhargavi, Dr.S.Jyothi - Applying Naive Bayes Data Mining Technique for Classification of Agricultural Land Soils, IJCSNS International Journal of Computer Science and Network Security, 8 (2009)

[4] Carla E. Brodley, Umaa Rebbapragada, Kevin Small, Byron C. Wallace - Challenges and Opportunities in Applied Machine Learning, AI Magazine, Spring (2012), 11-24

[5] David Corney - Designing Food with Bayesian Belief Networks, ACDM2000, (2000), 83-94

[6] Paul Ekman, Wallace V. Friesen, Sonia Ancoli – Facial Signs of Emotional Experience, Journal of Personality and Social Psychology, 6 (1980), 1125-1134

[7] David Heckerman - A Tutorial on Learning With Bayesian Networks, Microsoft Research, MSR-TR-95-06, (1995)

[8] Héctor Hugo Avilés-Arriaga, Luis Enrique Sucar, Carlos Eduardo Mendoza, Blanca Vargas - Visual Recognition of Gestures using Dynamic Naive Bayesian Classifiers, Tec de Monterrey Campus Cuernavaca Av. Paseo de la Reforma, 182

[9] Ben-Gal I. - Bayesian Networks, Encyclopedia of Statistics in Quality & Reliability, Wiley & Sons, (2007)

[10] Joanna Kazmierskaa, Julian Malicki - Application of the Naive Bayesian Classifier to optimize treatment decisions, Radiotherapy and Oncology, 86 (2008), 211–216

[11] C. Lynnes, S. Berrick, A. Gopalan, X. Hua, S. Shen, P. Smith, K-Y. Yang, K. Wheeler, C. Curry - Application of Bayesian Classification to Content-based Data Management, (2004)

[12] Andrew McCallum, Kamal Nigam - A Comparison of Event Models for Naive Bayes Text Classification, Darpa HPKB, (1998), 41-48

68

Page 69: Facultatea de Matematică şi Informatică | …gabis/DocDiplome/Bayesian/licenta.docx · Web viewTotuși, în limite largi, putem spune că un sistem învață ori de câte ori își

[13] Tom M. Mitchell - Machine Learning, McGraw-Hill, 1997[14] Nils J. Nilsson – Introduction to Machine Learning, Robotics Laboratory, Department

of Computer Science, Stanford University, Stanford, CA 94305, 1996[15] Irina Rish - An empirical study of the naive Bayes classifier, IBM Research Report,

(2001)[16] Stuart J. Russel, Peter Norvig – Artificial Intelligence – A Modern Aproach, Prentice-

Hall, Englewood Cliffs, New Jersey, 1995[17] N. Sebe, M.S. Lew, I. Cohen, A. Garg, T.S. Huang - Emotion Recognition Using a

Cauchy Naive Bayes Classifier, Proceedings of the 16 th International Conference on Pattern Recognition (ICPR'02), 1 (2002), 10017

[18] http://www.forbes.com/sites/85broads/2014/01/06/six-novel-machine-learning-applications/

[19] http://scott.fortmann-roe.com/docs/BiasVariance.html[20] http://ai.stanford.edu/~chuongdo/papers/em_tutorial.pdf

69