UNIVERSITATEA BABEŞ-BOLYAI CLUJ-NAPOCA
FACULTATEA DE MATEMATICǍ ŞI
INFORMATICǍ
SPECIALIZAREA INFORMATICĂ
LUCRARE DE DIPLOMǍ
ÎNVĂŢAREA BAYESIANĂ
Conducător ştiinţific
Prof. univ. dr. Czibula Gabriela
Absolvent
Mureşan Laura Elena
Cluj Napoca
2011
2
CUPRINS
INTRODUCERE ………………………………………………….................................. 3
1. Învăţarea în sisteme cu inteligenţă artificială …………………...........................… 5
1.1 Inteligenţa artificială ……………………………........................................................ 5
1.2 Învăţarea …………………………………………………........................................... 8
2. Învăţare Bayesiană……………………………………………….............................. 11
2.1 Teorema lui Bayes ……………………………………….......................................... 12
2.2 Probabilitatea maximă ................................................................................................ 15
2.3 Clasificatorul Optimal Bayes ...................................................................................... 19
3. Metode de învăţare Bayesiană ................................................................................... 21
3.1 Clasificatorul Naiv Bayes ........................................................................................... 21
3.2 Reţele Bayesiene ......................................................................................................... 23
3.3 Algoritmul Expectation-Maximization ....................................................................... 34
4. Rezultate ale cercetării în utilizarea metodelor de învăţare bayesiene ................. 38
5. Aplicaţia practică......................................................................................................... 45
5.1 Enunţ ........................................................................................................................... 45
5.2 Analiză şi proiectare ................................................................................................... 45
5.3 Implementare .............................................................................................................. 51
5.4 Manual de utilizare ..................................................................................................... 56
5.5 Rezultate ..................................................................................................................... 61
5.6 Extinderi posibile ........................................................................................................ 62
CONCLUZII………………………………………………………................................ 64
TABELUL FIGURILOR ............................................................................................... 65
BIBLIOGRAFIE…………………………………………………................................. 66
3
INTRODUCERE
În ultima perioadă s-a dezvoltat un interes aparte pentru utilizarea unor tehnici din teoria
deciziei Bayesiene pentru a aborda probleme din domeniul Inteligenţei Artificiale. Teoria
deciziilor prevede un cadru normativ de reprezentare şi motivare cu privire la problemele de luare
a deciziilor în condiţii de incertitudine. Raţionamentul Bayesian oferă o abordare probabilistică a
inferenţei. Maniera de luare a decizilor optime are în vedere cantităţiile de interes reprezentate de
distribuţii de probabilitate, dar şi datele de antrenare observate. Această abordare este importantă
în domeniul maşinilor de învăţare deoarece oferă o manieră de aproximare cantitativă necesară
pentru justificarea evaluării ipotezelor alternative. Acest raţionament se află la temelia
algoritmilor care manipulează direct probabilităţi.
Modelul de învăţare Bayesian este relevant pentru studiul maşinilor de învăţare din două
motive. Primul dintre ele este acela că algoritmii Bayesieni care calculează direct probabilităţi
pentru anumite ipoteze sunt printre cele mai practice abordări pentru unele tipuri de probleme de
învăţare. Al doilea motiv ar fi acela că metodele Bayesiene oferă o perspectivă utilă pentru
înţelegerea mai uşoară a multor algoritmi de învăţare care nu manipulează în mod explicit
probabilităţi.
Prin prezenta lucrare este oferită o bază de cunoştiinţe necesară pentru înţelegerea
modului în care sunt procesate informaţiile la nivelul unei maşini autoinstruibile construită pe
raţionamentul Bayesian, dar şi un exemplu concret de astfel de sistem.
O introducere în domeniul Inteligenţei Artificiale şi a procesului de învăţare automată este
oferită în Capitolul 1. Această asociere este de o importanţă majoră deoarece tendinţa generală de
a crea sisteme informatice tot mai independente şi adaptabile face studiul Învăţării Automate unul
dintre cele mai atractive domenii de cercetare în Inteligenţa Artificială.
Prin Capitolul 2 este oferită o imagine de ansamblu asupra raţionamentului Bayesian, prin
prezentarea teoremei lui Bayes, a principiului de determinare a ipotezei de probabilitate maximă
şi a clasificatorului optimal specific.
Metodele de învăţare care au fost dezvoltate pe baza principiului Bayesian sunt prezentate
în cel de-al 3-lea capitol. Printre acestea amintim Clasificatorul Naiv Bayes, reţelele Bayesiene şi
Algoritmul EM.
Capitolul 4 este constituit dintr-un studiu de cercetare a rezultatelor obţinute în urma
utilizării metodelor de învăţare Bayesiene.
În ultimii ani, am fost cu toţii martorii unei explozii în ceea ce priveşte disponibilitatea
informaţiilor online, cu milioane de documente din fiecare domeniu uşor accesibil prin
4
intermediul Internetului. Odată cu creşterea cantităţii de informaţii disponibile, incapabilitatea
oamenilor de a le asimila şi utiliza în manieră profitabilă devine din ce în ce mai evidentă.
Paradigma cu cel mai mare succes pentru organizarea unui astfel de set de informaţii, cu scopul
de a le face mai accesibile pentru utilizatori, este clasificarea diferitelor documente în funcţie de
domeniul lor. Aceasta este şi sarcina problemei abordate în manieră practică şi prezentă în al 5-
lea capitol al lucrării.
5
CAPITOLUL 1
ÎNVĂŢAREA ÎN SISTEME CU INTELIGENŢĂ
ARTIFICIALĂ
1.1 Inteligenţa artificială
Omenirea şi-a definit singură existenţa, denumindu-se de la sine „homo sapiens”,
deoarece capacităţiile noastre mentale sunt foarte importante pentru viaţa de zi cu zi şi pentru
stima proprie. Acest domeniu al inteligenţei artificiale, dezvoltat şi cercetat inţial ca şi parte a
psihologiei, a fost pus odată cu trecerea timpului sub aripa unei ştiinţe aflată în continuă
ascensiune şi anume informatica. Dezvoltarea calculatorului în ultimele patru decenii a permis
cercetătorilor din domeniu să încerce utilizarea acestora pentru rezolvarea unor probleme din ce
în ce mai complicate şi mai apropiate ca şi complexitate de problemele soluţionate de om.
Pe masură ce piedicile legate de viteza de procesare şi capacitatea de memorare au fost
rezolvate la nivelul tehnologiei construcţiei calculatorului, limitarea utilizării tehnicii de calcul în
locul expertului uman se datorează, în principal, incapacităţii de a instrui şi programa adecvat un
calculator. Posibil ca această dorinţă de a utiliza calculatorul la tot ceea ce poate fi rezolvat de
om, să fi dus la introducerea acestei ramuri în informatică.
Obţinută ca şi o combinaţie între ştiinţa calculatoarelor, filozofie, psihologie, matematică,
dar şi alte ştiinţe, inteligenţa artificială începe acolo unde se termina informatica clasică.
Încercarea ei majoră şi prioritară este aceea de a înţelege caracteristiciile entităţiilor vii inteligente
şi de a crea entităţi artificiale comparabile cu acestea.
Oamenii se confruntă, de asemenea, cu o limitare fiziologică cu privire la dimensiunea
creierelelor lor. Se estimează că in creierul uman tipic există aproximativ o suta de miliarde de
neuroni şi un milion de miliarde de sinapse. Aceasta este o cantitate enormă de forţă pură, de
calcul brută, în comparaţie cu computerele de astăzi. După cercetarile actuale, numai pentru a
reproduce creierul mic uman mezencefalic care coordonează mişcările şi procesele fiziologice
umane (muschii, glandele endocrine, etc.) este nevoie de un creier electronic de dimensiunea
întregii noastre planete pentru a lucra la tehnologia actuală Intel Core I5 sau I7 şi a coordona
numai corpul. De la acest punct se poate spune că ne apropiem de adevarata tehnologie, care se
manifestă printr-o lucrătură mai fină la nivel nano/pico/femto/atto/zepto/yocto – metro.
Tehnicile inteligenţei artificiale vizează crearea de maşini inteligente de calcul, adică
sisteme având la bază caracteristicile inteligenţei umane şi anume raţionamentul, capacitatea de
6
învăţare, rezolvare şi comunicare. În general aceste sisteme sunt destinate rezolvării problemelor
pentru care nu există algoritmi de calcul clasici.
Datorită liniei de ascensiune din ultimele decenii, inteligenţa artificială a reuşit să
acapareze o mare varietate de subcâmpuri, de interes general, cum ar fi percepţia şi raţionamentul
logic, tehnici aplicate în diverse jocuri, demonstarea teoremelor matematice sau diagnosticarea
medicală. Adesea cercetătorii din domeniu aleg sa aplice metodele lor în orice zonă care implică
eforturi intelectuale umane, ceea ce permite afirmarea faptului că acest câmp al ştiinţei este unul
cu adevărat universal.
Puterea de captivare a inteligenţei artificiale este cu adevărat de apreciat, însă rămâne
totuşi întrebarea ce este ea. Există o serie destul de amplă de definiţii care s-au dat, însă ele se
concentrează în jurul a patru direcţii. Dacă pe de o parte se poate face o separare între procesul de
gandire, raţionare şi comportament, de cealalta parte se vorbeşte despre măsurarea succesului în
termeni de performanţă umană împotriva unui concept ideal de inteligenţă care poate fi numit
raţional[1].
Se poate astfel vorbi despre inteligenţa artificială ca fiind dată de:
Sisteme care gîndesc ca oamenii. Sisteme care gîndesc raţional.
Sisteme care acţionează ca oamenii. Sisteme care acţionează raţional.
În contextul sistemelor care gândesc ca şi oamenii, inteligenţa artificială este definită ca
fiind activitatea legată de automatizarea activităţiilor asociate gândirii umane, cum ar fi:
rezolvarea problemelor, luarea deciziilor sau învăţarea.
Din perspectiva sistemelor care gândesc raţional, este definită ca fiind studiul facultăţiilor
mentale cu ajutorul metodelor computaţionale sau studiul proceselor de calcul care fac posibile
percepţia, raţionamentul sau acţiunea.
Datorită capacităţii de a acţiona ca şi oamenii, inteligenţa artificială este arta de a crea
maşini capabile să realizeze activităţi umane ce implică inteligenţa, respectiv studiul
modalităţiilor prin care computerele să realizeze activităţi care momentan sunt mai bine făcute de
către om.
Privit ca şi un sistem care acţionează raţional, IA este acel domeniu al informaticii
preocupat de automatizarea comportamentului inteligent, respectiv ca şi acel domeniu de studiu
care caută să explice şi să imite comportamentul inteligent în termeni de procese computaţionale.
În ciuda tuturor acestor abordări, cea mai practică definiţie a inteligenţei artificiale a fost
dată de testul cercetătorului britanic, Alain Turing, care pune faţă în faţă omul şi maşina. Un om
pune întrebări la care i se raspund pe de o parte de către un om şi pe de alta de către o maşină.
Dacă cel care pune întrebările nu reuşeşte să decidă care dintre interlocutorii săi este uman şi care
artificial, atunci maşina creată poate fi considerată inteligentă.
7
Pentru a putea totuşi trece de testul Turing, o maşină trebuie sa posede anumite
caracteristici:
- capacitatea de procesare a limbajului natural, pentru a fi capabil să comunice într-
o anumită limbă;
- capacitatea de reprezentare a cunoştiinţelor, pentru a putea stoca informaţia
acumulată atât înainte cât şi în timpul interogării;
- capacitatea de raţionament automat, necesară utilizării informaţiei memorate
pentru a răspunde la întrebări şi a putea trage concluzii;
- capacitatea de învăţare automată, pentru a putea să se adapteze la noi situaţii şi
pentru a putea face faţă extrapolării.
Dotat cu astfel de trăsături, un sistem inteligent poate face inferenţe şi elabora concluzii,
poate găsi soluţii sau lua decizii favorabile pentru domeniul respectiv.
La fel ca orice ştiinţă aflată sub ochii atenţi ale cercetătorilor din domeniu, influenţaţi de
propriile convingeri, încă de la început au putut fi observate două direcţii de dezvoltare în
inteligenţa artificială. Prima dintre ele este constituită de paradigma logico-simbolică. Pe de-o
parte s-a urmărit realizarea de maşini capabile să reproducă funcţiile co gnitive ale
minţii umane, pe de altă parte s -a încercat realizarea de programe care să permită
prelucrarea simbolică a informaţiilor(cunoştiinţelor) folosind metodele logicii.
Aceasta presupune existenţa unor mecanisme de reprezentare simbolică a
cunoştinţelor şi a unei baze de cunoştinţe unde sunt memorate faptele. Modele
logice sunt apoi utilizate pentru deducerea unor cunoştinţe noi. Un exemplu îl
constituie demonstratorul automat de teoreme (1956) realizat de A. Newell şi H.A.
Simon. În cadrul acestei direcţii s-au realizat primele programe inteligente capabile
de a substitui experienţa unui specialist.
Cea de-a doua direcţie de dezvoltare a inteligenţei artificiale are la bază
paradigma conexionistă. Aceasta provine din ideea că pornind de la modele ale
activităţii neuronale se po t construi programe şi implicit şi maşini inteligente. În
1958 s-a realizat prima şi cea mai simplă reţea neuronală
art ificială numită perceptron . În cazul acestor reţele informaţia nu mai este
memorată în zone bine precizate, cum se întamplă în cazul calculatoarelor
standard, ci este memorată difuz în toată reţeaua. O astfel de memorare se
realizează prin stabilirea de valori corespunză toare pentru ponderile
conexiunilor sinaptice dintre neuronii reţelei.
Aceste direcţii nu sunt în fapt atât de ermetic separate, o serie de metode,
noţiuni şi rezultate circulă între ele. Se pot gândi sisteme ce combină o reţea
neuronală şi un sistem expert .
8
În prezent se asistă la reconturarea direcţi ilor inteligenţei artificiale.
Calculul evolutiv (incluzând algoritmii genetici , strategiile evolutive şi
programarea evolutiva), sistemele inteligente bazate pe logica nuanţată(fuzzy) şi
calculul neuronal definesc domeniul i nteligenţei computaţ ionale (sau calcul
inteligent). Caracteristica principală a acestui domeniu este reprezentarea
numerică a cunoaşterii, care îl diferenţiază net de inteligenţa artificială
tradiţională, bazată pe reprezentarea simbolică şi inferenţe logice.
1.2 Învăţare
Încă de cînd au fost inventate calculatoarele s-a pus problema ca acestea să fie învăţate să
culeagă informaţii din mediul în care se află, să le analizeze şi să fie capabile să acţioneze
autonom. Până în prezent nu a fost descoperită tehnica potrivită care ar putea fi aplicată asupra
acestor maşini de calcul pentru ca ele să înveţe, să analizeze, să proceseze informaţiile şi să
acţioneze în consecinţă, asemeni omului.
Inteligenţa artificială, asemeni inteligenţei biologice, se dobândeşte în urma unui
îndelungat şi continuu proces de învăţare, de aceea problema învăţării ocupa un loc important în
cercetarea maşinilor auto-instruibile. Din păcate sistemele cu inteligenţă artificială obişnuite au
posibilităţi de învăţare foarte reduse sau nu au deloc. Întreaga cunoaştere necesară acestor sisteme
trebuie să fie programată în ele. Sistemele nu îşi pot corecta erorile şi nu îşi pot îmbunătăţi
performanţele prin experienţe şi nici nu pot învăţa prin experimentare. Nu pot genera automat
algoritmi, soluţii prin analogie cu cele vechi. Sistemelor le lipseşte abilitatea de a face inferenţe
inductive. Aproape toate sistemele cu inteligenţă artificială sunt sisteme deductive, adică pot
trage concluzii asupra informaţiilor incorporate, dar nu pot genera singure noi cunoştinţe, deci nu
sunt sisteme adaptive.
Învăţarea nu se poate face pe baza unui set foarte mare de cunoştinţe, atât din cauza
costurilor mari presupuse de acumularea unor baze de informaţii mari cât şi din cauza
complexităţii memorării şi prelucrării unui volum mare de informaţii. În acelaşi timp însă,
învăţarea trebuie să ducă la formularea de suficiente “reguli” atât cât să permită rezolvarea unor
probleme dintr-un spaţiu mai larg decât cel pe baza căruia s-a făcut învăţarea.
Sistemele concepute pentru învăţarea/instuirea automată au în vedere îmbunătăţirea
performanţei, în raport cu o sarcină, pe baza experienţei accumulate anterior. Având în vedere
aceste lucruri, maşinile de învăţare sunt în mod inerent un domeniu multidisciplinar. Ele se
bazează pe rezultate din inteligenţă artificială, probabilităţi şi statistică, teoria complexităţii
computaţionale, teoria controlului, a informaţiei, filozofie, psihologie, neurobiologie şi alte
domenii.
9
Modelul general de realizare a unui astfel de sistem care învaţă trebuie sa integreze patru
componente conceptuale[1]. Acestea sunt:
- elementul de învăţare; este cel responsabil cu îmbunătăţirea performanţei pe baza
câtorva cunoştinţe elementare despre ceea ce învaţă şi un feedback despre cum se descurcă
sistemul;
- elementul de performanţă; responsabil cu selectarea acţiunii la un moment dat;
- criticul; conceput pentru a furniza sistemului feedback-ul despre cât de bine se
descurcă în sarcinile pe care le are de rezolvat şi care are un standard fix de performanţă;
- generatorul de probleme; responsabil de sugerarea acţiunilor care vor duce la noi
experienţe informative.
Se poate observa faptul că unul dintre punctele importante în design-ul intern al unei
maşini autoinstruibile este reprezentat de feedback. Aceasta informaţie despre cum se descurcă
sistemul în rezolvarea sarcinilor, prin prezenţa sau absenţa ei, identifică clasele de tipuri de
învăţare. Acest proces atât de dificil şi totodată captivant poate fi realizat în trei moduri esenţiale:
a) Învăţarea supervizată: este un tip de învăţare inductivă ce pleacă de la un set de
exemple de instanţe ale problemei şi formează o funcţie de evaluare (şablon) care să permită
clasificarea (rezolvarea) unor instanţe noi. Învăţarea este supervizată în sensul că setul de
exemple este dat împreună cu clasificarea lor corectă. Aceste instanţe rezolvate se numesc
instanţe de antrenament. Formal, setul de instanţe de antrenament este o mulţime de perechi
atribut-valoare (x,f(x)), unde x este instanţa iar f(x) clasa căreia îi aparţine instanţa respectivă. La
acest tip de învăţare, în etapa de antrenare este momentul în care se construieste modelul, iar în
etapa de testare acesta este aplicat. Scopul învăţării este construirea unei funcţii-şablon care să
clasifice corect instanţele-exemplu, iar pentru un x pentru care nu se cunoaşte f(x) să propună o
aproximare cât mai corectă a valorii f(x). Din aceasta clasa de învaţare fac parte: arborii de
decizie, reţelele neuronale, maşinile cu support vectorial, învăţarea Bayesiană şi învăţarea bazată
pe instante.
b) Învăţarea nesupervizată: elimină complet necesitatea unor instanţe de
antrenament, deci şi problemele legate de acestea. Scopul învăţării nesupervizate nu este definit
anterior ca un concept ţintă, algoritmul fiind lăsat singur să identifice concepte posibile. În
general, învăţarea nesupervizată presupune existenţa unor instanţe neclasificate, un set de reguli
euristice pentru crearea de noi instanţe şi evaluarea unor concepte deduse, eventual un model
general al spaţiului de cunoştinţe în care se găsesc aceste instanţe. Un algoritm de învăţare
nesupervizată construieşte concepte pentru a clasifica instanţele, le evaluează şi le dezvoltă pe
cele considerate “interesante” de regulile euristice. În general, concepte interesante sunt
considerate cele care acoperă o parte din instanţe, dar nu pe toate. Învăţarea nesupervizată
permite identificarea unor concepte complet noi plecând de la date cunoscute.
10
c) Învăţarea prin întărire: se face fără ca algoritmul de învăţare să compare direct
şablonul obţinut cu rezultatele corecte pentru exemplele de antrenament. În schimb este
implementată o modalitate de a “răsplăti” sau “pedepsi” sistemul în funcţie de cât de mult se
apropie de rezultatul corect. Acest feedback este singura metodă a sistemului de învăţare de a se
regla pentru îmbunătăţirea rezultatelor sale. Acest lucru face învăţarea prin întărire mai dificilă,
căci sistemul nu mai primeşte informaţii directe despre cum şi cât să se corecteze, ci doar ştie
dacă se apropie sau se depărtează de rezultatul optim. De asemenea, feedback-ul poate veni doar
uneori, nu neapărat la fiecare schimbare în şablonul ipotetic, deci sistemul trebuie să aibă o
modalitate de a direcţiona şi impulsiona singur schimbarea pentru îmbunătăţirea şablonului.
Învăţarea prin încurajare este utilă în situaţiile în care nu dispunem de un set de antrenament, nu
putem identifica cu precizie instanţe valide sau eronate, fie din cauza complexităţii
reprezentaţionale, fie din cauza lipsei de informaţii sigure. Dispunem însă de capacitatea de a
aprecia corectitudinea unei soluţii obţinute de sistem, fie chiar şi doar comparativ cu celelalte
soluţii.
Un aspect foarte important atât în ceea ce priveşte învăţarea supervizată cât şi cea
nesupervizată este reprezentat de preprocesarea datelor. Aceasta se realizează prin
normalizare(aplicarea prelucrărilor statistice asupra datelor), scalarea datelor numerice, analiza
componentelor principale sau selectarea doar a acelor atribute care deţin o anumită proprietate.
Învăţarea automată tradiţională se bazează pe un model conceptual raţional al lumii fizice.
Pe baza acestui model s-au obţinut structuri de reprezentare tot mai complexe, strategii de căutare
mai eficiente şi progrese semnificative atât în crearea unor sisteme ce simulează aspecte ale
inteligenţei biologice, cât şi în înţelegerea modului în care funcţionează inteligenţa umană. Ideea
unui model conceptual raţional al lumii fizice se bazează însă pe tradiţia filozofică raţionalistă,
care însă nu modelează şi felul în care raţionează inteligenţa biologică. Inteligenţa umană are la
bază atât raţionamente logice şi ştiinţifice cât şi raţionamente empirice, esenţiale mai ales în
interpretarea necunoscutului. Acest lucru a dus la crearea de noi metode de modelare a
inteligenţei, cum ar fi reţelele neuronale şi algoritmii genetici, sau la includerea unor
raţionamente empirice similare celor umane în algoritmi de învăţare mai tradiţionali. Rezultatele
semnificative date de aplicarea acestor noi idei promit crearea unor sisteme tot mai inteligente,
până la crearea primei inteligenţe artificiale reale. Probabil, prima inteligenţă artificială veritabilă
nu va fi creată de programatori umani, ci de un sistem artificial ce va învăţa să fie inteligent
observând instanţele date de raţionamentele umane.
Metodele învăţării automate au devenit instrumente de bază în implementarea sistemelor
complexe de inteligenţă artificială. Există numeroase centre de cercetare şi conferinţe anuale
având ca principal domeniu dezvoltarea şi evaluarea metodologiilor de învăţare automată.
Tendinţa generală de a crea sisteme informatice tot mai independente şi adaptabile face studiul
Învăţării Automate unul dintre cele mai atractive domenii de cercetare în Inteligenţa Artificială.
11
CAPITOLUL 2
ÎNVĂŢARE BAYESIANĂ
Secţiunea anterioară a subliniat modul în care învăţarea, raţionamentul şi luarea decizilor
ar trebui să funcţioneze în teorie. Cu toate acestea, teoria nu ţine seama de cerinţele de calcul şi
de capacitatea de stocare. În situaţii realiste, calculul exact, urmăreşte regula lui Bayes, principiul
marginalizării sau regula utilităţii aşteptate. Prin urmare, un subiect de cercetare îndelung
dezbătut este devoltarea unor metode care să aproximeze cu un randament cât mai apropiat de
rezultatul teoretic, aplicaţiile practice.
Raţionamentul Bayesian oferă o abordare probabilistică a inferenţei. Maniera de luare a
decizilor are în vedere cantităţiile de interes reprezentate de distribuţii de probabilitate, dar şi
datele de antrenare observate. Această abordare este importantă în termeni de maşini de învăţare
deoarece oferă o manieră de aproximare cantitativă necesară pentru justificarea evaluării
ipotezelor alternative. Acest raţionament se află la temelia algoritmilor care manipulează direct
probabilităţi şi oferă un cadru amplu dispus analizării unor operaţii comparativ cu alţi algoritmi
care nu abordează studiul probabilistic.
Modelul de învăţare Bayesian este relevant pentru studiul maşinilor de învăţare din două
motive. Primul dintre ele este acela că algoritmii bayesiani care calculează direct probabilităţi
pentru anumite ipoteze, cum ar fi algoritmul de clasificare naiv al lui Bayes, sunt printre cele mai
practice abordări pentru anumite tipuri de probleme de învăţare. Studiile arată nu doar faptul că
aceşti algoritmi sunt competitivi cu alţii, dar şi faptul că pentru unele clase de probleme i-au
surclasat.
Al doilea motiv pentru care metodele Bayesiene sunt importante este că ele oferă o
perspectivă utilă pentru înţelegerea mai uşoară a multor algoritmi de învăţare care nu
manipulează în mod explicit probabilităţi. Perspectivele bayesiene pot fi folosite pentru
analizarea reţelelor neuronale sau a arborilor de decizie.
Familiarizarea cu metodele Bayesiene este importantă pentru înţelegerea şi caracterizarea
funcţionării mai multor algoritmi care ţin de maşinile de învăţare. Aceste idei de abordare pot fi
amestecate şi cu alte metode existente în cazul în care un model complet bayesian este complicat
de definit, dar tehnicile lui pot fi transferate.
Caracteristicile metodelor de învăţare bayesiene sunt:
- Fiecare exemplu de antrenare poate scădea sau creşte progresiv probabilitatea că o
ipoteză este corectă. Această abordare a procesului de învăţare este mai flexibilă comparativ cu
12
algoritmii care elimină complet o ipoteză dacă se dovedeşte că ea e în contradicţie cu cel puţin un
singur exemplu.
- Cunoştiinţele anterioare pot fi combinate cu datele de antrenare observate pentru a
determina probabilitatea finală a ipotezei. Cunoştiinţele anterioare sunt obţinute prin asocierea
unei probabilităţi anterioare pentru fiecare ipoteză candidat şi o distribuţie de probabilitate pentru
altele observate pentru fiecare ipoteză în parte.
- Pot găzdui ipoteze care fac predicţii probabilistice.
- Cazurile noi pot fi clasificate prin combinarea predicţiilor mai multor ipoteze,
ponderate în funcţie de probabilitatea lor.
- Chiar şi atunci când calculele sunt greu de făcut, pot oferi un standard de luare a
deciziilor optime.
La fel ca şi la orice sistem informatic, şi aici ne lovim de dificultăţi în aplicarea
lui. Ele se referă la necesitatea unor cunoştiinţe anterioare despre domeniul probabilistic şi la
costul de calcul semnificant pentru a determina ipoteza Bayes optimă.
2.1 Teorema lui Bayes
Teorema lui Bayes este una dintre teoremele fundamentale ale teoriei
probabilităţiilor, care determină probabilitatea apartenenţei evenimentelor şi a obiectelor la o
anumită grupă. Probabilitatea bayesiană este numele dat mai multor interpretări ale noţiunii
de probabilitate, care au în comun ideea de probabilitate ca credinţă parţială, în loc de cea de
frecvenţă de apariţie a unui eveniment. Aceasta permite aplicarea probabilităţii mai multor
propoziţii şi nu doar cele care au o clasă de referinţă. Termenul de „bayesian” a început să fie
folosit în acest sens cam din 1950. Nu se ştie dacă Bayes însuşi a îmbrăţişat larga interpretare
denumită astăzi bayesiană. Este dificil să se evalueze ideile filosofice ale lui Bayes despre
probabilitate, deoarece eseul său nu intră în chestiuni de interpretare. Acolo, Bayes
defineşte probabilitatea ca şi: “Probabilitatea oricărui eveniment este raportul între valoarea la
care ar trebui calculată o aşteptare în funcţie de întâmplarea unui eveniment, şi valoarea lucrului
aşteptat după ce s-a întâmplat”.
În teoria modernă a utilităţii, utilitatea aşteptată poate fi considerată a fi
probabilitatea unui eveniment înmulţită cu răsplata primită în cazul lui. Rearanjarea acestei
formule pentru a permite calculul probabilităţii dă definiţia lui Bayes. Aşa cum arată Stigler,
această definiţie este subiectivă şi nu necesită evenimente repetate; ea, însă, necesită ca
evenimentul în chestiune să fie observabil, fiindcă altfel nu se poate spune deloc că „s-a
întâmplat”. Stigler argumentează că Bayes intenţiona să obţină rezultate într-o manieră mai
limitată decât studiile moderne; dată fiind definiţia probabilităţii după Bayes, rezultatul său
13
privind parametrul unei distribuţii binomiale are sens doar în măsura în care se poate paria pe
consecinţele sale observabile[12].
În cazul maşinilor de învăţare sunetm interesaţi de determinarea celei mai bune
ipoteze pentru un spaţiu H, având în vedere datele de antrenare D. În acest context, atunci când
vorbim despre cea mai bună ipoteză ne referim la cea mai probabilă ipoteză având datele D şi alte
cunoştiinţe iniţiale despre probabilităţiile diverselor ipoteze din H. Teorema lui Bayes conferă o
metodă directă de a calcula aceste probabilităţi. Mai precis, ea furnizează o manieră de a calcula
probabilitatea unei ipoteze bazată pe probabilitatea anterioară a acesteia, denotată din diverse date
observate având în vedere ipotezele .
Pentru a putea exprima în termeni matematici teorema lui Bayes, avem nevoie de
anumite notaţii. Vom considera o ipoteză h din spaţiul ipotezelor H. Prin P(h) vom nota
probabilitatea iniţială a ipotezei h. La probabilitatea anterioară observării datelor de antrenare D
ne vom referi prin P(D), iar la probabilitatea de a observa datele D în raport cu ipoteza h, prin
P(D|h). Deşi trebuie să avem în vedere toate acestea, în lumea maşinilor de învăţare suntem
interesaţi de o altă probabilitate notată prin P(h|D). Aceasta este probabilitatea ulterioară a lui h,
aceea ca ipoteza h să se petreacă având în vedere datele de antrenare D. Aceasta reflectă influenţa
datelor de antrenare asupra decizilor care pot fi luate, în contrast cu P(h), probabilitate
independent de D.
Teorema lui Bayes este piatra de temelie a învăţarii bayesiene deoarece ea
furnizează metoda de a calcula probabilitatea ulterioară, P(h|D), din P(h), P(D) şi P(D|h), astfel:
)(
P(h) * h)|P(D)D|(
DPhP
Din această ecuaţie, care concentrează raţionamentul bayesian, se poate observa faptul că
P(h|D) creşte deodată cu P(h) şi P(D|h), şi descreşte atunci când P(D) creşte.
În numeroase discuţii despre teorema lui Bayes este posibil să existe susţinători ai
psihologiei cognitive care să afirme faptul că oamenii nu iau suficient de mult în considerare
frecvenţele anterioare. Acest lucru înseamnă că atunci când oamenii abordează o problemă pentru
care există o oarecare indicaţie către evaluarea ca şi adevărată a unei condiţii, ei tind să judece
probabilitatea acelei condiţii numai după cât de bine se potriveşte indicaţia cu ea, fără a lua în
considerare frecvenţa anterioară a condiţiei.
În multe scenari de învăţare, se consider câteva seturi de ipoteze candidat H şi interesul se
axează asupra găsirii celei mai probabile ipoteze h din H, având în vedere datele de antrenare D.
Fiecare dintre aceste ipoteze de probabilitate maximă este numită “ipoteză maximă posterioară”
[1](maximum a posteriori hypothesis-MAP). Pentru determinarea MAP se foloseşte teorema lui
14
Bayes pentru a calcula probabilitatea ulterioară a fiecărei ipoteză candidat. Mai precis se poate
spune ca o ipoteza hMAP este ipoteză maximă posterioară dacă:
) D |h ( PmaxargmaxargHh
MAPh
)(
P(h) * h)|P(Dmaxarg
DPHh
)(*)|(maxarg hPhDPHh
După cum se poate observa în cea din urmă formă a ecuaţiei care exprimă hMAP lipseşte
termenul P(D). Acest fapt este deoarece P(D) este o constantă independentă de valoarea pe care o
ia h.
Există în practică şi cazuri în care toate ipotezele dintr-un spaţiu al problemei H au
aceeaşi probabilitate: P(hi)=P(hj), pentru oricare ar fi hi, hj din H. În aceste situaţii ecuaţia
anterioară poate fi simplificată sub forma:
)|(maxarg hDPhHh
MAP
Această ipoteză se mai numeşte şi ipoteza de probabilitate maximă, P(D|h) fiind numită
probabilitatea maximă.
Deoarece teorema lui Bayes este mult mai generală, ea poate fi la fel de bine aplicată pe
orice set H de propuneri ce se exclude reciproc şi a căror sumă de probabilitate este 1. Datorită
faptului că această teoremă furnizează principala manieră de a calcula probabilitatea ulterioară a
fiecărei ipoteze luând în calcul datele de antrenare, poate fi folosită ca şi bază pentru un algoritm
simplu care calculează probabilitatea pentru fiecare ipoteză şi o afişează pe cea mai probabilă. Pe
baza unui studiu realizat[1] s-a observat că în anumite condiţii, mai mulţi algoritmi returnează
aceeaşi ipoteză ca şi această forţă brută Bayesiană, în ciuda faptului că acestea nu manipulează în
mod direct probabilităţi şi sunt considerabil mai eficiente.
Să presupunem câteva spaţii finite de ipoteze H, definite peste spaţiul instanţă X, în care
sarcina este de a învăţa unele concepe ţintă: ]1,0[: Xc . La fel ca oricărui elev dispus să înveţe,
şi la aces elev virtual trebuie să îi fie furnizate cateva secvenţe de exemple, date de antrenare.
Considerăm aceste date sub forme de grupuri de genul: (x1,d1), (x2,d2), …, (xm,dm), unde xi este o
instanţă din X, di o valoare ţintă pentru xi şi di=c(xi). Cu presupunerea simplă care nu restrânge
generalitatea, şi anume că setul de instanţe deţinut (x1, x2, …, xm) este fix astfel încât setul de date
de antrenament D poate fi scris ca şi o secvenţă de valori ţintă (d1, d2,…, dm).
Proiectarea unui algoritm simplu, bazat pe conceptul de învăţare şi pe teorema lui Bayes,
care să returneze o ipoteză posterioară maximă, poate fi facut astfel:
15
1. Pentru oricare hєH calculează
P(h|D)=)(
)(*)|(
DP
hPhDP
2. Returnează ipoteza hMAP cu cea mai mare probabilitate posterioară
)|(maxarg DhPhHh
MAP
Acest algoritm poate necesita calcule serioase deoarece foloseşte teorema lui Bayes
pentru fiecare ipoteză h din H. Acest lucru poate fi o piedică pentru spaţii foarte mari de ipoteze,
dar totuşi algoritmul este de interes deoarece furnizează un standard la care ne-am putea raporta
performanţa altor concept de algoritmi de învăţare.
Pentru a specifica o problemă reală pentru acest algoritm, trebuie să precizăm ce valori
vor fi folosite pentru P(h) şi pentru P(D|h). Posibilitatea de alegere a distribuţiei de probabilitate
pentru P(h) şi P(D|h) rămâne la alegerea noastră şi totuşi în legătură strânsă cu cunoştiinţele
noastre anterioare despre sarcina de învăţare.
Le vom alege astfel în concordanţă cu urmatoarele ipoteze:
1. datele de antrenare D sunt fără constrângeri;
2. conceptul ţintă c este conţinut in H;
3. nici o ipoteză nu este mai probabilă decât alta: HhH
hP ,1
)(
Astfel:
altfel
DdxhdhDP
iii
,0
),(,1)|(
După ce vom trece de această etapă de definire şi îndeplinire a anumitor condiţii vom
putea spune cu adevărat că avem o problemă definită complet pentru algoritmul de învăţare brut
Bayes. În conformitate cu alegerea noastră pentru P(h) şi P(D|h) se poate spune că fiecare ipoteză
inconsistentă are probabilitatea 0 şi deasemenea că fiecare ipoteză consistentă este o ipoteză de
probabilitate maximă.
2.2 Probabilitatea maximă
Analiza Bayesiană poate fi folosită uneori pentru a arăta că un algoritm particular de
învăţare poate sa furnizeze ca şi rezultat ipoteza de probabilitate maximă chiar dacă acesta s-ar
putea să nu folosească regula Bayesiană sau să calculeze probabilităţiile în vreun mod.
16
În statistică, estimarea probabilităţii maxime este o metodă de estimare a parametrilor
dintr-un model statistic. Atunci când aplicăm unui set de date un model statistic estimăm
parametri modelului prin estimarea probabilităţii maxime.
Algoritmul de determinare a probabilităţii maxime este şi el bazat pe regula Bayes.
Diferenţa se stabileşte la linia unde învăţarea Bayesiană foloseşte probabilităţiile anterioare ale
unui model, iar învăţarea bazată pe determinarea probabilităţii maxime nu. Cea din urmă se
bazează la determinarea probabilităţii maxime pe parametri anteriori, şi nu pe model.
Estimarea probabilităţii maxime vede paramatri ca şi cantităţi a căror valoare este fixată,
dar necunoscută. Aceste valori sunt estimate prin maximizarea probabilităţii de a obţine
exemplele observate. Această abordare de estimare este oarecum diferită de estimarea Bayesiană
care vede parametri ca şi variabile aleatoare având distribuţii anterioare cunoscute şi care
converteşte aceste distribuţii în distribuţii posterioare pe baza exemplelor de antrenare.
Metoda de estimare prin probabilitatea maximă este o parte fundamentală din analiza
datelor. În condiţiile în care învăţarea înseamnă antrenare este de multe ori nevoie de
aproximarea unor parametri bazându-ne pe datele de antrenare. Deşi acest lucru este destul de
greu de realizat el nu este imposibil. Având colecţia de date de antrenare D=(x1,x2, ...,xn) este
nevoie de estimarea unor parametri necunoscuţi, fie ei Ф, în sensul în care probabilitatea datelor
este maximizată. Probabilitatea datelor este dată de relaţia:
n
k
kxPDP1
)|()|( .
Logaritmul probabilităţii este:
n
k
kxPDPL1
)|()|(ln)( .
Având aceste date se ajunge la formula de determinare a probabilităţii maxime care este:
)|(maxarg)|(maxarg*
DLDP .
Aceasta este cea mai brutal metodă de aproximare a inferenţei Bayesiene şi deşi este cea
mai simplă soluţie pentru găsirea ponderilor, taie baneficiile tipului de învăţare Bayesian. Lipsa
de constrângeri asupra spaţiului de ponderi poate permite apariţia unor soluţii numeric
improbabile.
Una dintre problemele pentru care această metodă de aproximare este folosită este cea a
reducerii pătratului erorii[1]. Problema învăţării unei funcţii ţintă continue este o problemă cu
care se confruntă multe abordări ale învăţării, şi amintim aici reţelele neuronale, regresia liniară şi
montarea curbelor polinomiale. O analiză Bayesiană simplă va arăta că pe baza anumitor ipoteze,
orice algoritm de învăţare care minimizează pătratul erorii dintre predicţiile ipoteză de ieşire şi
datele de antrenare, va returna o ipoteză de probabilitate maximă. Semnificaţia acestui rezultat
este că el oferă o justificare Bayesiană pentru multe reţele neuronale sau metode de montare a
17
curbelor care doresc să minimalizeze suma pătratelor erorii peste datele de antrenare. Având un
sistem nevoit să înveţe se consideră o instanţă a spaţiului X şi un spaţiu de ipoteze H definit pe X
ca și un spaţiu de funcţii reale(fiecare hєH este o funcţie de forma Xh : ). Sarcina acestiu
sistem este de a învăţa o funcţie ţintă necunoscută, hєH, definită în forma precizată. Un set de m
exemple de antrenare este prevăzut, în cazul în care valorile ţintă a fiecăriu exemplu sunt corupte
aleatoriu de perturbaţii în conformitate cu o distribuţie de probabilitate normală. Mai precis,
fiecare exemplu este o pereche de forma(xi,di), unde di=f(xi)+ei, f(xi) este valoarea neperturbată a
funcţiei ţintă şi ei este o variabilă aleatoare care simbolizează perturbaţia. Se presupune că
valorile ei sunt independente şi sunt distribuite în conformitate cu distribuţia normală de
probabilitate cu medie 0. Sarcina sistemului este de a obţine o ipoteză de probabilitate maximă
sau o ipoteză maximă ulterioară(MAP) echivalentă în cazul în care toate ipotezele au aceeaşi
prioritate.
Distribuţia normală a probabilităţii care apare la ei, este o distribuţie bună care poate fi în
totalitate caracterizată prin media ei şi abaterea standard.Vom arăta cele propuse pornind de la
ecuaţia care defineşte ipoteza de probabilitate maximă, cu precizarea că vom folosi p pentru a ne
referi la densitatea de probabilitate:
)|(maxarg hDph
HhML
.
Asumând faptul că exemplele de antrenare sunt independente de h, putem scrie P(D|h) ca
şi produs a p(di|h):
m
i
iHh
ML hdph1
)|(maxarg .
Deseori este mult mai uşor să se lucreze cu logaritmul funcţiei de probabilitate, caz în
care se obţine:
Hh
n
i
i
n
i
iHh
ML hdphdph
11
)|(logmaxarg)|(logmaxarg .
Luând în calcul perturbaţia ei, cu distribuţia de probabilitate normală, de medie 0 şi
varianţă necunoscută, se denotă faptul că şi di trebuie să fie tot normal distribuită şi cu aceeaşi
varianţă centrată în jurul funcţiei ţintă f(xi). După calculele de rigoare şi eliminări ale elementelor
care nu depind de h se ajunge la următoare expresie a ipotezei de probabilitate maximă:
m
i
iiHh
ML xhdh1
2))((minarg .
Prin aceasta este demonstrat faptul că ipoteza de probabilitate maximă este cea care
minimalizează suma pătratelor erorii peste datele de antrenare de valori di şi predicţiile de ipoteze
h(xi).
Dacă numărul de parametri este m, T
mhhh ),...,( 1 se defineşte operatorul gradient:
18
m
h
h
h
.
.
.
1
.
Atunci, estimarea probabilităţii maxime trebuie să satisfacă condiţiile de necesitate:
n
i
n
i
ihih hdphdp1 1
0)|(log)|(log .
Având în vedere toate cele prezentate anterior pot fi conturate câteva dintre proprietăţiile
estimării probabilităţii maxime. Ea reprezintă punctul pentru care exemplele observate sunt cele
mai probabile. Procedura cu derivatele parţiale poate da ca şi rezultat câteva extreme locale.
Pentru a determina un optim global, trebuie să fie verificate fiecare dintre aceste soluţii în mod
individual. O proprietate invariantă este aceea că, dacă se obţine că hML este probabilitatea
maximă pentru spaţiul de ipoteze H, atunci pentru fiecare funcţie f(h), estimarea de probabilitate
maximă a lui f(h) este f(hML).
În funcţie de distribuţia de probabilitate pe care o au ipotezele din H, se poate vorbi
despre cazul Gaussian sau despre cel Bernouli. Pentru a măsura cât de bine se potriveşte o
distribuţie peste datele de antrenare, se poate folosi testul statistic Kolmogorov-Smirno. Acesta
este definit ca valoarea maximă a diferenţei absolute dintre funcţia de distribuţie cumulativă,
estimată în cadrul eşantionului de testare şi cea calculată din distribuţiile montate. După ce sunt
calculaţi parametri pentru diferite distribuţii, se poate calcula statistica Kolmogorov-Smirno
pentru fiecare distribuţie în parte şi se alege aceea cu cea mai mică valoare ca fiind cea mai
potrivită pentru exemplele alese.
Minimizarea sumei pătratelor erorii este o abordare în mai multe reţele neuronale, în
probleme de montare a curbelor şi alte abordări pentru aproximarea funcţiilor cu valori reale.
Analiza anterioară consideră apariţia perturbaţiei numai la nivelul valorilor ţintă din exemplele de
formare şi nu ia în considerare perturbaţiile care ar putea apărea la nivelul atributelor de descriere
a instanţelor. Aceasta este una dintre problemele de limitare ale abordării prezentate.
O altă problemă specifică reţelelor neuronale este cea referitoare la învăţarea prezicerilor
de probabilităţi. Să considerăm situaţia în care funcţia de învăţat este nedeterministă, cu două
valori discrete la ieşire, }1,0{: Xf . De exemplu, spaţiul instanţă X poate fi reprezentant de
pacienţii care au anumite afecţiuni medicale, iar valoarea funcţiei ţintă f(x) ar putea fi egală cu 1
dacă pacientul supravieţuieşte bolii şi 0, în caz contrar. La fel de bine X ar putea reprezenta
solicitanţii la un împrumut bancar împreună cu istoria lor de creditare şi f(x) ar putea fi 1 dacă
solicitantul ar putea rambursa cu success un împrumut viitor sau 0, în caz contrar. În ambele
19
cazuri ne putem aştepta ca f să fie o funcţie probabilistică. De exemplu, dacă dintr-un set de
pacienţi cu aceleaşi simptomele observabile am avea ca şi rezultat că 92% supravieţuiesc, iar 8%
nu, imprecizia va veni tocmai din incapacitatea noastră de a respecta toate caracteristicile
distinctive ale pacienţilor sau de la un mecanism al evoluţiei bolii cu adevarat probabilistic.
Indiferent de sursa problemei, efectul e că funcţia ţintă de intrare este o funcţie probabilistică.
Având în vedere aceste date ale problemei, se caută o reţea neuronală care să înveţe
funcţia ţintă )1)(()('],1,0[:' xfPxfXf . În exemplul anterior, dacă x este unul dintre cei
92% dintre pacienţii care suprevieţuiesc bolii, atunci 92.0)(' xf deoarece, probabilistic, funcţia
f(x) va fi egală cu 1 în 92% dintre cazuri şi cu 0 în rest. Pentru ca p rețea neuronală să învețe
funcția 'f , o modalitate destul de brută ar fi aceea de a colecta prima dată frecvenţele observate
de 1 si 0 pentru fiecare posibilă valoare x şi de a instrui apoi reţeaua neuronală cu frecvenţa ţintă
pentru fiecare x. Însă, un mod mai efficient, este acela de a antrena mai degrabă direct din
exemple observate de funcţia f, dar obţinând pe lângă aceasta şi o ipoteză de probabilitate
maximă pentru 'f .
2.3 Clasificatorul Optimal Bayes
Trecând de la ipoteza de probabilitate maximă spre problemele de clasificare, una dintre
întrebările care apar este “care este cea mai probabilă clasificare pentru o nouă instanţă având în
vedere datele de antrenare?”. Răspunsul pare destul de simplu de dat atâta timp cât aplicarea
principiului de ipoteză de probabilitate maximă este posibilă. În realitate există o manieră mai
bună de rezolvare a problemei.
Pentru a dezvolta unele idei intuitive să considerăm spaţiul ipotezelor ca fiind compus din
3 instanţe: h1, h2 şi h3. Presupunem că probabilităţiile ulterioare ale acestor ipoteze, având în
vedere datele de antrenare, sunt 0.4, 0.3, respectiv 0.3. Astfel este uşor de observat faptul că
ipoteza de probabilitate maximă este h1. Să presupunem că este furnizată spre clasificare o nouă
instanţă X. Aceasta este clasificată pozitiv de către h1 şi negativ de către h2 şi h3. Luând în calcul
toate ipotezele, probabilitatea ca X să fie pozitivă este 0.4, iar cea ca X să fie negativă este 0.6. În
acest caz, cea mai probabilă clasificare(cea negativă) este diferită de clasificarea generată de
ipoteza de probabilitate maximă.
În general, cea mai probabilă clasificare a unei noi instanţe este obţinută prin combinarea
ponderată a predicţiilor tuturor probabilităţiilor ulterioare a ipotezelor din spaţiul problemei. Dacă
posibila clasificare a noului exemplu poate lua oricare valoare din setul funcţiilor ţintă(vi єV),
atunci probabilitatea P(vj |D) ca clasificarea corectă pentru noua instanţă să fie vj este chiar:
Hh
iijj
i
DhPhvPDvP )|(*)|()|(
20
Optimul de clasificare a noii instanţe este valoarea vj pentru care P(vj|D) este maximă.
Astfel putem spune că optimul de clasificare al lui Bayes este dat de formula:
Hh
iijVv
ij
DhPhvP )|(*)|(maxarg .
Este important de remarcat faptul că nici un alt sistem de clasificare folosind acelaşi
spaţiu de ipoteze şi aceleaşi cunoştiinţe anterioare nu poate depăşi această metodă în termeni de
performanţă. Această metodă maximizează probabilitatea ca noua instanţă să fie clasificată corect
având în vedere datele problemei, spaţiul ipotezelor şi probabilităţiile lor anterioare.
Spre exemplu, în procesul de învăţare boolean, cu conceptele folosind diferite versiuni ale
spaţiului, clasificarea optimală Bayes a noii instanţe este obţinută prin luarea în calcul a unui vot
ponderat între toţi membrii spaţiului, cu fiecare ipoteză candidat, ponderată de probabilitatea ei
ulterioară. O proprietete interesantă a clasificatorului optimal Bayes este aceea că predicţiile pe
care acesta le face pot corespunde unei ipoteze care nu este conţintă in H[1]. Să presupunem că se
foloseşte formula de calculare a ipotezei optime de mai sus pentru a clasifica fiecare instanţă din
X. Etichetarea instanţelor definite în acest fel nu trebuie să corespundă cu etichetarea instanţelor
unei singure ipoteze hєH. O modalitate de a observa acest lucru este de a ne gândi la
clasificatorul optimal Bayes având în vedere un spaţiu al problemei diferit de H pentru care se
aplică teorema lui Bayes. În particular, acest spaţiu include efectiv ipotezele care fac comparaţii
între combinaţiile liniare a predicţiilor de la mai multe ipoteze din H.
Chiar dacă clasificarea optimală Bayes obţine cea mai bună performanţă care poate fi
obţinută din datele de antrenare, poate fi destul de costisitoare de aplicat. Costul este datorat
faptului că algoritmul calculează toate probabilităţiile ulterioare pentru fiecare ipoteză din H şi
apoi le combină cu fiecare ipoteză pentru a clasifica fiecare nouă instanţă.
Ca şi o alternativă, însă mai puţin optimă, se poate folosi metoda lui Gibbs[1]. Având o
nouă instanţă de clasificat, algoritmul lui Gibbs aplică pur şi simplu o ipoteză aleasă în funcţie de
distribuţia de probabilitate ulterioară peste spaţiul ipotezelor. În mod surprinzător, poate fi arătat
faptul că, în anumite condiţii, eroarea de clasificare comparativ cu clasificatorul optimal Bayes
nu este atât de mare[(Haussler et al. 1994] .
21
CAPITOLUL 3
METODE DE ÎNVĂŢARE BAYESIANĂ
3.1 Clasificatorul Naiv Bayes
Una dintre cele mai vechi metode de clasificare este dată de Clasificatorul Naiv
Bayes(CNB). Deşi simplu în structură şi bazat pe presupuneri nerealiste, CNB a surclasat,
deseori, tehnici mult mai sofisticate. De fapt, datorită structuri sale extrem de simple, CNB este o
alegere foarte atractivă atunci când vine vorba despre un set de variabile independente mare. În
ciuda simplicităţii sale, CNB este rareori folosit în practică, cele mai populare pachete software
statistice neavând un modul de CNB. Motivele pentru acestea ar fi pe de o parte faptul căci
clasele de probabilitate părtinitoare ar putea fi o problemă reală pentru aplicaţiile de modelare în
care accentul nu cade neaparat pe clasificare. Un alt motiv este acela că CNB estimează sub
presupunearea că predicţiile sunt independent condiţionate, având în vedere valorile ţintă. Ca şi
un rezultat, relaţiile dintre variabilele dependente şi predicţii sunt estimate în mod izolat, fără a
lua în calcul covarianţa dintre predicţii. Prin urmare, CNB nu este capabil să aproximeze funcţii
de regresie multivariate şi ca un instrument de explorare a datelor nu se adaugă mai multe
informaţii decât o analiză univariată. În anumite domenii performanţele CNB au fost comparabile
cu cele ale reţelelor neuronale sau ale învăţarii în arbori de decizie. Succesul CNB, în prezenţa
carcteristicilor de dependenţă, poate fi explicată astfel: optimalitatea în termeni de pierdere zero-
unu(eroarea de clasificare) nu este neaparat legată de calitatea de a potrivi o distribuţie de
probabilitate. Mai degrabă, o clasificare optimă se obţine atâta timp cât ambele distribuţii efective
estimate sunt de accord cu privire la clasa cea mai probabilă.
Această metodă extrem de practică a învăţarii Bayesiene se aplică pentru sarcinile de
învăţare în cazurile în care fiecare instanţă x este descrisă printr-o conjuncţie de valori şi fiecare
funcţie ţintă )(xf poate lua orice valoare dintr-un anumit set finit de valori, V. Se porneşte de la
un set de date de antrenare pentru funcţia ţintă şi o nouă instanţă descrisă printr-un n-uplu de
valori atribut (a1,a2,..., an). Sistemul este solicitat să facă o predicţie cu privire la valoarea ţintă
sau la clasa din care face parte noua instanţă. Abordarea Bayesiană pentru clasificarea noii
instanţe constă în a îi atribui cea mai probabilă valoare ţintă având date valorile atributelor care
descriu noua instanţă. Să notăm cea mai probabilă valoare ţintă cu MAPv şi valorile atributelor cu
),...,,( 21 naaa . În acest caz avem relaţia: ),...,,|(maxarg 21 njVv
MAP aaavPvj
. Putem folosi
teorema lui Bayes pentru a rescrie relaţia şi vom obţine:
22
),...,,(
)(*)|,...,,(maxarg
21
21
n
jjn
VvMAP
aaaP
vPvaaaPv
j
)(*)|,...,,(maxarg 21 jjnVv
vPvaaaPj
Acum se pune problema de a estima cele două probabilităţi care apar în relaţia de mai sus
pe baza datelor de antrenare. Este relativ simplu de estimat probabilitatea )( jvP , aceasta făcându-
se prin simpla numărare a frecvenţei cu care apare fiecare valoare ţintă jv în datele de antrenare.
Cu toate astea, estimarea diferiţilor termeni )|,...,,( 21 jn vaaaP în această manieră nu este posibilă
dacă setul de antrenare nu este extrem de mare. Problema este că numărul termenilor de acest fel
este egal cu numărul instanţelor înmulţit cu numărul posibilelor valori ţintă. De aceea trebuie să
vedem fiecare instanţă în spaţiul instanţelor de mai multe ori pentru a obţine estimări de date
fiabile.
CNB se bazează pe simpla presupunere că valorile atributelor sunt independent
condiţionate de valorile ţintă. Altfel spus, presupunerea este că având valorile ţintă ale
instanţelor, probabilitatea de a observa îmbinarea a1,a2,…,an este egală cu produsul
probabilităţiilor pentru atributele individuale[1]:
n
i
jijn vaPvaaaP1
21 )|()|,...,,( .
În aceste condiţii, formula pentru determinarea valorii ţintă de probabilitate maximă este:
n
i
jijVv
NB vaPvPvj 1
)|(*)(maxarg , unde prin NBv ne referim la valoarea ţintă de ieşire
pentru CNB. Este observabil faptul că în cazul CNB numărul termenilor )|( ji vaP distincţi care
trebuiesc estimaţi din datele de antrenare este acelaşi cu numărul de atribute cu valori distincte
înmulţit cu numărul de valori ţintă distincte. Acest număr este considerabil mai mic decăt
numărul de termeni )|,...,,( 21 jn vaaaP pe care i-am fi estimat iniţial.
Învăţarea CNB implică un pas de învăţare în care diferiţi termeni )( jvP şi )|( ji vaP sunt
estimaţi, bazându-ne pe frecvenţa lor peste datele de antrenare. Setul acestor estimări corespunde
ipotezelor care au fost învăţate în partea de antrenare. Aceste ipoteze sunt apoi folosite pentru a
clasifica fiecare nouă instanţă prin aplicarea ecuaţiei CNB. Oricând este îndeplinită ipoteza de
clasificare naivă Bayes cu privire la independenţa condiţională, NBv este identic cu clasificarea
data de ipoteza maximă corespunzătoare(MAP).
Dacă se vorbeşte despre problemele de clasificare binară, în care funcţia ţintă este 0 sau 1,
sunt cunoscute câteva limitări a CNB. El poate învăţa doar funcţii liniare ale discriminantului şi
de aceea este totdeauna suboptimal pentru concepe non-liniar separabile. În cazul în care funcţia
ţintă poate avea mai mult de două valori posibile, CNB este capabil să înveţe şi funcţii
polinomiale. Acesta este motivul pentru care este necesară separabilitatea polinomială, dar nu
23
este condiţie suficientă pentru optimalitatea CNB pentru concept cu un domeniu de caracteristici
finit.
În ciuda limitărilor sale, CNB s-a dovedit a fi optim pentru unele clase de concepte care
au un grad ridicat de dependenţe facilitate, cum ar fi concepte disjunctive şi conjunctive. Tocmai
de aceea se poate spune că CNB este optimal pentru orice două clase de concepte cu caracteristici
nominale care atribuie clasei 0 exact un exemplu, şi clasei 1 un alt exemplu, cu probabilitatea
1[3]. O observaţie aproape evidentă este aceea că performanţa CNB scade odată cu creşterea
numărului de clase.
Surprinzător, precizia CNB nu este direct corelată cu gradul de dependenţe facilitate,
masurată ca informarea reciprocă între clasele condiţionate de caracteristici. În schimb, un
predictor de precizie mai bună este pierderea de informaţii care conţin caracteristici despre clase,
atunci când se presupune un model naiv Bayes. Cu toate acestea, în continuare studiul empiric şi
teoretic este necesar pentru a înţelege mai bine relaţia dintre aceste metrici de informaţii teoretice
şi comportamentul Bayes naiv. Direcţiile suplimentare includ, deasemenea, analiza naivă Bayes
cu privire la aplicabilitatea practică, care are dependenţe aproape deterministe, caracterizând alte
regiuni ale optimalităţii naiv Bayes şi studiul efectului diferiţilor parametri de date cu privire
la eroarea naiv Bayes. În cele din urmă, o mai bună înţelegere a impactului ipotezei de
independenţă asupra clasificări poate fi utilizată pentru a elabora tehnici de aproximare pentru o
mai bună învăţare a clasificatorilor Bayesieni, şi pentru deducţia probabilistică, spre exemplu,
pentru găsirea probabilităţii maxime.
O diferenţă interesantă între metoda de învăţare naivă Bayes şi alte metode este aceea că
în acest caz nu există o căutare explicită în spaţiul posibilelor ipoteze. În schimb, ipoteza este
formată fără căutare, prin simpla numărare a frecvenţelor diferitelor date combinate cu datele de
antrenare.
3.2 Reţele Bayesiene
Reţelele Bayesiene, cunoscute şi sub numele de reţele de încredere, aparţin familiei de
modele grafice probabilistice. Aceste structuri grafice sunt folosite pentru a reprezenta
cunoştiinţe despre un anumit domeniu incert. În particular, fiecare nod al grafului reprezintă o
variabilă aleatoare, în timp ce arcele dintre noduri reprezintă dependenţele probabilistice dintre
nodurile conectate. Aceste dependenţe condiţionate sunt deseori calculate folosind metode de
calcul statistic cunoscute. Prin urmare, reţelele bayesiene combină principii din teoria grafelor,
teoria probabilităţiilor, informatică, dar şi statistică.
Reţelele Bayesiene corespund structurii de modele grafice cunoscute ca şi grafe aciclice
dirijate, populare în statistici, maşini de învăţare, precum şi în rândul societăţii de Inteligenţă
Artificială[4]. Ele sunt deopotrivă riguroase matematic cât şi intuitibile de înţeles. Acestea permit
24
o reprezentare eficientă de calcul a distribuţiei de probabilitate comună peste un set de variabile
aleatoare. Structura unui graf aciclic orientat este definită prin intermediul a două mulţimi:
mulţimea nodurilor şi cea a arcelor orientete. Nodurile sunt reprezentate de cercuri etichetate cu
numele variabilelor aleatoare. Nodurile sunt reprezentate ca şi dependenţe directe între variabile.
În particular, un arc de la nodul xi la nodul xj reprezintă o dependenţă statistică între variabilele
corespunzătoare nodurilor. Astfel, săgeata reprezintă faptul că valoarea luată de variabila xj
depinde de valoarea luată de variabila xi, sau altfel spus, xi infueţează xj. Referinţa la nodul xi este
cea de „părinte” a nodului xj, şi similar, xj este „fiu” pentru nodul xi. O extensie a acestor termeni
genealogici este adesea folosită pentru a defini setul „succesorilor”- setul nodurilor la care se
poate ajunge direct dintr-un nod- sau setul „predecesorilor”- setul nodurilor de la care se poate
ajunge în manieră directă la nodul curent. Structura unui graf aciclic garantează faptul că nici un
nod nu va fi propriul său succesor sau predecesor. Această condiţie este una de importanţă vitală
pentru factorizarea probabilităţiilor comune a unei colecţii de noduri. Este de remarcat faptul că,
deşi săgeţiile reprezintă legături directe de cauzalitate între variabile, procesul de raţionament
poate opera asupra reţelelor Bayesiene prin propagarea informaţiilor în orice direcţie.
O reţea Bayesiană reflectă o simplă declaraţie de independenţă condiţionată. Fiecare
variabilă este independentă de non-succesorii săi în grafic, având în vedere starea parinţilor ei.
Această proprietete este utilizată pentru a reduce, uneori în mod semnificativ, numărul de
parametri care sunt necesari pentru a caracteriza distribuţia de probabilitate comună a
variabilelor. Această reducere oferă o modalitate eficientă de a calcula probabilităţiile ulterioare,
având în vedere cunoştiinţele anterioare. În plus faţă de structura unui graf aciclic orientat, care
este adesea considerat a fi partea „calitativă” a modelului, trebuie precizaţi şi parametri ei
„cantitativi”. Parametri sunt descrişi într-o manieră consistentă cu proprietatea lui Markov, unde
distribuţia de probabilitate condiţionată în fiecare nod, depinde doar de parinţii nodului. Pentru o
distribuţie discretă a variabilelor, probabilitatea condiţionată este adesea reprezentată de o tabelă,
care reţine probabiliatea locală ca un fiu să aibă fiecare dintre valorile fezabile, pentru fiecare
combinaţie de valori ale parinţilor. Distribuţia comună a colecţiei de variabile poate fi unic
determinată pe baza acestui tabel local de probabilităţi condiţionate.
Astfel, poate fi spus că o reţea Bayesiană este un graf aciclic adnotat care reprezintă o
distribuţie de probabilitate condiţionată peste un set de variabile aleatoare. Altfel spus, o reţea
Bayesiană descrie distribuţia de probabilitate care reglementează un set de variabile prin
specificarea unui set de ipoteze independente condiţionate şi a unui set de probabilităţi
condiţionate.
În contrast cu clasificatorul naiv Bayes, care presupunea că toate variabilele sunt
independent condiţionate, având în vedere valoarea variabilei ţintă, reţelele Bayesiene permit
precizarea ipotezelor condiţionate independente care se aplică la subseturi de variabile. Prin
acestea ele oferă o abordare intermediară cu mai puţine constrângeri decât ipoteza globală de
25
independenţă condiţionată facută de clasificatorul naiv Bayes, dar mai maleabilă decât evitarea
totală a ipotezelor independente condiţionate.
Există multe reprezentări disponibile pentru analizarea datelor, incluzând reprezentările
bazate pe reguli, arborii de decizie şi reţelele neuronale şi de asemenea sunt multe tehnici de
analizare a datelor cum ar fi estimarea densităţiilor, clasificări, regresii sau grupări. Cu toate
acestea reţelele Bayesiene şi metodele bazate pe teorema lui Bayes au de oferit ceva în plus[5].
În primul rând, reţelele Bayesiene pot manevra uşor seturi incomplete de date. Spre
exemplu, într-o problemă de clasificare sau de regresie pot exista două variabile de intrare
puternic anticorelate. Această corelaţie nu este o problemă standard pentru tehnicile de învăţare
supervizată în cazul în care toate intrările sunt măsurate în fiecare caz. Când una dintre intrări nu
este observată, oricum, majoritatea modelelor vor avea ca şi răspuns o predicţie fără o acurateţe
prea bună, deoarece ele nu codifică corelaţia dintre variabilele de intrare. Reţelele Bayes oferă o
modalitate naturală de a codifica astfel de dependenţe.
În al doilea rând, reţelele Bayesiene permit învăţarea relaţiilor cauzale. Acest proces de
înăţare este util situaţiilor în care dorim să înţelegem un domeniu problemă şi cunoştiinţele ne pot
permite să facem predicţii în prezenţa intervenţiilor. Spre exemplu, un analist de marketing s-ar
putea să îşi dorească să ştie dacă se merită sau nu să crească expunerea la un anumir anunţ, cu
scopul de a creşte vânzarea produsului. Pentru a răspunde la această întrebare, analistul poate
decide dacă publicitatea este o cauză a creşterii vânzărilor unui produs şi în ce măsură. Utilizarea
reţelelor Bayes ajută la găsirea unor astfel de răspunsuri chiar şi atunci când nu există
experimente despre efectele de expunere crescută.
În al treilea rând, reţelele Bayesiene împreună cu tehnicile statisticale Bayes facilitează
combinarea domeniilor de cunoştiinţe şi a datelor. Oricine a făcut o analiză a lumii reale ştie că
importanţa domeniului de cunoştiinţe sau a prirităţiilor este esenţială, în special atunci când
datele sunt rare. Faptul că unele sisteme comerciale, cum ar fi sistemele expert, pot fi construite
pe baza cunoştiinţelor anterioare este cu siguranţă o mărturie a puterii şi a necesităţii unor
cunoştiinţe anterioare. Reţelele Bayes au o semantică cauzală care face codificarea cunoştiinţelor
anterioare destul de simplă. În plus, ele codifică rezistenţa relaţiilor cauzale cu probabilităţi.
În al patrulea rând, metodele Bayesiene în combinaţie cu reţelele Bayes şi alte tipuri de
modele, oferă o abordare eficientă şi principială de evitare a aglomerării datelor. Nu este necesar
să deţinem unele dintre variabile pentru testare. Folosind abordarea Bayes, modelele pot fi
netezite până când toate datele disponibile pot fi folosite pentru antrenare.
În problemele de învăţare reale interesul cade asupra relaţiilor dintre un set mare de
variabile. Reţelele Bayesiene sunt o reprezentare potivită pentru această sarcină. Ele reprezintă un
model grafic care codifică eficient distribuţia de probabilitate comună pentru un set mare de
variabile. O reţea Bayesiană poate fi văzută ca şi un set de variabile },...,{ 1 nXXX care
compun o structură reţelistică S, răspunzătoare de codificarea unui set de afirmaţii de
26
independenţă condiţionată asupra variabilelor X, şi un set P de distribuţii de probabiliate locală
asociate fiecărei variabile. Aceste componente definesc distribuţia de probabilitate comună
pentru X. Structura reţelistică S este graful aciclic orientat, iar nodurile din S sunt în relaţie de 1-
la-1 cu variabiele din X. Fie Xi variabila corespunzătoare nodului Xi şi Pai părinţii nodului Xi în
S. Lipsa unor posibile arce din S codifică independenţele condiţionate. În particular, având dată
structura reţelistică S, distribuţia de probabilitate comună pentru X este dată de relaţia:
n
i
ii Paxpxp1
)|()( .
Distribuţiile de probabilitate locală P sunt distribuţiile corespunzătoare termenilor din
produs. În consecinţă, perechea (S, P) codifică distribuţia comună p(x).
Probabilităţiile codificate de reţelele Bayesiene pot fi Bayesiene sau fizice. Când
construim reţele Bayesiene doar din cunoştiinţe anterioare, probabilităţiile vor fi Bayesiene. Când
învăţam aceste reţele din date, probabilităţiile vor fi fizice şi valorile incerte.
Pentru a ilustra procesul de construire a unei reţele Bayesiene considerăm problema
detectării fraudelor asupra cardurilor de credit. Prima problemă întâmpinată este cea a
determinării variabilelor modelului. O posibilă alegere ar fi Fraudă(F), Gaz(G), Bijuterii(B),
Vârstă(V) şi Sex(S). Acestea marchează dacă ultima achiziţie poate fi frauduloaasă sau nu, dacă
au fost achiziţionate gaze naturale sau bijuterii, precum şi vârsta şi sexul deţinătorului cardului.
Bineînţeles că într-o problemă reală vor fi incluse mult mai multe variabile. Deasemenea, am
putea modela starea uneia sau mai multora dintre aceste variabile la un nivel de detaliu. De
exemplu, putem preusupe că variabila Vârstă este una continuă. Starea acestor variabile este
ilustrată în imaginea din Fig. 1.
Fig. 1
Ca şi parte a sarcinii de lucru trebuiesc identificate clar obiectivele modelului(predictie/
explorare/ explicare); identificarea a cât mai multe observaţii care sunt relevante pentru problemă
şi determinarea unui subset de observaţii care sa fie luate în calcul pentru model; organizarea
observaţiilor în variabile având stări exclusive reciproc şi colectiv exhaustive. Dificultăţiile aici
nu sunt unice pentru modelarea problemei prin reţele Bayesiene, ci sunt comune în cele mai
multe abordări.
27
Următorul pas pentru construirea unei reţele Bayesiene este acela de a construi graful
aciclic care să codifice relaţiile de independenţă condiţionată. O abordare pentru a face acest
lucru se bazează pe urmatoarele observaţii. Pornind de la lanţul regulii de probabilitate avem:
n
i
ii xxxpxp1
11 ),...,|()( .
Atunci, pentru fiecare Xi, va exista un subset },...,{ 11 ii XX astefel încât Xi şi
},...,{ 11 iXX \Πi sunt independent condiţionate având dat Πi. Deci, pentru fiecare x,
)|(),...,|( 11 iiii xpxxxp .
Combinând ultimele doua ecuaţii vom obţine:
n
i
iixpxp1
)|()( .
Comparând ecuaţiile obţinute până acum se observă faptul că setul de variabile (Π1,..., Πn)
corespunde setului de părinţi din reţeaua Bayes (Pa1,..., Pan), care la rândul său caracterizează pe
deplin arcele din structura reţelistică S.
În consecinţă, pentru a determina structura unei reţele Bayesiene, trebuiesc ordonate
cumva variabilele şi determinat setul de variabile care satisface ecuaţia
)|(),...,|( 11 iiii xpxxxp , pentru i=1,..., n. În exemplul anterior, folosind ordonarea (F, V, S,
G, B), obţinem independenţele condiţionale:
),,|(),,,|(
)|(),,|(
)(),|(
)()|(
svfbpgsvfbp
fgpsvfgp
spvfsp
vpfvp
.
Aplicând acestea obţinem structura prezentată în Fig.2.
28
Fig. 2
Totuşi, această abordare are un mare dezavantaj. Dacă se alege aleator ordinea
variabilelor, structura rezultată a reţelei poate eşua în a dezvălui multe independenţe condiţionate
între variabile. Spre exemplu, dacă construim o reţea Bayesiană pentru problema fraudei folosind
ordinea (B, G, S, V, F) a variabilelor, vom bţine o structură reţelistică complet conectată. Astfel,
în cel mai rău caz, numărul de seturi ordonate de variabile care trebuiesc explorate este de n!, şi
asta pentru a găsi cea mai bună ordonare. Din fericire, există o altă modalitate de constriure a
unei reţele Bayes, care nu necesită o ordonare. Această abordare se bazează pe două observaţii:
oamenii pot găsi uşor relaţii între variabile şi relaţiile cauzale corespund dependenţelor
condiţionale. În particular, pentru a construi o reţea Bayes pentru un set de variabile dat, trebuie
doar trasate arcele de la variabilele cauză spre efectele lor imediate. În aproape toate cazurile,
această abordare duce la o structură reţelistică care satisface definiţia dată prin ecuaţia
n
i
ii Paxpxp1
)|()( . De exemplu, presupunând că Fraudă este o cauză directă a Gaz, şi Fraudă,
Vârstă şă Sex sunt cause directe a Bijuterii vom obţine aceeaşi stuctură reţelistică ca şi mai sus.
Semantica cauzală a reţelelor Bayesiene este responsabilă, în mare parte, pentru succesul reţelelor
Bayesiene folosite ca şi reprezentare pentru sistemele expert[1].
În etapa finală a construirii reţelei Bayes, se evaluează distribuţiile de probabilitate locală
)|( ii Paxp . În exemplul prezentat, unde toate variabilele au o distribuţie discretă, se evaluează o
distribuţie pentru Xi, pentru fiecare configuraţie a Pai.
29
Este de remarcat faptul că în practică, de obicei, aceste secvenţe de paşi urmaţi sunt
amestecate. Spre exemplu, hotărârea independenţelor condiţionate şi/sau a cauzelor şi efectelor
pot influenţa formularea problemei. Deasemenea, evaluarea probabilităţiilor poate conduce la
modificarea structurii reţelei.
3.2.1 Deducţia în reţele Bayesiene
S-ar putea să dorim să folosim reţelele bayesiene şi pentru a deduce valoarea unei
variabile ţintă, având în vedere valorile observate ale altor variabile. Desigur, deoarece avem de-a
face cu variabile aleatoare atribuirea unei singure valori pentru variabila ţintă nu va fi corectă tot
timpul. Ceea ce se doreşte cu adevărat este deducerea distribuţiei de probabilitate pentru variabila
ţintă, ea specificând probabilitatea pe care o va lua fiecare dintre valorile sale posibile, având în
vedere valorile observate ale celorlalte variabile. Acest pas de deducţie poate fi unul extrem de
simplu, asta în cazul în care sunt cunoscute valorile pentru toate celelalte variabile din reţea. În
caz mai general, se pune problema deducerii unei valori pentru o variabilă ţintă, având în vedere
valori doar pentru un subset de variabile. În general, reţelele Bayesiene pot fi folosite pentru a
calcula distribuţia de probabilitate pentru orice subset de variabile de reţea având date valorile
sau distribuţia pentru orice subset de variabile rămase[1].
De exemplu, în problema anterioară privind detectarea fraudei, se doreşte să se cunoască
probabilitatea pentru Fraudă, având date observaţii despre celelalte variabile. Această
probabilitate nu este stocată direct în model, ci necesită a fi calculată. În general, calculul unei
probabilitîţi de interes având dat un model, este cunoscut sub numele de deducţie probabilistică.
Deoarece o reţea Bayesiană pentru X, determină distribuţia de probabilitate comună
pentru X, se poate, în principiu, folosi reţeaua pentru a calcula orice probabiliatte de interes. De
exemplu, pentru reţeaua prezentată mai sus, probabilitatea pentru Fraudă având în vedere
observaţiile despre celelalte variabile poate fi calculată astfel:
'),,,,'(
),,,,(
),,,(
),,,,(),,,|(
fbgsvfp
bgsvfp
bgsvp
bgsvfpbgsvfp .
Din păcate, pentru probleme cu multe variabile, această abordare directă de calcul nu este
una practică. Din fericire, măcar atunci când toate variabilele sunt discrete putem exploata
independenţele condiţionate codificate în reţeaua Bayesiană pentru a face calculul mai eficient. În
exemplul prezentat, avînd în vedere independenţele condiţionate obţinem ecuaţia echivalentă:
'
'
),,'|()'|()'(
),,|()|()(
),,'|()'|()()()'(
),,|()|()()()(),,,|(
f
f
svfbpfgpfp
svfbpfgpfp
svfbpfgpspvpfp
svfbpfgpspvpfpbgsvfp
30
Mai mulţi cercetători au dezvoltat diferiţi algoritmi de deducţie probabilistică din reţele
Bayesiene, cu variabile discrete care exploatează independenţele condiţionate aproximativ în
aceeaşi manieră ca şi cea prezentată anterior, deşi cu diferite răsturnări de situaţie. De exemplu,
Howard şi Matheson (1981), Olmsted (1983), şi Shachter (1988) au dezvoltat un algoritm care
inversează arcele dintr-o structură reţelistică până în momentul în care răspunsul la interogarea
probabilistică dată poate fi citit direct din graf. În acel algoritm, fiecare arc intern corespunde
unei aplicaţii a teoremei lui Bayes. Pearl(1986) a dezvoltat o schemă de parsare a mesajelor care
actualizează distribuţia de probabilitate pentru fiecare nod dintr-o reţea Bayesiană, ca şi răspuns
la observaţiile uneia sau mai multor variabile. Lauritzen şi Spiegelhalter (1988), Jensen et al.
(1990), şi Dawid (1992) au creat un algoritm care prima dată transformă reţeaua într-un arbore în
care fiecare nod corespunde unui subset de variabile. Algoritmul exploatează câteva proprietăţi
matematice ale acestui arbore pentru a putea efectua deducţia probabilistică. Acesta din urmă este
cel mai des utilizat algoritm pentru variabilele discrete.
Metode pentru deducţia exactă în reţelele Bayesiene, care codifică distribuţii Gaussiene
multivariabile sau mixte, au fost dezvoltate de către Shachter şi Kenley (1989) şi respectiv
Lauritzen (1992). Aceste metode folosesc şi afirmaţiile de independenţă condiţionată pentru a
simplifica deducţia. Deasemenea, au fost dezvoltate şi metode de aproximare a deducţiei în reţele
Bayesiene cu alte tipuri de distribuţii, cum ar fi modelul general liniar de regresie.
Deşi independenţa condiţionată este folosită pentru a simplifica deducţia probabilistică,
pentru deducţia exactă într-o reţea Bayesiană aleatoare pentru variabile discrete timpul de
rezolvare polinomial este nedeterminist(Cooper, 1990). La fel este şi în cazul deducţiei
aproximative pentru metodele de tip Monte-Carlo. Sursa acestor dificultăţi constă în cicluri
nedirijate din structura reţelei Bayesiene- acele cicluri din structură unde sunt ignorate orientările
arcelor. Când o structură de reţea Bayesiană conţine multe cicluri nedirijate, deducţia este
imposibil de tratat. Cu toate acestea, pentru multe aplicaţii structura este destul de simplă(sau
poate fi simplificată suficient fără a sacrifica prea mult din acurateţe) astfel încât deducţia este
eficientă. Pentru aplicaţii unde metodele de deducţie sunt impracticabile, cercetătorii dezvoltă
tehnici care sunt adaptabile la tipologii specializate de reţele sau la interogări particulare de
deducţie.
Cu toate aceste metode de deducţii exacte, probabilistice sau aproximative care sacrifică
precizia pentru a obţine performanţă, metodele aproximative s-au dovedit a fi cele mai utile în
multe cazuri.
Reţelele Bayesiene au primit numeroase laude pentru că sunt considerate a fi un
instrument puternic pentru realizarea deducţiilor probabilistice, dar au unele limitări care
împiedică aplicarea lor pentru rezolvarea unor probleme mai complexe.
31
3.2.2 Învăţarea reţelelor Bayesiene
Focusul mai multor cercetări este acela de a descoperi răspunsul la întrebarea: „Se pot
găsi algoritmi eficienţi pentru învăţarea în reţele Bayesiene din datele de antrenare?”.
Pentru această problemă pot fi considerate mai multe stări. Prima dată, structura reţelei
trebuie să fie dată în avans, sau trebuie sa fie deductibilă din datele de antrenare. În al doilea
rând, toate variabilele reţelei pot fi direct observabile în fiecare exemplu de antrenare, sau unele
sunt neobservabile.
În cazul în care structura reţelei este dată şi toate variabilele sunt observabile în exemplele
de antrenare, învăţarea tabelelor de condiţionare probabilistică este simplă. Se recurge la
estimarea pur şi simplu a tabelului de probabilitate condiţionată a intrărilor la fel ca şi în cazul
Clasificatorului Naiv Bayes.
În cazul în care e dată reţeaua, dar doar unele valori ale variabilelor sunt observabile din
datele de antrenare, problema învăţării e mai dificilă. Această problemă este analoagă cu
învăţarea ponderilor pentru unităţiile ascunse într-o reţea neuronală artificială, când sunt date
valorile nodurilor de intrare şi a celor de ieşire, dar sunt lăsate nespecificate valorile unităţiilor
ascunse.
În particular, dacă considerăm cea mai simplă versiune a problemei, vom folosi datele
pentru a actualiza probabilităţiile într-o reţea Bayesiană dată. Presupunând că distribuţia de
probabilitate comună fizică pentru X poate fi codificată într-o structură reţelistică S, se obţine:
n
i
h
iii
h
S SPaxpSxp1
),,|(),|( ,unde i este vectorul de parametri pentru distribuţia
),,|( h
iii SPaxp , S este vectorul de parametri (θ1 … θn), şi Sh simbolizează faptul ca distribuţia
de probabilitate comună fizică poate fi luată în funcţie de S. În plus, se consideră un eşantion
aleator D= {x1,…, xN} din distribuţia de probabilitate comună a lui X, iar un element xl va fi un
caz. Se codifică incertitudinile referitoare la parametri S prin definirea unei variabile Θs şi
aprecierea prealabilă a unei funcţii de densitate de probabilitate )|( h
S Sp . Problema de învăţare
a probabilităţiilor într-o reţea Bayesiană poate fi enunţată simplu: avâmd dat un eşantion aleator
D, să se calculeze distribuţia posterioară ),|( h
S SDp .
Funcţia de distribuţie locală este distribuţia ),,|( h
iii SPaxp , văzută ca şi o funcţie de
variabilă θi. această funcţie de distribuţie locală, în contextul învăţarii supervizate, nu este altceva
decât o clasificare probabilistică sau o funcţie de regresie. Astfel, o reţea Bayesiană poate fi
vazută ca o colecţie de clasificări probabilistic/ modele de regresie, organizate în funcţie de
relaţiile de independenţă condiţionată. Exemplele de modele de clasificare/regresie care produc
rezultate probabilistic includ regresia liniară, regresia liniară generalizată, reţele neuronale
probabilistice (e.g., MacKay, 1992a, 1992b), arbori de decizie probabilistici (e.g., Buntine, 1993;
32
Friedman and Goldszmidt, 1996), metode de estimare a densităţii nucleului (Book, 1994), şi
metode dicţionar (Friedman, 1995). În principiu, fiecare dintre aceste forme poate fi folosită
pentru a învăţa probabilităţiile într-o reţea Bayesiană şi, în cele mai multe cazuri, sunt disponibile
şi tehnicile de învăţare Bayesiană. Cu toate acestea, cele mai studiate modele includ distribuţia
multinomială nerestrictivă (e.g., Cooper and Herskovits,1992), regresia liniară cu perturbaţii
Gaussiene(e.g., Buntine, 1994; Heckerman and Geiger,1996), şi regresia liniară generalizată(e.g.,
MacKay, 1992a şi 1992b; Neal, 1993; şi Saul et al., 1996).
În cazul distribuţiei multinomiale nerestrictive, fiecare variabilă Xi є X este discretă,
având ri posibile valori xi1, …, xi
ri, şi fiecare funcţie de distribuţie locală este o colecţie de
distribuţii multinomiale, câte una pentru fiecare configuraţie Pai. Adică, presupunem:
0),,|( ijk
h
i
j
i
k
i SPaxp , unde Pai1,..., Pai
qi (
ii Pax ii rq ) reprezintă configuraţiile
lui Pai şi ii q
jkr
ijki 12 ))(( sunt parametrii. Parametrul θij1 este dat de
ri
k ijk21 . Pentru
convenienţă se defineşte vectorul de parametri ),...,( 2 iijrijij , pentru fiecare i şi j.
Având date aceste clase de distribuţie de probabilitate, se poate calcula distribuţia
posterioară ),|( h
S SDp eficient şi în formă închisă, în două ipoteze. Prima dintre ele este aceea
că nu lipsesc date din eşantionul D şi atunci spunem că acesta este complet. A doua ipoteză este
aceea că vectorii de parametri θij sunt reciproc independenţi. Acestă ipoteză poate fi reprezentată
prin:
n
i
q
j
h
ij
h
S
i
SpSp1 1
)|()|( , numită şi independenţa parametrilor.
Având în vedere factorii de distribuţie de probabilitate comună conform unei structuri
reţelistice S, ipoteza de independenţă a parametrilor poate fi reprezentată de către o structură de
reţea Bayesiană mai mare. În conformitate cu ipotezele de date complete si independenţa
parametrilor, parametri rămân independenţi având un eşantion aleatoriu dat:
n
i
q
j
hh
S
i
SDijpSDp1 1
),|(),|( .
Astfel, putem actualiza valorile fiecărui vector de parametri θij independent, la fel ca şi în
cazul unei singure variabile. Presupunând că fiecare vector θij are distribuţia anterioară Dir(θij |
αij1, ..., αijri), se obţine distribuţia posterioară:
),...,|(),|( 11 ii ijrijrijijij
h
ij NNDirSDp , unde Nijk reprezintă numărul de cazuri
în care Xi=xik şi Pai=Pai
j.
În acest caz, calculele sunt simple deoarece distribuţiile multinomiale nerestrictive fac
parte din familia exponenţialelor. Calculele pentru regresia linară cu perturbaţii Gaussiene sunt
deasemenea simple (Buntine, 1994; Heckerman and Geiger, 1996).
33
Însă, nu în toate cazurile de învăţare se cunosc toţi parametri. O diferenţă importantă în
ceea ce priveşte datele lipsă este prezenţa, sau nu, a unei observaţii care asigură o dependenţă
între valorile lipsă şi starea actuală a variabilelor. De exemplu, o dată lipsă într-un studiu referitor
la droguri poate indica faptul că starea pacientului s-a agravat încât nu a mai fost posibil să
participe la studiu. În contrast, dacă o variabilă este ascunsă, atunci absenţa acestei date este
independentă de stare. Totuşi, metodele Bayesiene şi modelele grafice sut potrivite pentru analiza
ambelor situaţii, metodele de manipulare a datelor care lipsesc în cazul în care absenţa este
independentă de starea generală fiind mai simple decât cele în care există o dependenţă.
Presupunând faptul că structura reţelei poate fi imbunătăţită, există totuşi o incertitudine
în ceea ce priveşte structura reţelei care codifică distribuţia de probabilitate comună pentru X.
Urmând abordarea Bayesiană, se codifică această nesiguranţă prin definirea unei variabile
discrete a cărei stare corespunde cu ipotezele posibile Sh din structura reţelei şi evaluările
probabilităţiilor p(Sh). Astfel, având dat un eşantion aleatoriu D din distribuţia de probabilitate
fizică pentru X, se calculează distribuţia posterioară p(Sh|D) şi distribuţia posterioară
),|( h
S SDp , şi se folosesc aceste distribuţii pentru a calcula datele de interes. De exemplu,
pentru a prezice următorul caz, după ce s-a luat în vedere D, se calculează:
hS
S
h
S
h
SN
h
N dSDpSxpDSpDxp ),|(),|()|()|( 11 .
În calcularea sumei, se presupune că ipotezele din structura reţelei sunt reciproc
exclusive. Calcularea lui )|( DSp h nu este dificilă, cel puţin în principiu. Din teorema lui Bayes
avem: )(/)|()()|( DpSDpSpDSp hhh , unde p(D) este o constantă de normalizare care nu
este dependentă de structură. În acest fel, pentru a determina distribuţia posterioară pentru
structura reţelei, este necesară calcularea probabilităţii marginale a datelor p(D|Sh), pentru fiecare
posibilă structură.
Din păcate, întreaga abordare Bayesiană care a fost descrisă este deseori imposibil de pus
în practică. O importantă piedică în calculare este pusă de media de peste modele din ecuaţia de
prezicere a unui următor caz. Dacă este considerat modelul de reţea Bayesiană cu n variabile,
numărul posibilelor structuri ipotetice este mai mult decât exponenţial în n. În consecinţă, în
situaţii în care utilizatorul nu poate furniza aproape toate ipotezele, abodarea este intratabilă.
Statisticienii, care s-au confruntat cu această problemă decade la rând în contextul altor
tipuri de modele, folosesc două abordări pentru a rezolva problema: selecţia modelelor şi media
modelului selectiv. Prima abordare este aceea de a selecta un model “bun” dintre toate modelele
posibile şi folosirea lui ca şi când ar fi modelul corect. Cea de-a doua abordare este de a selecta
un număr uşor de gestionat de modele bune dintre toate modelele posibile şi folosirea lor
pretinzănd că sunt modele exhaustive. Aceste abordări asemănătoare ridică mai multe semne de
întrebare. În particular, aduc aceste abordări acurateţea dorită atunci când sunt aplicate
34
structurilor de reţele Bayesiene? Dacă da, cum se caută modelele cele mai bune? Şi cum se
decide dacă un model este sau nu bun?
Răspunsul referitor la acurateţe este unul greu de dat în teorie. Cu toate acestea, câţiva
cercetători au arătat prin experimente că selecţia unei singure ipoteze bune oferă adesea
previziuni exacte (Cooper and Herskovits 1992; Aliferis and Cooper 1994; Heckerman et al.,
1995b) şi că media modelelor folosind metode de tip Monte-Carlo poate uneori să fie eficientă şi
să ofere predicţii chiar mai bune (Madigan et al., 1996). Aceste rezultate sunt oarecumva
surprinzătoare şi sunt în mare măsură responsabile de marele interes recent asupra procesului de
învăţare cu reţele Bayesiene.
Este de observat faptul că media modelelor şi selecţia lor duce la modele care sunt bine
generalizate pentru datele noi. De aceea, aceste tehnici ne ajută la împiedicarea overfitting-ului
datelor. Metodele Bayesiene pentru media modelelor şi selecţia lor sunt eficiente atunci când
toate cazurile din D pot fi folosite atât pentru finisarea cât şi pentru antrenarea modelului. Acest
avantaj este valabil şi pentru abordarea Bayesiană în general.
3.3 Algoritmul Expectation-Maximization
În statistici, un algoritm de aşteptare a maximizării(EM=expectation-maximization) este
o metodă pentru găsirea probabilităţii maxime sau a maximei posterioare(MAP), estimări ale
parametrilor în modele statistice, în cazul în care modelul depinde de variabile latente
neobservate. EM este o metodă interactivă care alternează între a efectua o aşteptare(E), care
calculează probabilităţii aşteptate, evaluate folosind estimarea actuală pentru variabilele latente,
şi o etapă de maximizare(M), care calculează parametrii maximizând probabilitatea găsită la
pasul E. Aceste estimări ale parametrilor sunt apoi folosiţi pentru a determina distribuţia
variabilelor latente în următorul pas E.
Algoritmul EM are două aplicaţii principale. Prima dintre ele este cea în care valori ale
datelor lipsesc din cauza limitărilor sau a problemelor apărute în cadrul procesului de observare.
A doua apare atunci când funcţia de probabilitate poate fi obţinută şi simplificată prin
presupunerea că există parametri suplimentari, dar ei lipsesc.
Cu valori lipsă, sau parametri de date care sunt generate de unele ipoteze de distribuţii,
datele X se numesc date incomplete. Se presupune că datele complete, Z=(X,Y) există cu datele
lipsă Y, şi că există şi o funcţie de densitate comună, definită după cum urmează:
)|(*),|()|,()|( xpxypyxpzp
,unde θ este un set de parametri necunoscuţi dintr-o distributie incluzând şi un parametru
care lipseşte.
Cu funcţia de densitate se defineşte probabilitatea de date complete ca fiind:
35
)|,(),|()|( YXpYXLZL .
Probabilitatea originală L(θ|X) este numită funcţia de probabilitate a datelor incomplete.
Deoarece datele lipsă Y sunt necunoscute sub o anumită ipoteză de distribuţie, ne putem gândi la
L(θ|X,Y) ca şi la o funcţie de o variabilă aleatoare, Y, cu valorile constante, X şi θ.
)(),|( ),( YfYXL X .
Folosind funcţia de probabilitate a datelor complete cu privire la datele lipsă Y, având în
vedere datele observate, algoritmul EM găseşte valorile preconizate, precum şi estimările actuale
ale parametrilor la pasul E şi maximizează aşteptările la pasul M.
Algoritmul EM găseşte, în primul rând, logaritmul probabilităţii datelor complete,
)|,(log YXp , cu privire la datele necunoscute Y, având datele X şi estimările curente ale
parametrilor. De aceea definim:
],|)|,([log),( )1()1( ii xYXpEQ
unde )1( i sunt estimările curente ale parametrilor pe care ii folosim pentru a evalua
aşteptările şi reprezintă noii parametri pe care îi optimizăm pentru a creşte valoarea lui Q.
Cheia pentru a înţelege această expresie este aceea că X şi )1( i sut constante, este o variabilă
normală pe care dorim să o ajustăm, şi Y este o variabilă aleatoare guvernată de distribuţia
),|( )1( iXyf . Partea dreaptă a ecuaţiei anterioare poate fi rescrisă sub forma:
Yy
ii dyXyfyXpXYXpE ),|()|,(log],|)|,([log )1()1( .
De observat este că ),|( )1( iXyf reprezintă distribuţia marginală a datelor
neobservate şi este dependentă atât de datele observate X cât şi de parametri actuali, iar Y este
spaţiul valorilor pe care le poate lua y. În cele mai bune cazuri, distribuţia marginală este o
expresie analitică simplă a parametrilor asumaţi şi poate a datelor. În cele mai rele cazuri,
densitatea poate fi foarte greu de obţinut. Uneori, densitatea folosită în practică este:
)|(),|()|,( )1()1()1( iii XfXyfXyf , dar aceasta nu are efectuaţi paşii anteriori,
deoarece factorul suplimentar )|( )1( i
X Xf nu depinde de θ.
Analogic, presupunem că avem o funcţie h de două variabile. Considerăm h(θ,Y), unde θ
este o constantă şi Y este o variabilă aleatoare guvernată de o distribuţie )(yfY . Atunci:
y
YY dyyfyhYhEq )(),()],([)( este o funcţie deterministică care poate fi maximizată
dacă se doreşte.
Această evaluare a aşteptării reprezintă pasul E al algoritmului. În funcţia Q(θ,θ’) primul
parametru corespunde parametrilor care vor fi optimizaţi la final în încercarea de a maximiza
probabilitatea, iar cel de-al doilea argument corespunde parametrilor pe care îi folosim pentru a
evalua aşteptările.
36
Cel de-al doilea pas al algoritmului, pasul M, este de a maximiza aşteptările calculate la
primul pas. Acestea se obţin:
),(maxarg )1()( ii Q
.
Prin repetarea celor doi paşi se garantează creşterea probabilităţii logaritmului şi faptul că
algoritmul converge la un maxim local al funcţiei de probabilitate.
La fel ca în cazul oricărui algoritm, şi acesta a suferit modificări sau îmbunătăţiri odată cu
trecerea timpului. O variantă a sa ar fi algoritmul structural EM care incearcă să optimizeze direct
rezultatul Bayesian, mai rapid decât o aproximare asimptotică. Prezentarea este într-o stare
oarecumva mai generală decît a modelelor existente. Presupunem că avem un set de date de
intrare cu un număr de exemple. Presupunem că setul de date este fixat şi că denotă fiecare
valoare, fie că e furnizată, fie că lipseşte, în date de către o variabilă aleatoare. De exemplu, dacă
avem de-a face cu o problemă standard de învăţare unde setul de date de antrenare constă în N
instanţe, fiecare dintre ele fiind o posibilă parţială atribuire la k variabile, atunci avem nevoie de
kN variabile aleatoare care să descrie datele de antrenare. Fie O setul de variabile observate,
adică setul variabilelor a căror valoare a fost determinată de datele de antrenare. Similar, fie H
setul variabilelor ascunse, adică variabilele care nu au fost observate.
Presupunem existenţa unei clase de modele M, astfel încât fiecare model M є M este
parametrizat de un vector θM
astfel încât fiecare alegere de valori pentru θM
defineşte o distribuţie
peste V. Presupunem că avem cunoştiinţe anterioare despre modele şi despre valorile
parametrilor din fiecare model şi deasemenea faptul că variabilele iau valori dintr-un domeniu
finit. Cu toate acestea, rezultatul obţinut poate fi aplicat cu uşurinţă şi variabilelor continue
standard. Pentru a găsi un model de probabilitate maximă este suficient dacă se maximizează
)()|( hh MPMDP , deoarece termenul de normalizare P(Mh) este acelaşi pentru toate modelele
noi de comparare. Se presupune deasemenea că poate fi calculată, sau cel puţin estimată,
probabilitatea datelor complete, P(H,O hM| ). Se mai presupune că având un model se pot
efectua predictive de deducţie eficiente. Deşi acest lucru nu este valabil şi pentru modelele
factorizate, pentru acestea se poate calcula în mod eficient aproximări. Având în vedere toate
aceste date, algoritmul sistematic EM poate fi definit astfel[6]:
Până nu s-a ajuns la convergenţa algoritmului, pentru n=0,1,...
Se calculează probabilitatea posterioară ),|( oMP h
n
Mh
La pasul E: pentru fiecare M, se calculează:
h
hh
n
h
n
h
n MohPMohPoMMoHPEMMQ ),,(log),|(],|),,([log):(
La pasul M: se alege Mn+1 care maximizează Q(M: Mn)
Dacă Q(Mn: Mn)= Q(M n+1: Mn) atunci rezultatul este Mn.
37
Ideea acestui algoritm este aceea că la fiecare iteraţie se urmăreşte maximizarea scorului
aşteptat a modelelor în schimbul scorului lor actual.
Algoritmul EM este util, în special, atunci când probabilitatea este o familie exponenţială.
Atunci pasul E devine suma aşteptărilor a suficiente statistici, iar pasul M presupune
maximizarea unei funcţii liniare. Într-un asemenea caz, de obicei, este posibil să se obţină un
formular închis de actualizări pentru fiecare pas, folosind formula lui Sundberg.
Există şi alte metode de găsire a estimării riscului maxim, cum ar fi coborârea gradient,
gradient conjugat, sau variaţii ale metodelor Gauss-Newton. Spre deosebire de algoritmul EM,
astfel de metode impun, de obicei, evaluarea primei şi/sau a celei de-a doua derivate a funcţiei de
probabilitate.
EM este frecvent utilizat pentru gruparea(clustering) datelor în procesele maşinilor de
învăţare automată. În procesarea limbajului natural sunt folosite două instanţe ale algoritmului.
Algoritmul Baum-Welch(cunoscut şi sub numele de „înainte-înapoi”) şi algoritmul de interior-
exterior pentru inducţia nesupervizată a probabilităţiilor gramaticilor independente de context. În
psihometrie, EM este aproape indispensabil pentru estimarea parametrilor elementelor şi a
abilităţiilor latente a elementelor de teorie a răspunsului modelelor.
Algoritmul EM(şi varianta sa mai rapidă Aşteptarea maximizată a unui subset ordonat)
este, de asemenea, utilizat pe scară largă în reconstrucţia de imagini medicale, în special, în
tomografia cu emisie de pozitroni şi tomografia computerizată cu emisie de foton unic.
38
CAPITOLUL 4
REZULTATE ALE CERCETĂRII ÎN UTILIZAREA
METODELOR DE ÎNVĂŢARE BAYESIENE
Abordarea Bayesiană implică colectarea datelor din experieţele antrerioare cu scopul de a
ajunge la concluzii privitoare la evenimentele din viitor. Metodele Bayesiene au devenit destul de
populare în ultimii ani, cu aplicare în diferite domenii de cercetare. La fel ca orice ramură a
inteligenţei artificiale, şi aceasta „suferă” modificări în mod continuu, fiind sub atenta privire a
cercetătorilor dornici să descopere ceva nou.
4.1 Clasificatorul Naiv Bayes
Este cunoscut faptul că una dintre cele mai des rezolvate probleme folosind tematica
Bayesiană este cea referitoare la clasificarea textelor. Deşi poate părea cel puţin ciudat, în această
problemă, abordarea Bayesiană a surclasat alţi algoritmi mult mai sofisticaţi, obţinând acurateţi
impresionante. Tot în aceeaşi tematică se încadrează şi problema de filtrare a mail-urilor. Cea mai
faimoasă abordare în acest caz este cea a lui Paul Graham, împreună cu îmbunătăţirile aduse de
Tim Peter[8]. Această problemă de clasificare binară este rezolvată în manieră simplă, folosind în
mare parte Clasificatorul Naiv Bayes, dar la care i s-au adus anumite modificări. Clasificatorul
Bayesian corelează anumite cuvinte sau simboluri, cu calitatea de spam sau de non-spam a unui
mail şi apoi, folosind deducţia Bayesiană, calculează probabilitatea ca un mail sa facă parte dintr-
o categorie sau alta.
Diferite variante ale tehnicii Bayesiene de bază au fost puse în aplicare într-o serie de
lucrări de cercetare şi produse soft comercializabile. Mulţi dintre clienţii moderni de mail au
implementat un mecanism de filtrare a spamurilor bazat pe tehnica Bayesiană. De cele mai multe
ori, chiar şi clienţii îşi pot instala programe de filtrare de mailuri. Pe parte de server, filtrele de
spam-uri, cum ar fi DSPAM, SpamAssassin, SpamBayes, Bogofilter sau ASSP, folosesc tehnicile
de filtrare Bayesiene, iar funcţionalitatea este încorporată în softwareul de server.
O altă direcţie în care se încearcă punerea în practică a sistemelor inteligente este
medicina. Deşi procentul pacienţilor care se încred în deciziile luate de sistemele inteligente este
destul de mic, acest lucru nu îi descurajează pe cercetătorii care se încăpăţanează în a oferi
variante de siteme îmbunătăţite zi de zi şi care ating o acurateţe uneori mai mare decât cea a
medicilor. Un exemplu de sistem care ar putea fi folosit în acest sens şi care are o acurateţe de
84% este cel de evaluare a riscului de reapariţie sau de progresie a cancerului după radioterapie.
39
În cadrul acestui studiu au fost analizate datele de la 142 de pacienţi cu tumoare pe creier care au
fost iradiate din 2000 până în 2005. Au fost alese 96 de atribute referitoare la boală, la pacient şi
la tratement. Aceste atribute, în formă binară, au constituit setul de date de antrenare pentru
clasificatorul naiv Bayes. Acesta din urmă a calculat o probabilitate condiţionată individuală de a
fi categorisit ca şi: reapariţie sau progresie(1), şi nerecidivare sau progresie(0). Precizia, selecţia
atributelor şi calitatea clasificării au fost determinate prin compararea cu rezultatele actuale ale
tratamentului şi metoda de validare încrucişată.
În cadrul aceluiaşi test, cu scopul de a găsi cel mai potrivit sistem pentru problema de
rezolvat, s-au folosit şi alte sisteme şi au fost comparate rezultatele obţinute. S-a apelat la arborii
de decizie şi la reţelele Bayesiene- care par a fi cele mai des utilizate sisteme în medicină- şi
rezultatele comparative sunt surprinse de tabelul următor[7]:
Sistem Performanţă Sensibilitate Specificitate
Clasificatorul Naiv Bayes 82% 0.79 0.83
Reţele Bayesiene 80% 0.73 0.85
Arbori de decizie 71% 0.62 0.75
După o evaluare iniţială studiile suplimentare cu alte sisteme au fost întreupte.
Clasificatoarele precum arborii de decizie sau reţelele neuronale ar necesita un mai mare efort de
lucru cu sistemele din parte clinicianului. Este necesară reducerea arborilor de decizie pentru
eliminarea normelor ireale generate de sistem. Extinderea arborilor cu noi atribute este, de
asememenea, o problemă consumatoare de timp şi spaţiu. În mod similar, folosirea reţelelor
neuronale în contextul clinic de zi cu zi ar putea fi o şi mai mare sursă de probleme. Evaluarea
importanţei atributelor în reţelele neuronale nu este posibilă, ceea ce îngreunează procesul de
generalizare şi de optimizare. Astfel, atenţia a rămas concentrată asupra CNB, deoarece are cea
mai bună performanţă, sensibilitate, specificitate şi simplitate în întreţinere. Rezultatele obţinute
sunt foarte încurajatoare şi justifică dezvoltarea în continuare a sistemelor bazate pe CNB, ca un
instrument valoros în sprijinirea deciziilor clinice zilnice.
O altă problemă interesantă de abordat pentru domeniul informatic este cea de
recunoaştere a expresiilor faciale şi a emoţiilor. În acest sens, pentru rezolvarea provocării s-a
folosit clasificatorul naiv Bayes Cauchy, care foloseşte ca şi model de distribuţie, distribuţia
Cauchy, deoarece s-a demonstrat în manieră experimentală că oferă rezultate mai bune decât cea
Gaussiană. Baza oricărui sistem de recunoaştere constă în extragerea celor mai bune caracteristici
pentru a descrie fenomenul fizic. Aşadar, clasificarea imaginilor vizuale relevate de expresia
facială este un pas înainte ca orice recunoaştere de expresie să poată fi atinsă. Un prim pas este
acela de a se găsi un model care să asocieze mişcarea muşchilor faciali unei expresii. Acest
model trebuie sa fie cât mai general pentru a putea fi aplicat tuturor oamenilor. Cel mai bun
model cnoscut este dat de către un studiu al cercetătorilor Ekman şi Friesen, cunoscut sub numele
40
de Sistemul de Codificare a Acţiunilor Faciale(SCAF). Acesta clasifică expresiile faciale în şase
categorii de bază care corespund trăirilor de: bucurie, surprindere, tristeţe, frică, furie şi dispreţ.
SCAF codifică expresiile faciale ca şi o serie de combinaţii de mişcări ale muşchiilor faciali.
Testarea algoritmului de clasificare a expresiilor faciale a fost realizată pe un grup de 5 oameni
care au mimat câte 6 secvenţe de expresii, cuprinzând toate cele 6 categorii. Cinci dintre secvenţe
au fost folosite în procesul de antrenare şi una a fost lăsată pentru testare. Media de performanţă
obţinută pentru distribuţia Gaussiană este de 79.36%, iar pentru cea Cauchy de 80.05%[11] Se
poate observa că folosirea distribuţiei Cauchy nu aduce decât o mică îmbunătăţire a performanţei.
Deşi acurateţea obţinută nu este tocmai mare, după procesul de antrenare, sistemul poate totuşi
prezice, cu o acurateţe de 88-89% dacă o persoană afişează o expresie facială pozitivă sau
negativă.
O variantă îmbunătăţită a CNB, numită CNB Dinamic, a fost folosită pentru
recunoaşterea vizuală a gesturilor. Potrivit unui studiu realizat, cu un set de 150 de exemple
pentru fiecare dintre cele 5 gesturi elementare(atenţie, vino, înainte, stop şi la stânga), precizia
obţinută este de 96,75%.
Algoritmul clasic CNB consideră atribute şi clase cu domenii discrete. Atunci când are
de-a face cu domenii continue, clasificatorul necesită unele modificări. O modalitate de rezolvare
a problemei este aceea de a partiţiona, de a discretiza domeniul de atribute într-un număr finit de
seturi clasice. Dar acest lucru poate cauza o pierdere de informaţii. O metodă mai bună constă
într-o hibridizare a clasificatorului, punând împreună Teoria Fuzzy şi CNB, numit CNB Fuzzy:
ii nn
ni
Xx Xx
xnxCa
cxPcxPcP )|(...)|()(argmaxy(a)FNBClassif 1
, unde ]1,0[ix denotă o funcţie membru sau ii Xx într-un nou exemplu a. Pentru a fi
conservativ, este necesar ca toate să fie normalizate în ipoteza variabilei curente, în cazul acesta
1 ii iXx x . Clasificatorul a fost antrenat sub scenariul în care un agent aruncă mingea unui
coechipier şi un adversar încearcă să intercepteze trecerea. Clasificatorul, antrenat cu 1000 de
example, a clasificat corect un set de 250 de exemple, în proporţie de 80%. Acest rezultat este
mai bun decât cel obţinut cu implementarea folosind arbori de decizie, care a obţinut o
performanţă de 65%. Se crede că performanţa unui astfel de sistem este în stânsă legătură cu
modul de construire a seturilor fuzzy, şi că ar putea creşte dacă seturile ar fi construite mai atent.
4.2 Reţele Bayesiene
Reţelele Bayesiene au devenit un instrument extrem de universal pentru cercetători,
practicieni şi factorii de decizie managerială. Acestea au fost aplicate cu succes într-o gamă largă
41
de domenii precum: exploatarea datelor, marketing, gruparea clienţilor, medicină, detecţia
fraudelor, analiza riscurilor, planificare strategică, seismologie, meteorologie, ş.a.
Reţelele Bayesiene sunt cunoscute pentru faptul că furnizează o reprezentare compactă şi
simplă a informaţiilor probabilistice, care permit crearea de modele asociind un număr mare de
variabile.
Un exemplu de aplicare al reţelelor Bayesiene ar putea fi în prezicerea numărului de
defecte găsite într-un modul software. Acest factor depinde de numărul de defecte reziduale şi
este de asemenea critic dependent de cantitatea de utilizare prin operaţionare a softului. Dacă
sistemul nu este folosit atunci nu se vor găsi defecte, indiferent dacă ele există sau nu. Numărul
de defecte reziduale este determinat de numărul de defecte introduse în timpul dezvoltării minus
numărul de defecte găsite şi depanate. Evident este faptul că numărul de defecte găsite şi
depanate este dependent de numărul de defecte introduse în sistem. Acesta din urmă este la
rândul său influenţat de gradul de complexitate şi de calitatea design-ului produsului. În cele din
urmă, numărul de defecte constatate este influenţat în mare parte şi de nivelul efortului de testare.
Dacă spre exemplu este cunoscut faptul că în sistem au fost introduse două defecte şi că gradul de
testare este bun, atunci probabilitatea de a descoperi cele două erori este de 0.9 întrucât
probabilitatea de a găsi un singur defect este de 0.1[9]. Pentru organizaţiile care colectează deja
date de metrici software, utilizarea reţelelor Bayesiene, pentru anticiparea defectelor soft şi a
fiabilităţii, este un argument destul de convingător. Modelele de cauzalitate permit încorporarea
de factori explicatori simpli, cum ar fi efortul de testare, care pot avea un impact major asupra
rezultatelor prevăzute. În timp ce astfel de modele de reţele Bayesiene s-au dovedit a fi utile,
precizia lor a fost constânsă în mod tradiţional de subiectivitatea care rezultă în mod inevitabil
din suscitarea expert şi de discretizările statice necesare în algoritmi de deducţie.
Reţelele Bayesiene sunt folosite deseori şi pentru a reduce lipsurile altor sisteme în
diferite probleme. Unele dintre acestea sunt şi sistemele de procesare ale limbajului natural care
de obicei au performanţe scăzute, deoarece ele se bazează pe cunoştiinţe nesigure şi eterogene.
De exemplu, atunci când un pronume se referă la o expresie lingvistică anterior introdusă în text,
este anaforic. Acest lucru este des întâlnit în limba engleză prin folosirea pronumelui „it” care
deseori este gol din punct de vedere semantic. Orice sistem de rezoluţie anaforică începe prin
identificarea apariţiei pronumelui şi distringerea între apariţia lui anaforică şi cea non-anaforică.
Primele sisteme care au abordat această problemă de clasificare s-au bazat fie pe reguli scrise
manual fie pe învăţarea automată a unor indici relevanţi. Indiferent de startegia utilizată,
performanţa acestor sisteme este limitată de calitatea cunoştiinţelor pe care le exploatează, care
de obicei sunt doar parţial credibile şi eterogene. O nouă abordare care să treacă dincolo de
limitările tradiţionale este folosirea reţelelor Bayesiene. Ca şi un formalism probabilistic, ea oferă
capacitatea de a integra cunoştiinţe eterogene într-o reprezentare unică precum şi un mecanism
elegant de luare în considerare a unei estimări prioritare de fiabilitate în decizia clasificării.
42
Reţelele Bayesiene sunt un model conceput pentru a manevra informaţii mai dubioase decât alte
sisteme. Acestea se bazează pe o descriere calitativă a relaţiilor de dependenţă şi un set de
probabilităţi condiţionate, fiecare nod reprezentând o variabilă aleatoare. Explorarea reţelei
constă în propagarea de noi informaţii în reţea şi actualizarea celor deja existente, în conformitate
cu observaţiile. În urma unor studii realizate în paralel pe diferite sisteme s-au obţinut
următoarele rezultate:
Metoda Rezultat
Reguli puternice de constângere 88.11%
Reguli slabe de constrângere 88.88%
Maşini cu suport vectorial 92.71%
Clasificatorul Naiv Bayes 92.58%
Reţele Bayesiene 95.91%
Această comparaţie confirmă faptul că reţelele Bayesiene propun un mod interesant de a
combina diverşi indici, chiar dacă unii dintre ei nu erau de încredere totală. Prin studiul realizat
se aşteaptă confirmarea contribuţiei reţelelor Bayesiene în problemele de procesare a limbajului
natural pe o sarcină care este mai complexă decât cea de clasificare a apariţiei pronumelui „it” , şi
anume rezoluţia anaforă[10].
Un alt cadru sugestiv care utilizează o filizofie probabilistică Bayesiană este cel al
sistemelor de evaluare a riscurilor, spre exemplu în cadrul cutremurelor. Cadrul permite
dezvoltarea unor modele de risc care sunt uşor de actualizat şi facilitează caracterizarea
sistemelor care sunt luate în considerare în ceea ce priveşte capacitatea de a susţine
despăgubiri(vulnerabilitatea) şi capacitatea de a limita consecinţele pentru efectul direct al
daunelor(robusteţea). O reţea Bayesiană este modelată ca şi o clasă de obiecte, aplicată pentru
fiecare clădire în parte. Orice informaţie în ceea ce priveşte indicatorii caracteristici poate fi
utilizată cu scopul de actualizare a probabilităţiilor Bayesiene necesare în evaluarea de risc. Într-
un astfel de cadru, indicatorii pe baza cărora se iau deciziile de risc joacă un rol foarte important.
Spre exemplu, indicatori de evaluare a riscului pentru un oraş pot fi consideraţi a fi orice cantităţi
legate de încărcarea clădirilor(expunerea), puterea componentelor structurii(vulnerabilitatea) sau
redundanţa, ductilitatea şi eficienţa controlului asupra întreţinerii(robusteţea).
Pentru că o reţea Bayesiană permite calculul probabilistic pentru orice tip de declaraţie, în
cazul în care se cunosc toate variabilele relevante, ea poate fi folosită şi pentru diagnosticare
medicală, predicţie şi/sau selecţia tratamentului. Aceeaşi reţea, poate fi folosită pentru a trata o
gamă variată de probleme decizionale medicale. Diagnosticarea pneumoniei, spre exemplu, este o
sarcină destul de dificilă deoarece niciuna dintre simptome nu este cauzată de agenţi patogeni. Cu
precădere în secţiile de terapie intensivă este comun pentru un pacient să aibă febră, deoarece
există multe situaţii cauzatoare de febră diferite de pneumonie. Este nevoie şi de alţi indicatori
43
specifici pentru a putea exista siguranţa că boala despre care se vorbeşte este pneumonia.
Modelul Bayesian încorporează cunoştiinţele temporale despre diagnosticul de pneumonie, deşi a
fost demostrat recent că acest lucru nu este cu adevărat important.
4.3 Forme hibridizate
Algoritmii hibrizi exploatează cele mai bune proprietăţi ale diferitelor metode pentru a
rezolva, în manieră cât mai eficientă, diferite probleme. Cu acelaşi scop au fost proiectaţi o serie
largă de algoritmi care au ca şi punct comun teoria Bayesiană. Fie că este vorba de hibridizări la
nivelul căutării celei mai probabile ipoteze, fie că este vorba de combinarea cu arborii de decizie
sau maşinile cu suport vectorial, raţionamentul Bayesian a fost păstrat.
Un astfel de algoritm hibrid este şi algoritmul de clasificare numit Arborele-NB(NB-Tree)
folosit pentru clasificarea unui set de înregistrări. Aceste include o structură de arbore de decizie
având niciunul sau mai multe noduri de decizie şi unul sau mai multe noduri frunză. În fiecare
nod de decizie se efectuează un test pe baza a unuia sau mai multor atribute. În fiecare nod
frunză, un clasificator, bazat pe raţionamentul Bayesian, clasifică înregistrările. Arborele-NB
pare a fi o abordare viabilă pentru a induce clasificatoarele pe seturi de date unde mai multe
atribute sunt relevante pentru clasificare, sau nu sunt neaparat independente. La fel de bine
algoritmul este aplicabil pentru baze de date extrem de mari unde interpretabilitatea unui
clasificator este importantă. În practică, Arborii-NB sunt prezenţi la scară largă în bazele de date
şi, în general, surclasează arborii de decizie sau CNB, luaţi independent.
După cum am afirmat şi în capitolul anterior, problema învăţării reţelelor Bayesiene este
o problemă cu timp polinomial nedeterminist. Pentru a reduce complexitatea Bayesiană de
alegere a structurii reţelistice, s-a ajuns la o hibridizare bazată pe algoritmii genetici. În
cromozomul genetic sunt memorate informaţii despre numărul părinţilor nodului curent, numărul
părinţilor fiecăruia dintre părinţii nodului curent(între 0 şi 2) şi caracteristica care corespunde
fiecăruia dintre nodurile anterioare. Spre exemplu, un nod poate avea doi părinţi, iar vechinul său
doar unul. Acest lucru asigură o mai mare diversitate în obţinerea structurii reţelistice. Acurateţea
obţinută experimental cu algoritmul evolutiv genetic a fost de 86.1% după 100 de generaţii, spre
deosebire de algoritmul obişnuit de determinare a structurii reţelei Bayesiene, K2, care a obţinut
o acurateţe de 65%. Aceste teste au fost efectuate pe aplicaţii din medicină, pentru a clasifica
pacienţii în funcţie de vârstă, pe baza informaţiilor obţinute din semnalele electrocardiogramei.
Comparaţia dintre un algoritm greedy hill-climb şi unul genetic pentru descoperirea structurii
reţelistice a arătat o creştere semnificativă a clasificării, în cazul folosirii celei de-a doua metode.
O altă problemă tratată destul de recent prin utilizarea inteligenţei computaţionale este cea a
datelor lipsă din bazele de date. Un algoritm hibrid de reţele Bayesiene auto-asociative şi
algoritmi genetici s-a dovedit a fi o abordare de succes pentru imputarea datelor lipsă.
44
Maşinile cu suport vectorial(SVM) sunt un concept destul de recent din ştiinţa
calculatoarelor folosite pentru clasificarea şi analiza de regresie asupra unui set de metode de
învăţare supervizată care să analizeze date şi să recunoască modele[15]. Împreună cu reţelele
Bayesiene, printr-un algoritm hibridizat, ele au fost utilizate pentru a reduce eroarea maşinilor-
unelte termice [13]. Precizia de predicţie a erorii acestor maşini depinde, în mod semnificativ, de
structura modelului de eroare. Datele experimentale sunt prima dată clasificate cu ajutorul unui
model de reţea Bayesiană, bazată pe un sistem de reguli. După ce clasificare a aavut loc, eroarea
este prezisă folosind un model de SVM. Acest model hibrid prezice eroarea termică în
concordanţă cu condiţiile specifice de funcţionare. Această abordare a problemei a condus la
elaborarea unui model de predicţie mai generalizat decât metoda convenţională de cartografiere a
erorii şi a temperatuii, indiferent de condiţii. Un astfel de model este util în special într-un mediu
de producţie în care maşinile-uneltă sunt supuse la condiţii de funcţionare variate.
Tot împreună cu SVM, reţelele Bayesiene au fost folosite şi într-un sistem de
recunoaştere automată a acţiunilor umane [14]. A fost demonstrat faptul că această asociere
îmbunătăţeşte în mare măsură rata de recunoaştere a acţiunilor, pe baza cunoştiinţelor anterioare.
Experimentele făcute arată faptul că sistemul poate rula în timp real pentru detectarea
comportamentelor anormale şi produce un rezultat robust prin utilizarea deplină a informaţiilor
anterioare cu privire la mişcare.
45
CAPITOLUL 5
APLICAŢIA PRACTICĂ
5.1 Enunţ
Pentru a ilustra importanţa practică a metodelor de învăţare Bayesiană, vom considera
problema de învăţare în care instanţele sunt reprezentate de documente text.
Clasificarea textuală este procesul de clasificare a documentelor în categorii predefinite,
pe baza conţinutului lor. Această problemă este o cerinţă principală a sistemelor de regăsire a
textelor, care consideră textele un răspuns la interogările utilizatorilor, dar şi a sistemelor de
înţelegere a textelor, care transformă textele în rezumate, ca un răspuns la interogări şi la
extragerea de date. Algoritmii de învăţare supervizată existenţi necesită suficient de multe
documente pentru învăţarea cât mai exactă a sarcinii de clasificare. Există numeroase documente
text disponibile în format electronic, iar numărul lor este în continuă creştere. Aceste documente
reprezintă o masă masivă de informaţii care este uşor accesibilă. Căutarea unui anumit document
într-o asemenea colecţie necesită un efort uriaş, în special ca timp şi răbdare. Această sarcină
poate fi totuşi uşurată atâta timp cât documentele sunt organizate. Chiar dacă nici acest obiectiv
nu pare a fi mai uşor, el poate fi automatizat prin extragerea de date pe baza cărora se realizează o
clasificare- o tehnică de inteligenţă artificială.
Spre exemplu, ne putem gândi la învăţarea unui concept ţintă cum ar fi "clasificarea
articolelor electronice de ştiri" în categorii considerate de interes pentru un anumit utilizator. În
cazul în care un sistem este capabil de a învăţa conceptul ţintă precis, ar putea filtra automat
volumul mare de documente text online şi ar prezenta unui utilizator doar documentele cele mai
relevante.
În cazul de faţă, sarcina care se doreşte a fi dusă la îndeplinire este cea a realizării unui
produs soft capabil să clasifice documente de ştiri în categorii pentru care el a fost antrenat.
5.2 ANALIZĂ ŞI PROIECTARE
Metoda propusă pentru a rezolva problema clasificării textuale este o implementare a
Clasificatorului Naiv Bayes, descris în secţiunile anterioare. Interesant de observat este faptul că
abordările probabilistice, cum ar fi şi cea descrisă de algoritmul folosit aici, sunt printre cele mai
eficiente pentru învăţarea clasificării documentelor de tip text.
Algoritmul CNB se aplică sub anumite condiţii generale. Dintre acestea face parte şi
existenţa unui spaţiu al instanţelor, X, constituit din toate documentele text posibile. Sunt
46
prezentate apoi exemple de antrenare a unei funcţii ţintă necunoscute, f(x), care poate lua orice
valoare dintr-un set finit de valori ţintă V. Sarcina sistemului este de a învăţa din aceste exemple
de antrenare pentru a putea prezice valoarea ţintă pentru documentele text apărute ulterior. În
cazul aplicaţiei pe care o voi descrie funcţia ţintă poate lua valori dintr-un set de cinci categorii
de ştiri.
Cele două aspecte de design implicate în aplicarea CNB la astfel de probleme de
clasificare a textelor sunt găsirea unei reprezentări potrivite a documentelor text arbitrare, în
termeni de valori atribut, şi alegerea modului de estimare a probabilităţiilor cerute de acest
clasificator.
În ceea ce priveşte reprezentarea textelor, abordarea aleasă este una extrem de simplă.
Pentru un document text datse defineşte n atribut pentru fiecare poziţie a unui cuvânt, iar valoarea
atributului este însuşi cuvântul. Poate fi remarcat faptul că textele lungi vor necesita un număr
mare de atribute, însă vom vedea că aceasta nu este o problemă.
Presupunem existenţa unui set de date constând în 5000 de documente împărţite în 5 clase
de ştiri(câte 1000 de documete în fiecare clasă). În faza de antrenare a sistemului am folosit câte
2/3 dintre documentele din fiecare clasă, cealaltă treime fiind folosită pentru testare. Pentru a
clasifica un nou document primit, sistemul trebuie să evalueze expresia:
i
j
w jijVv
NB vwPvPv )|()(maxarg
Unde V este setul celor 5 clase ţintă, iar wi reprezintă toate cuvintele care apar în
documentul de clasificat. Independenţa ipotezelor prevede în acest cadru că probabilitatea
cuvintelor pentru o poziţie din text sunt independente de cuvintele care apar pe alte poziţii. Poate
fi observat faptul că, în general, această ipoteză este în mod evident eronată. De exemplu,
probabilitatea de a observa cuvântul "învăţare", într-un document de inteligenţă artificială, este
mai mare dacă pe o poziţie anterioară se regăseşte cuvântul "maşină". Dacă se alege totuşi luarea
în calcul a tuturor dependenţelor, numărul termenilor de probabilitate care trebuiesc calculaţi este
prohibitiv. Din fericire, în practică, un sistem care învaţă după abordările Naive Bayes se
descurcă extrem de bine în multe probleme de clasificare textuală, în ciuda inexactităţii evidente
a acestei presupuneri de independenţă a ipotezelor.
Pentru a înţelege mai bine funcţionarea acestui sistem de clasificare voi evidenţia paşii
care sunt parcurşi atât în etapa de antrenare cât şi în cea de testare şi clasificare.
A. Antrenarea
Cei mai importanţi paşi de urmat în faza de antrenare constau în construirea vocabularului
şi calcularea probabilităţiilor condiţionate. Pentru prima etapă, cea de construire a vocabularului,
este nevoie de setul de texte care vor fi luate în considerare pentru a duce la împlinirea aceastei
sarcini.
47
Pentru fiecare clasă de ştiri în parte se vor considera 2/3 din numărul total de documente
pentru antrenare. Clasa "GenerateDocument" este cea care prin metoda "setFilesFromFolder(File
folder)" stabileşte care sunt fişierele care vor fi folosite pentru generarea vocabularului, şi care
pentru testare. Metoda de alegere a fişierelor care vor fi folosite la antrenare este una aleatoare,
generându-se numerele fişierelor în manieră random. Pentru fiecare fişier astfel generat, este
instanţiat un obiect de tip "Document" în care este reţinut numele fisierului şi cuvintele care se
regăsesc în el împreună cu frecvenţa lor de apariţie. Acest set de cuvinte sunt adăugate apoi la
vocabularul clasei din care face parte documentul şi care este actualizat la fiecare nou document.
Un obiect de tip "Vocabular" este instanţiat pentru a reţine cuvintele care apar în cele 5
clase de ştiri. Totuşi, din acet vocabular nu fac parte chiar toate cuvintele care apar în documente.
Sunt eliminate cuvintele care nu sunt considerate relevante pentru clasificarea documentelor, aşa
numitele "stop words". Tot la partea de preprocesare a textelor, fiecare cuvânt este supus unei
modificări. Este definită o instanţă a clasei Stemmer care prin metoda stemming(String word)
returnează baza cuvântului "word", în cazul în care acesta era un cuvânt derivat. Acest lucru ajută
atât la micşorarea spaţiului de memorare a cuvintelor cât şi la o mai bună clasificare.
După ce au fost adăugate vocabularele de la fiecare clasă în parte la vocabularul de
antrenare se mai produce o modificare asupra celui din urmă. La testele de faţă am considerat
relevante doar acele cuvinte care au o frecvenţă de apariţie în datele de test mai mare de 3 şi mai
mică de 100. Această presupunere va elimina cuvintele care apar cel mai rar şi pe cele foarte
comune. După parsarea textelor şi aplicarea acestor restricţii, numărul de cuvinte obţinute la o
antrenare variază undeva în jurul a 10.000 de cuvinte.
Următorul pas este calcularea probabilităţiilor solitate de Clasificatorul Naiv Bayes.
Probabilitatea pentru fiecare din cele 5 clase de ştiri de a apărea în datele de antrenare(P(vj)) este
egală cu 0.2, fapt datorat numărului egal de exemple de antrenare luat din fiecare categorie. O
estimare mai problematică este cea a probabilităţiilor condiţionate. Reamintind presupunerea că
atributele sunt independente şi identic distribuite, estimarea întregului set de probabilităţi
P(wk|vj), va duce la estimarea a aproximativ 50.000 termeni pentru o antrenare.
Pentru a completa designul algoritmului de învăţare este necesară alegerea unei metode de
estimare a termenilor de probabilitate. Pentru aceasta am ales metoda de m-estimare cu priorităţi
uniforme şi cu m reprezentând numărul total al cuvintelor care constituie vocabularul. Astfel,
formula de calcul folosită este:
||
1)|(
Vocabularn
nvwP k
jk
unde n reprezintă numărul de cuvinte din clasa vj, iar nk este numărul de apariţii a
cuvântului wk în clasa vj.
48
O etapă importantă după calcularea acestor probabilităţi este aceea a memorării lor.
Pentru aceasta, am modelat o bază de date în care sunt reţinite toate cuvintele din vocabular
împreună cu probabilităţiile lor condiţionate pentru fiecare categorie de ştiri în parte.
B. Testarea
În această etapă sunt folosite acele documente text, din fiecare categorie în parte, care nu
au fost folosite în faza de antrenare. Ele sunt obşinute după ce au fost generate documentele
folosite la antrenare, prin eliminarea lor din fiecare categorie în parte.
Pentru fiecare document folosit în faza de testare se aplică Clasificatorul Naiv Bayes şi
rezultatul astfel obţinut este comapart cu clasa din care face parte documentul. Dacă clasificarea a
fost una corectă, aceasta duce la incrementarea ratei de acurateţe a metodei. Aceasta din urmă, se
obţine prin calcularea raportului dintre numărul total de documente clasificate corect şi numărul
de documente testate.
C. Clasificarea
În această fază a execuţiei, pentru un document furnizat ca şi dată de intrare,
Clasificatorul Naiv Bayes returnează valoarea funcţiei ţintă, în cazul de faţă, categoria din care
face parte ştirea conţinută de document. Documentul de intrare este parsat şi el în cuvinte şi sunt
căutate poziţiile cuvintelor care apar şi în vocabularul de antrenare. Pe baza rezultatelor de
antrenare memorate în baza de date, se calculează produsul:
VvvwP j
pozitiii
ji
,)|( ,
unde prin wi se face referire la cuvântul de pe poziţia i din document. Valoarea ţintă
pentru documentul de clasificat se obţine astfel: .)|(*)(maxarg
pozitiii
jijVv
NB vwPvPvj
Valoarea lui vNB reprezintă clasa de ştiri din care documentul face parte conform
clasificării aplicate.
Dacă unul sau mai mult cuvinte din cele prezente în textul de clasificat nu este regăsit
printre cuvintele din vocabularul de la antrenare, acestea sunt pur şi simplu ignorate.
Prin reprezentarea aleasă, dar mai ales pe baza presupunerilor făcute, media de
performanţă obţinută în urma unui set de 50 de rulări este de 96.0256%.
Deşi în implementarea algoritmilor de inteligenţă artificială nu se ia, de cele mai multe
ori, în considerare arhitectura aleasă, accentul căzând în acest caz strict pe metoda de rezolvare
aleasă, în cazul de faţă am recurs la o arhitectură de tipul MVC(Model-View-Controller). Acest
lucru poate fi certificat şi de diagrama prezentată în Fig. 3.
49
Fig. 3
Pentru a evidenţia şi mai clar modul în care obiectele interacţionează şi ceea ce cuprinde
fiecare pachet din arhitectură, în Fig.4 este prezentată diagrama de clase:
50
Fig. 4
51
5.3 IMPLEMENTARE
Clasificatorul Naiv Bayes este relativ rapid şi uşor de implementat, faţă de alţi algoritmi
care sunt mai puţin eronaţi, dar mult mai lenţi. Acesta este cel mai des întâlnit la filtrele de spam
şi în ciuda simplităţii şi a presupunerilor naive, s-a dovedit a fi foarte bun în practică. Pentru a fi
clasificate, obiecatele, sunt reprezentate prin caracteristici numerice.
În implementarea propusă, paşii pe care clasificatorul îi efectuează au fost urmaţi
întocmai. Desemenea, pentru designul aplicaţiei au mai fost luate trei decizii:
1. aplicaţia trebuie să fie uşor de utilizat pentru diferite seturi de date de
antrenare, chiar şi în cazul în care se vor folosi mai multe valori ţintă;
2. aplicaţia trebuie să folosească o interfaţă grafică pentru a facilita
comunicarea cu utilizatorul;
3. aplicaţia trebuie să fie, pe cât posibil, independentă de platforma pe care
rulează.
De aceea, limbajul de programare ales pentru acest proiect este Java, singurele probleme
de independenţă a platformei apărând la reprezentarea datelor de antrenare. La acest proiect,
pentru a reţine rezultatele de probabilitate condiţionată obţinute în urma antrenării, am folosit o
bază de date memorată pe un SQL Server. Tabelul în care sunt reţinute probabilităţiile arată ca şi
cel din Fig. 5:
Fig. 5
52
Limbajul Java, prin construcţia sa, foloseşte cu precădere principiul de abstractizare.
Încercarea de a impune acest principiu şi aplicaţiei dezvoltate aici a condus la obţinerea unui set
de clase Java, dintre care cele mai importante sunt:
Document:
Această clasă reţine un nume de fişier împreună cu toate cuvintele acre apar în el.
Atributele ei sunt:
- name: String(reţine întreaga cale către fişier);
- words: Hashtable(cuvintele din text reprezintă cheile Hashtable-ului, iar frecvenţa lor de
apariţie, un întreg, reprezintă valoarea cheii).
Cele mai importante metode ale acestei clase sunt:
- setWords(): metodă care împarte documentul dat de "name" în cuvinte, eliminând
caracterele speciale şi spaţiile. După ce sunt obţinute cuvintele se setează valoarea pentru
atributul "words".
- isNotStoppedWord(String): metodă cu valoare booleană care verifică dacă
cuvântul transmis ca şi parametru face parte dintr-o listă de cuvinte care nu sunt relevante pentru
clasificare(cuvinte care apar in majoritatea documentelor).
FunctiiTarget:
Este clasa responsabilă de modelarea valorilor ţintă pe care le poate lua un document.
Atributele ei sunt:
- funcTarget: String(numele funcţiei ţintă);
- probabilitate: float(probabilitatea P(vj) descrisă în capitolele anterioare,
probabilitatea ca un document sa fie din clasa funcţiei ţintă).
Această clasă nu are metode deosebite de cele existente la aproape orice clasă de modele
Java, şi anume constructorii şi metodele de tip get/set.
Vocabular;
Această clasă este printre cele mai importante, deoarece în cazul clasificării textuale,
vocabularul obţinut după antrenare şi vocabularul noului document text sunt obiecte cheie.
Atributele acestei clase nu sunt multimple, ci se rezumă la o dată membră în care sunt reţinute
atât cuvintele care apar cât şi frecvenţa lor:
- words: Hashtable<String, Integer>
Printre metodele acestei clase se numără:
- search(String): returnează frecvenţa din vcabular a cuvântului transmis ca şi
parametru, în cazul în care acesta există în vocabular, sau 0 în caz contrar;
53
- addToVocabulary(Hashtable): este metoda care adaugă la vocabular şi alte
cuvinte. În cazul în care cuvântul există deja în vocabular atunci îi este modificată doar frecvenţa
de apariţie, iar în caz contrar este adăugat;
- o altă metodă importantă din această clasă este cea prin care se elimină cuvintele
care sunt considerate irelevante. Abordarea originală în această privinţă este aceea că, faţă de alte
implementări care eliminau doar cele mai frecvente 100 de cuvinte[1], aici sunt eliminate
cuvintele cu o frecvenţă mai mică de 3 şi mai mare de 100. Această metodă, deşi are un impact
major asupra procesului de clasificare, este destul de simplă, după cum se poate observa:
public void eliminFrecvente(){
int i=0;
Enumeration<String> enumKey=words.keys();
while(enumKey.hasMoreElements()){
String s=enumKey.nextElement();
if(words.get(s)>=100 || words.get(s)<=3)
words.remove(s);
}
}
GenerateDocument:
O clasă extrem de importantă atât pentru procesul de antrenare cât şi pentru cel de testare.
În cadrul ei sunt generate documentele care se folosesc la antrenarea sistemului. Datele ei
membre includ:
- trainingFiles: File[](un vectode de fişiere ce vor fi folosite la antrenare);
- length: int(numărul de fişiere ce se vor folosi al antrenare);
- testFiles: File[](vectod de fişiere ce vor fi folosite pentru a testa performanţa
sistemului);
Pe langă metodele de get/set o metodă importantă a clasei este:
- setFilesFromFolder(File folder): aici sunt de fapt instanţiate valorile trainingFiles
şi testFiles. Pentru directorul dat ca şi parametru se construieşte un vector care conţine doar
fişierele din el(folderul poate avea şi alte subdirectoare). Din numărul total al acestor fişiere, sunt
generate 2/3 de fişiere care reprezintă trainingFiles, restul fiind testFiles. Generarea fişierelor se
face în manieră aleatoare.
NaiveBayesClassifier:
Aceasta este clasa care de fapt include algoritmul de clasificare. Datele ei membre sunt:
- document: Document(documentul care trebuie clasificat);
- vocabular: Vocabular(reţine vocabularul obţinut după faza de antrenare);
54
- functiiTinta: FunctiiTintaRepository(funcţiile ţintă împreună cu probabilităşiile
lor, date regăsite într-o bază de date, după antrenare);
- repProbCond: ProbabilitateConditionataRepositoryDB(pentru cuvintele obţinute
la antrenare s-au memorat probabilităţiile condiţionate în funcţie de fiecare clasă într-o bază de
date)
- clasificare: String(aici se reţine valoarea funcţiei ţintă după procesul de
clasificare).
Clasificarea propriu-zisă a documentului este realizată în cadrul metodei Clasifica() a
cărui corp este:
public void Clasifica(){
Hashtable<String, Integer> cuvDoc=document.getWords();
//cuvintele din documentul de clasificat
ArrayList<BigDecimal> lista=new ArrayList<BigDecimal>();
float p;
for(int i=0;i<functiiTarget.length;i++){
BigDecimal produs=new BigDecimal(1);
Enumeration<String> enumWord=cuvDoc.keys();
while(enumWord.hasMoreElements()){
String c=enumWord.nextElement();
if(vocabular.search(c)!=0){
p=repProbCond.getProbabilitate(c, i+1);
if(p>0){
produs=produs.multiply(newBigDecimal(p));
if(produs.equals(0))
produs=BigDecimal.valueOf(Double.MIN_VALUE);
}
}
}
lista.add(i, produs.multiply(newBigDecimal(functiiTarget[i].getProbabilitate())));
}
int Vj=maxim(lista);
clasificare="clasa"+Vj;
}
Valoarea maximă pentru funcţia ţintă este determinată cu ajutorul metodei maxim
descrisă astfel:
private int maxim(ArrayList<BigDecimal> lista) {
BigDecimal max= new BigDecimal(0);
int poz=0;
for(int i=0;i<lista.size();i++){
max=lista.get(i).max(max);
}
55
return lista.indexOf(max);
}
Antrenare:
În cadrul acestei clase, după cum ne sugerează şi numele ei, se produce etapa de
antrenare. Sunt apelate toate metodele necesare din celelalte clase pentru a duce la îndeplinire
sarcina de antrenare. Este clasa în care sunt calculate probabilităţiile fiecărei funcţie ţintă în parte,
dar şi probabilităţiile condiţonate. Tot în această clasă este determinată şi performanţa sistemului
cu fiecare antrenare.
Metodele cele mai importante din această clasă sunt:
- calculeazaNk: în care este calculat unul dintre parametri necesari pentru
determinarea probabilităţiilor condiţionate;
- calculeazaProbConditionata: în care sunt calculate probabilităţiile condiţionate
pentru fiecare cuvânt în parte. Ea este descrisă astfel:
private static void calculeazaProbConditionata(MapStringList nk,
int[] n, Vocabular vocabular, ProbabilitateConditionataRepositoryDB probRep, int nrFunctiiT) {
//Calculez P( Wk|Vj)=(Nk+1)/(n[k]+|vocabular|)
float prob;
Enumeration<String> enumWords=vocabular.getAllWords().keys();
while(enumWords.hasMoreElements()){
String c=enumWords.nextElement().toString();
ArrayList<Float> nnk=nk.getValues(c);
for(int j=0;j<nrFunctiiT;j++){
prob= (nnk.get(j)+1)/(n[j]+vocabular.getAllWords().size());
probRep.addProbCond(c, prob,j+1);
}
}
}
5.4 Manual de utilizare
Aplicaţia este destinată tuturor utilizatorilor care doresc o mai bună sortare a articolelor
de ştiri care îi invadează zi de zi. Cu un design modern şi plăcut produsul satisface toate
necesităţiile unui astfel de sistem şi facilitează comunicarea cu utilizatorul.
La lansarea în execuţie a softului fereastra care apare are formatul celei din Fig.6.
56
Fig.6
Pornind de la această fereastră, posibilităţiile de acţionare sunt multiple. Deoarece sarcina
principală a sistemului este aceea de a clasifica documente de ştiri, el oferă beneficiarului
posibilitatea de a îşi alege documentele care urmează a fi clasificate. Pentru aceasta, prin
executarea unui click pe meniul File utilizatorul poate alege atât deschiderea unui fişier deja
existent, cât şi crearea unui fişier nou. În primul caz, la alegerea opţiunii Open se deschide o
fereastră care permite navigarea prin structura de directoare şi fişiere ale calculatorului şi care
arată ca şi cea din Fig. 7.
57
Fig.7
După alegerea fişierului care se doreşte a fi clasificat, la selectarea opţiunii Open,
fereastra iniţială(Fig. 6) este reactualizată, numele fişierului ales apărând în caseta de sub textul
Choosen Document. Dacă acesta este fişierul pe care utilizatorul doreşte să îl trimită spre
clasificare, tot ce mai are de făcut este să selecteze opţiunea Classification disponibilă în meniul
Run. După aceasta, articolul este clasificat, iar rezultatul este afişat utilizatorul în fereastra
principală, care arată ca şi în Fig. 8.
58
Fig. 8
O altă opţiune oferită beneficiarului este aceea de a îşi edita propriile lui articole de ştiri
pe care mai apoi să se clasifice. Această variantă este disponibilă prin selectarea opţiunii New din
meniul File. În fereastra nou apărută, celui care editează ştirea îi este solicitat să asocieze acesteia
un nume înainte de a o salva. În caz contrar, apariţia unui mesaj de eroare este inevitabilă. Titlul
ştirii este folosit pentru a denumi fişierul în care ea este salvată, şi nu influenţează în nici o formă
procesul de clasificare. După editarea ştirii şi salvarea ei(prin apăsarea butonului de Save),
fereastra principală este reactualizată prin apariţia în prima casetă a numelui fişierului salvat.
Fereastra de editare este prezentată şi în Fig. 9.
59
Fig. 9
Cu toate acestea prezentate, partea de prezentare a sistemului din ceea ce priveşte
clasificarea este rezolvată. Însă, în cadrul unui sistem de clasificare, un accent important cade pe
partea de antrenare. Cu scopul de a oferi beneficiarului posibilitatea de reutilizare a softului şi în
alte domenii decât cel pentru care a fost proiectat, acestuia îi este dispinibilă şi opţiunea de
antrenare. Atâta timp cât utilizatorul dispune de un set de date de antrenare destul de mare şi bine
structurat, performanţa sistemului nu va fi diminuată considerabil. Opţiunea de antrenare a
sistemului este disponibilă prin accesarea meniului Run şi alegerea opţiunii de Training. Pentru
a împiedica accesarea din greşeală a acestei opţiuni, utilizatorului îi este cerut să confirme dacă
doreşte lansarea în execuţie a procesului de antrenare sau nu, print-o fereastră de dialog ca şi cea
prezentată în Fig. 10.
60
Fig. 10
Dacă butonul ales este Yes atunci va începe re-antrenarea sistemului, însă dacă opţiunea
aleasă este Cancel se va reveni la starea anterioară a produsului.
Aplicaţia mai dispune şi de un meniu Help. De aici utilizatorul poate dispune de
informaţii referitoare la produs, disponibile prin selecatrea opţiunii About sau poate accesa
manualul de utilizare, prin alegerea opţiunii How to...
61
5.5 Rezultate
Valoarea ţintă a clasificării pentru un nou articol, în acest caz, este numele categoriei de
ştiri din care el face parte. În algoritmul de Clasificare Naiv Bayes au fost luate în considerare 5
categorii de ştiri. Din fiecare categorie în parte au fost alese câte 1000 de articole, formânt un set
de 5000 de documente. Algoritmul a fost aplicat folosind 2/3 din aceste documente ca şi exemple
de antrenare, iar performanţa a fost măsurată folosind1/3 din documente(cele acre nu au fost
folosite la antrenare). Având în vedere faptul că sunt folosite 5 categorii de ştiri, ne.am putea
aştepta ca la ghicitul aleatoriu să rezulte o performanţă de 20%. Cu toate acestea, acurateţea
obţinută de către program a fost de 96.025%, o medie obţinută în urma unui set de 50 de execuţii.
Graficul de variaţie a performanţelor, cu abaterea de la valoarea medie, este redat în Fig. 11.
Fig. 11
Algoritmul folosit este similar cu cel despre care se vorbeşte în [1], cu excepţia că doar un
subset dintre cuvintele care apar în documente au fost incluse în Vocabularul algoritmului. Dacă
acolo se vorbea despre eliminarea celor mai frecvente 100 de cuvinte din vocabular şi a celor cu o
frecvenţă mai mică de 3, în particular, algoritmul dezvoltat elimină toate cuvintele cu o frecvenţă
mai mare de 100 şi mai mică de 3. Vocabularul obţinut conţine aproximativ 11000 de cuvinte.
Pentru realizarea unei paralele între programul dezvoltat, aplicabil pentru 5 clase de ştiri,
şi cel prezentat de T.Mitchell în [1] am recurs al câteva mici modificări. Prin includerea abordării
62
de eliminare a celor mai frecvente 100 de cuvinte, în urma unui set de 10 execuţii, performanţa
sistemului a fost de 96,69%. Deşi performanţele, având în vedere cele două abordări, sunt
apropiate ca şi valori, este de precizat faptul că prin eliminarea doar a celor mai frecvente 100 de
cuvinte timpul de execuţie este mult mai mare şi la fel şi spaţiul utilizat. Cu această abordare,
vocabularul obţinut în urma antrenării este de aproximativ 29000 de cuvinte.
Luând în considerare faptul că prin aplicarea algoritmului asupra celor 20 de clase de ştiri
performanţa obţinută a fost de 89%, putem concluziona prin afirmarea faptului că performanţa
unui sistem de clasificare textuală este direct proporţional cu numărul claselor ţintă.
5.6 Posibile extinderi
În varianta actuală a softului, pentru datele de antrenare testate, precizia obţinută este una
satisfăcătoare. Acest lucru nu înseamnă însă faptul că avem de-a face cu un soft perfect. Există
părţi în care el suportă modificări şi eventuale îmbunătăţiri.
Una dintre cele mai mari probleme cu care se confruntă orice aplicaţie care se bazează pe
analiza şi procesarea documentelor text este cea a preprocesării. Această operaţie este una
elementară şi de o importanţă majoră în problematica clasificării textuale. Lipsa unui astfel de
proces, aplicat înainte de operaţia de clasificare, are un impact major asupra preciziei sistemului,
dar şi asupra resurselor pe care acesta le foloseşte. Pentru o singură clasă de ştiri, la aplicaţia
prezentată, numărul de cuvinte iniţial este redus cu aproximativ 1000 de cuvinte, după aplicare
preprocesării. Deşi acest proces nu lipseşte aplicaţiei analizate, el poate fi îmbunătăţit, aducând
un plus performanţei actuale.
Spre deosebire de exemplul prezentat de Tom Mitchell în [1], unde numărul categoriilor
de ştiri era 20, programul dezvoltat cu acelaşi scop foloseşte doar 5 categorii de clase. Această
restrângere a fost realizată cu scopul de a micşora complexitatea algoritmului, atât ca timp de
execuţie cât şi ca spaţiu necesar. Pentru o organizare mai detaliată a ştirilor primite de un
utilizator, integrarea celor 15 categorii lipsă din sistemul iniţial nu reprezintă o problemă
inabordabilă. În prezenţa unui set de date de antrenare suficient de mare şi bine structurat,
aplicaţia poate fi folosită pentru clasificare oricăror tipuri de informaţii, nu doar a ştirilor.
O provocare pentru orice aplicaţie este aceea ca ea să fie independentă de platforma pe
care rulează. Prin imlementarea acestui algoritm de clasificare în limbajul Java este asigurată o
parte a acestei sarcini. O limitare, la acest moment, pentru utilizarea aplicaţiei pe orice platformă
este conexiunea la o bază de date din cadrul SQL Server-ului. Această bază de date este folosită
pentru stocatea probabilităţiilor condiţionate rezultate în urma fazei de antrenare. Pentru a
îmbunătăţii viteza de lucru şi a uşura portabilitatea aplicaţiei pe alte platforme o soluţie ar fi
utilizarea de fişiere XML. Acestea din urmă pot fi privite ca o mini-bază de date, care însă este
63
uşor de manipulat şi care poate fi folosită cu succes pentru transferul de date între sisteme
altminteri incompatibile.
Cu toate acestea, în forma sa actuală, proiectul dezvoltat atinge o rată de performanţă
ridicată şi facilitează, printr-o interfaţă cu design atractiv, comunicarea cu utilizatorii.
64
Concluzii
Abilitatea de a învăţa anumite concepte din prezentarea unor exemple este una dintre
capacităţiile de bază ale cunoaşterii umane. Scopul acestei lucrări a fost acela de a evidenţia
existenţa acestei abilităţi şi în rândul ştiinţei calculatoarelor. Acest lucru a fost realizat prin
tehnicile de învăţare Bayesiene prezentate şi prin aplicaţia practică analizată.
În dezvoltarea unui model al conceptului de învăţare care este în acelaşi timp
computaţional, dar şi capabil să se potrivescă exact comportamentului uman, sper că am adus un
plus de lumină în înţelegerea modului în care oamenii sunt capabili de a face deducţii corecte, pe
baza unor exemple pozitive.
În prezenta lucrare am propus o manieră de implementare a Clasificatorului Naiv Bayes
pentru procesul de categorisire a articolelor de ştiri. Deşi problematica aceasta a mai fost
abordată, prin amprenta proprie pusă asupra operaţiunii de preprocesare a datelor, am obţinut un
algoritm cu o complexitate computaţională mai bună şi cu performanţe similare. Scopul acestui
proiect este unul important, având în vedere vasta cantitate de informaţii disponibile pe Internet.
Capacitatea de a clasifica documentele neetichetate ar duce la uşurarea accesului pentru cei care
fac cercetări într-un anumit domeniu. Motoarele de căutare disponibile la această oră ar putea
ajunge al rezultate mai bune dacă informaţiile ar fi mai bine organizate.
65
Tabelul figurilor
Fig. 1- Starea variabilelor dintr-o reţea Bayesiană .....................................................pg. 26
Fig. 2- Structura unei reţele Bayesiene .......................................................................pg. 28
Fig. 3- Diagrama de pachete a aplicaţiei ....................................................................pg. 49
Fig. 4- Diagrama de clase a aplicaţiei .........................................................................pg. 50
Fig. 5- Tabelul probabilităţiilor condiţionate ..............................................................pg. 51
Fig. 6- Fereastra principală a aplicaţiei .......................................................................pg. 56
Fig. 7- Fereastra pentru selectarea fişierelor ...............................................................pg. 57
Fig. 8- Fereastra cu rezultatul clasificării ....................................................................pg. 58
Fig. 9- Fereastra pentru editarea unei ştiri ...................................................................pg. 59
Fig. 10- Mesajul de confirmare a antrenării ................................................................pg. 60
Fig. 11- Graficul de performanţă a sistemului .............................................................pg. 61
66
Bibliografie
[1] Tom Mitchell - Machine Learning, McGraw-Hill, 1997
[2] Stuart J. RUSSEL, Peter NORVIG – Artificial Intelligence, Prentice-Hall, Englewood
Cliffs, New Jersey, 1995
[3] Irins Rish - An empirical study of the naive Bayes classifier, IJCAI 2001, Workshop on
Empirical Methods in Artificial Intelligence.
[4] Ben-Gal I., Bayesian Networks, in Ruggeri F., Faltin F. & Kenett R., Encyclopedia of
Statistics in Quality & Reliability, Wiley & Sons (2007).
[5] David Heckerman, A Tutorial on Learning With Bayesian Networks, March 1995
Revised Novemb er 1996),Technical Report MSR-TR-95-06, Microsoft Research ,
WA 98052
[6] Nir Friedman, The Bayesian Structural EM Algorithm, Computer Science Division,
387 Soda Hall, University of California, Berkeley, CA 94720
[7] Joanna Kazmierska?????? , Application of the Naive Bayesian Classifier to optimize
treatment decisions, Department of Medical Physics, Great Poland Cancer Centre,
Poznan, Polan, Radiotherapy and Oncology 86 (2008) 211–216
[8] Tianhao Sun, Spam Filtering based on Naive Bayes Classification, 2009
[9] N. Fenton, M. Neil, D. Marque, Using Bayesian networks to predict software defects
and reliability, Department of Computer Science, Queen Mary, University of London,
London, UK, 2008
[10] Davy Weissenbacher, Bayesian Network, a model for NLP?, Laboratoire
d’Informatique de Paris-Nord, Universite Paris-Nord, Villetaneuse, FRANCE, EACL
'06 Proceedings of the Eleventh Conference of the European Chapter of the
Association for Computational Linguistics: Posters & Demonstrations, 2006
[11] N. Sebe, M.S. Lew, I. Cohen, A. Garg, T.S. Huang, Emotion Recognition Using a
Cauchy Naive Bayes Classifier, ICPR '02 Proceedings of the 16 th International
Conference on Pattern Recognition (ICPR'02) Volume 1, 2002
[12] http://en.wikipedia.org/wiki/Bayesian_probability
[13] R. Ramesh, M. A. Mannan, A. N. Poo şi S. S. Keerthi, Thermal error measurement
and modelling in machine tools. Part II. Hybrid Bayesian Network—support vector
machine model, Singapore, 2003
[14] Yufeng Chen, Guoyuan Liang, Ka Keung Lee, Yangsheng Xu, Abnormal Behavior
Detection by Multi-SVM-Based Bayesian Network, Information Acquisition, ICIA '07.
International Conference on, 2007
[15] http://en.wikipedia.org/wiki/Support_vector_machine
67