You are on page 1of 104

Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

INTELIGENŢA ARTIFICIALĂ
Constanţa-Nicoleta Bodea
Radu Ioan Mogoş

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
2 Inteligenţa artificială

Capitolul 1.
Introducere în inteligenţa artificială

1.1 Ce este inteligenţa artificială? Obiectul de studiu al inteligenţei artificiale

Obiectivul IA este construirea de artefacte (entităţi/sisteme artificiale) inteligente, cu scopul de a


obţine avantaje economice din utilizarea lor, precum şi de înţelege mai bine inteligenţa naturală, în
general şi pe cea umană, în special. O entitate inteligentă este fie entitatea care gândeşte ca un om sau
într-un mod raţional (abordari cognitiv-logică din IA), fie entitatea care se comportă ca un om sau în
mod raţional (abordări agent). O analiză comparativă a abordărilor specifice IA se găseşte în, în care
sunt evidenţiate cele patru tipuri de definiţii ale inteligenţei artificiale (figura 1.1).

Entitatea care gândeşte Entitatea care gândeşte


ca un om raţional

Entitatea care se Entitatea care se


comportă ca un om comportă raţional

Fig. 1.1. Categorii de definiţii ale IA

Întrucât prezenta lucrare este axată pe abordarea specifică agenţilor raţionali, în continuare vor fi
tratate aspectele relevante pentru asigurarea unui comportament raţional al artefactelor, considerat
drept comportament inteligent.

Obiectul de studiu al IA îl reprezintă, prin urmare comportamentul inteligent şi posibilitatea de


emulare a acestuia la maşini. Prin comportament inteligent se înţelege acel comportament care
implică realizarea de activităţi ce reclamă calităţi intelectuale deosebite, cum ar fi, de exemplu:
posibilitatea de abstractizare, adaptarea la situaţii noi, incomplet cunoscute, flexibilitate, creativitate
ş.a.m.d. Înţelegerea limbajului natural, practicarea matematicii, rezolvarea unor probleme practice
dificile, acordarea de semnificaţie diferitelor forme sunt exemple de activităţi a căror realizare
reclamă inteligenţă, caracterizând deci un comportament inteligent. Efectuarea acestor activităţi de
către maşină, prin urmare automatizarea lor, poate fi extrem de dificilă. Chiar şi activităţi precum
înţelegerea limbajului natural pe care omul le realizează în mod curent şi care sunt considerate, din
această cauză, activităţi comune, chiar triviale, pot fi extrem de dificil de automatizat.

La începutul constituirii sale ca domeniu ştiinţific, IA a pus la baza explicării şi emulării


comportamentului inteligent paradigma ce poate fi referită prin sintagma General Problem Solver,
după denumirea ambiţiosului proiect derulat în anii ‘60. Acest lucru înseamnă că abordările iniţiale au
preluat conceptul de algoritm şi au încercat perfecţionarea acestuia sub forma unui “algoritm al
algoritmilor”(algoritmi de generare de algoritmi de rezolvare a diferitelor clase de probleme). Eşecul
proiectului cu acest titlu a demonstrat că activităţile ce reclamă inteligenţă trebuie abordate diferenţiat,
ţinând cont de marea lor varietate şi că esenţiale în realizarea acestor activităţi sunt cunoştinţele.
Sfârşitul anilor ‘70 a marcat momentul unei schimbări de paradigmă (figura 1.2) în cadrul IA şi
anume trecerea la cunoştinţe, considerat drept conceptul central al inteligenţei artificiale.

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

ALGORITM
Comportament
Comportament
“convenţional” GENERAL PROBLEM “inteligent”
al maşinilor
SOLVER al maşinilor

CUNOŞTINŢE

Fig. 1.2 Schimbarea de paradigmă în cadrul IA

În sens informatic, cunoştinţele reprezintă informaţii care servesc la realizarea diferitelor activităţi,
oferind suport în rezolvarea problemelor. Deşi aspectul pragmatic este esenţial în definirea
conceptului de cunoştinţe, exprimarea acestora trebuie realizată relativ independent de modul lor de
utilizare, deoarece unele şi aceleaşi cunoştinţe pot fi utilizate în mod diferit pentru rezolvarea
diferitelor probleme sau chiar pentru aceeaşi problemă, dar în circumstanţe diferite.

Cunoştinţele constituie informaţii acceptate ca utile în atingerea anumitor scopuri. Cunoştinţele


prezintă, prin urmare, caracteristica de intenţionalitate legată de scopul utilizării lor, precum şi de
încredere în valabilitatea şi utilitatea aplicării acestora. Cunoştinţele sunt informaţii corelate, integrate
unui context specific, pentru care au semnificaţie şi relevanţă şi în care sunt valabile şi aplicabile.
Informatica convenţională se bazează pe o reprezentare implicită a cunoştinţelor şi o reprezentare
explicită a modului de utilizare a acestor cunoştinţe. Algoritmul constituie de fapt o schemă de
aplicare a unor cunoştinţe care nu sunt menţionate în mod explicit, ci sunt prezente în contextul de
prelucrare în formă implicită. Spre deosebire de această abordare, inteligenţa artificială a adoptat
soluţia reprezentării explicite a cunoştinţelor, într-o formă relativ independentă de modurile lor de
utilizare. În aceste condiţii, realizarea unui sistem bazat pe cunoştinţe presupune achiziţionarea şi
reprezentarea cunoştinţelor necesare efectuării anumitor activităţi, memorarea acestor cunoştinţe în
cadrul sistemului şi înzestrarea acestui sistem cu mecanisme care să permită aplicarea (utilizarea)
cunoştinţelor. Responsabilitatea deciziilor privind modul efectiv de utilizare a cunoştinţelor revine
sistemului însuşi, care la momentul execuţiei va lua, în mod automat, decizii privind CE cunoştinţe,
CUM şi CÂND să fie utilizate.

Sistemele bazate pe cunoştinţe dispun de o bază de cunoştinţe, de mecanisme de utilizare a acestora,


denumite mecanisme rezolutive, inferenţiale sau de raţionament, precum şi de interfeţe, cea mai
importantă fiind interfaţa utilizator (figura 1.3).

Mecanismele de
utilizare a cunostintelor
Baza de cunostinte (de rationament,
inferentiale)

Interfata

Fig. 1.3 Arhitectura unui sistem bazat pe cunoştinţe

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
4 Inteligenţa artificială

Achiziţionarea cunoştinţelor reprezintă aspectul critic în realizarea sistemelor bazate pe cunoştinţe,


ceea ce a determinat definirea unui model arhitectural care înglobează şi componenta de achiziţionare
automată a cunoştinţelor (figura 1.4). Modelul funcţional al sistemelor bazate pe cunoştinţe are la
bază următoarele funcţii pe care trebuie să le îndeplinească un astfel de sistem şi anume:
Achizitionarea automata a cunostintelor
Reprezentarea cunostintelor
Utilizarea cunostintelor
Sustinerea utilizarii rezultatelor

Mecanismele de
utilizare a cunostintelor
Baza de cunostinte (de rationament,
inferentiale)

Mecanisme de achizitionare automata a


cunostintelor

Interfata

Fig. 1.4 Arhitectura unui sistem bazat pe cunoştinţe cu facilităţi de învăţare automată

1.3 Conceptul de agent inteligent

În prezent, prototipul de sistem bazat pe cunoştinţe este agentul inteligent (raţional), inteligenţa
artificială fiind considerată drept disciplina care are drept obiectiv studierea si construirea de agenti
rationali. Un agent reprezintă o entitate care percepe mediul prin senzori şi acţionează asupra
mediului prin efectori (figura 1.5).
perceptii
Mediu
Agent

actiuni

Fig. 1.5 Agentul, în interacţiunea cu mediul

Un agent raţional este un agent care face ceea ce trebuie, adică acţionează în scopul obţinerii
succesului. Raţionalitatea este asociată cu succesul aşteptat, luând în considerare ceea ce a fost
perceput. Pentru de defini succesul se utilizează o măsură a performanţei agentului. Prin urmare,
raţionalitatea unui agent este definită în funcţie de următoarele elemente (figura 1.6):
măsura de performanţă, care defineşte gradul de succes ;
secvenţa percepţiilor ;
ceea ce ştie a priori agentul;
acţiunile pe care le poate realiza agentul.

Agentul raţional ideal reprezintă agentul care actioneaza astfel încât să-şi maximizeze performanţa, pe
baza informaţiilor despre mediu dobândite prin percepţii şi a cunoştinţelor deţinute anterior .

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

Agent
Senzori
M

perceptii
E

D
Memorie (BC)

Alegere actiuni
U

actiuni

Efectori

Fig. 1.6. Modelul general al agentului inteligent

Un program agent reprezintă o functie (un program) prin care se realizeaza trecerea de la percepţii la
acţiuni. Funcţia presupune existenta unei arhitecturi de implementare (hardware si software). Prin
urmare, agentul = arhitectura + programul.

Structura generică a unui program agent este următoarea:


function AGENT(perceptie) returns actiune
static: memorie
memorie ACTUALIZARE-MEMORIE(memorie, perceptie)
actiune CEA-MAI-BUNA-ACTIUNE(memorie)
memorie ACTUALIZARE-MEMORIE(memorie, actiune)
return actiune

Principalele tipuri de agenti sunt :


Agenti simpli
Agenti care memoreaza evolutia mediului
Agenti bazati de scop
Agenti bazati pe utilitate

Structura generică a unui agent simplu este următoarea :


function AGENT-SIMPLU(perceptie) returns actiune
static: reguli
stare INTERPRETARE(perceptie)
regula MATCHING-REGULA(stare, reguli)
actiune ACTIUNE-REGULA[regula]
return actiune

Structura generică a unui agent cu memorie (agent care memoreaza evolutia mediului) este
următoarea:
function AGENT-CU-MEMORARE-MEDIU(perceptie) returns actiune
static: stare
reguli
stare ACTUALIZARE-STARE(stare, perceptie)
regula MATCHING-REGULA(stare, reguli)
actiune ACTIUNE-REGULA[regula]
stare ACTUALIZEAZA-STARE(stare, actiune)
return actiune

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
6 Inteligenţa artificială

Structura generică a unui agent bazat pe scop este următoarea:


function AGENT-BAZAT-PE-SCOP(perceptie) returns actiune
static: stare
stare-tinta
rezultat-actiuni
stare ACTUALIZARE-STARE(stare, perceptie)
actiune IDENTIFICARE-ACTIUNE(stare, stare-tinta, rezultat-actiuni)
stare ACTUALIZEAZA-STARE(stare, actiune)
return actiune

Structura generică a unui agent bazat pe utilitate este următoarea:


function AGENT-BAZAT-PE-SCOP(perceptie) returns actiune
static: stare
utilitate-stari
stare-tinta
rezultat-actiuni
stare ACTUALIZARE-STARE(stare, perceptie)
stari-posibile IDENTIFICARE-REZULTAT(stare, rezultat- actiuni)
stare-tinta CEA-MAI-MARE-UTILITATE(stari-posibile, utilitate-stari)
actiune IDENTIFICARE-ACTIUNE(stare, stare-tinta, rezultat-actiuni)
stare ACTUALIZEAZA-STARE(stare, actiune)
return actiune

Pentru agent, interacţiunea cu mediul reprezintă un aspect esenţial. Mediul are asociate o serie de
caracteristici, fiind caracterizat drept:
Accesibil-inaccesibil
Deterministic-nedeterministic
Episodic-nonepisodic
Static-dinamic
Discret-continuu

Structura generică a programului de simulare a mediul agentului este următoarea :


procedure RUN-ENVIRONMENT(stare, UPDATE-EN, agenti, conditie-terminare)
inputs: stare
UPDATE-EN
agenti
conditie-terminare
repeat
for each agent in agenti do
PERCEPT[agent] GET-PERCEPT(agent, stare)
end
for each agent in agenti do
ACTION[agent] PROGRAM[agent](PERCEPT[agent])
end
stare UPDATE-EN(actiuni, agenti, stare)
until conditie-terminare(stare)

1.4 Clasificarea metodelor de inteligenţă artificială

Realizarea unui agent inteligent reclamă aplicarea unor metode care se diferenţiază în raport de
următorii factori:
modul de fundamentare empirică. Conform acestui criteriu, metodele de inteligenţă artificială se
clasifică în:

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

metode de calcul simbolic;


metode de calcul neuronal;
metode de calcul genetic.
gradul de generalitate. Conform acestui criteriu, metodele de inteligenţă artificială se clasifică în:
metode de rezolvare a problemelor, care se pot clasifica la rândul lor în:
- metode directe de rezolvare (algoritmi);
- metode indirecte (metode şi tehnici de căutare a soluţiilor şi metode de descompunere a
problemelor);
metode specifice inteligenţei artificiale, care la rândul lor se pot clasifica în:
metode de achiziţionare a cunoştinţelor;
metode de reprezentare a cunoştinţelor;
metode de utilizare a cunoştinţelor.

a. Metode şi tehnici de calcul simbolic

Metodele şi tehnicile de calcul simbolic au ca punct de plecare modul tradiţional de înţelegere şi


modelare a gândirii raţionale, reprezentat de logica clasică şi cea formală. Procesele de prelucrare
informaţională au semnificaţie şi justificare în termenii problemei, putând fi enunţate prin construcţii
individualizabile la nivel sintactic. Acest mod de abordare a prelucrărilor informaţionale este
tradiţional în cadrul informaticii. La începutul constituirii sale ca domeniu relativ autonom al ştiinţei
calculatoarelor, inteligenţa artificială a contribuit la generalizarea prelucrărilor informatice drept
prelucrări simbolice, nu numai numerice, după cum erau tratate operaţiile de calcul cu predilecţie de
informatica anilor '50.

b. Metode şi tehnici de calcul neuronal

Metodele şi tehnicile de calcul neuronal sunt definite pe baza analogiei cu prelucrările realizate de
către cel mai important procesor uman de informaţii şi anume de către sistemul nervos central. Toate
metodele şi tehnicile bazate pe calcul neuronal sunt metode şi tehnici specifice inteligenţei artificiale.

Sistemul nervos central constituie cel mai complex sistem de prelucrare a informaţiilor aflat la
dispoziţia omului. Numeroasele cercetări efectuate până în prezent asupra sistemului nervos sunt
departe de a explica multitudinea de procese specifice activităţii nervoase superioare, precum:
procesele de abstractizare, gândirea asociativă, memorarea etc. Cortexul cerebral reprezintă o reţea
neuronală naturală, a cărei componentă de bază este neuronul, respectiv celula nervoasă. Deşi mai
lente, mai simple şi adesea imprecise, introducând zgomote în cadrul procesării informaţiilor, celulele
nervoase reuşesc să trateze numeroase situaţii dificile mult mai eficient decât sistemele artificiale de
prelucrare informaţională.

Superioritatea sistemului nervos, faţă de procesoarele artificiale de informaţii se datorează unor


caracteristici, precum: dimensiune, conectivitate şi paralelism.

c. Metode şi tehnici de calcul genetic

Metodele şi tehnicile de calcul genetic sunt definite prin analogie cu prelucrările informaţionale
realizate în sistemele naturale. Aceste metode şi tehnici au fost definite la începutul anilor '70 de către
J. Holland, prin încercarea de a modela informatic procesele de transformare a informaţiei genetice ce
au loc în procesul evoluţiei organismelor vii. J. Holland s-a oprit asupra următoarelor caracteristici ale
procesului de evoluţie naturală:
informaţia genetică este depozitată în cromozomi. Un cromozom poate fi considerat drept
depozitarul biologic al structurii codificate a organismului viu.
în procesul de evoluţie naturală sunt favorizate structurile eficiente, respectiv cele ce sunt mai
bine adaptate mediului. Cromozomii ce depozitează structurile eficiente tind să se reproducă mai
frecvent decât ceilalţi.

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
8 Inteligenţa artificială

transformările materialului genetic realizate în procesul evoluţiei sunt de tipul mutaţiilor,


încrucişărilor (recombinărilor). Aceste transformări permit crearea unor noi informaţii genetice
(noi cromozomi), ce nu se regăsesc la părinţii biologici.
evoluţia naturală nu are memorie.

Pe baza acestor caracteristici, J. Holland a definit algoritmul clasic de calcul genetic, prin care a
modelat funcţionalitatea unui sistem de prelucrare genetică a informaţiei.

d. Metode şi tehnici generale

Reprezintă metode şi tehnici preluate din alte domenii, precum: cercetări operaţionale, matematică
etc. Sunt considerate generale deoarece, pe de o parte, sunt utilizate şi în alte domenii, în afara
inteligenţei artificiale şi, pe de altă parte, sunt aplicate şi în mai multe domenii ale inteligenţei
artificiale. Unele dintre metodele specifice inteligenţei artificiale au fost definite plecând de la aceste
metode generale, putând fi considerate chiar variante ale acestora.

Cele mai importante metode şi tehnici generale de rezolvare a problemelor, utilizate în cadrul
inteligenţei artificiale sunt:
metodele directe de rezolvare a problemelor (pe bază de algoritm);
metodele indirecte de rezolvare a problemelor.

Metodele directe sunt folosite în cadrul inteligenţei artificiale în special împreună cu alte metode şi
tehnici, generale sau specifice.

Metodele indirecte sunt aplicate, de asemenea în combinaţie cu alte metode.Metodele indirecte


utilizate în cadrul inteligenţei artificiale sunt:
căutarea soluţiilor;
descompunerea problemelor.
Metodele şi tehnicile generale de rezolvare a problemelor utilizate în cadrul inteligenţei artificiale se
bazează pe calculul simbolic. Datorită faptului că performanţele acestor metode şi tehnici sunt mai
scăzute decât cele specifice inteligenţei artificiale ele au fost denumite metode şi tehnici "slabe" de
calcul simbolic.

e. Metode şi tehnici specifice

Reprezintă metode şi tehnici care au fost definite şi aplicate pentru prima dată în cadrul inteligenţei
artificiale, chiar dacă au început să fie utilizate şi în alte domenii. Constituie cele mai importante
metode şi tehnici de lucru utilizate în inteligenţa artificială, pentru achiziţionarea, reprezentarea şi
utilizarea cunoştinţelor, având la bază atât pe calculul simbolic, cât şi pe cel neuronal şi genetic.

Metodele şi tehnicile specifice inteligenţei artificiale bazate pe calcul simbolic sunt reprezentate de:
metode şi tehnici bazate pe logica predicatelor de ordinul întâi;
metode şi tehnici bazate pe reguli de producţie;
metode şi tehnici bazate pe obiecte structurate şi grafuri de cunoştinţe.

Aceste metode şi tehnici mai sunt denumite şi metode şi tehnici "tari" de calcul simbolic.

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

Capitolul 2.
Metode generale de rezolvare a problemelor utilizate în inteligenţa
artificială; Reprezentarea şi utilizarea cunoştinţelor utilizând calculul
predicatelor de ordinul I

2.1 Metode directe de rezolvare a problemelor

Metodele directe sunt utilizate în cadrul sistemelor de inteligenţă artificială de regulă în combinaţie cu
alte metode şi tehnici, atunci când în anumite etape ale procesului de rezolvare sau pentru anumite
componente ale problemei se cunoaşte modul de rezolvare. Metodele directe presupun definirea unui
algoritm de rezolvare a problemei, programarea acestui algoritm cu ajutorul unui limbaj de
programare şi executarea programului, în fapt executarea algoritmului (figura 2.1).

Date de Algoritm
Reprezentarea intrare
problemei şi a modului
de rezolvare

Rezolvarea
Executarea algoritmului
problemei

Rezultate

Fig. 2.1. – Rezolvarea prin metode directe a problemelor

2.2 Metode indirecte de rezolvare a problemelor. Caracterizare generală

În etapa de reprezentare a problemei şi a posibilităţilor de rezolvare formularea algoritmului de


prelucrare este înlocuită prin definirea unui ansamblu de operatori şi a unei strategii de control, ce are
sarcina de a genera structura de control a prelucrărilor. Se asigură astfel un transfer de sarcini de la om
spre maşină, în sensul că sistemul de rezolvare are sarcina nu numai de a executa algoritmul de
prelucrare, ci şi de a genera acest algoritm (figura 2.2).
Date de Operatori Strategie de
Reprezentarea intrare (transformări) control
problemei şi a modului
de rezolvare

Rezolvarea
problemei Generarea şi executarea algoritmului

Rezultate Explicaţii

Fig. 2.2. Rezolvarea problemelor prin metode indirecte

Metodele indirecte de rezolvare permit depăşirea restricţiei de a lucra cu un ansamblu fix de date de
intrare, întrucât algoritmul de prelucrare va fi generat în raport de datele disponibile. Datele de intrare
trebuie să prezinte o soluţie de structurare cât mai flexibilă, care să favorizeze atât o variabilitate a

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
10 Inteligenţa artificială

situaţiilor la intrare, cât şi o prelucrare prin diferite tipuri de operatori (de modificare sau de
descompunere).

Operatorii sunt definiţi în manieră modulară, pentru a fi uşor de aplicat şi de întreţinut. Atunci când
setul de operatori conţine numai operatori de modificare a caracteristicilor (atributelor) problemei,
metodele indirecte sunt de tipul metodelor de căutare a soluţiilor. Dacă setul de operatori conţine
numai operatori de descompunere rezolvarea problemei este realizată prin metoda descompunerii.
Uzual, descompunerea este utilizată împreună cu alte metode, în special de căutare a soluţiilor, caz în
care setul de operatori conţine mai multe tipuri de transformări.

2.3 Metode şi tehnici de căutare a soluţiilor

2.3.1 Noţiuni generale

Problema este definită cu ajutorul noţiunii de stare. Structura de date prin care se realizează descrierea
stării problemei diferă, în raport de complexitatea problemei, de la structuri simple la modele
complexe de organizare a datelor în baze de date.

Totalitatea stărilor în care se poate afla problema poartă numele de spaţiul stărilor. Acesta reprezintă
spaţiul în care se realizează căutarea soluţiilor, constituind deci spaţiul de căutare. Problemele reale,
chiar simple, prezintă o dimensiune ridicată a spaţiului stărilor, astfel încât o analiză exhaustivă a
acestui spaţiu într-un timp acceptabil nu este posibilă. Din această cauză se recurge la o căutare
limitată, în anumite zone ale spaţiului stărilor, ceea ce face posibilă aplicarea metodelor de căutare a
soluţiilor chiar şi pentru problemele cu un spaţiu al stărilor infinit. În procesul de rezolvare a
problemei sunt generate (explicitate) diferite stări ale problemei, prin aplicarea de operatori asupra
stărilor deja explicitate. Nu toate stările din cadrul spaţiului stărilor sunt generate într-un proces de
căutare, cea mai mare parte dintre acestea putând rămâne în formă implicită.

Partea din spaţiul stărilor problemei explicitată în procesul de căutare a soluţiilor este reprezentată cu
ajutorul unui graf orientat, denumit graf de căutare. Un nod al grafului reprezintă o stare a problemei
sau a unei componente a acesteia, iar un arc semnifică trecerea problemei dintr-o stare în alta, printr-o
transformare a problemei realizată prin aplicarea unui operator. Dacă operatorii nu pot fi de tip
descompunere, atunci graful de căutare se consideră a fi graf OR, adică un graf în care nodurile sunt
asociate stărilor problemei în totalitatea sa, nu şi diferitelor componente ale acesteia. Atunci când un
arc al grafului de căutare poate avea semnificaţia unei descompuneri a problemei în subprobleme,
graful poartă numele de graf AND/OR. Într-un graf AND/OR nodurile pot reprezenta stări ale
problemei, dar şi stări ale unor componente ale problemei, tratate independent, ca probleme de sine
stătătoare.

În cadrul spaţiului stărilor problemei pot fi puse în evidenţă trei categorii de stări şi anume: starea
iniţială; stări intermediare şi stări scop. Starea iniţială reprezintă starea în care se află problema la
momentul demarării procesului de rezolvare. Este o stare care figurează întotdeauna ca stare explicită,
care serveşte la iniţializarea grafului de căutare şi care este reprezentată prin datelele de intrare.
Stările scop reprezintă stările în care se doreşte a fi adusă problema, stări pentru care problema se
poate considera drept rezolvată. Stările scop pot fi cunoscute complet la momentul iniţierii procesului
de rezolvare, adică pot reprezenta stări explicite sau pot fi definite prin proprietăţi generale,
constituind deci stări în formă implicită. Rezolvarea problemei presupune identificarea transformărilor
prin care problema să fi adusă din starea iniţială într-una din stările scop. Procesul de rezolvare
impune explicitarea unor stări intermediare, prin care trece problema până la atingerea stării scop.

În termenii grafului de căutare, rezolvarea problemei reprezintă un proces de determinare a unui drum
soluţie, adică a unui drum care să lege nodul asociat stării iniţiale de unul dintre nodurile scop.
Transformările pot avea asociate diferite măsuri, de tip: cost, câştig, etc. drept mărimi care să
caracterizeze procesul de transformare a problemei. În aceste condiţii, rezolvarea problemei poate
urmări găsirea unui drum soluţie optimal.Identificarea unui drum soluţie reprezintă un proces de

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

natură constructivistă, în sensul că drumul nu este identificat într-un graf complet definit anterior, ci
este determinat la momentul construirii grafului, fiind generat odată cu graful din care face parte.
Această viziune constructivistă particularizează abordările din domeniul inteligenţei artificiale de cele
din alte domenii, precum cercetările operaţionale.

Generarea stărilor în procesul de rezolvare a problemei se realizează prin aplicarea de transformări,


descrise cu ajutorul operatorilor. Un operator defineşte operaţiile de efectuat asupra stărilor
problemei. Aceste operaţii nu au sens decât pentru anumite stări ale problemei, de aceea fiecare
operator are asociată o parte de precondiţie, ce descrie condiţiile de aplicare a operatorului.
Precondiţia unui operator este formulată în termenii unor elemente de stare, astfel încât pentru fiecare
stare explicitată a problemei se pot determina operatorii aplicabili acelei stări. Numărul operatorilor
aplicabili unei stări trebuie să fie finit, altfel spus graful de căutare trebuie să fie local finit.

Aplicarea unui operator asupra unei stări poartă numele de prelucrare a stării sau de prelucrare a
nodului, în termenii grafului de căutare. Prelucrarea unui nod determină generarea de succesori ai
acelui nod, motiv pentru care este denumită şi expandarea nodului. Prelucrarea poate fi totală, atunci
când sunt generaţi toţi succesorii nodului sau parţială, atunci când sunt generaţi numai o parte a
succesorilor nodului respectiv. Nodurile complet prelucrate sunt denumite şi noduri închise, în timp
ce nodurile prelucrate parţial poartă numele de noduri deschise. Ansamblul nodurilor deschise aflate
la un moment dat în graful de căutare poartă numele de frontiera spaţiului de căutare. Operatorii
permit generarea unor noi noduri în cadrul grafului de căutare, deci extinderea acestui graf. În
termenii spaţiului stărilor, operatorii asigură deplasarea în acest spaţiu, de la o stare la o altă stare, în
vederea atingerii unei stări scop.

Structura generică a unui agent simplu de rezolvare a problemelor prin căutare este următoarea:
function AGENT-SIMPLU-REZOLVARE-PROBLEME-PRIN-CĂUTARE (perceptii) returns
actiune
inputs: percepţii
persistent: d, listă de acţiuni, iniţial vidă
stare
g, stare scop, iniţial vidă
problemă
stare ACTUALIZARE-STARE(stare, perceptii)
if d este vidă then
g FORMULEAZA-SCOP(stare)
problemă FORMULEAZA-PROBLEMA(stare, g)
d CĂUTARE(problemă)
if d = failure then return a null action
endif
acţiune CAP-LISTA(d, stare)
d REST-LISTA(d, stare)
return actiune

2.3.2 Strategii de căutare a soluţiilor

Procesul de căutare a soluţiilor poate fi descris cu ajutorul procedurii CĂUTARE, prezentată în


continuare.

Procedura CĂUTARE:
function CĂUTARE(problemă)
DATA starea iniţială a problemei
while DATA not (conditia de terminare), do:
begin
selectează un operator O, din setul operatorilor aplicabili lui DATA

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
12 Inteligenţa artificială

DATA O(DATA), unde O(DATA) reprezintă rezultatul aplicării lui O la DATA


memorează O
end

Căutarea unui drum soluţie presupune deci realizarea următoarelor activităţi:


selectarea operatorului care să fie aplicat la un moment dat;
aplicarea operatorului selectat;
memorarea operatorului aplicat, pentru a putea fi formulată soluţia la problemă (drumul soluţie);
verificarea condiţiei de terminare a procesului de rezolvare a problemei.

Aceste activităţi sunt efectuate de către sistemul de control a prelucrărilor reprezentând funcţiile ale
acest sistem. Cea mai importantă activitate pe care o implică desfăşurarea unui proces de căutare a
soluţiilor este selectarea operatorului pentru realizarea deplasării în spaţiul stărilor, spre starea scop.
Selectarea operatorului reprezintă o problemă de decizie netrivială, întrucât alternativele din care
trebuie realizată alegerea sunt operatorii aplicabili tuturor nodurilor aflate pe frontiera spaţiului de
căutare. Alegerea celei mai bune alternative de continuare a căutării poate presupune prelucrarea unui
volum important de informaţii despre problemă, numite informaţii de control.

Modalitatea efectivă de realizare a activităţilor de căutare defineşte strategia de căutare aplicată de


către sistemul de control. O strategie de căutare eficientă este cea care conduce în modul cel mai
direct la starea scop, cea care permite alegerea, în fiecare moment, a celui mai potrivit operator.
Pentru a selecta cei mai buni operatori, sistemul de control trebuie să poată stabili care sunt aceştia,
utilizând o serie de informaţii de control. În lipsa acestora, selectarea este arbitrară, dar extrem de
simplă. Cu cât informaţiile pentru fundamentarea selecţiei sunt mai numeroase, cu atât cresc şi şansele
de selectare a celor mai buni operatori, dar procesul de selecţie devine mai complicat.

De regulă, la implementarea unei strategii de căutare se urmăreşte obţinerea unui compromis între:
dorinţa de a asigura o cât mai bună selecţie a operatorilor, care presupune utilizarea a cât mai
multe informaţii de control.
dorinţa de a folosi o strategie de căutare cât mai simplă, care presupune utilizarea a cât mai puţine
informaţii de control.

Clasificarea strategiilor de căutare a soluţiilor

Strategiile de căutare a soluţiilor se pot clasifica după mai multe criterii şi anume:
direcţia de căutare;
posibilitatea de reconsiderare a deciziilor de căutare;
gradul de informare a strategiei.

După direcţia urmată în rezolvarea problemei, strategiile de căutare sunt:


strategii forward (înainte). În rezolvarea problemei se pleacă de la starea iniţială spre starea scop
şi se aplică asupra stărilor operaţii directe, descrise prin aşa numiţi operatori-F. Condiţia de
terminare o reprezintă obţinerea stării scop.
strategii backward (înapoi). Se pleacă de la starea scop spre starea iniţială şi se aplică operaţii
inverse, care au ca efect producerea de stări sub-scop, operaţii descrise prin operatori-B. Condiţia
de terminare o reprezintă producerea stării iniţiale.
strategii bidirecţionale. Se pleacă pe ambele direcţii simultan, aplicându-se operatori-B şi
operatori-F. Condiţia de terminare o reprezintă obţinerea, pe cele două direcţii de înaintare, a
aceleiaşi stări.

Nu există nici o diferenţă formală între un sistem care lucrează în direcţie înainte şi unul care lucrează
în direcţie înapoi, însă această distincţie este utilă în mod practic, deoarece sunt situaţii când este mai
eficient de rezolvat o problemă într-o anumită direcţie. Să presupunem, de exemplu, că există un

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

număr mare de stări scop explicite şi o singură stare iniţială. Rezolvarea în direcţie înapoi ar putea să
nu fie eficientă, neştiind de la început care stare scop este mai apropiată de starea iniţială.

După posibilitatea reconsiderării deciziilor de căutare, strategiile sunt:


strategii irevocabile. O astfel de strategie selectează şi aplică operatorii în mod irevocabil, adică
fără posibilitatea reconsiderării ulterioare. Aparent, acest tip de strategie nu este potrivit niciodată
unui proces de căutare a soluţiei întrucât ar presupune cunoaşterea, încă de la început, a soluţiei.
În realitate, faptul că o dată aplicat un operator, nu se mai reveni asupra acestei acţiuni nu
înseamnă că acel operator era şi cel potrivit, ci înseamnă numai că aplicarea lui nu împiedică
obţinerea soluţiei. Aplicarea operatorului respectiv poate contribui la îndepărtarea de starea scop,
determinând deci o întîrziere în obţinerea soluţiei. Alegerea şi aplicarea unui anumit operator are
la baza o cunoaştere locală, parţială, despre cum se poate avansa spre soluţie din diferite stări.
Cunoaşterea soluţiei la problemă reprezintă însă o cunoaştere globală, a întregului drum de la
starea iniţială la starea scop. Să considerăm, de exemplu, o problemă de orientare turistică. O
strategie de căutare irevocabilă a unui traseu ar putea avea la bază marcajele de traseu. Acestea
permit găsirea traseului numai pe baza cunoştinţelor locale, referitoare la direcţia pe care trebuie
să se continue deplasarea spre ţinta finală. Utilizarea unei hărţi a regiunii, în care apare traseul
căutat înseamnă cunoaşterea soluţiei, caz în care nu se mai pune problema căutării soluţiei şi deci
a utilizării unei anumite strategii de căutare
strategii tentative. Sunt strategii în care se pot reconsidera selecţiile de operatori, atunci când este
detectat sau anticipat eşecul. Eşecul reprezintă elementul central, în raport de care este dirijată
căutarea.

După gradul de informare a strategiei (volumul informaţiilor de control), strategiile de căutare sunt:
strategii de căutare neinformate (oarbe). Strategiile neinformate nu au suport pentru limitarea
căutării, respectiv pentru focalizarea acesteia în anumite zone ale spaţiului stărilor problemei. Din
această cauză, strategiile neinformate sunt implementate uzual sub forma unor strategii
exhaustive. Dificultatea explicitării întregului spaţiu de căutare face ca strategiile neinformate să
reprezinte mai mult modele teoretice ale strategiilor de căutare a soluţiilor. Cele mai importante
strategii neinformate sunt strategiile de căutare în adâncime, cu varianta lor backtracking şi
strategiile de căutare pe nivel.
strategii de căutare informate, cu diverse grade şi tipuri de informare. Strategiile informate sunt
strategii cu limitarea căutării, în zone pentru care, prin prelucrarea informaţiilor de control se
anticipează existenţa unui drum soluţie. Diferenţierea strategiilor informate se realizează, de
regulă, în raport de tipul informaţiilor de control. Din acest punct de vedere, strategiile informate
sunt: strategii bazate pe informaţie deterministă şi strategii bazate pe informaţii euristice.

2.3.3 Strategii neinformate de căutare a soluţiilor

Cele mai cunoscute strategii neinformate de căutare a soluţiilor sunt:


– strategia de căutare pe nivel (breadth-first)
– strategia de căutare în adâncime (depth-first)

Strategiile de căutare pe nivel asigură întâi expandarea stării rădăcină, apoi a tuturor stărilor
succesoare ale stării rădăcină ş.a.m.d. În general, toate stările de adâncime h sunt expandate înaintea
oricărei stări de adâncime h+1. Căutarea pe nivel reprezintă un mod sistematic de parcurgere a
spaţiului soluţiilor, întrucât ia în considerare toate drumurile de lungime 1, apoi toate drumurile de
lungime 2 ş.a.m.d. Un parametru important al strategiei care determină eficacitatea căutării este
factorul de ramificare. Considerând că fiecare stare are r succesori, atunci factorul de ramificare în
procesul de căutare este b. Numărul de noduri generate la primul nivel este r, la nivel 2 este r2, la
nivel 3 r3, ş.a.m.d. Presupunând că drumul soluţie are lungimea k, numărul de stări generate în
procesul de căutare a soluţiei prin utilizarea acestui tip de strategie înainte de identificarea soluţiei
este: 1+r+r2+r3+…+rk.

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
14 Inteligenţa artificială

Strategiile de căutare în adâncime expandează întotdeauna una dintre stările aflată la cea mai mare
adâncime (nivel) în spaţiul de căutare. Din această cauză, acest tip de strategie nu se recomandă în
cazul spaţiilor de căutare de adâncimi mari. Strategiile de căutare în adâncime au o serie de variante,
precum strategii cu limitarea adâncimii, strategii iterative etc. care limitează efectele negative ale
acestui tip de căutare.

Compararea performanţelor strategiilor de căutare neinformate

Caracteristicile după care sunt evaluate performanţele strategiilor de căutare neinformate sunt
următoarele:
– Completitudinea: strategia garantează găsirea unei soluţii atunci când există soluţie;
– Complexitatea în ceea ce priveşte timpul de căutare: cât timp durează găsirea unei soluţii;
– Complexitatea în ceea ce priveşte memoria: de câtă memorie este nevoie pentru găsirea unei
soluţii);
– Optimalitatea: startegia garantează găsirea soluţiei optime atunci când există soluţie.

Tabelul 2.1 prezintă rezultatele comparării performanţelor strategiilor neinformate de căutare a


soluţiilor, considerând r drept factor de ramificare, k adâncimea soluţiei şi m este adâncimea maximă
a arborelui de căutare.
Tabel 2.1 Evaluarea strategiilor neinformate de căutare a soluţiilor
Caracteristică Pe nivel În adâncime Bidirectională
(Breadth-first) (Depth-first)
Timp rk rm rk/2
k
Memorie r b*m rk/2
Optimalitate DA DA DA
Competitudine DA DA DA

2.3.4 Strategii euristice

Reprezintă strategii tentative de căutare care utilizează informaţii de control de natură euristică.
Utilizarea informaţiilor euristice se realizează prin intermediul funcţiei de evaluare a nodurilor,
denumită şi funcţie de preferinţă, pe baza căreia sunt ordonate nodurile de pe frontiera spaţiului de
căutare. Pentru un anumit nod, valoarea funcţiei de evaluare exprimă perspectiva acelui nod de a se
afla pe drumul soluţie.

Informaţiile de natură euristică reprezintă informaţii ce permit simplificarea procesului de căutare, în


condiţiile în care oferă, de cele mai multe ori, posibilitatea găsirii unei soluţii acceptabile. Totodată,
informaţiile euristice reprezintă informaţii cu caracter preponderent intuitiv, fără o justificare
riguroasă. Caracterul aparent impredictibil al strategiilor bazate pe informaţii euristice nu se datorează
naturii oarecum deosebite a acestor informaţii, ci unui anumit mod de utilizare a lor. În condiţiile în
care sunt respectate o serie de cerinţe în utilizarea informaţiilor de natură euristică, strategiile au un
comportament perfect predictibil, prezentând o serie de proprietăţi garantate.
La construirea funcţiei de evaluare s-au propus diferite mărimi, precum:
probabilitatea ca nodul să fie pe drumul soluţie;
distanta metrică dintre nod şi unul din nodurile scop;
punctajul acordat nodului;
costul drumui optimal de la nodul iniţial la un nod scop, drum constrâns să treacă prin nodul
respectiv.

Proprietăţile strategiilor euristice

Dintre cele mai importante proprietăţi ale strategiilor euristice se pot menţiona:
completitudinea. O strategie euristică este completă dacă garantează găsirea unei soluţii, atunci
când problema are soluţie.

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

admisibilitatea. O strategie euristică este admisibilă dacă garanteză găsirea soluţiei optime, atunci
când problema are soluţie.
dominanţa. O strategie euristică S1 domină o strategie euristică S2, dacă orice nod generat prin S1
este de asemenea generat de S2. Strategia S1 domină S2 în sensul asigurării unui efort de căutare
mai mic.
optimalitatea. O strategie euristică este optimă în raport de o clasă de strategii euristice dacă
domină toate strategiile ce aparţin acelei clase.
consistenţa. O strategie euristică este consistentă dacă garantează faptul că un nod nu va fi
prelucrat în mod repetat.

Proprietăţile strategiilor euristice sunt garantate în raport de un anumit mod de utilizare a informaţiilor
euristice, altfel spus în raport de modul de definire a funcţiei de evaluare a nodurilor. În raport de
forma funcţiei de evaluare, strategiile euristice se pot clasifica în mai multe clase, denumite
specializări ale strategiilor euristice.

Strategii euristice specializate. Strategii A şi A*

Există mai multe clase de strategii euristice, denumite generic strategii A, A*, Z, Z*, BF, BF* etc. În
cele ce urmează, vor fi prezentate, pe scurt, strategiile A şi A*, care pot fi considerate drept cele mai
utilizate strategii euristice.

O strategie A reprezintă o strategie euristică care utilizează drept funcţie de evaluare de forma:
f ( n) c ( n) e ( n) , n Spaţiul stărilor
unde: n reprezintă o stare din spaţiul stărilor, f ( n) reprezintă costul drumului soluţie optimal,
constrâns să treacă prin n, c ( n) este costul drumului optimal de la no, starea iniţială, la n, iar
e ( n) reprezintă costul drumului optimal de la n la nf. c* reprezintă o funcţie cost, iar e* o funcţie
euristică, pe scurt euristică. Atât f*, cât şi c* şi e* reprezintă forme teoretice ale funcţiilor, extrem de
greu de aplicat în mod practic. Calculul valorilor funcţiei f* nu se poate realiza fără cunoaşterea
tuturor drumurilor din graful de căutare, deci fără generarea integrală a spaţiului stărilor. Ori tocmai
acest lucru trebuie evitat, drept pentru care se folosesc estimaţii ale valorilor din f*.

În mod efectiv se lucrează cu o funcţie de evaluare de forma:


f (n) c(n) e(n) , n Spaţiul stărilor
unde c(n) reprezintă costul drumului efectiv parcurs de la nodul iniţial la nodul n. Este valoarea
funcţiei cost folosită în cadrul strategiei de căutare prin ramificare şi limitare. În calcularea acestei
componente a funcţiei de evaluare se folosesc informaţii certe, vizând etape deja parcurse ale
procesului de căutare şi deci perfect cunoscute. De aceea se numeşte componenta deterministă sau
funcţia deterministă.

De regulă, funcţia c este o funcţie cost aditivă, în sensul că:


c( n' ) c( n) ca(n, n' ) , n' Succ(n), n Spaţiul stărilor - NT
unde: Succ(n) reprezintă mulţimea succesorilor lui n, NT reprezintă mulţimea nodurilor fără succesori
(noduri terminale), iar "ca" reprezintă costul arcului de la n la n'. Prin e(n) se exprimă diferenţa dintre
starea reprezentată de nodul n şi una din stările scop. Are rolul de a completa funcţia de evaluare cu
elementul cost aferent părţii din drumul solutie care n-a fost încă parcursă şi nici nu este cunoscută.
În calcularea acestei componente nu se pot folosi decât informaţii euristice, informaţii cu caracter
intuitiv, care depind foarte puternic de problemă şi care pot fi mai mult sau mai putin formalizate.
Din această cauză, e(n) este denumită componenta euristică sau funcţia euristică.

Valorile funcţiei de evaluare sunt calculate pentru toate nodurile de pe frontiera spaţiului de căutare,
selectându-se nodul cu cea mai bună evaluare, respectiv nodul cu valoarea minimă a funcţiei de
evaluare.

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
16 Inteligenţa artificială

Proprietăţile strategiilor A

Definiţie. O funcţie euristică, e este consistentă dacă satisface relaţia:


e( n) k( n, n' ) e( n' ) , n,n' Spaţiul stărilor
unde: k(n,n') reprezintă costul drumului optimal de la n la n'. Fie Q* costul drumului soluţie optimal.
Conform modului de definire a funcţiei f, avem:
Q f ( n) c ( n) e ( n) , pentru n drum soluţie optimal
şi
Q f ( n) c ( n) e ( n) , pentru n drum soluţie optimal
Rezultă că:
Q f ( n) c ( n) e ( n) (1)
Putem considera:
Q e ( n ) , n = starea iniţială
0 0
c ( n) k( n , n)
0
Relaţia 3.1 se poate rescrie sub forma:
e ( n ) k( n , n) e ( n) (2)
0 0
Înlocuind n şi n cu n şi respectiv n' relaţia 3.2 se poate rescrie sub forma:
0
e ( n) k ( n, n' ) e ( n' ) (3)
Rezultă deci că o funcţie euristică e este consistentă dacă păstrează proprietăţile funcţiei teoretice, e*.

Proprietate. O strategie A este consistentă dacă utilizează o funcţie euristică consistentă.

Definiţie. O funcţie euristică, e este monotonă dacă satisface relaţia:


e( n) ca( n, n' ) e( n' ) , n' Succ(n)

Teoremă. Monotonia şi consistenţa reprezintă proprietăţi echivalente ale unei funcţii euristice.

Definiţie. O funcţie euristică, e este admisibilă dacă satisface relaţia:


e( n) e ( n) , n Spaţiul stărilor

Teoremă. Orice euristică consistentă este admisibilă.

Proprietate. O strategie A este admisibilă dacă utilizează o funcţie euristică admisibilă. O strategie A
admisibilă poartă numele de strategie A*.
În problema deplasării containerelor, de exemplu, funcţia de evaluare:
f(n) = d(n) + w(n)
defineste o strategie A*, întrucât:
e( n) w ( n) e ( n)
unde: e*(n) reprezintă numărul de paşi până la starea scop

Definiţie. O strategie A1* este mai informată decât o strategie A2* dacă:
e ( n) e ( n) , n Spaţiul stărilor
1 2

Proprietate. O strategie A1* domină o strategie A2* dacă A1* este mai informată decât A2*.

O strategie mai informată are proprietatea de a determina expandarea a mai puţine noduri în procesul
căutării soluţiei faţă de o strategie mai puţin informată. Astfel, prin creşterea informării strategiei se

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

poate obţine scăderea efortului de căutare. Peste limita e*(n), creşterea informării poate duce în
continuare la o scădere a efortului (costului) căutarii, dar nu se mai garantează găsirea soluţiei
optimale, deci costul soluţiei poate creşte.

Analiza performanţelor strategiilor A şi A*. Relaxarea proprietăţii de admisibilitate

La o strategie de căutare se urmăreşte minimizarea combinaţiei dintre costul soluţiei şi costul căutării.
Presupunem că am determinat curbele CostC (costul căutării) şi CostS (costul soluţiei) şi că există
posibilitatea combinării lor prin însumare. Curbele CostC şi CostS prezintă variaţii în funcţie de
problema concretă rezolvată. Din această cauză trebuie să se lucreze cu ajutorul unor curbe ale
costurilor medii, calculate pentru ansamblul problemelor care pot fi întâlnite şi rezolvate cu ajutorul
acelei strategii. Se obişnuieşte ca o strategie A să fie caracterizată prin nivelul optimal al combinaţiei
dintre cost soluţiei şi costul căutării, adică prin valoarea Copt. Se spune despre o strategie de căutare
că are o putere euristică cu atât mai mare cu cât Copt este mai scăzut (figura 2.3).
CostS + CostC
Costur
i
Copt

CostS

Q*

CostC

e*(n) eopt(n) e(n)

Fig. 2.3. Performanta strategiilor de cautare

Altfel spus, fiind date două strategii de căutare, C1 şi C2, cu Copt1 şi Copt2, care satisfac relaţia:
Copt Copt
1 2
spunem că strategia de căutare C1 are mai multă putere euristică decât strategia C2.

Având în vedere modul în care a fost definit Copt putem afirma că puterea euristică a unei strategii de
căutare depinde de:
costul soluţiei;
costul căutării, care depinde la rândul său de numărul de noduri expandate în timpul căutării
soluţiei şi de volumul calculelor necesare pentru calcularea componentei euristice a funcţiei de
evaluare.

Puterea euristică creşte atunci când aceste costuri scad. Calcularea puterii euristice pe baza mărimii
Copt este deosebit de dificilă, dacă nu chiar imposibilă, întrucât presupune:
determinarea unor mărimi medii ale unui ansamblu de probleme greu de delimitat şi caracterizat.
cuantificarea şi combinarea mai multor categorii de costuri.

De aceea, în practică se recurge la o exprimare parţială, indirectă a puterii euristice, prin intermediul
unor indicatori, precum:
penetranţa strategiei;
factorul mediu de ramificare.

Penetranţa unei strategii exprimă gradul în care căutarea s-a focalizat spre nodul scop şi nu s-a abătut
pe direcţii inutile. Penetranţa, notată cu P, poate fi calculată cu ajutorul următoarei relaţii:

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
18 Inteligenţa artificială

L
P
T
unde: L este mărimea drumului soluţie, exprimată în număr de noduri, iar T este numărul total de
noduri generate în timpul căutării. Focalizarea maximă este exprimată prin: P = 1. Penetranţa unei
strategii depinde atât de eficienţa strategiei de căutare, cât şi de specificul problemei, fiind în raport
invers proporţional cu lungimea drumului soluţie.

Factorul de ramificare efectivă a unei strategii exprimă numărul mediu de succesori pentru fiecare
nod prelucrat prin strategia respectivă. Pentru un arbore cu adâncimea L şi cu un număr total de
noduri (mai puţin nodul iniţial) egal cu T, factorul mediu de ramificare, notat cu B, se poate calcula cu
ajutorul următoarei relaţii:
( B L 1) B
T
B 1
Atunci când B 1 căutarea este puternic focalizată spre scop, ramificarea efectivă fiind foarte
redusă. B poate fi utilizat pentru estimarea numărului de noduri care vor fi generate în căutari de
diverse lungimi.

Să presupunem, de exemplu că dorim să determinăm numărul de noduri care vor fi generate în


rezolvarea unei probleme, ce necesită 30 paşi, cu un factor de ramificare de B=1,08. Pe baza relaţiei
care există între B şi T îl putem determina pe T ca fiind egal cu 120 noduri.
De cele mai multe ori, în utilizarea strategiilor A, nu se poate accepta un efort de căutare prea mare,
chiar dacă acest efort are ca rezultat găsirea soluţiei optime. Relaxarea condiţiei de admisibilitate se
poate realiza în mai multe moduri, printre care amintim:
ponderarea fixă a componentelor funcţiei de evaluare;
ponderarea dinamică a componentelor funcţiei de evaluare.

Ponderarea fixă a componentelor se realizează în cadrul unei funcţii de evaluare de forma:


f w ( n) (1 w) c( n) w e( n) , cu w [0,1]
Pe baza acestei funcţii, pentru w = 0 se realizeză o căutare după cost, pentru w = 1/2 se obţine o
căutare după o strategie de tip A, iar pentru w = 1 se realizeză o căutare după o strategie de tip BF*.

Dacă e reprezintă o funcţie euristică admisibilă, atunci strategia care utilizează fw(n) este admisibilă
pentru w [0,1/2]. Pe intervalul (1/2, 1] nu este garantată proprietatea de admisibilitate.

Ponderarea dinamică a componentelor se realizează în cadrul unei funcţii de evaluare este de forma:
ad ( n)
f ( n ) c( n ) e( n ) (1 ) e( n )
N
unde: ad(n) reprezintă adâncimea nodului n, iar N este adâncimea estimată a nodului scop. La o
adâncime mică a nodurilor, adică în primele faze ale procesului de căutare, e(n) are o pondere de 1+ ,
încurajându-se astfel o căutare în adâncime. La adâncimi mari ale nodurilor, căutarea dobândeşte un
caracter admisibil. Dacă e(n) este o funcţie euristică admisibilă, atunci strategia care utilizează o
funcţia de evaluare de forma f (n) este o strategie -admisibilă, adică o strategie care garantează
găsirea unei soluţii care să nu se îndepărteze de soluţia optimă cu un factor mai mare de (1+ ).

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

2.4 Reprezentarea şi utilizarea cunoştinţelor utilizând calculul predicatelor de ordinul I

2.4.1 Reprezentarea cunoştinţelor utilizând limbajul formal al calculului predicatelor de


ordinul I

Sistemul formal al calculului cu predicate oferă un limbaj pentru reprezentarea cunoştinţelor. Ca


limbaj formal, calculul predicatelor de ordinul I se caracterizează prin sintaxă şi semantică.

Sintaxa limbajului formal al calculului cu predicate de ordinul I. Este definită prin următoarele:
a) Alfabet. Acesta este constituit din:
constante individuale
simboluri variabilă (variabile individuale şi variabile propoziţionale)
simboluri predicative (constante predicative şi variabile predicative). De exemplu, simbolul =
reprezintă o constantă predicativă
simboluri funcţionale (constante funcţionale şi variabile funcţionale). De exemplu, operatorii
logici şi cuantificatorii reprezintă constante funcţionale iar funcţiile reprezintă variabile
funcţionale.
simboluri delimitatoare (parantezele rotunde, virgula).
b) Reguli de obţinere a construcţiilor de limbaj. Construcţiile din limbajul format al calculului cu
predicate de ordinul I sunt:
termenii
formulele (cuvintele). Formulele pot fi: elementare (atomii) sau compuse. De exemplu: P(x, f(x),
A) este un atom, în care P este variabilă predicativă, x este variabilă individuală, f este variabila
funcţională, A este constanta individuală.

Semantica limbajului formal al calculului cu predicate de ordinul I. Este definită cu ajutorul


preceselor de interpretare a formulelor, prin confruntarea enunţurilor obţinute în urma interpretării cu
realitatea. Interpretarea formulelor reprezintă procesul de punere în corespondenţă a elementelor de la
nivelul sinactic cu elementele din domeniul reprezentat, denumit domeniul de discurs. Prin
interpretare, formulele devin afirmaţii (enunţuri) despre domeniul de discurs. Prin confruntarea
enunţurilor cu realitatea se obţin valorile de adevăr (adevărat / fals), care se asociază enunţurilor, de
fapt formulelor. Definirea adevărului / falsităţii construcţiilor de limbaj prin raportare la domeniul real
reprezintă procesul de înzestrare a limbajului cu o semantică. Asocierea valorii de adevăr la o formulă
poartă numele de evaluarea formulei.

Exemplu:
y G( x, y) S ( x, y) z (S ( x, z ) G( z, y))
Interpretarea nr.1
x,y reprezintă numere întregi
G(x,y) are semnificaţia x y
S(x,y) are semnificaţia x= y + 1
Interpretarea nr.2
x,y reprezintă persoane
G (x,y) semnifică: x este strămoşul lui y.
S (x,y) semnifică: x este părintele lui y.

În raport de rezultatele procesului de evaluare, formulele se clasifică în:


formule realizabile (consistente). Reprezintă formulele care sunt uneori adevărate. O categorie
specială de formule realizabile o reprezintă formulele valide (tautologiile), care sunt formule
întotdeauna adevărate, indiferent de interpretare)\.
formule nevalide. Reprezintă formulele uneori false. O categorie specială de formule nevalide
sunt formulele nerealizabile (inconsistente) care sunt întotdeauna false.
Prin model al unei formule se înţelege totalitatea interpretărilor în care formula este
adevărată.

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
20 Inteligenţa artificială

2.4.2 Utilizarea cunoştinţelor reprezentate cu ajutorul calculului predicatelor de ordinul I

Sistemul formal al calculului cu predicat oferă suport nu numai pentru reprezentarea cunoştinţelor, ci
şi pentru utilizarea acestora, prin asigurarea posibilităţii de derivare şi evaluare a formulelor. Astfel,
dacă se consideră că o problemă este descrisă printr-o serie de date iniţiale, reprezentate prin formule
acceptate ca adevărate (axioane), iar rezultatele la problemă reprezintă formule ce trebuie derivate şi
demonstrate ca adevărate (teoreme), atunci rezolvarea problemei respective se poate asimila unui
proces de demonstrare de teoreme.

Sistemul formal al calculului cu predicate oferă două tipuri de metode de demonstrare a teoremelor şi
anume:
a) metode semantice (Model Theory). Aceste metode arată că teorema este o consecinţă logică a
axiomelor. T este consecinţa logică a axiomelor A1, A2, ..., An dacă T este adevărat în toate
interpretările în care A1, A2, ..., An sunt adevărate. Sunt două modalităţi de a arăta acest lucru şi
anume:
A1 A2 ... An T
- se arată că este o formulă validă
A1 A2 ... An T
- se arată că este o formulă inconsistentă.

De exemplu, algoritmul lui Herbrand permite găsirea unei interpretări care poate invalida o
formulă. Dacă formula este validă, o astfel de interpretare nu există, algoritmul detectând acest lucru
într-un număr finit de paşi.

b) metode sintactice (Proof Theory). Se bazează pe utilizarea regulilor de derivare (reguli de


inferenţă). O regulă de inferenţă permite obţinerea unor formule, denumită concluzie pe baza altor
formule, denumite premize.

De exemplu, din formulele: A B şi A, regula de inferenţă MODUS PONENS permite


derivarea formulei B. Din formulele: A B şi B, regula de inferenţă MODUS TOLENS permite
derivarea formulei A.
Metodele sintactice arată că teorema este derivabilă din axiome, cu ajutorul regulilor de
inferenţă, într- abordare independentă de interpretarea formulelor.

2.4.3 Demonstratoare automate de teoreme bazate pe calculul predicatelor de ordinul I

Etapele procesului de automatizare a proceselor de demonstrare a teoremelor sunt următoarele:


1930 – Definirea algoritmului lui Herbrand
1960 – Gilmore implementează algoritmul lui Herbrand. Urmează şi alte implementări.
1965 – Robinson defineşte rezoluţia şi metoda rezolutivă de demonstrare a teoremelor (metoda
sintactică)

Problemele automatizării raţionamentelor în cadrul predicatelor:


de natură teoretică (problema decidabilităţii sistemului logic al calculului cu predicate, problema
completitudinii metodelor de demonstrare a teoremelor)
de natură practică (problema eficienţei procedurilor de demonstrare). Este aspectul CRITIC al
automatizarii raţionamentelor. Soluţiile propuse au constat în uniformizarea construcţiilor de
limbaj şi definirea unor reguli de inferenţă mai puternice.

Unificarea formulelor reprezintă operaţia de bază realizată de un demonstrator în procesul


demonstrării teoremelor. Se realizează cu ajutorul substituţiilor. Se consideră următorul exemplu: P(x)
şi P(Ion). Forma unificată a celor două formule este: P(Ion) obţinută cu ajutorul substitiţiei:

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

s Ion / x . Alt exemplu este: P( x, f ( x), g ( z ) şi P( x, f ( y), g ( y)) .Forma unificată a celor

două formule este: P( x, f ( x), g ( x)) obţinută cu ajutorul substituţiei: s x / z, x / y

Unificarea poate urmări obţinerea unui dintre urmoarele rezultate:


celei mai generale forme unificate
cele mai scurte forme unificate
Prin urmare, soluţiile de unificare a 2 sau mai multe formule pot fi multiple.

Forma clauzală a formulelor

Clauza reprezintă o formulă formată din literali (atomi sau atomi negaţi) operaţi prin disjuncţie Clauza
reprezintă deci o disjuncţie de literali.

C: L1 L2 ... Ln

Orice formulă poate fi adusă la o formă clauzală, adică poate fi exprimată sub forma unui set de
clauze (una sau mai multe clauze)

Procedura Davis – Putnam de aducere la forma clauzală a unei formule care conţine: , , , , , ,
atomi.
1) Eliminarea implicaţiei
A B se rescrie A B
2) Reducerea extensiei negaţiei
x P(x) se rescrie x P(x)
x P(x) se rescrie x P(x)
(P(x) Q(x)) se rescrie P(x) Q(x)
(P(x) Q(x) se rescrie P(x) Q(x)
3) Standardizarea variabilelor
De exemplu, x ( P( x) Q( x)) x S ( x)
se rescrie x( P( x) Q( x)) z S ( z)
4) Skolemizarea formulei (reducerea cuantificatorilor existenţiali)
Formula x P(x) se rescrie P(A), unde A este o constantă skolem
Formula x yP( x, y) se rescrie xP( x, f ( x)) , unde f este o funcţie skolem
5) Aducerea la forma prenex (forma în care formula este formată din prefix, constituit din ansamblul
cuantificatorilor, aduşi în faţa formulei şi matrice)
6) Eliminarea prefixului (se consideră cuantificare universală implicită).
7) Aducerea la forma normal conjunctivă (conjuncţie de disjuncţii)
S ( x) ( P( x) Q( x)) se rescrie (S ( x) P( x)) ( S ( x) Q( x))
8) Eliminarea conjuncţiilor (se consideră implicite)

Exemplu:
xP( x) ( y( P( y) P( f ( x, y))) y(Q( x, y) P( y)))
Se scrie în forma clauzală
P( x ) P( y) P( f ( x, y))
P( x) Q( x, g ( x))
P( x) P( g ( x))
unde g este funcţie skolem

Clauze Horn

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
22 Inteligenţa artificială

Clauzele Horn reprezintă clauze cu cel mult un atom nenegat. Sistemul PROLOG este un
demonstrator de teoreme bazat pe clauze Horn. Acest dmonstrator este integrat unui mediu de
programare, cunoscut acelaşi nume PROLOG = mediu de programare bazat pe clauze HORN.
Programul PROLOG este format dintr-un ansamblu de clauze HORN. Rularea (execuţia) unui
program presupune formularea unui scop. Prin rulare, se încearcă demonstrarea scopului pe baza
clauzelor care formează programul.

Tipuri de clauze HORN:


a) Clauze cu n atomi negaţi şi 1 atom nenegat, n 0
A1 A2 ... An An 1

( A1 A2 ... An ) An 1 Se rescrie:
A1 A2 ... An An 1
sintaxa PROLOG este
An 1 : A1 , A2 ,..., An
Această formulă constituie o regulă PROLOG.
b) Clauze cu zero atomi negaţi şi atomi nenegaţi (n = 0)
An+1 n=0
Această formulă constituie un fapt PROLOG.
c) Clauze cu n atomi negaţi şi 0 atomi nenegaţi (n 0)
A1 A2 ... An
( A1 A2 ... An )
Sintaxa PROLOG este
Goal: A1, A2, ..., An
Reprezintă un scop PROLOG.

Exemplu de program PROLOG:

M(a,b).
M(b,c).
T(a,d).
T(b,e).
P(x,y) : - M(x,y).
P(x,y) : - T (x,y).
Goal: P(a,z)
yes z = b, z = d
Goal: P(a,c)
No

Regula de inferenţă a rezoluţiei

Rezoluţia reprezintă operaţia de derivare a unei clauze rezolvent din două sau mai multe clauze
premiză (claze părinte).

a) Rezoluţia pe două clauze părinte

Două clauze pot constitui premize ale unui raţionament rezolutiv dacă prezintă o pereche de literali
complementari. Derivarea rezolutivă presupune combinarea literalilor celor două clauze, cu
excluderea literalilor complementari.

Fie C1 şi C2 cele două clauze, exprimate sub forma:


C1: L1 L2 ....... Ln
C2: L’1 L’2 ….. L’m

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

Presupunem:
L'1 L1
Clauze rezolvent CR reprezintă clauza de forma
CR: L2 .... Ln L’2 .... L’m
Să considerăm următoarele exemple de rezoluţii:

Exemplul 1
C1 : P( x) Q( x)
C 2 : P( x)
C R : Q( x)
Dacă în C1 se introduce implicaţia, exemplu poate fi rescris sub forma:
P( x) Q( x)
P( x)
Q( x)
Aceasta este derivarea prin regula MODUS PONENS a formulei Q(x)

Exemplul 2
C1 : P( x) Q( x)
C 2 : Q( x)
C R : P( x)
Se introduce implicaţia în C1 şi se obţine:
P( x) Q( x)
Q( x)
P( x)
Reprezintă un exemplu de aplicare a regulei MODUS TOLENS

Exemplul 3
C1 : P( x) Q( x)
C 2 : Q( x) S ( x)
C R : P( x) S ( x)
Se introduc implicaţiile în C1 şi C2. Se obţine:
P( x) Q( x)
Q( x) S( x)
P( x) S( x)
Reprezintă un exemplu de aplicare a regulii silogismului pentru derivare a noi formule din
calculul predicatelor.

Exemplul 4
C1 : P( x)
C 2 P( x)
C R : NIL
S-a obţinut NIL, care are semnificaţia clauzei vide (clauză fără nici un literal). Obţinerea unui
rezolvent NIL are semnificaţia detectării contradiţiei logice în setul de clauze pe care se aplică
rezoluţia.

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
24 Inteligenţa artificială

Exemplul 5
C1 : P( x) Q( x)
C 2 : Q( x) P( x) S ( x)
C R ( P) : Q( x) Q( x) S ( x)
C R (Q) : P( x) P( x) S ( x)

Exemplul 6
C1 : P( x, f ( A)) P( x, f ( y)) Q( x )
C2 : P( z, f ( A)) Q( z )
Pe aceste două clauze nu se poate aplica în mod direct rezoluţia.
Pregătirea celor două clauze se poate realiza cu ajutorul substituţiei:
s1 z/x
cele 2 clauze devin:
C1 s1 : P( z, f ( A)) P( z, f ( y )) Q( z )
C 2 s1 : P( z, f ( A)) Q( z )
C R : P( z, f ( y )) Q( z ) Q( z )
C R : P( z, f ( y )) Q( z )
Scrierea finală a clauzei CR are în vedere realizarea fuzionării celor doi literali Q(z) şi
utilizarea factorului clauzei rezolvent în locul rezolventului propriu-zis.
Pregătirea clauzelor C1 şi C2 se poate realiza şi cu ajutorul substituţiei:
s2 z / x, A / y
În acest caz aplicarea rezoluţiei asupra clauzelor C1 şi C2 este sub forma:
C1 s2 : P( z, f ( A)) Q( z )
C2 s2 : P( z, f ( A)) Q( z )
C R : Q( z )

b) Rezoluţia pe mai mult de două clauze părinte: UR – rezoluţia

UR-rezoluţia permite rezolvarea simultană a n clauze unitare (clauze formate dintr-un singur
literal) cu ajutorul unei clauze constituite din n + 1 literali.
Se consideră cele n + 1 clauze părinte:
C1 L1

C n : Ln
C n 1 : L'1 L'2 ... L' n L' n 1

C R : L' n 1 s
unde:
s = mgu (L1, ... , Ln, L’1, … , L’n)
mgu având semnificaţia “celui mai general unificator“ al formulelor menţionate ca
argumente.
Să considerăm un exemplu de UR-rezoluţie.
P( A, B)
P ( B, C )
P ( x, y ) P ( y , z ) P ( x, z )
C R : P( A, C )

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

unde s A / x, B / y , C / z

Demonstratoare automate de teoreme de tipul sistemelor rezolutive

Sistemele rezolutive reprezintă demonstratoare automate de teoreme bazate pe aplicarea sistematică a


rezoluţiei în vederea demonstrării unei teoreme (formulă scop) dintr-un ansamblu de axiome (formule
iniţiale). Există două clase de sisteme rezolutive :
sistemele de respingere rezolutivă
sistemele de saturare rezolutivă

a) Sistemele de respingere rezolutivă. Sunt sisteme care aplică metoda reducerii la absurd pe forme
clauzale. Se consideră SETB setul de clauze care rezultă din aducerea la formă clauză a setului de
formule iniţiale şi a formei negate a formulei scop.

Procedura de funcţionare a unui sistem de respingere rezolutivă


Procedura RESP – REZ :
1. SETB clauzal (FormuleIniţiale, ¬FormulăScop)
2. while not (condiţie de terminare), do:
3. begin
4. {C1 , C2 } selectare (SETB)
5. CR rezoluţie (C1, C2)
6. SETB SETB {CR}
7. end

unde:
clauzal reprezintă procedura de aducere la forma clauzală a formulelor argument
selectare reprezintă procedura de selectare a clauzelor părinte
rezoluţie reprezintă procedura de derivare rezolutivă.
Terminarea cu succes este marcată de generarea unui rezolvent NIL.

Strategii de respingere rezolutivă reprezintă modul în care sunt selectate clauzele părinte. Există mai
multe tipuri de strategii rezolutive şi anume:
strategii cu filtrare prin strămoşi
strategii bazate pe mulţime suport
strategii liniare (strategii cu intrare liniară, strategii liniare unitare etc.).

Exemplu
Să presupunem următoarele afirmaţii ca adevărate:
1 Oricine este harnic munceşte.
2 Leneşii nu muncesc.
3 Unii dintre cei leneşi sunt inteligenţi.
Să se demonstreze cu ajutorul unui sistem rezolutiv că
4 Unii dintre cei inteligenţi nu sunt harnici.

Reprezentăm enunţurile în calculul predicatelor şi obţinem următoarele formule:


Formule iniţiale:
x( H ( x) M ( x))
x ( L( x ) M ( x))
x ( L( x ) I ( x))
Formula scop:
x( I ( x) H ( x))
Formula scop negată:

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
26 Inteligenţa artificială

x( I ( x) H ( x))
unde: H(x) are semnificaţia „x este harnic”
M(x) are semnificaţia „x munceşte”
I(x) are semnificaţia „x este inteligent”
L(x) semnifică „x este leneş”
După aducerea la forma clauzală a acestor formule se obţine următorul set de clauze (SETB):
C1 : H ( x) M ( x)
C2 : L( x ) M ( x)
C3 L( A)
C4 I ( A)
C5 : I ( x) H ( x)

Se aplică o succesiune de rezoluţii astfel:


pe clauzele C4 şi C5 se aplică rezoluţia, după pregătirea clauzelor cu ajutorul s A / x . Se
obţine C6: H(A)
pe clauzele C1 şi C6, după aplicarea substituţiei s A / x se aplică rezoluţia şi se obţine C :
7
M(A)
pe clauzele C2 şi C7, după aplicarea substituţiei s A / x se aplică rezoluţia şi se obţine: C :
8
¬L(A)
pe clauzele C3 şi C8 se aplică rezoluţia şi se obţine C9 : NIL

Demonstrarea formulei scop s-a realizat prin lanţul de patru rezoluţii, care constituie paşii de
raţionament.

b) Sistemele de saturare rezolutivă. Reprezintă sisteme care aplică în mod sistematic rezoluţia pe un
set de clauze constituit din clauzele obţinute prin aducerea la formă clauzală a formulelor iniţiale.
Demonstrarea teoremei se realizează atunci când prin rezoluţie sunt generate clauzele asociate
reprezentării clauzale a formulei scop.

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

Capitolul 3.
Sisteme multi-agent; Reguli de producţie; Ontologii
3. 1. Concept
Realizarea sistemelor informatice bazate pe agenţi inteligenţi reprezintă un proces complex şi
laborios, iar rolul unei metodologii orientate agent pentru asistarea realizării acestora devine esenţial.
Având în vedere faptul că majoritatea soluţiilor alese pentru integrare folosesc paradigma orientată-
obiect şi a arhitecturilor bazate pe componente, multe dintre metodologiile orientate agent au avut ca
suport iniţial de dezvoltare o metodologie orientată obiect (MOO). Direcţiile de cercetare din ultimii
ani au pus accentul pe comunicarea şi coordonarea dintre agenţi, pe metodele de analiză şi proiectare,
pe limbajele de programare şi pe instrumentele de dezvoltare aferente.

Definiţie: metodologia ingineriei software este definită ca fiind un proces de dezvoltare de software
ce este echipat cu concepte şi instrumente dedicate pentru modelare.

Definiţie: metodologia orientată agent este definită ca fiind un proces de dezvoltare de software,
dotat cu concepte şi instrumente dedicate pentru modelare, în care elementul cheie de abstractizare
folosit este agentul, acesta apărând în toate etapele procesului de realizare.

Obiectivul unei metodologii orientate agent este acela de a oferi un suport care să conţină toate
elementele necesare dezvoltării unui sistem informatic. Suportul este necesar mai ales atunci când este
vorba de realizarea aplicaţiilor în domeniul comercial.
Multe dintre metodologiile orientate agent, cum ar fi de exemplu Gaia şi Tropos folosesc ideea de
întreprindere ce poate fi divizată în sub-organizaţii în care agenţii joacă unul sau mai multe roluri,
interacţionând unii cu alţii. Concepte cum ar fi “rolul”, “dependenţa socială” şi “regulile
organizaţionale” sunt folosite nu doar pentru a modela mediul în care rulează sistemul, ci şi pentru
realizarea sistemului în sine. Unul dintre aspectele cele mai importante pe care o metodologie
orientată agent trebuie să le dezbată este descrierea modelelor de interacţiune şi cooperare care
simulează dependenţele dintre agenţi şi rolurile pe care aceştia le au în sistem.
Fiecare metodologie trebuie să aibă un grad de abstractizare suficient de mare pentru realizarea
modelelor şi pentru a oferi suportul necesar agenţilor şi sistemelor multiagent. De aceea, doar
actualizări ale metodologiilor orientate obiect (MOO) nu sunt suficiente pentru a obţine o metodologie
orientată agent (MOA), atenţia fiind îndreptată în special spre obiect. O metodologie orientată agent
trebuie să aibă în centru agenţii, rolurile pe care aceştia le au în sistemele realizate şi interacţiunea
dintre agenţi bazată pe protocoalele determinate de rolurile acestora.

3.2. Provenienţa metodologiilor orientate agent


Dezvoltarea metodologiilor orientate agent a avut ca punct de plecare două elemente
principale. Unul este considerat a fi domeniul inteligenţei artificiale iar celălalt metodologiile
orientate obiect. Multe metodologii au o descendenţă directă din metodologiile orientate obiect (Fig.
3.1). Un exemplu îl reprezintă metodologia MaSE (Multiagent Systems Engineering) care preia
modul de folosire al cunoştinţelor şi informaţiilor de la metodologia AAII (Australian Artificial
Intelligence Institute). AAII la rândul ei a fost puternic influenţată de metodologia orientată obiect
realizată de Rumbaugh numită OMT (Object Modeling Technique).
În mod asemănător:
- metodologia FUSION a avut o influenţă foarte mare în dezvoltarea şi realizarea metodologiei
Gaia (una dintre primele metodologii MOA);
- metodologia RUP a reprezentat baza pentru ADELFE, MESSAGE şi RAP (Radical Agent-
Oriented Process) (împreună cu AOR (Agent Object Relationship));
- MESSAGE a reprezentat punctul de plecare pentru metodologia INGENIAS.

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
28 Inteligenţa artificială

Fig. 3.1 Influenţele MOO asupra MOA


Abordarea deschisă (OPEN) orientată obiect de dezvoltare a software-ului a fost extinsă semnificativ
pentru a suporta agenţi, fiind numită şi Agent OPEN. Alte două metodologii care au primit un aport
important de la metodologiile orientate obiect sunt PROMETHEUS şi PASSI. Cu toate că
PROMETHEUS nu provine direct dintr-o MOO, ea se foloseşte atunci când este posibilă adaptarea
unor diagrame şi concepte orientate obiect. În mod asemănător, metodologia PASSI foloseşte
diagrame şi concepte orientate obiect împreună cu elemente specifice sistemelor multiagent folosind
ca notaţie de bază UML.
Oarecum diferită de cele de mai sus este metodologia MAS-CommonKADS, ea fiind singura care se
bazează foarte mult pe domeniul inteligenţei artificiale, având totodată şi o influenţă minoră din partea
metodologiei OMT.

3.3 Clasificare metodologii orientate agent


Metodologiile orientate agent pot fi clasificate ţinând cont de mai multe criterii:
a) din punct de vedere al descrierii procesului de dezvoltare (ambele cazuri implică un număr
ridicat de iteraţii pentru realizarea etapelor):
metodologii care adoptă o descriere formală (exemple de astfel de metodologii sunt
ADELFE, RAP-Roadmap, MESSAGE şi INGENIAS)
metodologii care adoptă o descriere informală (exemple de astfel de motodologii sunt
Gaia, TROPOS, PROMETHEUS şi MASE).
b) din punct de vedere al abordării:
majoritatea sunt o extensie a metodologiilor orientate obiect, caz în care s-a urmărit
integrarea instrumentelor, tehnicilor şi metodelor folosite de acestea (de exemplu
modelarea protocoalelor de interacţiune, notaţiile specifice UML şi OMT, etc.)
metodologii bazate pe preluarea şi folosirea de cunoştinţe, cum este de exemplu MAS-
CommonKADS (KADS - Knowledge Acquisition and Documentation Structuring).
Aceste metodologii nu oferă o evidenţiere detaliată a proprietăţilor şi caracteristicilor
specifice mediului sistemelor multiagent.
metodologia TROPOS reprezintă o excepţie faţă de celelalte, ea având la bază mediul de
modelare pentru agenţi numit i* dezvoltat de YU [Yu E., Modeling strategic relationships
for process reengineering, Teză de doctorat, University of Toronto, Department of
Computer Science, Toronto, Canada, 1995] şi care a devenit în 2008 o parte componentă
a standardului internaţional User Requirements Notation (URN). Mediul i* are la bază
conceptul de “intenţie distribuită”, plasând în centru caracteristicile de intenţie ale
agenţilor. Mediul este folosit cu precădere pentru situaţii unde există mai multe părţi sau
unităţi autonome care au interese strategice şi care pot intra în conflict unele cu altele
c) după modul de folosire al conceptului de “rol” în dezvoltarea sistemelor multiagent. Există
metodologii:
care nu sunt orientate pe rol (non role oriented - NRO) - metodologii care nu folosesc
conceptul de rol în tot procesul de dezvoltare al SMA;
orientate pe rol (role oriented - RO), cele în care conceptul de rol are o importanţă
deosebită, reprezentând un element central al procesului de modelare. Printre
metodologiile RO se regăsesc metodologiile Gaia, MASE, Zeus şi MESSAGE.

d) din punct de vedere al identificării rolului există trei tipuri de abordări:


orientate pe obiective (goal oriented – GO) – unde rolurile sunt identificate pe baza
analizei obiectivelor sistemului;

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

orientate pe comportament – (behaviour oriented, BO) – unde rolurile derivă din sarcinile
şi comportamentele sistemului;
orientate pe organizaţie (organization oriented – OrO) – unde rolurile sunt identificate
folosind structura organizaţională a sistemului.

3.4. Metodologii pentru modelarea sistemelor multiagent

Cele mai importante metodologii folosite pentru realizarea aplicaţiilor bazate pe sisteme multi-agent
sunt:
1. Gaia - una dintre primele metodologii realizate. Această metodologie foloseşte analogii din cadrul
organizaţiilor reale, încercând să ofere atât o abordare tehnică pentru dezvoltator cât şi una mai puţin
tehnică pentru cei mai puţin cunoscători, oferind totodată facilităţi pentru ca cele două categorii să
poată interacţiona. Metodologia prezintă o abordare secvenţială a dezvoltării de software (Figura 3.2),
conţinând etapele de colectare a cerinţelor, analiză, proiectare şi implementare. În cadrul sistemului
SmArt (Semantic Agreement) este realizat un acord automat folosind ontologii şi tehnologia agent.
Prin proiectarea agenţilor folosind Gaia sunt puse în evidenţă facilităţile pe care aceasta le oferă.

Identificarea Cerinţe
cerinţelor

Împărţirea sistemelor
în subsisteme

Analiză
Modelul mediului

Proiectare model Proiectare model


roluri interacţiune

Regulile organizaţiei

Structura
organizaţională
Şabloane
Proiectarea organizaţionale
arhitecturii sistemului
Modelul de
Modelul rolurilor
interacţiune

Proiectarea
Modelul agentului Modelul serviciilor
detaliilor

Implementare

Figura 3.2 Etape ale metodologiei Gaia

2. TROPOS - oferă îndrumare pentru cele mai importante patru etape de dezvoltare a aplicaţiilor, fiind
una dintre cele mai complete MOA (Fig. 3.3). Prima contribuţie principală adusă de metodologie este
că a reuşit crearea unui cadru pentru modelarea obiectivelor ţinând cont de actorii, activităţile şi
resursele sistemului. TROPOS a avut ca punct de plecare limbajul de modelare i* (i star) [YU95] şi
acordă o atenţie aparte modelării cerinţelor iniţiale. Folosirea limbajului i* cu precădere în faza de
analiză şi proiectare oferă un grad de flexibilitate ridicat în special pentru cei care folosesc pentru
notaţii Agent UML. Această metodologie a făcut şi face parte din tematica unor proiecte de cercetare
europene cum ar fi SECURE CHANGE - Security Engineering for Lifelong Evolvable Systems
(2009-2012), MASTER - Managing Assurance, Security and Trust for sERvices (2008-2011),
MEnSA - Methodologies for the Engineering of complex software Systems: Agent-based approach
(2007 - 2009).
Metodologia TROPOS foloseşte conceptele de actor, scop, dependenţa actorilor de cerinţele iniţiale şi
cele ulterioare, proiectare arhitecturală şi de detaliu (Tabel 3.1). Metodologia acoperă etapele care
vizează cerinţele iniţiale şi ulterioare, proiectarea arhitecturii, proiectarea de detaliu, implementare şi
testare, integrarea agenţilor şi testarea lor, testarea sistemului, teste de acceptanţă. Artefactele produse

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
30 Inteligenţa artificială

reprezintă modelul domeniului, scopurile sistemului, o arhitectură a unui SMA, interacţiuni şi


capacităţi, codul agenţilor, teste pentru agenţi, sistem şi nivele de acceptanţă.

Fig. 3.3 Etapele metodologiei TROPOS

In Fig 3.4 este redată o comparaţie între i*, Tropos Gaia, AAII, MASE şi AUML pentru etapele
“cerinţe iniţiale”, “cerinţe ulterioare”, “proiectarea arhitecturală” şi “proiectarea de detaliu”.
Dezvoltatorii metodologiei au realizat un instrument numit Agent Oriented Modeling (TAOM4E) şi
reprezintă un plug-in pentru programul Eclipse.

Fig. 3.4 Comparaţie Gaia, Tropos, Mase

Tabel 3.1 Maparea modelelor Tropos în cadre de lucru


Modele Tropos Cadru de lucru
Nivel de abstractizare Interacţiune Informaţional Comportament
Modelarea conceptuala a Diagrama Diagrma Diagrame de
domeniului actorilor actorilor scopuri
Proiectare computationala Rafinarea
independenta de platforma diagramei de
scopuri
Implementare si proiectare Diagrama de
specifice platformei Diagrame Diagrama de
interactiune a
clase UML capacităţi
agenţilor

3. MAS–CommonKADS - la baza realizării acestei metodologii stau metodologia CommonKADS şi


metodologiile orientate obiect. Aceasta permite dezvoltatorului să realizeze sisteme multi-agent
bazându-se pe experienţa altor metodologii orientate agent şi folosind tehnici şi diagrame cunoscute şi
mai des folosite. Conceptele de bază ale metodologiei reprezintă o prelungire a tehnicilor orientate
obiect pentru conceptualizarea SMA. MAS-CommomKADS defineşte un set de modele (modelul
agentului, modelul activităţilor, modelul de expertiză, modelul de coordonare, modelul de
comunicaţie, modelul de organizare şi modelul de proiectare) care folosite împreună pot construi un

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

model pentru problema din viaţa reală ce trebuie soluţionată. În cadrul metodologiei se disting fazele:
conceptualizarea, analiza, proiectarea, dezvoltarea şi testarea (ultimele două nefiind foarte clar
reliefate de către metodologie).

4. PROMETHEUS - metodologie care din punct de vedere al domeniului inteligenţei artificiale oferă o
abordare deosebită bazată pe atingerea obiectivelor pentru agenţii inteligenţi. Aceasta este folosită în
prezent cu precădere pentru dezvoltarea sistemelor multi-agent pe platforme comerciale bazate pe
agenţi cum ar fi JACK şi Agentis. Principalele caracteristici ale acestei metodologii constau în faptul
că descriu fiecare fază şi modul în detaliu şi că acoperă întreg ciclul de realizare a sistemelor bazate
pe agenţi. De asemenea, dat fiind gradul mare de folosire al acestei metodologii, în lucrarea
“Prometheus Design Tool” (autori Padgham L., Thangarajah J., Winikoff M., 2008) este propus un
instrument de proiectare pentru SMA ce are la bază această metodologie (Figura 3.5).
Specificatii

Actiuni si
Scenarii Obiective Functionalitati
perceptii

Corelare date
si cunostinte
Diagrame de
interactiune agent
Proiectarea
arhitecturii

Descrierea
agentului
Privire de
Protocoale de ansamblu a
interactiune sistemului

Privire de Privire de
Proiectarea detaliilor

Procese ansamblu a ansamblu a


aptitudinilor agentului

Privire de
Descrierea Descrierea Descrierea
ansamblu a
planului datelor evenimentelor
aptitudinilor

Figura 3.5 Etapele metodologiei PROMETHEUS

5. PASSI (Process for Agent Societies Specification and Implementation) - este o metodologie bazată
pe codarea pas cu pas a cerinţelor cu scopul de a proiecta şi dezvolta societăţi multiagent, integrând
totodată modele şi concepte din ingineria software orientată obiect cât şi din domeniul inteligenţei
artificiale folosind notaţii UML. Metodolgia PASSI conţine o serie de modele organizate în cascadă,
iar rezultatele obţinute la testare sunt apoi folosite la intrare pentru a optimiza sistemul multiagent
(Figura 3.4).

6. ADELFE - metodologie specializată care evidenţiază agenţii cooperativi ce dispun de proprietatea


de autoorganizare şi pot crea la rândul lor sisteme emergente (Fig. 4.6). Se adresează cu precădere
proiectării sistemelor adaptive dinamice complexe. ADELFE reprezintă rezultatul unui proiect
naţional francez finanţat de RNTL (Réseau National des Technologies), proiect iniţiat în anul 2000.
ADELFE are rolul de a oferi îndrumare de-a lungul întregului proces de dezvoltare a aplicaţiilor
bazate pe sisteme multiagent adaptive oferind pe lângă metodologie următoarele: un instrument care
suportă notaţii UML şi AUML (Agent UML).

7. MASE (Multiagent Systems Engineering ) - metodologia a fost folosită iniţial pentru dezvoltarea
sistemelor, pornind de la aplicaţii pentru integrarea bazelor de date heterogene şi terminând cu sisteme
antivirus şi pentru roboţi cooperativi. Metodologia poate fi aplicată sistemelor multiagent care permit
implementări cum ar fi de exemplu pentru planificarea distribuită.

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
32 Inteligenţa artificială

Cerinţe iniţiale

Modelul sistemului de cerinţe Testarea


Descrierea cerinţelor Identificarea societăţii de
sistemului agenţilor agenţi

Specificarea Identificarea
sarcinilor rolurilor

Modelul societăţii de agenţi


Modelul de desfăşurare
Descrierea Descrierea
ontologiei protocolului Realizarea
Descrierea configurării
rolurilor

Modelul de implementare al agenţilor

Definirea structurii Descrierea


comportamentului
agenţilor agenţilor

Modelul codului Testarea


agentului
Realizarea
Refolosirea codului
codului

Figura 3.6 Modelele şi etapele metodologiei PASSI

8. RAP – Roadmap (Radical Agent-Oriented Process) - metodologia nu a fost proiectată pentru a fi


folosită neapărat la dezvoltarea SMA, ci mai degrabă la dezvoltarea sistemelor informaţionale
distribuite de mărime mare (cum ar fi arhitecturile de întreprindere, ERP-urile şi sistemele de
management pentru aprovizionare) care pot include sau care se bazează pe agenţi software. Este
adoptată filozofia MDA (Model Driven Architecture) avându-se în vedere faptul că agenţii software
executabili pot fi generaţi folosind artefactele RAP. Metodologia permite abordarea şi modelarea unei
probleme din mai multe aspecte cum ar fi cel al interacţiunii, al fluxului de informaţii şi al
comportamentului. RAP reprezintă în principiu o extensie orientată agent a RUP şi UML.

9. MESSAGE - metodologia este rezultatul unui proiect european realizat de EURESCOM (European
Institute for Research and Strategic Studies in Telecommunications) şi extinde metodologiile
orientate-obiect existente pentru aplicaţiile orientate agent. MESSAGE integrează într-o metodologie
orientată agent concepte ca organizaţie, rol, obiectiv, sarcină. De asemenea, metodologia extinde
limbajul UML prin concepte ce vizează agenţii, oferind totodată şi notaţii grafice pentru vizualizarea
lor.

10. INGENIAS metodologia are la bază principiile modelului Model-Driven Developement (MDD).
Ea oferă un suport foarte bun pentru rafinare deoarece majoritatea modelelor sale pot fi analizate la
nivel de detaliu şi pot fi extinse în cadrul etapelor de analiză şi proiectare. Această metodologie
suportă o notaţie bazată pe cinci metamodele care definesc cinci abordări şi concepte diferite pentru
SMA. Folosirea metamodelelor oferă un grad ridicat de flexibilitate şi adaptabilitate pentru elementele
componente ale metodologiei. Aceasta permite totodată celor care proiectează sistemele multiagent în
cadrul arhitecturii întreprinderii să le dezvolte şi să le modifice cu un efort minim.

11. MASSIVE (MultiAgent SystemS Iterative View Engineering) această metodologie acoperă etapele
de analiză, proiectare şi de implementare combinând diverse tehnici standard de inginerie software
cum ar fi modelarea “multiview” (Figura 3.7), tehnica “round-trip” şi tehnica schimbării iterative.
Existenţa unui model macro-proces care acoperă întregul ciclu de viaţă al dezvoltării sistemului este
folosit pentru a descrie particularităţi ale sistemului final. Actualizarea continuă în ultimii ani a
metodologiei a permis folosirea ei pentru rafinarea SMA din mai multe domenii printre care
optimizarea costurilor în domeniul transporturilor, al planificării traseelor şi al aplicaţiilor de căutare
distribuită.

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

View-ul mediului View-ul sarcinilor

View-ul rolurilor
View arhitectural

View-ul
View social
interacţiunilor

Figura 3.7 MASSIVE - modelarea multiview (sursă: [w-AGEN08])

3.5 Analiză comparativă a principalelor metodologii orientate agent


Structura cadrului comparativ este redată în Figura 3.8 şi cuprinde patru categorii de criterii (conform
literaturii de specialitate) făcându-se raportarea la primele zece metodologii:
criterii pentru procese – descriu evaluarea unei MOA pe baza modului de dezvoltare a
proceselor;
criterii pentru etape şi tehnici folosite – descriu modul de folosire a tehnicilor metodologiei
pentru a realiza fazele de dezvoltare şi pentru a produce modele sau părţi ale acestora;
criterii pentru modelare – descriu evaluarea capabilităţilor şi caracteristicilor modelelor
metodologiei;
criterii pentru capacitatea de adaptabilitate la noi cerinţe.

Cadrul de analiză şi evaluare a MOA

Criterii pentru procese Criterii pentru etape si Criterii pentru modelare Criterii pentru
tehnici folosite (şi concepte) adaptabilitate

Figura 3.8 Structura cadrului de evaluare şi analiză a MOA


a. Criterii pentru procese - descriu aplicabilitatea metodologiei, fazele procesului său de dezvoltare
şi dezvoltarea abordării urmărite de metodologie. Acestea urmăresc:

modelul ciclului de viaţă al metodologiei:


o Pentru metodologiile Gaia, TROPOS, PROMETHEUS, PASSI şi MASE modelul
ciclului de viaţă este de tip cascadă, aceasta însemnând că sunt prezente o serie de
avantaje (cum ar fi: un control total asupra etapelor (fazelor) în sensul că ele sunt
ordonate şi prin urmare sunt previzibile, prin evidenţierea clară a ariei de cuprindere a
fiecărei etape/subetape; este uşor de utilizat si de însuşit de către membrii echipelor
de analiză şi proiectare (inclusiv de cei noi cu o experienţă mai puţină); fiecare etapă
este însoţită de o documentaţie perfect structurată şi controlată; uşor de gestionat
datorită regulilor stricte ce trebuie respectate; fazele şi procesele sun terminate pe
rând fiind uşor de urmărit; util pentru proiectele în care cerinţele sunt bine clarificate
încă de la început) dar şi de dezavantaje (cum ar fi: sistemul se predă doar după
parcurgerea etapelor anterioare, ceea ce înseamnă o lungă perioadă de timp, suficient
ca beneficiarul să-şi poată schimba cerinţele iniţiale; modificarea ulterioară a
cerinţelor este dificil de realizat; produce livrabile (executabile) târziu; nu reprezintă
o abordare dinamică a sistemelor; nu este deschis schimbărilor ce pot interveni pe
parcurs).
o Ciclul de viaţă iterativ folosit de unele metodologii prezintă atât avantaje (oferă o
flexibilitate ridicată la modificările ulterioare ale cerinţelor, gestionare facilă şi o

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
34 Inteligenţa artificială

planificare continuă) cât şi dezavantaje ( fazele nu se suprapun fiind rigide, variaţie


mare de costuri datorată unei planificări iniţiale neclare).
o Metodologia INGENIAS aplică modelul iterativ de tip USDP (Unified Software
Development Process), acesta fiind un model bazat pe două dimensiuni – timpul (care
include etapele ciclului de viaţă) şi conţinutul (modelele şi alte artefacte). Acest
model permite rafinarea de tip “stepwise”. De asemenea, pentru modelul USDP se
defineşte un set de livrabile ce trebuie realizate cât şi un set de activităţi care să
conducă la realizarea lor, activităţile fiind distribuite de-a lungul fazelor şi fluxurilor
de lucru. Metodologiile ADELFE, RAP şi MESSAGE folosesc un model al ciclului
de viaţă iterativ de tip RUP (Rational Unified Process). Acesta oferă un grad ridicat
de flexibilitate diferenţiindu-se de celelalte tipuri de metodologii prin faptul că:
întregul proces se desfăşoară într-o manieră atât iterativă cât şi incrementală, că
procesul de dezvoltare se ghidează după cazurile de utilizare (cazurile de utilizare
sunt asemenea unor direcţii care încep de la analiza cerinţelor până la etapa de testare
a produsului final) şi că întregul proces se adaptează la nevoile particulare ale fiecărei
companii ce dezvoltă produse software.
o Metodologia MAS-CommonKADS foloseste un model de tip spirală. Folosirea
acestui tip de model prezintă atat avantaje (posibilitatea evaluării riscurilor în diferite
momente de timp şi simplificarea operaţiunilor de evaluare a ceea ce este necesar în
etapa următoare inclusiv prin prisma costurilor, produsul software este realizat în
partea de început a cicului de viaţă, grad ridicat de flexibilitate, dezvoltare integrală a
modelului software la proiectele cu cerinte neclare, folosirea lui este indicată pentru
proiecte mari) cât şi dezavantaje (reuşita proiectului este în strânsă legătură cu faza de
analiza a riscurilor, etapa de analiza a riscurilor implică expertiză specifică de nivel
înalt, model costisitor, recomandat pentru proiecte mari, pentru o folosire adecvată
este indicat ca utilizatorii să deţină competenţe tehnice).

acoperirea ciclului de viaţă (specificarea cerinţelor, analiză, proiectare, implementare, testare,


desfăşurare/aplicare) - acest criteriu este cel mai bine îndeplinit de metodologia PASSI care
acoperă toate fazele ciclului de viaţă, de la specificarea cerinţelor până la implementare şi
desfăşurare. MASE deşi acoperă aceleaşi etape, este limitată la dezvoltarea de sisteme închise, în
care identitatea agenţilor este cunoscută, astfel că, informaţiile transmise de aceştia prezintă un
grad ridicat de încredere; deoarece nu dezvoltă elemente care să ofere arhitecturii dinamicitate
aplicabilitatea sa este redusă. Gaia, Tropos, MAS-CommonKADS, Prometheus, RAP-Roadmap,
Message acoperă într-un mod explicit (din punct de vedere arhitectural şi de detaliu) etapele de
analiză şi proiectare. Adelfe şi Ingenias acoperă şi etapa de implementare (pe lânga analiză şi
proiectare).
abordarea dezvoltării - Gaia, TROPOS, ADELFE, MASE au o abordare de tip top-down
(abordarea porneşte de la analiza elementelor de nivel înalt, cum ar fi funcţionalităţile principale,
formularea problemei şi structura organizaţională, continuând cu identificarea şi proiectarea
agenţilor pentru realizarea acestora; adepţii acestei abordări consideră că este mai bine să se
creeze şi să se realizeze din start un sistem informatic care să ţină cont de obiectivele planificate,
abordată într-o manieră globală, decât să se încerce a se integra a posteriori subsisteme
informatice independente), Passi şi Prometheus de tip bottom-up (abordarea porneşte de la
nivelul de detaliu al comportamentelor sistemului care sunt ulterior grupate pentru a forma agenţi;
adepţii acestei abordări susţin că „este mai bine să acţionezi progresiv, decât să mizezi pe faptul
că un proiect poate fi actualizat mereu la zi”), iar MAS-CommonKADS, RAP-Roadmap, Message
şi Ingenias de tip hibrid (această abordare integrează abordările top-down şi bottom-up prin
identificarea agenţilor atât pe baza obiectivelor sistemului cât şi pe baza comportamentului şi a
sarcinilor lor).
domeniul de aplicare specific - majoritatea metodologiilor se pot aplica în orice domeniu.
Excepţie fac metodologiile ADELFE (metodologie folosita cu precădere pentru realizarea
sistemelor adaptive, în special cele de intranet) şi RAP-Roadmap (folosită mai mult pentru
realizarea sistemelor informaţionale distribuite, de exemplu ERP). Metodologia GAIA este

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

limitată la sisteme de dimensiuni mici şi cu cerinţe stabile, fiind adecvată pentru modelarea de
sisteme deschise de agenţi.
natura agenţilor - TROPOS şi PROMETHEUS folosesc agenţi bazaţi pe scop (printre avantajele
prezentate de aceştia sunt intuitivitatea şi posibilitatea de descompunere funcţională bine
determinată). Gaia, MAS-CommonKADS, Passi, Message şi Mase folosesc agenţi hibrizi (dacă
agenţii au un comportament reactiv dar şi proactiv, atunci se pot implementa subsisteme separate
care să îndeplinească cele două caracteristici cerute; aceasta va conduce la implementarea
agenţilor utilizând o arhitectură cu mai multe nivele). RAP foloseşte agenţi simpli (agenţii simpli
(reactivi) acţionează conform unui mecanism de reacţie la evenimentele externe, iar deciziile lor
se bazează în întregime pe starea prezentă a mediului, fără nicio referire la trecut), ADELFE
foloseşte agenţi bazaţi pe utilitate (fiecare agent dispune de o bază de cunoştinţe care cuprinde
informaţiile necesare realizării sarcinii sale şi gestiunii interacţiunilor cu ceilalţi agenţi şi cu
mediul în care se află; agenţii au scopuri şi planuri explicite pentru a le realiza). INGENIAS
foloseşte agenţi bazaţi pe logică (pentru aceşti agenţi decizia este realizată prin deducţie logică,
iar starea lor internă este o bază de date constituită din formule în logica predicatelor de ordinul
I).
alte criterii
o mărimea sistemului multi-agent
o suport pentru verificare/testare si validare.
o gradul de dificultate în înţelegerea etapelor metodologiei
o gradul de folosire a metodologiei
o suport pentru rafinare a modelelor
o abordare din punct de vedere al dezvoltării SMA - abordarea orientată obiect (OO), si
abordarea bazată pe rol ((Role Oriented - RO) cu cele trei variante (Goal Oriented
unde rolurile sunt identificate pe baza analiziei obiectivelor sistemului, Behavior
Oriented unde rolurile sunt identificate pe baza task-urilor şi a comportamentelor
sistemului la nivel mic, Organization Oriented unde rolurile sunt bazate pe structura
organizaţională a sistemului)). Dintre metodologiile RO fac parte Gaia, Passi, MASE,
RAP-Roadmap, Zeus, Message, Ingenias. TROPOS foloseşte limbajul i* iar MAS-
CommonKADS se bazează pe cunoştinţe în dezvoltarea SMA.

b) Criterii pentru etape şi tehnici folosite: urmăresc valabilitatea şi gradul de folosire a tehnicilor
oferite de o metodologie pentru execuţia etapelor şi/sau pentru dezvoltarea modelelor. Acestea
analizează criterii precum: modelele folosite, precizarea intrărilor şi ieşirilor, tehnicile de modelare ca
uşurinţa de înţelegere şi urmărirea lor, existenţa exemplelor. Ţinând cont de aceste criterii se pot
afirma următoarele:
accesibilitatea - metodologiile Gaia, Prometheus şi Tropos sunt mai accesibile, fiind mai uşor
de folosit datorită modelelor simple şi clarităţii descrierii acestora. Folosirea metodologiilor
Mase şi RAP-Roadmap este mai dificilă deoarece unele etape nu au o descriere foarte detaliată
a tehnicilor folosite;
tehnicile de modelare - modelarea (în sens larg) reprezintă partea esenţială în orice proiect
software, mai ales în proiectele de dimensiune mare. Modelele sunt reprezentări abstracte ale
sistemului, create în etapele care preced implementarea propriu-zisă a sistemului şi anume în
partea de analiză şi specificare a cerinţelor, de proiectarea arhitecturală, respectiv de proiectarea
de detaliu;
modularitatea – folosită des în modelarea situaţiilor complexe din lumea reală. Această
proprietate implică descompunerea iterativă a sistemului în sub-sisteme, respectiv în module şi
facilitează abilităţile de adăugare, ştergere, înlocuire sau modificare de componente cu un
impact minim asupra operaţiilor, gestiunii şi securităţii sistemului. Pentru alegerea agenţilor
sunt folosite două abordări: descompunerea funcţională (abordare mai complexă, în care agenţii
încapsuleză module asignate funcţiilor) şi descompunerea fizică (mai simplă, în care agenţii
sunt utilizaţi pentru reprezentarea entităţilor fizice iar implementarea lor este mai uşor de
realizat).

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
36 Inteligenţa artificială

c) Criterii pentru modelare (şi concepte) - evaluează diversele aspecte ale modelelor, conceptelor
oferite de metodologie cât şi caracteristicile agenţilor compatibili cu acestea. Acestea urmăresc:
completitudinea şi expresivitatea – capacitatea modelelor de a reprezenta sistemul multiagent
din diferite perspective, reţinând toate aspectele necesare cum ar fi cele dinamice şi statice, cele de
la nivelul sistemului şi agentului. Criteriul este îndeplinit la nivel mediu de Gaia, Rap-Roadmap şi
Message iar la un nivel ridicat de Tropos, Prometheus, Passi şi Adelfe.
capacitate de formalizare şi precizia componentelor de notaţie – descrie calitatea definirii
sintaxelor şi semanticilor componentelor folosite în notaţii. Grad de formalizare: mediu (MAS-
CommonKADS), ridicat (Gaia, Prometheus, Passi, Adelfe, Ingenias). Toate metodologiile prezintă
precizie ridicată pentru componentele aferente notaţiilor.
modelele derivate – toate metodologiile deţin pocedee clare care permit transformarea
modelelor existente în alte modele, posibilitatea realizării unui alt model pe baza informaţiilor
parţiale despre un anumit model;
consistenţa - metodologiile deţin reguli şi îndrumări pentru a asigura o consistenţă internă (în
cadrul aceluiaşi model) cât şi una externă (între modele diferite).
complexitatea – odată cu creşterea gradului de complexitate aferent sistemelor ce trebuie să
modeleze lumea reală, este nevoie ca şi metodologiile folosite pentru realizarea lor să ofere suportul
necesare de concepte si notaţii. Pentru metodologiile analizate se poate afirma faptul că majoritatea
acestora deţin un număr suficient de mare de concepte şi notaţii pentru a modela sisteme cu un grad
ridicat de complexitate.
alte criterii :
o uşurinţa de realizare a modelelor privind autonomia,
o adaptabilitatea (posibilitatea modelelor de a descrie capacitatea de adaptabilitate a
agenţilor),
o comportament cooperativ
o capacitatea de a realiza modele privind comunicarea
o comportament reactiv
o comportament deliberativ
o redarea personalităţii (capacitatea metodologiei de a crea modele care să suporte şi să
descrie personalitatea agenţilor)
o continuitate temporală (capacitatea modelelor de a suporta şi reprezenta activitatea
continuă în timp a agenţilor)
o concurenţa (posibilitatea reprezentării procesului concurenţial existent între agenţi)
o interacţiunea utilizatorului cu computerul (capacitatea modelelor create de a reprezenta
utilizatorii umani şi interfaţa aferentă acestora)
o refolosirea modelelor.

d) Criterii pentru adaptabilitate - analizează elementele suplimentare ce pot fi adăugate unei


metodologii MOA. Elementele cuprind instrumentele software valabile pentru ontologii, agenţi şi
sistemele multiagent. Aceste criterii urmăresc:
suportul software şi metodologic – în afară de Gaia, Tropos şi MAS-CommonsKADS care
indeplinesc într-o măsură mai mică acest crieriu, toate celelalte sunt compatibile din punct de
vedere software şi metodologic cu instrumentele şi bibliotecile deja existente.
capacitatea metodologiei de a suporta sisteme deschise - sisteme care să permită
includerea/eliminarea de agenţi cu scopul de a conferi dinamicitate acestora. Cel mai bun suport
pentru acest aspect îl au metodologiile Gaia şi Adelfe;
structură dinamică – structură ce are rolul de a descrie stările pe care le poate avea un agent şi
evenimentele la trecerea sa dintr-o stare în alta. Structura dinamica descrie totodata si
interacţiunea dintre agenti/obiecte şi este focalizata pe aspecte ce se schimbă în timp.
Metodologiile Passi şi Adelfe sunt cele care oferă suportul cel mai bun pentru realizarea
sistemelor dinamice ;
agilitate şi stabilitate – capacitatea metodologiei de a oferi suport pentru agilitate și robustețe
(de exemplu, dacă metodologia surprinde procesarea normală şi prelucrarea excepțiilor, dacă
oferă tehnici pentru a analiza performanța sistemului pentru toate configurațiile sau dacă

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

furnizează tehnici pentru detectarea și recuperarea în caz de eșec). Din acest punct de vedere
metodologiile cele mai indicate sunt Prometheus, Adelfe, RAP-Roadmap;
suport pentru obiectele convenţionale - metodologia indică modul în care obiectele pot fi
folosite într-un SMA şi cum agenţii pot interacţiona cu acestea (de exemplu dacă metodologia
descrie modul în care obiectele pot fi folosite într-un MAS și cum agenții pot interfața cu aceste obiecte).
Metodologiile Prometheus, Adelfe, RAP-Roadmap, Ingenias descriu cel mai în detaliu aspect;
suport pentru agenţi mobili – capacitatea metodologiei de a oferi suport pentru
utilizarea/integrarea de agenți mobili într-un MAS (de exemplu, modelele metodologice care
răspund la întrebările care / cand / cum ar trebui să fie un agent mobil ?). Metodologia Passi
oferă cel mai bun suport pentru folosirea şi integrarea agenţilor mobili în SMA descriind unde şi
cum ar trebui folosiţi agenţii mobili ;
suport pentru ontologiile folosite în SMA - capacitatea metodologiei de a crea o ontologie şi de
a descrie proprietăţile acesteia în cadrul unui sistem multi-agent. Metodologiile care îndeplinesc
foarte bine acest criteriu sunt MAS-CommonKADS, Passi, Message.

3.6 Studiu de caz: Sistem de management al unei conferinţe

In prezentul studiu de caz este prezentată o posibilă dezvoltare a unui sistem de management pentru o
conferinţă folosind metodologia TROPOS.
a) In cadrul primei etape sunt determinate cerinţele iniţiale, fapt ce implică modelarea intenţiilor
stakeholderilor folosind scopurile în contextul cerinţelor impuse de sistemul dezvoltat. Stakeholderii
sunt reprezentaţi prin actori. Un actor poate fi un agent sau un rol. Dependenţele dintre actori sunt
modelate prin legături ce indică acele corelaţii specifice. Dependenţele pot reprezenta scopuri hard
(scopuri ce pot avea determinate gradul de satisfactie printr-un criteriu bine-definit), scopuri soft
(scopuri ce nu pot avea determinate gradul de satisfacţie printr-un criteriu bine-definit; folosite de
obicei pentru reprezentarea cerinţelor nefuncţionale; corespund de obicei scopurilor pentru calitate),
task-uri sau resurse. Metodologia sugerează identificarea răspunsurilor la următoarele întrebări:
Care sunt actorii principali?
Care sunt scopurile lor?
Cum le pot obţine?
Un actor depinde de alt actor pentru a-şi îndeplini scopurile?
Răspunsul la aceste întrebări conduce la realizarea următoarei diagrame (Fig. 3.9)

Fig. 3.9 Diagrama iniţiala a actorilor

Sunt indentificaţi:
cinci actori (agenţi): PC (Program Committee), PC Chair, Author, Reviewer şi Publisher.
şase dependenţe sunt folosite ca şi dependenţe pentru scopuri: Publish proceedings, Peer
review, Manage conference, Fix deadline, Check availability şi Publication. In cadrul
dependenţei pentru scopuri un actor depinde de altul pentru a-şi realiza socpurile;

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
38 Inteligenţa artificială

trei dependenţe pentru resurse: Submission, Review şi Assign Papers. In cadrul dependenţei
pentru resursă un actor depinde de alt actor pentru a putea folosi o resursă.

Diagrama actorilor este extinsă ţinând cont de fiecare actor. Scopurile sunt descompuse în sub-
scopuri. Sunt luate în considerare moduri alternative de a atinge scopurile. In cadrul Fig. 3.10 sunt
reprezentate diagramele pentru scopurile aferente actorilor PC şi PC Chair. Scopurile de tip soft sunt
reprezentate sub fomă de nori.

Fig. 3.10 Diagramele pentru scopuri aferente actorilor PC şi PC Chair

b) In cadrul etapei a 2- a, cea a indentificării cerinţelor ulterioare, metodologia introduce sistemul de


management al conferinţei ca fiind un actor nou care contribuie la atingerea scopurilor
stakeholderilor. Scopurile principale sunt descompuse în scopuri mai concrete până când acestea pot
fi asemănate cu nişte cerinţe. In Fig. 3.11 este redată o diagramă a actorilor extinsă pentru sistemul de
management.

Fig 3.11 Diagrama actorilor extinsă pentru sistemul de management al conferinţei

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

Rezultatele obţinute în urma analizei sunt redate în Fig. 3.12. Diagrama din Fig. 3.11 introduce
dependenţa pentru task get paper între actorii CMS System şi Author. Diagrama din Fig. 3.12
introduce task-urile accept şi reject necesare pentru atingerea scopului manage decision.

Fig. 3.12 Diagrama scopurilor pentru actorul „Sistem de management al conferinţei” (SMC)

c) Etapa a 3-a de proiectare achitecturală constă în 3 activităţi:


decompunerea şi rafinarea diagramei aferente actorului SMC ţinând cont de noii
actori ca şi rezultat al analizelor,
identificarea capabilităţilor;
trecerea de la actori la agenţi.
Un exemplu de model a etapei de proiectare arhitecturală este redat în Fig. 3.13. In acest model
actorul sistem SMC a fost transformat în actorii Conference Manager, Paper Manager, Review
Manager şi Proceedings Manager. Dependenţele pentru scopuri, task-uri şi resurse sunt de asemenea
incluse în model.

Fig. 3.13 Diagrama de scopuri rafinată pentru actorul „Sistem de management al conferinţei” (SMC)

 O extindere mai mare a modelului este redată în Fig. 3.14. Această diagramă indică scopurile
ce trebuie atinse şi task-urile ce trebuie realizate precum şi resursele ce vor fi folosite de către
actorii Conference Manager, Paper Manager, Review Manager şi Proceedings Manager.
Informaţiile identificate pentru fiecare actor oferă posibilitatea asocierii unui agent inteligent
fiecăruia.

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
40 Inteligenţa artificială

Fig. 3.14 Diagrama de scopuri rafinată pentru actorul SMC (pe baza Fig.3.13)

d) Etapa de proiectare detaliată implică specificarea comportamentului intern al agenţilor ţinând cont
de platforma pe care va fi implementat sistemul. Totodată vor fi definite şi arhitecturile agenţilor. Vor
fi realizate patru tipuri de diagrame: diagrame de capacităţi (aptitudini), diagrame de planificare,
diagrame de interacţiune între agenţi, diagrame de clase UML. Este recomandat ca întainte de
implementare, modelele obţinute folosind metodologia TROPOS să fie mapate folosind proprietăţile
agenţilor inteligenţi.

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

3.7 Reprezentarea şi utilizarea cunoştinţelor prin reguli de producţie

3.7.1 Conceptul de regulă de producţie şi de sistem bazat pe reguli de producţie

Regulile de producţie exprimă asocieri empirice între descrierile de stare ale problemei şi acţiunile de
întreprins în cazul în care problema se află într-o anumită stare. Regulile de producţie servesc la
reprezentarea cunoştinţelor de natură procedurală, sub forma unor construcţii modulare de tipul:
pattern de date prelucrări
sau sau
Dacă condiţie Atunci acţiuni
sau sau
premiză concluzie
Nu orice construcţie condiţională reprezintă o regulă de producţie, ci numai acele construcţii definite
în mod modular. Regulile formează un ansamblu pe care nu există definită nici o relaţie de ordine.
Acest ansamblu de reguli poartă numele de bază de reguli. Tratarea (executarea) activităţilor
condiţionate de premize este independentă de modul de încărcare (organizare) a bazei de reguli.

Sistemele de inteligenţă artificială bazate pe reguli sunt sisteme software constituite din:
o bază de reguli;
un ansamblu de fapte (contextul sau memoria de lucru), ce conţine descrierea problemei de
rezolvat. O faptă este de obicei reprezentată sub formă de triplete: < obiect, atribut, valoare >
sau perechi: < atribut, valoare >;
un interpretor de reguli (mecanismul de raţionament pe reguli sau mecanismul de inlănţuire a
regulilor).

3.7.2 Ciclul de bază de funcţionare a unui interpretor de reguli

Rezolvarea unei probleme cu ajutorul unui sistem bazat pe reguli presupune realizarea unor prelucrări,
ce sunt descrise în cadrul diferitelor reguli din cadrul bazei de reguli a sistemului. Secvenţa de
prelucrări, practic de reguli de producţie aplicate în vederea rezolvării unei probleme poartă numele
de linie de raţionament. Ordinea de efectuare a prelucrărilor este esenţială şi este stabilită la
momentul execuţiei, de către interpretorul de reguli. Înlănţuirea prelucrărilor, realizată de către
interpretor poate fi considerată drept o înlănţuire a regulilor ce descriu acele prelucrări.

Înlănţuirea regulilor de producţie reprezintă funcţia de bază a unui interpretor de reguli, a cărei
realizare presupune efectuarea unei secvenţe de operaţii, cunoscută sub numele de ciclu de bază de
funcţionare a interpretorului, într-o structură repetitivă de forma:

Procedura ÎnlanţuireReguli:
while not(condiţie de terminare), do:
begin
restricţionare
filtrare
ordonare şi/sau selectare
activare
end

Restricţionarea regulilor de producţie

Reprezintă procesul de determinare a unui ansamblu de reguli ce prezintă, în cadrul ciclului curent de
prelucrare a regulilor o importanţă deosebită. Această operaţie are drept scop reducerea numărului de
reguli pe care interpretorul va desfăşura în continuare operaţiile de înlănţuire. Nu întotdeauna este
posibil ca, în raport de contextul curent al prelucrărilor să se facă distincţia între regulile importante şi

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
42 Inteligenţa artificială

cele care nu prezintă relevanţă. Rezultatul acestei etape de prelucrare a regulilor poartă numele de
ansamblul regulilor de analizat.

Filtrarea regulilor de producţie

Reprezintă procesul de determinare a ansamblului de reguli de analizat a căror premiză este


satisfăcută de contextul curent de lucru. Aceste reguli formează mulţimea regulilor aplicabile,
cunoscută şi sub numele de mulţime de reguli în conflict, dat fiind faptul că ele îşi dispută şansa de a
fi aplicate în cadrul iteraţiei curente. Filtrarea regulilor este cea mai importantă operaţie de prelucrare
a regulilor de producţie, care solicită totodată şi cele mai importante resurse de calcul.

Acţiunile descrise în cadrul unei reguli de producţie nu pot fi realizate decât dacă descrierea curentă a
problemei satisface condiţionarea formulată pentru acele acţiuni. O regulă de producţie nu poate fi
deci aplicată decât dacă premiza regulii este evaluată "adevărat" în raport de contextul de lucru.
Evaluarea premizei unei reguli de producţie se realizează prin punerea în corespondenţă a acestei
premize cu contextul de lucru, operaţie cunoscută şi sub numele de verificarea concordanţei premiză-
context.

Să presupunem, de exemplu că descrierea curentă a problemei este de forma:


CONTEXT = { (Crec,0.01), (Rataşomaj, 0.10), ...}
Presupunem, de asemenea, că în cadrul ansamblului de reguli de analizat se află o regulă de forma:
R: Dacă Crec > 0.005 şi Rataşomaj < 0.15 Atunci Stareec = bună
Contextul satisface premiza regulii, deci R va fi inclusă în mulţimea de reguli aplicabile.

Să presupunem, acum un alt exemplu şi anume cel al unei reguli cu premiză ce conţine variabile. În
acest exemplu contextul este de forma:
CONTEXT={(ion, vârstă, 25),(petre, vârstă, 36),(vasile, vârstă,50),(ion, ocupaţie, economist),(petre,
ocupaţie, nu),(vasile, ocupaţie, nu), ...}
În baza de reguli există o regulă de forma:
R: Dacă (Var1, vârstă, Var2) şi (Var1, ocupaţie, nu) şi Var2 [18, 65] Atunci (Var1, ajutorsocial).
Există mai multe instanţieri posibile ale variabilelor care asigură concordanţa între premiza regulii şi
contextul de lucru, deci există mai multe moduri de aplicare a regulii şi anume:
Var1=petre, Var2=36;
Var1=vasile, Var2=50.

Verificarea concordanţei premiză-context impune deci trecerea în mod repetat prin context, pentru
fiecare condiţie din premiza fiecărei reguli din ansamblul de reguli de analizat. Se spune că avem de-
a face cu o concordanţă M-M ("mulţi la mulţi"), ce reclamă un volum semnificativ de prelucrări.
Pentru îmbunătăţirea performanţelor interpretoarelor de reguli au fost definite o serie de soluţii,
precum:
ameliorarea algoritmilor de verificare a concordanţei;
indexarea regulilor după condiţii;
relaxarea cerinţei de concordanţă strictă premiză-context şi aplicarea unor metode de concordanţă
aproximativă.

Ordonarea şi/sau selectarea regulilor de producţie

Regulile de producţie sunt ordonate în vederea aplicării sau eventual selectării pentru aplicare. În
cadrul unui ciclu de funcţionare a interpretorului, numărul regulilor aplicate în mod efectiv este redus,
chiar dacă numărul regulilor aplicabile este mare. De aceea, regulile aplicabile se află în conflict, în
sensul că îşi dispută dreptul de aplicare. Rezolvarea conflictului se bazează pe o anumită strategie de
ordonare a regulilor. Ordonarea regulilor se poate realiza după mai multe criterii, precum:
numărul condiţiilor din premiză;
numărul elementelor (variabilelor) necunoscute din premiză;

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

prioritatea regulilor;
costul regulilor;
ordinea de încărcare a regulilor în bază.

Activarea regulilor de producţie

Reprezintă procesul de realizare a acţiunilor descrise în partea de concluzie. Mai poartă numele şi de
aplicarea regulilor. Majoritatea acţiunilor determină schimbarea contextului de lucru, în sensul
adăugării sau eliminării unor elemente ale acestuia. Unele dintre acţiuni vizează în mod direct
acţiunile interpretorului, caz în care regulile poartă numele de meta-reguli.

3.7.3 Modele de înlănţuire a regulilor

Modul de funcţionare al unui interpretor de reguli este descris, în mod generic de procedura
ÎnlănţuireReguli, prezentată anterior. Există însă mari variaţii de implementare, în scopul adaptării
funcţionării interpretorului la caracteristicile problemei ce trebuie rezolvată.

În raport de modul în care sunt organizate şi realizate operaţiile de prelucrare a regulilor se pot
identifica mai multe modele de înlănţuire a regulilor de producţie, respectiv:
-înlănţuirea înainte (dirijată prin date);
-înlănţuirea înapoi (dirijată prin scop);
-înlănţuirea bidirecţională.

Modelele de bază sunt înlănţuirea înainte şi cea înapoi. Înlănţuirea bidirecţională reprezintă un model
hibrid de prelucrare a regulilor, pe baza combinării celor două modele de bază

Înlănţuirea înainte a regulilor de producţie

Prin acest model de înlănţuire a regulilor se urmăreşte expandarea la maxim a informaţiilor


disponibile. În cadrul fiecărui ciclu de înlănţuire a regulilor sunt realizate, de regulă toate acţiunile
posibil de efectuat, independent de eventualul scopul de prelucrare, formulat la descrierea problemei.

Procesul de prelucrare a regulilor este descris prin următoarea procedură:


Procedura ÎnlănţuireÎnainte:
while not(condiţie de terminare), do:
begin
filtrare
ordonare şi/sau selectare
activare
end
Această structură a ciclului de bază mai este cunoscută şi sub numele de ciclu de bază de funcţionare
cu restricţionare nulă. La rândul ei, operaţia de selectare este de cele mai multe ori absentă. Condiţia
de terminare este formulată în termenii atingerii scopului de prelucrare formulat sau, dacă nu există un
astfel de scop formulat explicit epuizării posibilităţilor de prelucrare prin reguli. Epuizarea acestor
posibilităţi se poate evidenţia prin:
-saturarea contextului de lucru;
-blocarea funcţionării interpretorului.
Înlănţuirea înainte a regulilor de producţie este utilizată în special în cadrul aplicaţiilor de
monitorizare şi de proiectare/configurare, aplicaţii pentru care generarea de cât mai multă informaţie
din cea disponibilă este o cerinţă esenţială a prelucrărilor.
Exemplu:
Se consideră următoarea bază de reguli:
(R1): If A Then L
(R2): If A&C Then G

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
44 Inteligenţa artificială

(R3): If K Then E
(R4): If E&G Then F
(R5): If C Then D
(R6): If D Then J
(R7): If F Then J
(R8): If J&D&F&L Then H
(R9): If M Then H
(R10): If N Then M
(R11): If A&B Then F
Se consideră baza de fapte BF={A,C,K} şi scopul: H. Înlănţuirea înainte a regulilor este ilustrată în
tabelul 3.1.

Tabelul 3.1 Înlănţuirea înainte a regulilor de producţie


Iteraţie Reguli Baza de fapte
- - {A, C, K}
1 {R1, R2, R3, R5} {A, C, K, L, G, D, E}
2 {R6, R4} {A, C, D, E, G, K, L, F, J}
3 {R8} {A, C, D, E, G, K, L, F, J, H}

Înlănţuirea înapoi a regulilor de producţie

Modelul de înlănţuire înapoi a regulilor impune formularea explicită a unui scop de prelucrare, a
cărui rezolvare este urmărită prin toate operaţiile pe care le efectuează interpretorul. În procesul
prelucrării, o regulă este analizată începând cu partea de concluzie, pentru a se stabili dacă are
legătură directă cu scopul de prelucrare. Dacă regula prezintă acţiuni de setare a scopului se trece la
analiza premizei, pentru verificarea concordanţei premiză-context şi eventuala aplicare a regulii.
Evaluarea premizei este forţată, în sensul că atunci când nu este posibilă o evaluare directă a acesteia
se consideră fiecare element necunoscut din premiză drept nou scop de prelucrare, pentru care se
declanşează un nou proces de înlănţuire a regulilor. Această reformulare a scopurilor constituie
elementul esenţial în procesul de înlănţuire a regulilor de producţie. Condiţia de terminare se exprimă
prin rezolvarea scopului (terminarea cu succes) şi, respectiv blocarea funcţionării interpretorului
(terminare cu eşec). Focalizarea prelucrărilor în rezolvarea unui anumit scop face ca înlănţuirea înapoi
să fie mai eficientă decât înlănţuirea înainte, în sensul unui lanţ mai scurt al prelucrărilor.
Complexitatea procesului de control a înlănţuirii regulilor de producţie este însă mai mare.

Procedura de înlănţuire înapoi a regulilor de producţie respectă modelul general, prezentat prin
procedura ÎnlănţuireReguli. Prezentarea procesului de înlănţuire înapoi a regulilor de producţie se
poate realiza cu ajutorul unui arbore de înlănţuire a regulilor, arbore AND-OR în care rădăcina
reprezintă scopul de prelucrare iniţial, iar succesiunea de reformulări a acestui scop în scopuri curente
este reflectată prin descompuneri ale nodurilor scop în subscopuri, respectiv elementele în raport de
care se realizează evaluarea premizei regulilor de rezolvare a acestor scopuri. Arborele AND-OR care
ilustrează înlănţuirea înapoi a regulilor din exemplul anterior este prezentat în figura 3.15.

Fig. 3.15 – Exemplu de arborele AND-OR pentru înlănţuirea înapoi a regulilor de producţie

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

3.8 Ontologiile şi orientările bazate pe ontologii

În trecut, termenul ontologie era utilizat numai în filozofie, dar, în prezent, el a intrat în circulaţie în
numeroase alte domenii, precum: inteligenţa artificială, lingvistica computaţională, teoria bazelor de
date. In particular, importanţa acestui termen este recunoscută în cercetările de ingineria cunoştinţelor,
modelarea calitativă, ingineria limbajelor, proiectarea bazelor de date, modelarea informaţiei,
integrarea informatiei, analiza orientată pe obiecte, stocarea şi extragerea informaţiei, managementul
cunoştinţelor, proiectarea sistemelor bazate pe agenţi. În multe cazuri, termenul „ontologie” este
utilizat în sens abstract, denotând rezultatul unor activităţi de modelare formală, precum analiza
conceptuală şi modelarea domeniilor, realizate prin metodologii standard. Din perspectivă
metodologică, principala caracteristică a aborbărilor bazate pe ontologii o reprezintă
interdisciplinaritatea, în care filozofia şi lingvistica joacă un rol fundamental în analiza structurii unei
realitati date, la un nivel înalt de generalizare şi în formularea unui vocabular strict si riguros.

Definite, de regulă, drept conceptualizări formale ale unui domeniu particular, ontologiile oferă o
platformă comună de comunicare între oameni şi sistemele de aplicaţii. O ontologie conţine, de
regulă, o ierarhie de concepte din cadrul unui domeniu şi descrie proprietăţile critice ale fiecăriu
concept printr-un triplet propoziţional subiect-predicat-obiect. Relaţiile mai complexe între concepte
pot fi descrise prin propoziţii logice adiţionale.

Domeniile curente de aplicaţii ale ontologiilor sunt: integrarea la nivel de întreprindere, prelucrarea
limbajelor naturale, medicină, inginerie mecanică, standardizarea cunoştinţelor, comerţ electronic,
sisteme de informare geografică (GIS), sisteme informaţionale legislative, sisteme informaţii
biologice. În prezent, majoritatea cunoştinţelor în format electronic pot fi interpretate doar de către
operatori umani, managementul cunoştinţelor din mediul Web. De regulă, operaţiile asupra
cunoştinţelor, precum: filtrarea, clasificarea, regăsirea, sau descoperirea nu au acurateţea necesară.
Ontologiile asigură creşterea eficienţei automatizării acestor activităţi, motiv pentru care deţin un rol
crucial în realizarea procesării, distribuirii şi reutilizării cunoştinţelor Web.

Definiţii. Mulţi termeni asociaţi ontologiilor sunt utilizaţi în comunităţi diferite, cu sensuri diferite. Să
considerăm, mai întâi, enunţul „Ontologia este o disciplină fascinantă”, apoi expresia „Ontologia lui
Aristotel”. Termenul „ontologie” are în al doilea enunţ un singur sens, referindu-se la o disciplină
caracteristică filozofiei, în timp ce în primul enunţ are mai multe interpretări, asumate de comunitatea
filozofică şi cea a inteligenţei artificiale. In sens filozofic, ne putem referi la ontologie ca la un sistem
particular de categorii care sunt importante pentru o anumită viziune asupra lumii. Astfel, acest sistem
nu va depinde de un limbaj particular. Ontologia lui Aristotel este întotdeauna aceeaşi, independent de
limbajul folosit.

În domeniul inteligenţei artificiale, ontologia se referă la un artefact, constituit dintr-un vocabular


specific utilizat pentru a descrie o anumită realitate, împreună cu un set explicit de ipoteze referitoare
la sensurile implicite ale cuvintelor din vocabular. Acest set de ipoteze iau, în mod normal, forma unei
teorii în care cuvintele din vocabular desemnează concepte şi relaţii. Prin urmare, ele îmbracă forma
unor construcţii din logica de ordinul întâi, unde cuvintele vocabularului apar ca şi nume de predicate
unare sau binare, denumite concepte şi, respectiv relaţii. Cele două sensuri ale termenului de
„ontologie” descrise mai sus sunt într-adevar înrudite, dar este nevoie să alegem unul dintre ele,
introducând un termen distinct pentru celălalt, respectiv cel de conceptualizare. Aşadar, ontologii
diferite prin vocabularul utilizat, pot partaja aceeaşi conceptualizare.

Ce este o conceptualizare?

Noţiunea de conceptualizare a fost introdusă de Genesereth şi Nilsson ca fiind o structură <D, R>,
unde: D este un domeniu, iar R reprezintă un set de relaţii relevante, definite în D. Definiţia
menţionată ridică problema referirii relaţiilor matematice simple în D, şi anume a relaţiilor de
extensie. Aceste relaţii reflectă o stare particulară a problemei: de exemplu, poate reflecta un

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
46 Inteligenţa artificială

aranjament special al pieselor pe tablă. Avem nevoie totuşi să ne concentrăm pe sensul acestor relaţii,
independent de starea lucrurilor. Prin urmare, este necesară orientarea spre semnificaţia acestor relaţii,
independent de starea problemei. De exemplu, sensul relaţiei de mai sus stă în modul in care se referă
la un anumit număr de piese în funcţie de aranjamentul lor spaţial. Aşadar, avem nevoie să vorbim de
relaţii intensionale. Le vom numi relaţii conceptuale, rezervând termenul simplu de relaţie pentru
relaţiile simple matematice. Prin urmare, se pune problema intensiei relaţiilor. Această intensie a
relaţiilor va trebui numită relaţie conceptuală, termenul de relaţie fiind în continuare rezervat relaţiilor
ordinare, matematice.

O modalitate standard de a reprezenta intensiile, şi, în consecinţă, relaţiile conceptuale este aceea de a
le privi drept funcţii definite pe universuri posibile, cu valori în mulţimi. În timp ce relaţiile simple
sunt definite într-un anumit domeniu, relaţiile conceptuale sunt definite într-un domeniu spaţiu. Deci,
dacă relaţiile sunt definite pe un anumit domeniu, relaţiile conceptuale sunt definite pe spaţiul
domeniului. Spaţiul domeniului este definit ca o structură <D,W>, unde: D este un domeniu şi W este
mulţimea maximală de stări a elementelor pentru un astfel de domeniu (denumite şi universuri
posibile). W reprezintă o serie de stări ale acestui domeniu, denumite lumi posibile. De exemplu, D
poate fi o serie de piese pe tablă şi W poate fi o serie de aranjamente spaţiale posibile ale acestor
n
piese. Fiind dat <D,W>, un spaţiu al domeniului D se defineşte o relaţie conceptuală de aritate n
n
Dn Dn
pe <D, W>, ca fiind funcţia :W -> 2 , unde: 2 reprezintă mulţimea tuturor relaţiilor n-are pe
E
D. Pentru o relaţie conceptuală generică , mulţimea = ={ (w)|w W} va conţine extensiile
admisibile ale lui .

O conceptualizarea a lui D poate fi definită ca fiind un triplet ordonat C=<D, W, R>, unde: R este o
mulţime de relaţii conceptuale pe spaţiul <D,W> al domeniului D.

Pentru fiecare univers posibil w W, structura intenţională a lui w în funcţie de C este structura
S wC R wC R wC
<D, >, unde: ={ (w)| w R} este mulţimea extensiilor în raport de w a elementelor
SC S
lui R. Vom denumi mulţimea { wC | w W} a tuturor structurilor universului intenţional ale lui
C, sau seria de mulţimi cu structură intentională ale lui C. Considerăm un limbaj logic L, cu un
vocabular V. Rearanjând definiţia standard, putem defini un model pentru L ca fiind o structură <S,I>,
unde: S=<D,R> este structura universului, iar I:V→D R este o funcţie de interpretare, care
asignează elementelor lui D simboluri constante din V, iar elementelor din R predicate peste
simbolurile din V. Aşa după cum este cunoscut, un model fixează astfel o interpretare extensională,
particulară limbajului utilizat. În mod analog, se va putea stabili o interpretare intensională, prin
intermediul unei structuri <C, I>, unde C=<D, W, R> este o conceptualizare, iar I:V→D R este o
funcţie care asignează elemente ale lui D simbolurilor constante V, iar R realizează predicate peste
simboluri din V. Această interpretare intensională se va numi angajament ontologic pentru L. Dacă
K=<C, I> este un angajament ontologic pentru L, atunci se spune că L angajează pe C prin
intermediul lui K, C fiind o conceptualizare de bază pentru K.

Fiind dat un limbaj L cu un vocabular V şi un angajament ontologic K= <C, I> pentru L, un model
<S,I> va fi compatibil cu K dacă:
(i) S SC;
(ii) Pentru fiecare constantă c, I(c)=I(c);
(iii) Există un univers w astfel încât pentru fiecare simbol predicaţional p, I mapează (transformă)
un astfel de predicat, într-o extensie admisibilă a lui I(p), deci există o relaţie conceptuală ,
astfel încât I(p) = (w) = I(p).

Mulţimea IK(L) a tuturor modelelor lui L, care sunt compatibile cu K va fi denumită mulţimea
modelelor intentionale ale lui L conform cu K. În general, nu există o modalitate de a reconstitui un
angajament ontologic al unui limbaj pornind de la o mulţime de modele intenţionale şi aceasta

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

deoarece un model nu trebuie neapărat să reflecte un univers particular. In fapt, deoarece relaţiile
relevante considerate pot să nu fie suficient de complete pentru a caracteriza starea de fapt, un model
poate descrie o situaţie comună mai multor stări de fapt. Aceasta înseamnă că este imposibilă
reconstrucţia corespondenţei dintre universuri şi relaţiile extensive stabilite de conceptualizarea de
bază. O mulţime de modele intenţionale este, în consecinţă, o caracterizare slabă a unei
conceptualizări: aceasta exclude doar interpretările absurde, fără a realiza o descriere a semnificaţiei
vocabularului.

Ce este o ontologie? Tom Gruber a definit ontologia drept o „specificare a unei conceptualizări”.
Putem clarifica rolul de specificare pe care îl deţine o ontologie, pe baza unui set de axiome logice,
desemnate pentru a determina sensul intenţional al vocabularului. Ontologia, ca mulţime de axiome
logice este răspunzătoare de semnificaţia intenţionată a vocabularului. Din punct de vedere practic,
ontologiile specifică concepte dintr-un anumit domeniu într-o manieră clară si concisă, folosind un
vocabular si o semantică fixă. Ontologiile au ca scop dezambiguarea comunicării de cunoştinţe atât în
dialogul cu operatori umani cât si cu sistemele informatice. Tot Gruber a definit proprietăţile
dezirabile ale ontologiilor, şi anume: claritatea, coerenţa, extensibilitatea, un numar minim de axiome,
independenţa de forma de reprezentare si prezentarea pe cât posibil în forma declarativă.
, R, , , A)
O ontologie cu axiome este o structură O:=(C, C R constând din
două seturi disjuncte C şi R ale căror elemente sunt numite identificatori concepte şi identificatori
relaţii
o relaţie de ordine parţială C pe C, numită ierarhia conceptelor sau taxonomia
o funcţie :R C numită semnătura ontologiei
o relaţie de ordine parţială R pe R , numită ierarhia relaţiilor unde r1 R r2 implică
(r1 ) (r2 ) ( (r1 )) ( (r2 )) 1 i (r1 )
şi i C i , pentru fiecare , i fiind proiecţia pe
componenta i
un set A de axiome logice într-un limbaj logic L.

Fiind dat un limbaj L cu angajamentul ontologic K, o ontologie pentru L este o mulţime de axiome
desemnate de maniera în care mulţimea modelelor sale aproximează cel mai bine mulţimea modelelor
lui L, ţinând cont de K. În general, nu este o sarcină simplă a se găsi axiomele necesare, astfel încât
ontologia va admite şi alte modele decât cele intenţionale. Deci, în general, nu este uşor să găseşti
seria exactă de axiome, astfel încât ontologia să admită alte modele în plus de cele intenţionale.

În consecinţă, o ontologie poate „specifica” o conceptualizare numai într-o manieră indirectă,


deoarece:
poate doar să aproximeze o mulţime de modele intenţionale;
o astfel de mulţime de modele intenţionale este doar o caracterizare slabă a unei conceptualizări.

Vom spune că o ontologie, O pentru un limbaj, L aproximează o conceptualizare C, dacă există o


angajare ontologică K = <C, I>, astfel încât modelele intenţionale ale limbajului L concordante cu K
sunt incluse in modele lui O. O ontologie angajează (determină) C, dacă:
a fost proiectată relativ la scopurile caracterizării lui C;
îl aproximează pe C. Un limbaj L angajează o ontologie O, dacă aceasta angajează unele
conceptualizări ale lui C, astfel încât O este concordantă pe C sau limbajul L determină o
ontologie O, dacă aceasta determină alte conceptualizari C, astfel încât O este „egal” cu C.

Cu această clarificare, se poate da următoarea definiţie a ontologiei, care pune în evidenţă diferenţa
dintre ontologii şi conceptualizări. O ontologie este o teorie logică, relativă la semnificaţiile
intenţionale ale unui vocabular formal, adică este un angajament ontologic al unei conceptualizări
particulare a universului. Modelele intenţionale ale limbajului logic care utilizează un astfel de

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
48 Inteligenţa artificială

vocabular sunt restricţionate la angajamentele lor ontologice. Ontologia reflectă indirect aceste
angajamente sau această angajare prin aproximarea modelor intenţionale.

Există o mare diversitate de tipuri de ontologii, atât ca formă de reprezentare, cât şi ca nivel de
formalizare. Astfel, ontologiile pot fi prezentate sub formă de taxonomii, programe logice sau reţele
semantice, la niveluri informale (în limbaj natural), semi-informale (în limbaj natural restricţionat prin
reguli suplimentare), semi-formale (în limbaj dedicat) şi formale (bazate pe logică si teoreme). În cel
mai simplu caz, ontologia descrie ierarhia de concepte legate prin relatii. In cazurile complexe,
axiome corespunzătoare sunt adăugate cu scopul de a exprima alte relaţii dintre concepte şi de a
constrânge interpretarea lor. Prin urmare, în cazul cel mai simplu, o ontologie descrie o ierarhie a
conceptelor relaţionată de subpremizele relaţiilor, în timp ce în cazurile complexe, sunt adăugate
axiome convenabile pentru a exprima alte relaţii dintre concepte şi de a restrânge intenţia de
interpretare a acestora. Ontologiile tipice sunt reprezentate ca reţele, în opoziţie cu taxonomiile care
sunt uzual reprezentate ca ierarhii (figura 3.16).

taxonomie

ontologie
Fig. 3.16 Taxonomie vs. ontologie

Ontologie inferioară vs superioară

Ontologia ţine cont de conceptualizare doar de o manieră indirectă şi, ca urmare, se pune problema
măsurii în care ontologia este în vecinătatea conceptualizării. Se poate face o clasificare a ontologiilor
având ca şi criteriu acurateţea în caracterizarea conceptualizării pe care o angajează, sau de fapt,
putem clasifica ontologiile în funcţie de acurateţea lor din caracterizarea conceptualizării la care se

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

supun. Sunt definite două posibile modalităţi, prin care o ontologie poate fi adusă într-o vecinătate
convenabilă a unei conceptualizări:
prin dezvoltarea unei axiomatizări „bogate”;
prin adoptarea unui domeniu dens şi/sau a unui set amplu de relaţii conceptuale relevante (sau a
unei serii de relaţii conceptuale relevante).

În primul caz, distanţa dintre mulţimea modelelor ontologiei şi mulţimea modelelor intenţionale este
redusă (seria de modele ontologice şi seria de modele intenţionale este redusă). In cel de-al doilea caz,
este posibilă, cel puţin în principiu, includerea în mulţimea relaţiilor conceptuale relevante a acelor
relaţii, care caracterizează starea universului, extinzând în acelaşi timp domeniul pentru a include
entităţile implicate de astfel de relaţii. O altă posibilitate de a creşte acurateţea unei ontologii constă
din a adopta logica modală, care permite exprimarea restricţiilor în universuri, sau chiar de a
concretiza universuri ca şi obiecte ordinare ale domeniului.

Creşterea acurateţei ontologiei se poate realiza prin adoptarea unui model logic care să permită
exprimarea restricţiilor din mulţime, sau doar să trateze mulţimea ca obiecte comune ale domeniului.
Bineînţeles, există un optim între ontologiile brute şi cele fine, care angajează aceeaşi conceptualizare:
ultima este orientată pentru specificarea semnificaţiei intenţionate a vocabularului (şi ca urmare poate
fi utilizată pentru consensul relativ la partajarea respectivului vocabular, sau a unei baze de
cunoştinţe, care utilizează acel vocabular), dar poate deveni dificilă dezvoltarea din cauza numărului
mare de axiome şi a expresivităţii limbajului adoptat.

În ceea ce priveşte legătura dintre o ontologie inferioară şi una superioară supuse aceleiaşi
conceptualizări (figura 3.17), cea din urmă este mai aproape de specificarea mijloacelor intenţionale
ale vocabularului (în consecinţă poate fi folosit la stabilirea consensului despre partajarea acestui
vocabular, sau ca o bază de cunoaştere care foloseşte vocabularul), dar va fi dificil de dezvoltat şi de
raţionat datorită numărului mare al axiomelor şi a expresivităţii limbajului adoptat.

Ontologie de nivel
înalt

Ontologia Ontologie tema


domeniului (Ontologia task-
V ului)X

Ontologia aplicaţiei

Fig. 3.17 - Tipuri de ontologii, în raport de dependenţa de un task sau punct de vedere (săgeţile
reprezintă relaţiile de specializare)

O ontologie brută (inferioară), pe de altă parte, constă dintr-un set minim de axiome elaborate într-un
limbaj cu expresivitate minimă, pentru a susţine numai o mulţime limitată a serviciilor specifice,
intenţionate a fi partajate între utilizatori, care deja au acceptat conceptualizarea de bază (deci constă
dintr-o serie minimală de axiome scrise în limbaj de expresivitate minimal, pentru a sustine numai o
serie limitată de servicii specifice, menite să fie partajate între utilizatorii care sunt deja de acord cu
conceptualizarea de bază). Se poate face distincţia sau putem distinge deci între ontologiile de
referinţă detaliate şi ontologiile partajabile brute (ontologiile partajate inferioare), sau mai mult între
ontologiile off-line şi ontologiile on-line: prima este accesată din timp în timp pentru referirea
scopurilor (adică, este accesată doar uneori pentru referinţe), pe când cea de a doua susţine nucleul
funcţionalităţilor sistemului (deci ultima susţine funcţionalităţile de bază ale sistemului).

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
50 Inteligenţa artificială

Capitolul 4.
Elemente de calcul neuronal. Reţele neuronale artificiale
4.1 Neuronul artificial

Definit prin analogie cu celula nervoasă, neuronul artificial reprezintă unitatea de prelucrare de bază
din cadrul calculului neuronal, unitate care procesează o serie de intrări (inputuri informaţionale) şi
produce un rezultat (output informaţional) considerat drept nivelul de activitate al neuronului.

4.1.1 Neuronul McCulloch-Pitts

Primul tip de neuron artificial a fost definit în 1943 de către W. McCulloch şi W. Pitts. În prezent, el
este cunoscut sub numele de unitate prag - TU (threshold unit) sau neuron McCulloch-Pitts. Un
neuron de tip TU primeşte pe fiecare dintre conexiunile sale de intrare un semnal boolean (0 sau 1) şi
emite la ieşire tot un semnal boolean. Conexiunile de intrare pot fi de două tipuri şi anume:
inhibatoare şi excitatoare (figura 4.1). Dacă într-un interval de timp dat neuronul beneficiază de o
intrare 1 pe una dintre conexiunile sale inhibatoare, el va trece în stare inactivă (echivalentul unei
ieşiri 0). Atunci când neuronul beneficiază de semnale de intrare numai prin conexiuni excitatoare şi
numărul acestor semnale depăşeşte un prag fixat, (pragul de excitabilitate) neuronul devine activ
(generează o ieşire 1), altfel este inactiv.
x1

x2

xn

y1

ym
Fig. 4.1 – Neuronul McCulloch-Pitts

Cu ajutorul unui neuron de tip TU se pot implementa numeroase funcţii logice simple, prin asocierea
lui 1 cu valoarea logică adevărat şi a lui 0 cu valoarea fals. Neuronii TU fără conexiuni inhibatoare
pot implementa numai funcţii logice monotone.

4.1.2 Perceptronul simplu

În 1950 este definit un nou model al neuronului artificial şi anume neuronul de tip LTU (linear
threshold unit), denumit şi perceptron simplu. Spre deosebire de neuronul de tip TU, percepronul
simplu introduce noţiunea de intensitate a unei conexiuni k, notată cu wk, sub forma unui factor
multiplicator al semnalului de intrare care circulă prin conexiunea k. Intensitatea unei conexiuni
prezintă valori reale şi constituie o formă de modelare atât a tipului de conexiune, inhibatoare sau
excitatoare, prin semnul valorii intensităţii, cât şi a eficienţei sinaptice, prin nivelul absolut al acestei
valori. Astfel, o valoare pozitivă a intensităţii semnifică eficienţa sinaptică a unei conexiuni
excitatoare, în timp ce o valoare negativă are aceeaşi semnificaţie, dar pentru o conexiune inhibatoare.
Semnalele inhibatoare nu mai sunt atât de importante în stabilirea nivelului de activitate a neuronului
ca în cazul neuronului de tip TU, deoarece ieşirea se determină în raport de valoarea totală a intrărilor,
indiferent de tipul de conexiune prin care au fost recepţionate aceste intrări.

Inputul total la nivelul perceptronului simplu este calculat ca o sumă ponderată a intrărilor, conform
relaţiei:
n
input total wk xk
k 1

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

unde: xk reprezintă inputul care circulă prin conexiunea k. Outputul perceptronului simplu este generat
pe baza unei funcţii prag de forma:
1, daca input total
output f(input total , )
0, altfel
unde: reprezintă valoarea prag. Funcţia f este cunoscută sub numele de funcţie de transfer sau
funcţie de activare, întrucât permite stabilirea nivelului de activitate a neuronului în raport de inputul
total şi de valoarea prag. Valoarea prag mai este denumită şi factor al deplasărilor de scală, pe scurt
deplasament sau bias.

Frecvent, outputul unui neuron este exprimat în raport de inputul net, pe scurt net (figura 4.2), cu
ajutorul unei relaţii de forma:
1, daca net 0
output f(net)
0, altfel
unde: net este definit de relaţia:
net input total

output output

1 1

input total net


0 0

Fig. 4.2 - Inputul total şi inputul net în cazul perceptronului simplu

În acest caz, biasul este asimilat unei intrări recepţionate de neuron printr-o conexiune cu intensitate -
pe care circulă valoarea 1 (figura 4.3.b). Prin urmare:
n n 1
net input total ( ) 1 wk xk ( ) 1 wk xk
k 1 k 1 (1)
xn 1 wn
unde: 1 şi 1 .

x1
x1 w1
w1
0
wn
wn
xn
xn -
1
a) fără extinderea vectorilor x şi w b) cu extinderea vectorilor x şi w

Fig. 4.3 - Perceptronul simplu

Spre deosebire de neuronul de tip TU, perceptronul simplu funcţionează pe baza unor valori de intrare
reale, numai outputul fiind în continuare binar. Vectorul de intrare x = (x1, x2, ... , xn) este extins prin
includerea elementului 1 (figura 4.3.b). Vectorul (x1, x2, ... , xn, 1) poartă numele de vector de intrare
extins. Similar, vectorul (w1, w2, ..., wn, - ) este denumit vectorul extins al conexiunilor intensităţilor.
În cadrul unui sistem bazat pe calcul neuronal sunt utilizaţi mai mulţi neuroni, organizaţi sub formă de

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
52 Inteligenţa artificială

reţea neuronală. Din această cauză, un neuron este referit drept unitate Uj a unei reţele neuronale, cu
inputuri provenind de la alte unităţi sau din afara reţelei. Notând cu Oi outputul unităţii Ui, relaţia de
calcul a inputului total pentru unitatea Uj care recepţionează intrări din reţea se va rescrie sub forma:
n
input total j w ij O i
i 1
unde: wij reprezintă intensitatea conexiunii dintre Ui şi Uj, conexiune prin care Oi, outputul unităţii Ui,
este transmis ca input unităţii Uj. Sensul în care circulă informaţia în reţea este important, motiv
pentru care conexiunile sunt reprezentate atât prin valoarea intensităţii cât şi prin sensul de circulaţie a
informaţiilor (figura 4.4).

U1
O1 Uj x1 Uj
w1j w1j
Oj Oj
j j

Un wnj wnj

On xn

a) cu intrări din reţea b) cu intrări din afara reţelei

Fig. 4.4 - Unitate tip perceptron simplu în cadrul unei reţele neuronale

Cu ajutorul unui perceptron simplu pot fi implementate funcţii logice liniar separabile. Două seturi de
puncte A şi B dintr-un spaţiu n-dimensional sunt liniar separabile dacă există n + 1 numere reale w1,
n
w i xi wn 1
w2, ... , wn+1 astfel încât orice punct (x1, x2, ... , xn) A satisface relaţia: i 1 şi orice
n
w i xi wn 1
punct (x1, x2, ... , xn) B satisface relaţia: i 1 .

Prelucrările realizate de către perceptronul simplu pot fi interpretate ca o separare liniară a spaţiului
intrărilor. Procesul de identificare a intensităţilor conexiunilor care să realizeze în mod corespunzător
această separare a spaţiului intrărilor este mai uşor de urmărit în spaţiul intensităţilor conexiunilor
dacât în cel al intrărilor. Ori de câte ori se alege un punct în spaţiul intensităţilor se stabileşte practic o
anumită separare liniară a spaţiului intrărilor. Acest lucru înseamnă că fiecare punct din spaţiul (n +
1)-dimensional al intensităţilor poate fi asociat cu un hiperplan din spaţiul (n + 1)-dimensional al
intrărilor (figura 4.5).
x2 w2

x1
w1

x3=1 w3 = -

1.1.3 Perceptronul
Fig. 4.5 - Dualitateasimplu intrărilor şi spaţiul intensitătilor conexiunilor
generalizat
dintre spaţiul

Generalizarea perceptronului simplu s-a realizat în următoarele direcţii:

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

inputul net este calculat cu ajutorul unei funcţii g: Rn+1 Rn+1 R, adică:
net g( x 1 , x 2 ,..., x n 1 , w 1 , w 2 ,..., w n 1 )
outputul este calculat cu ajutorul unei funcţii de activare f, eventual diferită de funcţia prag
(figura 4.6 prezintă diferite exemple de funcţii de activare) şi cu valori reale. Atunci când f
nu este funcţie prag, biasul reprezintă o caracteristică a neuronului, cu semnificaţia unei
intrări speciale care modifică, deplasează inputul total.
rezultatul funcţiei g sau f se poate reîntoarce în unitate sub forma unei intrări decalate în timp
(aşa numita reacţie locală).
output output output

1 1 1
net net net
-1 -1

a) funcţii prag

output output output

net net net

b) funcţii liniare

output output output

net net net

c) funcţii sigmoide

output output

net net

d) funcţie gaussiană e) funcţie pălărie mexicană

Fig. 4.6 - Funcţii de activare a neuronilor


Reprezentarea grafică a perceptronului simplu generalizat se poate realiza într-una dintre variantele
prezentate în figura 4.7. Varianta (b) se preferă în cazul neuronilor cu reacţie locală.

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
54 Inteligenţa artificială

x1
w1
x1
w1
g f
g f wn
wn xn
xn

Varianta (a) Varianta (b)


Fig. 4.7 – Perceptronul simplu generalizat

4.2 Noţiunea de reţea neuronală artificială

O reţea neuronală artificială, pe scurt reţea neuronală, reprezintă un ansamblu de neuroni artificiali
legaţi prin conexiuni care au asociate o intensitate şi un sens de circulaţie a informaţiei. Folosirea
neuronilor artificiali ca elemente de bază ale unei reţele a fost realizată pentru prima dată de către F.
Rosenblatt, în 1957. Acesta a definit prima arhitectură de reţea neuronală, cunoscută sub numele de
perceptron clasic, reţea utilizată în rezolvarea unor probleme de recunoaştere a formelor vizuale.

4.2. 1. Modelul funcţional al unei reţele neuronale


O reţea neuronală artificială poate fi modelată ca o cutie neagră (figura 4.8), ce produce rezultate prin
prelucrarea unor intrări date.
x1 o1
x2 F o2
xn om

Fig. 4.8 – Abordarea unei reţele neuronale prin metoda cutiei negre

n
O reţea neuronală serveşte la implementarea unei funcţii F : R R m , denumită funcţia reţelei.
Funcţia F este implementată cu ajutorul funcţiilor de activare a unităţilor, considerate drept funcţii
primitive ale reţelei. Modelul funcţional al unei reţele neuronale poate fi pus deci în legătură cu teoria
aproximării funcţiilor, preocupată de reproducerea exactă sau aproximativă a unei funcţii pe baza
evaluării unui ansamblu dat de funcţii primitive.
Un exemplu clasic este cel aproximării funcţiilor uni-dimensionale pe baza unei serii Taylor. Seria
Taylor pentru aproximarea în jurul punctului x0 a unei funcţii H este:
H( x) a 0 a 1 ( x x 0 ) a 2 ( x x 0 ) 2 ... a n ( x x n ) n ....
unde: a0, a1, ... depind de funcţia H şi de derivatelele sale în x0. Figura 4.9 prezintă modul în care
aproximarea polinomială a funcţiei H poate fi realizată printr-o reţea neuronală.

1
-1 a0
1
1 z a1
x
1
1 -1
a2 + H(x)
2
z
x0 -1
an

-1
zn
Fig. 4.9- Reţea neuronală Taylor

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

Intensităţile conexiunilor din reţea pot fi determinate analitic, prin calculul primilor n + 1 termeni ai
seriei Taylor sau printr-un proces de instruire a reţelei.
Funcţia implementată de o reţea neuronală este determinată de fluxul informaţiilor în reţea, flux care
depinde, la rândul său, de următoarele elemente:
funcţiile primitive ale reţelei;
modul de interconectare a unităţilor;
intensitatea conexiunilor.

Presupunând fixate funcţiile primitive şi modul de interconectare a unităţilor, funcţia implementată de


reţea se poate nota cu F(W;x), unde: W = (w1, w2,..., wp) este matricea intensităţilor conexiunilor
reţelei şi reprezintă parametrii funcţiei F. Funcţia F aproximează funcţia de calcul a rezultatelor la
problema care trebuie rezolvată cu ajutorul reţelei neuronale, funcţie notată cu H şi denumită funcţia
de rezolvare a problemei.

De cele mai multe ori, forma analitică a funcţiei H nu se cunoaşte, fiind date numai valorile funcţiei H
în anumite puncte. Prin urmare, informaţiile despre funcţia H se prezintă, cel mai adesea, sub forma
unor exemple de asociere a intrărilor cu ieşirile dorite, exemple care sunt denumite instanţe de
instruire. Pe baza acestor instanţe se realizează ajustarea parametrilor W printr-un proces denumit
instruirea (antrenarea) reţelei neuronale. Prin instruirea reţelei neuronale se realizează o generalizare
a informaţiilor despre H, astfel încât să se poată calcula ieşirile corecte şi atunci când intrările nu
figurează în cadrul instanţelor de instruire.

Instruirea unei reţele neuronale reprezintă un proces de determinare a acelor valori ale parametrilor W
care asigură cea mai bună aproximare a funcţiei H. Pentru a evalua calitatea aproximării se poate
utiliza distanţa dintre F şi H, distanţă calculată ca normă, de exemplu L2. Instruirea reţelei constituie
deci procesul de determinare a valorilor W*, ce satisfac relaţia:
dist[ F( W ; x ), H (x )] dist[ F( W; x ), H (x )]
Altfel spus, valorile W* asigură cea mai bună aproximare prin F a lui H.

Instruirea unei reţele poate fi interpretată şi drept un proces de determinare a acelor valori ale
parametrilor W care asigură minimizarea funcţiei distanţă. Convergenţa reprezintă o proprietate
importantă a procesului de instruire a unei reţele neuronale. Convergenţa se defineşte pe baza unei
Wn W
secvenţe de numere ij care tind spre limita ij atunci când fiind dat > 0 se poate găsi un întreg
n0 astfel încât:
| Wijn Wij |
pentru oricare i, j desemnând linii şi, respectiv, coloane ale matricei W şi pentru oricare n > n0
Deci:
lim Wijn Wij
n
Există două metode de exprimare a convergenţei şi anume:
convergenţa în sensul de probabilitate egală cu 1:
lim P{Wijn Wij } 1
n
unde: P{x} reprezintă probabilitatea lui x.
convergenţa în sensul de abatere pătratică egală cu 0:
lim E{| Wijn Wij |2 } 0
n
unde: E{x} reprezintă valoarea estimată a lui x.

4.2.2. Modelul structural al reţelelor neuronale

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
56 Inteligenţa artificială

Este definit prin:


geometria reţelei
schema de interconectare a unităţilor
Geometria reţelei ajută la caracterizarea:
modului de grupare a neuronilor. Grupul de neuroni este denumit generic slab. Nivelul reprezintă
un tip particular de slab.
dimensiunea slaburilor
vecinătatea neuronilor
Schema de interconectare permite caracterizarea:
gradului de interconectare (conectivitate totală sau parţială);
simetriei/asimetriei legăturilor dintre neuroni;
tipului de interconectare (inter, intra, superstrat, autoconexiune)
Clasificarea reţelelor neuronale în raport de modelul structural:
reţele neuronale feedforward (reţele cu reacţie înainte). Aceste reţele se clasifică, la rândul lor în:
reţele feedforward propriu-zise
reţele feedforward cu reacţie inversă la nivel local
reţele neuronale recurente. Aceste reţele se clasifică în:
reţele parţial recurente (reţele feedforward cu reacţie inversă la nivel local)
reţele propriu-zis recurente (reţele cu reacţie inversă generalizată)

4.2.3 Modelul dinamic al reţelelor neuronale

Atunci când reţeaua nu prezintă cicluri, rezultatul prelucrărilor este precis definit, neexistând
probleme de sincronizare a prelucrărilor.

x f1 f1 w
w1 (w1x) xt f f(wxt, f(wxt-1, f(wxt-2, ....))...)...)
w2 f2 f2 (w2f1) (x))

a) fără cicluri b) cu cicluri

Fig. 4.10 Reţea neuronală cu şi fără cicluri

Ecuaţia de dinamică a unei reţele neuronale feedforward propriu-zisă este


O(t) = F(w;x(t))
Atunci când reţeaua neuronală conţine cicluri, prelucrările din reţea sunt determinate nu numai de
modul de interconectare a unităţilor şi de mărimea intensităţii conexiunilor, ci şi de factorul temporal.
În acest caz, se consideră că prelucrările realizate de către fiecare unitate din reţea reclamă un număr
de unităţi de timp, de regulă 1. Astfel, dacă intrările ajung la o unitate la momentul t, outputul va fi
obţinut la momentul t + 1. Calculul recursiv realizat în reţea poate fi oprit după un anumit număr de
paşi, ultimul output obţinut fiind considerat rezultatul prelucrărilor .

Ecuaţiile de dinamică ale unei reţele recurente sunt:


O(0) = x(0)
O(t + ∆) = F(w;x(t))

4.2.4 Modelul general al unei reţele neuronale

Reprezintă ansamblul caractersticilor unei reţele neuronale. Aceste caracterstici se pot grupa în:
caracteristici locale;
caracteristici globale.
Caracteristicile locale ale unei reţele neuronale sunt reprezentate de către caracteristicile neuronilor şi
anume:
biasul;

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

funcţia de combinare a intrărilor, g;


funcţia de activare, f;
prezenţa/absenţa reacţiei locale.
Caracteristicile globale ale unei reţele neuronale sunt:
caracteristicile statice, reprezentate prin proprietăţile topologice ale reţelei şi cele funcţionale
(inclusiv netoda de instruire a reţelei);
caracteristicile dinamice, care caracterizează evoluţia în timp a reţelei.

4.3. Reţele neuronale feedforward uninivel şi multinivel

Aceste reţele realizează o propagare înainte a intrărilor, într-un singur pas. Unităţile de prelucrare din
cadrul unei reţele feedforward uninivel sunt în general neuroni treaptă, cu domeniu real al valorilor de
intrare şi cu domeniu binar (0,1) sau bipolar (-1,1) al valorilor de output.

Condiţia de activare a unei unităţi de output Uj (de fixare a unităţii Uj pe valoarea 1) este:
w ij x i Tj
i , unde i desemnează o unitate de input
Valoarea de activare 1 a unei unităţi de output Uj poate primi semnificaţia încadrării vectorului de
intrare într-o clasă, să spunem A, în timp ce valoarea de activare -1/0 poate avea semnificaţia
clasificării vectorului de intrare într-o altă clasă, să spunem B.

w ij x i Tj
Ecuaţia: i formează un hiperplan în spaţiul n-dimensional, ce separă acest spaţiu în două
regiuni. Când spaţiul este bidimensional, hiperplanul devine o linie.

Datorită restricţiilor de configuraţie, reţelele feedforward uninivel nu sunt capabile să realizeze decât
o clasificare pe clase liniar separabile. Separabilitatea liniară se referă la existenţa unui hiperplan
liniar, ce permite izolarea instanţelor unei clase într-o regiune distinctă de cea în care sunt plasate
instanţele celeilalte clase.

4.3.1. Algoritmi de instruire a reţelelor feedforward uninivel

Se cunosc mai mulţi algoritmi de instruire a reţelelor feedforward uninivel. Cel mai cunoscut este
algoritmul perceptronului. Pentru simplificarea algoritmilor de instruire a reţelelor uninivel, biasul
unităţilor din reţea se exprimă ca intensităţi ale unor conexiuni din reţea. Practic, biasul unei unităţi Uj
se rescrie, sub forma negativului intensităţii unei conexiuni ce leagă unitatea respectivă de o unitate
de input fictivă,UF ce livrează unităţii Uj input 1 (xF=1).
Tj w Fj x F w Fj
Acest lucru permite simplificarea scrierii condiţiei de activare a unei unităţi Uj, sub
w ij x i 0
forma: i , unde i desemnează o unitate de input, inclusiv UF. În acest fel, parametrii
ajustabili ai reţelei pot fi consideraţi ca reprezentând numai intensităţi ale conexiunilor din reţea.

Algoritmul perceptronului presupune parcurgerea următoarelor etape :


1. Iniţializarea intensităţilor conexiunilor din reţea (în general, ca numere aleatoare mici)
2. Pentru fiecare exemplu de instruire sau epocă de instruire, până la scăderea sumei pătratelor
erorilor sub o limită considerată ca acceptabilă:
2.1. Calculul activărilor pentru toate unităţile din reţea.
2.2. Ajustarea intensităţilor conexiunilor, conform relaţiei:
w ij (t 1) w ij (t) w ij
, unde t semnifică pasul de timp

Mărimea modificării intensităţii conexiunii se poate calcula după mai multe reguli şi anume:
regula percepronului:

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
58 Inteligenţa artificială

w ij d jx i
unde dj, denumit termen eroare se calculează după relaţia:
dj=tj-Oj, tj reprezintând outputul dorit pentru unitatea Uj
regula delta:
w ij d jx i
, unde reprezintă o valoare pozitivă,
subunitară, denumită rată de instruire.

Teorema de convergenţă a perceptronului


Dacă datele care trebuie clasificate sunt liniar separabile, regula de instruire a perceptronului va
converge la soluţie (valorile parametrilor care asigură o clasificare corectă a datelor) într-un număr
finit de paşi, indiferent de alegerea iniţială a valorilor parametrilor.

Exemplu
Se consideră o reţea neuronală uninivel, cu două unităţi de intrare(U1 şi U2) şi o unitate de
output(U3), cu T3= -0.3423. Exemplele de instruire sunt prezentate în figura tabelul 4.1.

Tabel 4.1 Set de exemple de instruire


x1 -0.5 -0.5 0.3 0
x2 -0.5 0.5 -0.5 1
t3 1 1 0 0

Se consideră o iniţializare a intensităţilor conexiunilor din reţea pe valorile: w31= - 0.8931 şi


w32=0.0594. Figura 4.11 prezintă setul exemplelor de instruire, în coordonate bidimensionale,
împreună cu dreapta de clasificare: W31X1 + W32X2 - T3 = 0, iar figura 4.12 prezintă dreapta de
clasificare, la terminarea procesului de instruire.
x2

1 

w31x1+w32-T3=0
0.5

0 
- x1
0.5
-0.5 0 0.3 1
Fig. 4.11 - Reprezentarea grafică a setului de instruire şi a dreptei de clasificare, înainte de instruirea
reţelei
x2

1 
w31x1+w32-T3=0

0.5

0 

- x1
0.5 -0.5 0 0.3 1

Fig. 4.12 - Reprezentarea grafică a setului de instruire şi a dreptei de clasificare, după instruirea reţelei

4.3.2. Reţele neuronale multinivel

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

Reţelele multinivel reprezintă reţele neuronale feedforward cu cel puţin un nivel intermediar. Aceste
reţele pot trata probleme de clasificare neliniare, deoarece determină formarea unor regiuni de decizie
mai complexe decât hiperplanul. Fiecare nod de pe primul nivel ascuns determină crearea unui
hiperplan. Fiecare nod de pe al doilea nivel ascuns combină hiperplanele pentru a crea regiuni de
decizie convexe, în timp ce fiecare nod din al treilea nivel ascuns combină regiunile convexe pentru a
forma regiuni concave. Prin utilizarea unui număr suficient de mare de niveluri şi de unităţi pe fiecare
nivel este posibil să se formeze orice regiune de decizie. O problemă importantă în utilizarea reţelelor
feedforward este determinarea numărului de neuroni ascunşi necesar pentru realizarea clasificării.
Acest număr nu se poate determina decât experimental.

Retelele neuronale feedforward multinivel reprezinta modele neliniare ce realizeaza o aproximare


universala, adica pot aproxima orice relatie intrare-iesire continua.

Teoreme de existenţă

Teorema lui Kolmogorov. Fiind data orice functie continua: H : [0,1]N → RM aceasta functie poate fi
implementata exact pe o retea feedforward cu 3 straturi
N : (2N+1) : M.

Teorema Kolmogorov-Sprecher. Orice functie reala continua poate fi implementata exact pe o retea
feedforward cu patru straturi, cu numar finit de unitati.

Teorema lui Cybenco. Orice functie reala poate fi implementata pe o retea feedforward cu doua
straturi ascunse.

Instruirea reţelelor feedforward multinivel

Reţelele feedforward multinivel sunt instruite prin metode supervizate, care presupun utilizarea unor
instanţe de instruire de forma:
(Xp, tp),
unde:
Xp ( X 1p , X 2p , ... , X pN )
reprezintă vectorul intrărilor pentru instanţa de instruire p;
p
t ( t 1p , t 2p , ... , t pM )
este vectorul outputurilor dorite pentru instanţa p;
N este numărul unităţilor de intrare din cadrul reţelei;
M este numărul unităţilor de ieşire.

Considerând F(X) funcţia de prelucrare asociată problemei, funcţie de calcul a rezultatelor pe baza
datelor de intrare,X, atunci:
tp F( X p )
Outputul obţinut prin prelucrarea datelor de intrare cu ajutorul reţelei neuronale este notat cu:
Op (O 1p , O 2p , ... , O pM )
Op poate fi considerat drept rezultatul prelucrării datelor de intrare, Xp, cu ajutorul funcţiei Fw(w;Xp),
funcţie implementată prin reţeam, ca o aproximare a lui F(X). Prin urmare:
Op Fw ( w; X p )
Eroarea înregistrată la prelucrarea prin reţea a vectorului de intrare Xp , eroare măsurată la nivelul
Uj e pj
unei unităţi de output şi notată cu , se exprimă ca diferenţă între outputul dorit şi cel efectiv
obţinut, respectiv:
e pj t pj O pj
Eroarea Ep, înregistrată la prelucrarea prin reţea a vectorului de intrare Xp şi stabilită la nivelul întregii
e pj
reţele neuronale, se obţine prin combinarea erorilor , pe baza unei relaţii de forma:

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
60 Inteligenţa artificială

M
Ep f (e pj )
j 1
Pentru calculul erorii Ep pot fi utilizate diferite funcţii eroare, f, dintre care se pot aminti:
a) norma-L1:
f (e pj ) | e pj |
b) norma-L2:
f (e pj ) (e pj ) 2
c) funcţie logistică de forma:
e pj
f L (e pj ) 2
ln(cosh )
, cu >0
d) funcţia Huber nesaturată:
(e pj ) 2 / 2, pentru | e pj |
f H (e pj ) , cu 0
| e pj | 2
/ 2, pentru | e pj |

e) funcţia Huber saturată (funcţia Talvar):


(e pj ) 2 / 2, pentru | e pj |
f T (e pj ) 2
, cu 0
/ 2, pentru | e pj |

f) funcţia Hampel:
2 e pj
(1 cos ), pentru | e pj |
f Ha (e pj ) , cu 0
2
2 , pentru | e pj |

Funcţiile a) şi b) dau măsuri euclidiene ale erorii, în timp ce funcţiile c)-f) permit obţinerea unor
măsuri neeuclidiene, care se recomandă a fi utilizate în cazul existenţei unui zgomot negaussian în
datele de intrare.

Instruirea reţelelor neuronale feedforward multinivel urmăreşte minimizarea erorii în funcţionarea


reţelei, eroare notată cu E şi calculată la nivelul unui ansamblu de instanţe de instruire după relaţia:
E Ep
p
Instruirea reţelelor neuronale feedforward multinivel urmăreşte minimizarea erorii E, de funcţionare a
reţelei, în raport de parametrii W. Minimizarea erorii se poate realiza prin:
- metode deterministe (de ordinul întâi, cum ar fi metoda coborârii gradientului funcţiei eroare sau
metode de ordinul doi, precum: metoda gradientului conjugat, metoda Newton, metoda cvasi-
Newton, metoda pseudo-Newton);
- metode nedeterministe.
În cele ce urmează se va prezenta modul de aplicare a metodei coborârii gradientului pentru
minimizarea, în raport de W, a unei funcţii eroare de forma:
1
Ep (t j O j)2
2 j

Această metodă de minimizare a unei funcţii eroare, de forma celei menţionate anterior, stă la baza
celui mai cunoscut algoritm de instruire a reţelelor feedforward multinivel, algoritm cunoscut sub
numele de algoritmul backpropagation standard. Aplicarea metodei coborârii gradientului pentru
minimizarea unei funcţii eroare de tip neeuclidian este realizată prin algoritmi backpropagation
nestandard.

Regula de ajustare a parametrilor W pentru algoritmul backpropagation standard

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

O funcţie J(V) este minimizată în raport de V prin metoda coborârii gradientului astfel:
- se iniţializează soluţia (valoarea lui V care minimizează J) cu V0 (de regulă, V0 se stabileşte
arbitrar);
- se ajustează soluţia, prin coborârea gradientului funcţiei J, conform relaţiei:
V= - J(V)
unde: J reprezintă gradientul funcţiei J, iar reprezintă pasul de deplasare pe direcţia de gradient.
Altfel spus, considerând k drept iteraţia curentă, ajustarea soluţiei se realizează după formula:
Vk+1=Vk - k J(Vk)

În procesul de instruire a reţelelor feedforward multinivel, funcţia care trebuie minimizată este funcţia
eroare, Ep, iar minimizarea se realizează în raport de parametrii wij ai reţelei. Deci:
Ep
Δw ij η
w ij
E este funcţie de t şi O. O la rândul său este funcţie de wij. E este deci o funcţie compusă de mai
multe variabile, iar calculul derivatei parţiale a lui E în raport de wij se poate realiza conform
formulei:
Ep Ep O pj
w ij O pj w ij
În cazul în care Uj este unitate de output, atunci:
Ep 1 2 2
( (t pj + O pj 2 t pj O pj )) (t pj O pj )
Oj O pj 2

O pj O pj net pj
F (net pj ) w kj O pk F (net pj ) O ip
w ij net pj w ij w ij k

Deci:
Ep
(t pj O pj ) F (net pj ) O ip
w ij
Notând cu:

d pj ( t pj O pj ) F' ( net pj )
atunci:
Ep
d pj O ip
w ij
Prin urmare, regula de ajustare a parametrilor wij ca urmare a prelucrării instanţei de instruire p poate
fi exprimată sub forma:
w ijp d pj O ip
În cazul în care Uj reprezintă o unitate ascunsă atunci:
Ep Ep O pk
( )
O pj k O pk O pj
Uk reprezentând unităţile ce beneficiază de outputul lui Uj.
Considerăm unitatea Uj drept o unitate ascunsă situată pe stratul de output aflat imediat înaintea
stratului de output. În acest caz, unităţile Uk care beneficiază de outputul unităţii Uj sunt unităţi de
output. Prin urmare:
Ep
(t pk O pk )
O pk
Totodată:

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
62 Inteligenţa artificială

O pk O pk net pk
F (net pk ) w jk
O pj net pk O pj
Deci:
Ep
(t pk O pk ) F (net pk ) w jk
O pj k

Notând cu:
d pk ( t pk O pk ) F' ( net pk )
se obţine:
Ep
d pk w jk
O pj k

Totodată:
O pj O pj net pj
F' (net pj ) O ip
w ij net pj w ij

Rezultă că:
Ep
( d pk w j k ) F' (net pj ) O ip
w ij k
Notând cu:
d pj ( d pk w j k ) F' (net pj )
k
se obţine:
Ep
d pj O ip
w ij
Prin urmare şi în acest caz regula de ajustare a parametrilor wij se poate scrie tot sub forma:
w ijp d pj O ip
Considerând unitatea Uj drept o unitate ascunsă situată pe un strat de output care nu se află imediat
înaintea stratului de output se va proceda similar, obţinându-se aceeaşi formă pentru regula de ajustare
a parametrilor wij.

Observaţii

a) Forma regulii de ajustare a parametrilor wij nu se modifică în cazul în care Uj reprezintă o unitate
plasată pe un strat ascuns ce nu precede imediat stratul de output.

b) Regula de ajustare a parametrilor wij din cadrul algoritmului backpropagation standard este
cunoscută şi sub numele de regula delta generalizată.

dp
c) Calcularea lui j impune determinarea derivatei de ordinul întâi a funcţiei de activare a unităţii Uj.
Considerând, de exemplu, o funcţie de activare logistică sigmoidă, de forma:
1
F( x) x
1 e
atunci:
F' (x) F(x) (1 F(x))
Deoarece x reprezintă inputul net, iar F(X) este nivelul de activare al unităţii, se poate scrie în acest
caz că:
F' ( net pj ) O pj (1 O pj )

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

Instruire, suprainstruire, generalizare

O problemă importantă a instruirii este legată de posibilitatea producerii, în timpul procesului de


minimizare a erorii, a fenomenului cunoscut sub numele de suprainstruire. Algoritmii de instruire a
reţelelor neuronale urmăresc minimizarea erorii în funcţionarea reţelei, funcţionare caracterizată prin
rezultatele obţinute la prelucrarea datelor de intrare incluse în setul instanţelor de instruire. Reţeaua
neuronală urmează să fie însă utilizată pentru prelucrarea unor date de intrare diferite de cele din setul
de instruire. Prin urmare, se impune ca înainte de expoatarea reţelei să se stabilească cât de aptă este
această reţea să prelucreze corespunzător date pe care nu le-a "văzut" în faza de instruire.

Validarea performanţelor unei reţele instruite (testarea reţelei) se realizează cu ajutorul unor instanţe
de test, instanţe cu o structură similară celor de instruire, dar care nu au fost utilizate la instruire. Dacă
eroarea la prelucrarea instanţelor de test este acceptabilă se trece la exploatarea reţelei, dacă nu se reia
instruirea, eventual cu revizuirea setului de instruire şi/sau a algoritmului de instruire. Performanţele
la instruire şi testare în raport de epoca de instruire evoluează, de regulă, ca în figura 4.13.
eroare

eroarea la testare

eroarea la instruire

1 2 ni număr epocă

Fig. 4.13 - Performanţele reţelei neuronale la instruire şi testare


Faptul că reţeaua neuronală poate să prezinte la instruire rezultate acceptabile, dar nu şi la testare se
explică prin faptul că reţeaua nu poate generaliza, adică nu poate trata corect date de intrare pe care
nu le-a prelucrat anterior, în faza de instruire.

Prin generalizare se înţelege, de regulă, abilitatea de estimare cantitativă a caracteristicilor unui


fenimen ce nu a fost întâlnit anterior, pe baza similarităţii sale cu fenomene deja cunoscute. O reţea
neuronală feedforward învaţă să aproximeze o funcţie de prelucrare, F(X), pe baza unui set de
instruire de forma: (X, F(X)). Prelucrarea valorilor de intrare, X, ce nu aparţin setului de instruire, dar
fac parte din intervalul pe care reţeaua l-a învăţat în procesul de instruire se realizează prin
interpolare, în timp ce prelucrarea valorilor X ce sunt plasate în afara respectivului interval se asigură
prin extrapolare. Generalizarea presupune deci abilitatea de a realiza interpolări şi extrapolări.

După epoca ni din figura 4.13 se produce fenomenul de suprainstruire, adică degradarea
performanţelor reţelei la prelucrarea unor date din afara setului de instruire, în condiţiile în care
procesul de instruire poate asigura scăderea, în continuare, a erorii de instruire. Dintre cauzele
producerii suprainstruirii se pot aminti:
- datele de instruire sunt nerelevante, în sensul că aceste date conţin neregularităţi ce nu sunt
semnificative dar pe care reţeaua tinde să le reţină;
- datele de instruire sunt insuficiente, în raport de numărul gradelor de libertate ale reţelei, respectiv
numărul parametrilor ajustabili. Acest lucru face ca datel de instruire să nu impună suficiente
constrângeri problemei de instruire.
- funcţia Fw(w;X) este foarte plată.
Suprainstruirea reprezintă un fenomen negativ, care poate fi evitat printr-o serie de acţiuni, precum:

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
64 Inteligenţa artificială

- estimarea capacităţii de generalizare a reţelei pe parcursul procesului de instruire şi oprirea


instruirii de îndată ce gradul de generalizare începe să scadă. Evaluarea capacităţii de generalizare
se realizează prin măsurarea erorii în prelucrarea setului de test, eroare cunoscută sub numele de
eroare de generalizare şi notată Eg. Având în vedere eroarea de generalizare, putem redefini
mărimea eroarii pentru o reţea feedforward multinivel astfel:
E=Ei+Eg, unde: Ei reprezintă eroarea la instruire, iar Eg este eroarea la testare.
În general, eroarea medie de generalizare, , se exprimă sub forma:
2
zgomot
EPM PFP
2
zgomot
unde: reprezintă dispersia zgomotului existent în datele de test, EPM semnifică eroarea medie
pătratică la instruire, iar PFP este un termen de penalizare datorat fluctuaţiei ponderilor.

Oprirea instruirii se realizează atunci când începe să crească. Obţinerea lui min presupune realizarea
unui compromis între EPM care, de regulă, scade prin continuarea instruirii şi PFP care, de obicei,
creşte în timpul instruirii.
limitarea numărului de parametri ai reţelei, fără a fi însă afectată capacitatea de învăţare a reţelei.
Se impune ca activitatea de proiectare a unei reţele neuronale să permită determinarea arhitecturii
minimale a acelei reţele
asigurarea unor date de instruire corespunzătoare,ca volum şi calitate.

4.4. Reţele neuronale recurente. Reţele Hopfield, Boltzman şi reţele gaussiene

4.4.1. Reţele Hopfield: arhitectura

Reţelele Hopfield sunt reţele neuronale recurente, simetrice, total conectate, fără auto-asociere.
Arhitectura acestor reţele este prezentată în fig. 4.14.

wji

wij
i

Fig. 4.14 - Reţea Hopfield


Simetria conexiunilor se exprimă prin egalităţile:
wij=wji , pentru i,j desemnând unităţi din reţea
Lipsa auto-asocierii se exprimă prin:
wii=0.
Nivelul de activare al unei unităţi ia valori binare (0,1) sau bipolare (-1,1) , fiind calculat cu ajutorul
unei funcţii de activare de forma:
1,daca w ji O i Tj
Oj F( w ji O i ) i
i 0 / 1, in rest
Inputurile sunt aplicate tuturor nodurilor din reţea în acelaşi timp. Acest lucru înseamnă setarea
unităţilor pe un nivel de activare iniţial. Reţeaua funcţionează apoi autonom, trecând printr-o
succesiune de stări. Setarea iniţială este primul output al reţelei, care serveşte ca următor input, pe
baza căruia se produce un nou output ş.a.m.d., până la fixarea reţelei pe o stare stabilă, starea în care
nivelul de activare al unităţilor nu se mai schimbă.

Reţeaua poate funcţiona:


- sincron, atunci când toţi neuronii încearcă să-şi schimbe starea simultan;

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

- asincron, atunci când fiecare neuron încearcă să-şi schimbe starea la un moment diferit de al
ceilalţi neuroni. La fiecare moment (tact) de timp se selectează aleator un neuron care încearcă a-şi
schimba starea.

Fie starea unei reţele formate din trei unităţi U1, U2 şi U3 : (O1,O2,O3) = (0,0,0).
Fie T1= -0.1, T2=T3=0, w12= -0.5, w13=0.2 şi w23=0.1

Presupunem că neuronul 1 incearcă primul să se activeze:


w1i Oi 0 T1 O1 1
i 2,3 .
Deci reţeaua comută pe starea (1,0,0). Fiecare dintre ceilalţi doi neuroni s-ar putea activa la rândul lor
cu probabilitate egală (1/3):
• neuronul 2:
w 2i Oi 0 0 O2 0
i 1,3
• neuronul 3:
w 3i Oi 0 0 O3 0
i 1,2
Deci, din starea (0,0,0) reţeaua:
- va tranzita pe starea (1,0,0), cu probabilitatea 1/3;
- va rămâne pe aceeaşi stare, cu probabilitatea 2/3.

Diagrama tranziţiilor de stare este prezentată în fig. 4.15. Starea (0,1,1) este stare stabilă a reţelei.

Stare stabilă. Bazin de atracţie. Stabilitatea reţelelor neuronale Hopfield

Reţeaua neuronală se află într-o stare stabilă atunci când neuronii din reţea acţionează asupra
celorlalţi, fără a determina schimbarea valorilor de activare a niciunuia dintre ei. Dacă Os reprezintă o
stare stabilă a reţelei, un bazin de atracţie B este definit prin relaţia:
B(Os)={O|TnO=Os},
unde: T reprezintă transformarea stării, prin intermediul F, iar B reprezintă setul de stări O care
evoluează spre Os într-un număr finit de tranziţii.

Reţelele Hopfield sunt utilizate prin punerea în corespondenţă a stărilor stabile cu soluţiile problemei
pe care vrem să o rezolvăm. Reţeaua va ajunge la fixarea pe o stare stabilă, deci la soluţie. Stabilitatea
reprezintă proprietatea unei reţelei de a se stabiliza (de a atinge o stare stabilă) indiferent de starea
iniţială. Pentru reţele neuronale sunt definite mai multe teoreme de stabilitate, dintre care se pot
aminti:
teorema Cohen - Grossberg;
teorema Kosko;
teorema Abam.

Cohen şi Grossberg au demonstrat că reţelele neuronale recurente sunt stabile dacă şi numai dacă:
wij=wji si wii=0.
Deci, orice reţea Hopfield este stabilă. Această teoremă a fost demonstrată cu ajutorul unei funcţii
Lyapunov, utilizată ca funcţie de energie a reţelei.

Funcţia de energie a unei reţele Hopfield

Fiecărei stări a reţelei i se asociază o mărime E, denumită energie. E scade de fiecare dată când un
neuron îşi schimbă starea. Fie E schimbarea de energie datorată schimbării stării neuronului i.
Dacă Oi=0 şi se produce schimbarea Oi=1 rezultă că:

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
66 Inteligenţa artificială

w ij O j Ti 0, DO i 0
j
.

1
1 0 4
1/3 1/3
1/3
1/3 1/3
1/3 0 0
0 1/3 0 0 0 1
1 0 2/3
0 1/3
0 0
1 1/3
1/3
0 0
-0.1 1 /3 2/3

1
0 1
2/3
-0.3 1 /3

1
1 1 2 /3
-0.4 1 / 3

0
-0.6 1 1
3/3
Fig. 4.15 - Diagrama tranziţiilor de stare

Dacă Oi=1 şi se produce schimbarea Oi=0 rezultă:


w ij O j Ti 0, DO i 0
j
.
Deci:
DO i ( w ijO j Ti ) 0
j
.
Hopfield a definit schimbarea nivelului de energie al reţelei, ca urmare a schimbării stării neuronului i
prin relaţia:
DE DOi ( w ijO j Ti )
j
.
Energia nodului i care conduce la această schimbare este
Ei Oi ( w ijO j Ti ) w ijO jOi Oi Ti
j j
.
Energia totală a reţelei aşa cum a fost definită de Hopfield este:
E 1/ 2 w ijO jO i O i Ti
i j i
.
În concluzie, tranziţiile de stare coboară nivelul de energie până când acest lucru nu mai este posibil,
moment în care se produce stabilizarea reţelei. Stabilizarea reţelei poate fi locală (reţeaua s-a fixat pe
un minim local al energiei) sau globală.

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

Capitolul 5.
Arbori de decizie şi clusterizare

Introducere

Prin data mining se întelege procesul de extragere a cunostintelor din bazele/depozitele de date,
cunostinte necunoscute anterior, valide si în acelasi timp operationale. Esential pentru un proces de
data mining este faptul ca permite descoperirea unor cunostinte fara formularea anterioara a unor
ipoteze. Prin data mining nu se urmareste verificarea, confirmarea/infirmarea de ipoteze, ci se
intentioneaza descoperirea unor cunostinte "neasteptate", neintuitive, care pot chiar contrazice
perceptia intuitiva, fiind deci cunostinte complet necunoscute la momentul realizarii data mining-ului.
Dintre metodele traditionale de analiza a datelor, cele mai apropiate de data mining sunt metodele
statistice. În mod traditional, statistica este utilizata pentru descoperirea corelatiilor, asociatiilor între
date si pentru construirea de modele predictive.

Clasificarea, adică asignarea de obiecte la una din mai multe categorii/clase reprezintă o problemă
întâlnită frecvent în diferite aplicaţii. In cele ce urmează sunt introduce conceptele de bază ale
clasificării, aspecte cheie privind implementarea, precum modelele improprii, şi sunt prezentate
metode pentru evaluarea si compararea performantelor tehnicilor de clasificare.

Analiza cluster presupune partiţionarea datelor în grupuri (clustere) care au o anumită semnificaţie sau
o anumită utilitate, sau ambele. Dacă semnificaţia reprezintă obiectivul analizei datelor, atunci
clusterele trebuie să capteze structura naturală a datelor. Clasele, sau grupurile de obiecte care
împărtăşesc caracteristici comune, joacă un rel important în analizarea si descrierea lumii. Clusterele
sunt potenţial clase, iar clusterizarea reprezintă o metodă pentru identificarea automată a claselor. De
exemplu, clusterizarea poate fi folosită la segmentarea clienţilor în grupuri mai mici pentru analize
adiţionale şi activităţi de marketing. In biologie, clusterizarea este utilizată la analiza informaţii
genetice, în scopul identificării grupurilor de gene cu funcţii similare. În alte cazuri, clusterizarea
constituie doar punctul de placare pentru alte prelucrări, ca de exemplu sumarizarea datelor. Analiza
cluster realizează o abstracţie de la obiecte (date) individuale la prototipuri ale claselor, care
repreizntă obiecte abstrate, utilizate la analize ulterioare. In acest caz, vorbim de o anumită utilitate a
analizei cluster. Indiferent de obiectivul clusterizării, aceasta are un rol important în multe domenii,
precum: recunoşterea formelor şi regăsirea informaţiilor.

5.1 Clasificarea

Datele de intrare pentru clasificare reprezintă o colecţie de înregistrări. Fiecare înregistrare, numită
instanţă sau exemplu, este caracterizată cu ajutorul unui tuplu (x,y), unde: x este setul de atribute iar y
este un atribut special, desemnat ca etichetă de clasă (de asemenea cunoscut drept categorie sau
atribut target).

Clasificarea reprezintă procesul de învăţare a functiei ţintă, f care mapează fiecare set de atribute x la
una din etichetele de clasă predefinite y . Functia f este cunoscută şi sub numele de model de
clasificare. Un model de clasificare poate servi ca instrument explicativ de distincţie între obiectele
din diferite clase (aşa numita modelare descriptivă) sau pentru a prezice eticheta de clasă a unei
înregistrări necunoscute (modelarea predictivă).

O tehnică de clasificare ( sau clasificator) reprezintă o abordare sistemică de construire a modelelor de


clasificare plecând de la un set de date de intrare. Exemple de metode de clasificare: metode bazate pe
arbori de decizie, reguli, retele neuronale, masini vectori support, retele Bayesiene. Fiecare metodă
foloseşte tehnici de reprezentare a datelor şi modelelor, precum şi algoritmi de învăţare a modelului
care se potriveste cel mai bine relaţiilor dintre setul de atribute si eticheta de clasă a datelor de intrare.
Modelul generat de algoritmul de învăţare trebuie să fie adecvat datelor de intrare şi să permită

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
68 Inteligenţa artificială

realizarea de predicţii corecte pentru înregistrări noi. Respectarea acestor cerinţe nu se poate realiza
decât de câtre algoritmi cu o bună capaciatte de generalizarea a datelor.

Fig. 5. 1 arată principiul general de rezolvare a problemelor de clasificare. In primul rînd, trebuie să
fie furnizat un set de instruire constând din înregistrări ale caror etichete de clasă sunt cunoscute. Setul
de instruire este utilizat pentru a construi un model de clasificare, care este aplicat mai departe unui
set de date de test, care constă in înregistrări cu etichete de clasă necunoscute. Evaluarea
performantelor unui model de clasificare este bazată pe contorizarea numărului de înregistrări corect
şi incorect clasificate de către model. Aceste rezultate sunt aranjate într-un tabel numit matricea de
confuzie (figura 5.2).

Setul de instruire
Id Atribut1 Atribut 2 Atribut 3 Clasa
Algoritmul de
1 Da Mare 115.000 Nu
învǎţare
2 Nu Mediu 100.000 Nu
3 Nu Mic 70.000 Nu
In
4 Da Mediu 120.000 Nu du

5 Nu Mare 95.000 Da ie
6 Nu Mediu 60.000 Nu
7 Da Mare 220.000 Nu
Invǎţarea
8 Nu Mic 85.000 Da
9 Nu Mediu 75.000 Nu
modelului
10 Nu Mic 90.000 Da

Model
Setul de test ţie Aplicarea
uc modelului
D ed
Id Atribut1 Atribut 2 Atribut 3 Clasa

11 Nu Mic 55.000 ?
12 Da Mediu 80.000 ?
13 Da Mare 110.000 ?
14 Nu Mic 95.000 ?
15 Nu Mare 67.000 ?

Fig. 5.1 Schema generală de rezolvare a problemelor de clasificare

Clasa previzionată prin model

Clasa = 1 Clasa = 0
Clasa Clasa = 1 f11 f10
corectă Clasa = 0 f01 f00
Fig. 5.2 Matricea de confuzie pentru clasificarea în două clase (clasificarea binară)

Fiecare element, fij al matricei reprezintă numărul de înregistrări de clasă i care au fost clasificate prin
model în clasa j. De exemplu f01 este numărul de inregistrări ale clasei 0 incorect clasificate ca fiind în
clasa 1. Bazat pe intrările din matricea de confuzie, numărul total de predicţii corecte realizate prin
model este (f11 + f00), iar numărul total de predicţii incorecte este (f10 + f01). Matricea de confuzie
furnizează informatia necesară pentru determinarea performanţelor unui model de clasificare, printr-o
serie de indicatori, precum: acurateţea şi rata de eroare.

Acurateţea modelului de clasificare este definită de următoarea formulă:


predictii.corecte f11 f 00
predictii f11 f10 f 01 f 00
Acurateţea = =

Rata de eroare a modelului de clasificare este definită astfel:

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

predictii.gresite f10 f 01
predictii f11 f10 f 01 f 00
Rata de Eroare = =

Arbori de decizie. Algoritmul ID3

Algoritmul CLS a fost introdus de Quinlan, in 1983. Acest algoritm si varianta sa, ID3 sunt dintre cei
mai cunoscuti algoritmi de invatare simbolica. Ambii se bazeaza pe o reprezentare a conceptelor sub
forma de arbore. Pentru clasificarea unui set de instante se incepe din varful arborelui si se raspunde
la intrebarile asociate nodurilor pana se atinge un nod frunza (locul in care este memorata clasificarea
sau decizia).

Algoritmul ID3 presupune alegerea in mod aleator a unui subset de exemple de instruire, subset
denumit fereastra. Pentru aceasta fereastra, algoritmul construieste un arbore de decizie, care sa
rezolve corect toate instantele incluse in acea fereastra. Arborele este apoi testat pe instantele de
instruire din afara ferestrei. Daca toate instantele sunt clasificate corect, procedura se opreste, altfel se
adauga la fereastra unele dintre instantele incorect rezolvate si se reia procesul pentru noua fereastra.
Aceasta strategie iterativa este mai eficienta decat prelucrarea concomitenta a tuturor instantelor de
instruire, asa cum realizeaza algoritmul CLS. In construirea arborelui de decizie pentru instantele de
instruire vizate (toate, in cazul algoritmului CLS, cele din fereastra curenta, in cazul algoritmului
ID3), la fiecare pas sunt selectate caracteristicile care discrimineaza cel mai bine instantele.

Etapele algoritmului ID3 sunt:


1. Se selecteaza un subset, W de instante de instruire din setul total de instante.
2. Se construieste un arbore de decizie pentru W, astfel:
2.1. Se selecteaza cea mai buna caracteristica, respectiv cea care minimizeaza functia Hcaract,
definita astfel:
H caract p val H val
val
unde pval reprezinta frecventa de aparitie a valorii in W, iar Hval reprezinta functia de entropie
asociata valorii val si definita astfel:
H val p i logp i
i clasa
2.2. Se clasifica instantele de instruire in subseturi, conform caracteristicii selectate in pasul
anterior.
2.3. Se reia de la pasul 2.1, pana ce fiecare subset contine numai instante de un anumit tip
(clasa) sau este safisfacut un anumit criteriu de omogenitate a subseturilor.
3. Se cauta in intregul set de instante exceptiile la arborele de decizie. Daca sunt identificate exceptii,
se insereaza unele dintre acestea in W si se reia de la pasul 2, altfel STOP.

Inserarea exceptiilor la W poate determina cresterea dimensiunii lui W, daca nu este insotita de
eliminarea altor instante, pentru conservarea dimensiunii ferestrei.

Exemplu
Se consideră tabelul 5.1, care conţine exemplele de instruire ce compun fereastra W.
Tabel 5.1 Exemple de instruire din fereastra W
Clasa Caracteristica C1 Caracteristica C2 Caracteristica C3
A V11 V21 V31
A V12 V22 V31
A V12 V22 V31
A V13 V22 V32
B V12 V21 V31
B V12 V21 V31

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
70 Inteligenţa artificială

Să se construiască arborele pentru clasificarea acestor instante in cele doua clase, A si B.

Se calculeaza valoarea lui H pentru fiecare caracteristica in parte.


Caracteristica C1:
1 1 1 4 2 2 2 2 1 1 1
H ( log ) ( log log ) ( log ) 0.462
6 1 1 6 4 4 4 4 6 1 1
Caracteristica C2:
3 2 2 1 1 3 3 3
H ( log log ) ( log ) 0.318
6 3 3 3 3 6 3 3
Caracteristica C3:
5 3 3 2 2 1 1 1
H ( log log ) ( log ) 0.56
6 5 5 5 5 6 1 1

Se selectează C2. Aceasta caracteristică prezintă doua valori, deci arborele va prezenta pentru început
două ramuri. Pe ramura V22 regăsim numai instane ale clasei A, deci nu mai este necesară o
discriminare ulterioară a acestor instanţe. Pe ramura V21 este nevoie de selectarea unui nou atribut, în
raport de care să se realizeze clasificarea instantelor. Pentru această ramură se calculează măsurile de
entropie.
Caracteristica C1:
1 1 1 2 2 2
H ( log ) ( log ) 0
3 1 1 3 2 2

Caracteristica C3:
3 2 2 1 1
H ( log log ) 0.636
3 3 3 3 3

Se selectează caracteristica C1, ca următor nod de decizie. Arborele de decizie obţinut este prezentat
în figura 5.3.

Fig. 5.3 - Arbore de decizie generat prin ID3

Construirea arborilor de decizie: top-down intr-o maniera “divide et impera”


La pasul N:
- este selectat un atribut pentru fiecare nod al arborelui si un arc este creat pentru fiecare valoare
posibila a atributului
- instantele sunt divizate in subseturi (cate un subset pentru fiecare arc emergent din nodul nou
creat)

Procedura se repetă în mod recursiv pentru fiecare arc, folosind doar instanţele de pe arcul respectiv.
Procesul este stopat cand toate instantele au aceeasi clasa.
Criteriile de alegere a atributelor la pasul N:

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

Care este cel mai bun atribut dupa care ar trebui facuta divizarea? Cel care va duce la formarea celui
mai mic arbore; metoda euristica pentru a obtine un arbore de dimensiuni reduse este selecatrea
atributelor ce produc cele mai pure noduri. Nodurile pure sunt nodurile ce impart exact domeniul in
subseturi: in stanga numai instante din A, in dreapta numai instante din B

Formula de calcul a puritatii/impuritatii: castigul de informatie (IG)

Căştigul de informaţie creste cu puritatea medie a subseturilor pe care un atribut le produce.


Strategia de lucru: alegerea la pasul N a atributului ce duce la cel mai mare castig de informatie.

Informatia este masurată în biţi. Cunoscându-se distribuţia de probabilitate, informatia necesară


predicţiei producerii unui eveniment este entropia distribuţiei. Entropia oferă această informaţie în biţi
(şi fracţiuni de biţi!).

Formula de calcul a entropie


entropie( p1 , p2 ,... pn ) p1 log p1 p2 log p 2 ... pn log pn

Formula de calcul a câştigului de informaţie

IG = informaţia înainte de divizare – informaţia de după divizare = entropia(n-1) - entropia(n).

Nu toate nodurile trebuie să fie “pure”; instante identice sunt produse după reguli diferite şi deci apar
în subseturi diferite. Cerintele pe care o formula de calcul a puritatăţii trebuie să le indeplinească:
- când nodul este pur rezultatul ar trebui sa fie zero;
- când impuritatea este maximă (şi împărţirea este indiferentă), valoarea ar trebui să fie maximă
- să permită împarţirea în mai multe etape (divizarea şi apoi subdivizarea)

Entropia este singura funcţie care îndeplineşte toate aceste trei conditii !
q r
entropia( p, q, r ) entropia( p, q r ) (q r ) entropia( , )
q r q r
Utilizarea entropiei produce rezultate foarte slabe în clasificarea după atribute cu multe valori posibile
(caz extrem: id-ul). Subseturile sunt mult mai pure atunci când sunt împărţite după un număr mai
mare de valori ale atributului, deci un atribut ce împarte domeniul în subseturi de câte un element are
IG-ul cel mai mare. Această proprietate a functiei de a favoriza atribute cu un număr mare de valori
poate duce la specializare şi supraînvăţare (overfitting). Puterea de generalizare scade şi metoda se
specializează în rezolvarea cât mai exactă a unei singure probleme, a unui caz particular în defavoarea
clasei generale de aplicaţii.

Adaptări ale formulei pentru îndepărtarea problemei specializarii:


Information gain => gain ratio (GR)
Câştigul de informaţie => proporţia câştigului

Proporţia câştigului ia în calcul numarul de arce produse prin alegerea unui anumit atribut şi
corectează IG-ul luând în calcul informaţia intrinsecă de divizare.

Informatia intrinseca (II): entropia distribuţiei instanţelor pe arce (câtă informaţie este necesară pentru
a afla de ce arc aparţine o instanţă).

Exemplu (pentru ID):

Entropia(“ID CODE”)=entropia([0,1])+entropia([0,1])…+entropia([0,1])=0
IG=Entropia(N-1)-0=Entropia(N-1)=0.940 (de exemplu)
II= entropia([1,1,1..1])=n * (-1/n *log 1/n)=3.870 biti (ex. pt. n=14)

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
72 Inteligenţa artificială

Atunci:
GR=IG/II=0.940/3870=0.246
Ca rezultat, valoarea IG a tributului a fost ponderata cu gradul de divizare al atributului si a scazut de
la 0.940 la 0.246.

Aceasta formulă are dezavantajul că poate compensa în exces câştigul de informaţie şi favorizează
atribultele cu un număr redus de valori posibile.

Metode euristice de optimizare a algoritmului:


eliminarea atributelor ce impart domeniul in segmente de dimensiuni foarte scazute (ex: id-ul)
în cazul folosirii formulei modificate GR, selectarea prealabilă doar a atributelor cu IG-ul peste
medie

Implementarea algoritmului C 4.5 pentru probleme complexe

Cerinte pe care un algoritm trebuie sa le respecte pentru a fi util in rezolvarea unor probleme reale:
trebuie sa poate trata atribute numerice
nu esueaza cand avem valori lipsa
este robust in prezenta zgomotului
poate introduce in calcul informatie apriorica

Pentru a indeplini aceste cerinte, schemele de baza trebuie extinse:


- extinderea lui ID3 pentru a trata atribute numerice este facila
- tratarea cazurilor valorilor lipsa – o problema mai dificila
- stabilitatea in conditii de zgomot – necesita algoritmi sofisticati de eliminare a
zgomotului/perturbatiilor (pruning)

Implementarea acestor modificari a dus la C 4.5, probabil cea mai cunoscută metoda de invatare
automata din ziua de astazi. Succesorul comercial: C 5.0

Atributele numerice:
metoda standard: impartirea binara (temeratura <45 C)
diferentierea fata de atributele nominale: fiecare atribut ofera mai multe puncte posibie de taiere
solutia este o extindere evidenta:
-evaluarea IG (sau GR) pentru fiecare solutie de impartire a atributului
-se alege cel mai bun punct de taiere
-castigul de informatie al punctului ales este castigul atributului
-este consumatoare de resurse de calcul

Exemplu de impartire:

64 65 68 69 70 71 72 72 75 75 80 81 83 85
Yes No Yes Yes Yes No No Yes Yes Yes No Yes Yes No

Pentru punctul de taiere 71.5 avem:


4 yes si 2 no pt. t<71.5 si
5 yes si 3 no pt. t>71.5
IG([4,2],[5,3])=(6/14)IG([4,2])+(8/14)IG([5,3])=0.939 biti

Evitarea sortarilor repetate

Pentru a putea fi evaluate, instantele trebuie sortate dupa atributul numeric tratat
Complexitatea operatiei de sortare: O(nlogn). Ordinea de sortare ramane aceeasi de-a lungul
intregului arbore de sortare si trecerea de la ordinea din nodul parinte la noua ordine este de
complexitate:

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

O(n).

Dezavantajul este ca este necesar sa cream si sa memoram un vector de indici sortati pentru fiecare
atribut numeric in parte. Informatia din atributele nominale este utilizata la nivelul unui nod folosind o
impartire pe mai multe arce (egale cu numarul de valori posibile), ceea ce nu este valabil si in cazul
impartirii binare a unui atribut numeric. Aceasta inseamna ca acesta se va mai imparti si la nivelurile
urmatoare. Dezavantaje: arborele este relativ greu de citit si inteles. Remedii posibile: eliminarea
atributelor numerice sau impartirea pe intervale la nivelul unui nod (in loc de impartiri binare de-a
lungul mai multor noduri).

Impartirea pe intervale

O cale eficienta de a genera punctele de taiere multipla: un algoritm greedy. Solutia optima de taiere
multipla (pentru criteriul aditiv) poate fi descoperita folosind programarea dinamica in O(n^2).

Machine Learning (ML) se refera la modul in care calculatorul invata sa efectueze anumite taskuri
(de exemplu, clasificare, clusterizare), pe baza unor date disponibile, prezentate ca exemple (instante).
https://ufal.mff.cuni.cz/courses/npfl054. ML presupune efectuarea urmatorilor cinci pasi (fig. 5.4):
(1) Formularea taskului („Intr-o propozitie, atribuie sensul corect pentru cuvantul line”
(2) Ofera exemple, organizate in exemple de instruire (training) si de test (aceste exemple
functioneaza ca un dictionar). Separarea in cele doua categorii trebuie sa fie aleatoare.
(3) Invatarea atribuirii sensului corect pe baza exemplelor de instruire (intelegerea exemplelor din
dictionar). Cunostintele invatate din exemplele de instruire reprezinta un MODEL INSTRUIT.
De exemplu DECISION TREE Learning.
(4) Testarea cunostintelor invatate cu ajutorul exemplelor de test (a aplica un test)
(5) Evaluarea rezultatului obtinut la pasul (pas 4). Reprezinta evaluarea raspunsului furnizat la testul
de la pasul anterior.
Pas 3 (cel mai In cazul problemelor de clasificare
important)

Fig. 5.4 Construirea modelului de clasificare cu ML

Detalierea procesului de invatare (de construire a clasificatorului) este prezentata in figura 5.5.

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
74 Inteligenţa artificială

Fig. 5.5 Detalierea procesului de construire a clasificatorului

Clasificatorii
Modelul pentru clasificare (clasificator) poate fi: arbore de decizie, SVM, retea neuronala, etc.
Clasificatorul este o functie de mapare c, pe care la inceput o aproxim pe baza unei ipoteze, h. Pe baza
cunostintelor din date, h este imbunatatita (optimizata), astfel incat se obtine cel mai bun clasificator,
h* care poate fi construit in datele disponibile. (fig. 5.6)

Fig. 5.6 Clsificatorul, ca functie de mapare

Tipuri de invatare in construirea clasificatorilor


Instruirea (construirea modelului) poate fi supervizata sau nesupervizata (figurile 5.7 si 5.8)

Fig. 5.7 Tipuri de invatare

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

Fig. 5.8 Diferente terminologice in tipologia clasificatorilor

Cel mai bun model este acela care asigura eroarea minima de generalizare si nu eroarea la instruire
Diferenta intre cele doua tipuri de erori este prezentata in figura 5.9 si se datoreaza aparitiei
fenomenului de supra-specializare (overfitting).

Fig. 5.9. Eroarea la instruire vs. eroarea la generalizare

Evitarea supra-specializarii se poate realiza prin:


- utilizarea unor caracteristici (features) informative (utile in clasificare) si robuste (nu sunt
sensibile la datele de instruire)
- stabilirea/reglarea parametrilor de instruire

Principalele tipuri de clasificatori sunt prezentate in figura 5.10.

Clasificator linear (linie) Clasificator quadratic (parabola) Clasificator functie complexa


(curba)
Fig. 5.10 Tipuri de clasificatori

Categorii de date utilizate in contruirea clasificatorilor

Exista mai multe categorii de date care sunt utilizate in procesul de construire a clasificatorilor (figura
5.11), respectiv:
Exemplele reale sunt obiecte care sunt deja clasificate sau pe care dorim sa le clasificam.
Instantele (de date) reprezinta vectori de caractersitici, cu valoarea clasei asociate.
Exemplu = vector de caracteristici + clasa

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
76 Inteligenţa artificială

Atunci cand clasa asociata nu este cunoscuta, instanta este reprezentata numai de vectorul de
caracteristici.

Fig. 5.11 Categorii de date utilizate in contruirea clasificatorilor

Figura 5.12 prezinta datele pentru instruire vs. datele pentru testare.

Fig. 5.12. Datele pentru instruire vs. datele pentru testare

Managementul colectiilor de date

Figura 5,13 prezinta diferitele categorii de colectii de date.

Figura 5.13 Categorii de colectii de date

Datele de instruire sunt datele utilizate la instruirea (construirea) clasificatorului


Datele „pastrate” sunt datele utilizate la evaluarea clasificatorului, cu anumite valori ale parametrilor
in vederea ajustarii modelului.
Datele de test sunt datele care simuleaza situatia reala. Se utilizeaza la testarea modelului, la finalul
procedului de instruire (construire). Testarea va servi si la selectarea celui mai bun model.
De regula, cu cat se utilizeaza seturi mai mari de date, cu atat performantele contruite si testate
modelelor cresc. Daca nu, atunci este o problema cu alegerea datelor sau/si cu alegerea metodei ML
(tipului de model, parametrii ajustabili).

Principalele solutii de management al datele atunci cand volumul acestora este insuficient pentru
constituirea de seturi distincte de date:

(a) Cross validation


Exemplu: Cross-validation pe baza unei partitionari in 6 parti (figura 5.14)
 Se partitioneaza setul de date in 6 parti
 Se extrage pe rand fiecare parte pentru a fi utilizata la testare
 Se face media rezultatelor
 Fiecare exemplu se utilizeaza o data pentru testare si de 5 ori pentru instruire

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

Fig. 5.14 Cross-validation pe baza unei partitionari in 6 parti

Cross-validation stratificata are in vedere ca fiecare parte sa includa o proportie corespunzatoare de


valori de clasa.
 Cross‐validation este un procedeu mai bun decat repeated holdout
 Cross‐validation cu stratificare este si mai bun
Euristica: Daca sunt disponibile suficiente date se recomanda sa se utilizeze procent de splitare

(b) Bootstraping
Noi seturi de date Data1, ..., Datak, de marimi egale sunt obtinute din DATA cu inlocuire. In cadrul
iteratiei i, Datai formeaza setul de instruire, restul exemplelor formand setul de test.

Evaluarea si selectia modelelor (clasificatorilor)


Evaluarea unui clasificator reprezinta estimarea performantei, adica cat de bine clasifica instantele
noi, pe care nu le-a vazut anterior (figura 5.15). Este „estimare” pentru ca se incearca stabilirea
performantei pe orice date, nu numai pe cele pe care le detinem. Pe baza rezultatelor evaluarii, se
compara diferiti clasificatori generati si se decide care este cel mai bun.

Fig. 5.15 Evaluarea performantei clasificatorilor

Indicatori ai performantei
Acuratetea este raportul dintre numarul de cazuri clasificate corect si numarul total de cazuri.
Rata erorii este raportul dintre numarul de cazuri clasificate gresit si numarul total de cazuri.
Matricea de confuzie (confusion matrix)
Pentru k clase, este o matrice de k × k. Elementul de la pozitia (i, j) da numarul de cazuri care sunt in
clasa i si clasificatorul le include in clasa j.

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
78 Inteligenţa artificială

Tabelul ilustreaza cazul particular pentru doua clase (o etichete pozitive si negative).
N = TN + FP (numar de cazuri clasificate corect)
P = FN + TP (numar de cazuri clasificate incorect)

Valoarea predictiva pozitiva (precizie)

Valoarea predictiva negativa

True-positive rate (TPR) reprezinta proportia de cazuri de clasa i care sunt clasificate drept clasa i si
de catre clasificator.

False-positive rate (FPR) reprezinta proportia de cazuri care nu apartin clasei i dar sunt etichetate cu
aceasta clasa.

TPR mai poarta numele de sensitivity (sau recall). TNR se mai numeste si specificity.

Rata de verosimilitate. Combina sensitivity and specificity pentru a vedea masura in care
clasificatorul este eficient in identificarea corecta a clasei.

LR+ calculeaza de cate ori este mai probabil ca obiecte pozitive sa aiba o predictie pozitiva fata de
obiectele negative.
LR_ calculeaza de cate ori este mai putin probabil ca obiecte pozitive sa aiba o predictie negativa fata
de obiectele negative.
Pt k > 2, exemplu:

Cazurile clasificate coresct sunt pe diagonala.

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

Cei mai importanti indicatori de evaluare a performantelor clasificatorilor sunt prezentati in tabelul de
mai jos:

Adesea se combina precizia si recall, sub forma scorului F (F-measure sau F-score)

5.2 Clusterizarea

Procesul de clusterizare are ca scop obţinerea unor grupe de obiecte care au comportament similar şi
pot fi tratate identic. Astfel vom putea trata identic toate instanţele dintr-un cluster, obţinându-se o
simplificare a analizei datelor: în loc să lucrăm cu un set de date cu 1000 de instanţe vom lucra cu 10
clustere. Clusterizarea datelor este folosită atunci când nu se cunoaşte un atribut clasă. Clasificarea
rezultată în urma clusterizări este o împărţire în grupe, numite clustere, formate în mod „natural”,
urmărind corelaţiile dintre atributele setului de date. Dacă clasificarea finală este corectă, ea va
reflecta un mecanism real prezent în setul de date analizat.

Procesul de clusterizare este definit astfel: având un set de date de intrare D, de forma D ={I1, I2, ...,
In}, unde n este dimensiunea setului de date iar I reprezintă o instanţă de forma Ii = <Ai1, Ai2, ..., Aip>
unde A este un atribut, iar Aij reprezintă valoarea atributului Aj a instanţei Ii, procesul de clusterizare
stabileşte o clasificare a setului de date, prin formarea unor clase numite clustere, de forma Ck ={I1k,
I2k, ...Imk}unde m este numărul de instanţe repartizate într-un cluster iar k numărul de clustere totale.
Formarea clusterelor C trebuie să îndeplinească un criteriu de similaritate de forma similaritate(Iik,Ijk)
> similaritate (Iik,Ijq), oricare ar fi i,j şi q un cluster diferit de k, adică similaritatea dintre două instanţe
din acelaşi cluster va fi mai mare decât similaritatea dintre două instanţe din clustere diferite. Cu toate
că, uzual, clusterizarea reprezintă un proces de învăţare nesupervizată, există însă şi algoritmi de
clusterizare care folosesc un set de antrenare.

În funcţie de algoritmii folosiţi, numărul de clustere obţinute în final poate fi: predefinit, furnizat ca
dată de intrare a procesului de clusterizare, sau poate fi un rezultat al clusterizării, caz în care nu se va
cunoaşte decât în momentul finalizării procesului. Densitatea clusterelor şi distanţa dintre ele este, de
asemenea, dependentă de algoritmul folosit. Analiza datelor folosind metode de clusterizare este o
tehnică folosită pentru descoperirea similarităţii dintre indivizii unei populaţii făcînd comparaţii
cantitative a mai multor caracteristici.

5.2.1 Tipuri de clustere

Deoarece există o gamă largă de algoritmi de clusterizare care pot produce rezultate diferite pe acelaşi
set de date, este necesară înţelegerea tipurilor de clustere care pot fi alcătuite de un algoritm de
clusterizare. În funcţie de algoritmul folosit, grupele identificate de un algoritm de clusterizare pot fi:
grupe exclusive şi disjuncte: caz în care o înregistrare va aparţine unei singure grupe şi în mod
obligatoriu unei grupe;
grupe suprapse: o înregistrare va putea fi clasificată în mai multe grupe;
grupe distribuite probabilistic: o înregistrare va apaţine unui cluster cu o probabilitate calculată, o
înregistrare putând fi astfel distribuită în toate clusterele. Clasificarea finală va alege clusterul cu
probabilitatea cea mai ridicată;
grupe distribuite ierarhic: clusterizarea va folosi principiul de construire a arborilor de decizie,
obţinând în final o clasificare arborescentă.

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
80 Inteligenţa artificială

În figura 5.16 sunt reprezentate câteva tipuri de clustere.

C1
C2
C1 C2

a) clustere exclusive
b) clustere suprapuse parţial
X aparţine la C1 cu o
C1 probabilitate P1x
X, P1x A, B, C,
Y aparţine la C1 cu o D, E, F
Y, P1y probabilitate P1y

A, B C, D, E, F
C2 X aparţine la C2 cu o ......
X, P2x probabilitate P2x
Y, P2y Y aparţine la C2 cu o
probabilitate P2y
A B ......
c) clustere probabilistice
d) clustere ierarhice
Fig 5.16 - Tipuri de clustere

Teoretic, tipul de clusterizare folosit pentru analiză se alege prin prisma mecanismelor pe care vrem
să le descoperim în datele analizate. Dacă nu se cunosc aceste mecanisme vor trebui testaţi succesiv
mai mulţi algoritmi pentru a descopri cel mai performat algoritm pentru setul de date analizat.

5.2.2 Aplicaţii ale clusterizării

În continuare vom face un scurt rezumat al câtorva aplicaţii în care clusterizarea datelor a fost folosită
cu succes:
Recunoasterea formelor: este procesul de clasificare a imaginilor, a unor părţi din imagini sau a
date video în vederea descoperiri unor pattern-uri. Algoritmi care pot fi folosiţi în recunoaşterea
de forme sunt: K nearest neighbor, clasificator liniar şi quadratic.
Analiza de date spatiale: procesul constă în analiza concomitentă a mai multor tipuri de informaţii
ale datelor vizate: informaţii topologice, informaţii geometrice, informaţii geografice. Algoritmii
folosiţi în acest procedeu trebuie să fie capabili să prelucreze structuri complexe de date. Cel mai
comun exemplu de analiză de date spaţiale este cartografierea galaxiilor.
Prelucrarea imaginilor: este procedeul în care inputul este reprezentat de o imagine sau un set de
imagini consecutive (video) iar outputul reprezintă caracteristici ale acelor imagini. Outputul
poate lua orice forma: numerica, literal, o altă imagine. Algoritmii cu bază grid, algoritmii
ierarhici conglomerativi şi algorimii fuzzy au fost folosiţi cu succes în prelucrare de imagini
Cercetari economice: algoritmii de învăţare automată şi în special de clusterizare au fost folosiţi
cu succes în studii de piata în aplicaţii cum sunt: desoperirea patternurilor în tranzacţii, analize de
tip „market basket”, analiza profilului clienţilor şi altele.
În cadrul web-ului algoritmii de clusterizare au fost folosiţi pentru: clasificarea documentelor,
descoperirea unor pattern-uri comportamenteale de navigare, şi altele.
Text mining: este procesul de extragere a unor informaţii cu grad înalt calitativ dintr-un text scris.
Are la bază procesul de recunoaştere a patternurilor din date, care este specific clusterizării.
Alte aplicaţii de clusterizare au fost făcute în domenii precum:

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

Marketing: descoperirea grupurilor de clienţi cu comportament similar astfel încât să permită


proiectarea campanii de marketing diferenţiate în funcţie de preferinţele clienţilor pentru a
minimiza costurile de publicitate realizînd în acelaşi timp o maximizare a rezultatelor. Acest tip
de aplicaţie este cunoscut sub numele de client segmentation;
Asigurări: identificarea caracteristicilor grupurilor de clienţi care satisfac sau nu satisfac cerinţele
necesare pentru a se încadra în diverse categorii de acordare de asigurări.
Urbanistică: identificarea ansamblurilor de locuinte în funcţie de caracteristici geografice,
geologice sau a populaţiei.
Seismologie: observarea epicentrelor seismologice, gruparea şi caracterizarea lor.
Diagnostic şi imagistică medicală.

5.2.3 Metode de clusterizare

a) După modul în care sunt obţinute clusterele:


algoritmi de clusterizare ierarhică
algoritmi de clusterizare partiţională
Atât algoritmii ierarhici cât şi cei partiţionali se împart la rândul lor în mai multe grupe de algoritmi,
astfel algoritmii de clusterizare ierarhică pot fi:
Single likage
Complete linkage
Average linkage
Median
Algoritmii partiţionali pot fi:
K-means
Adaptive k-means
Fuzzy clustering
In figura 5.17 este prezentă clasificarea algoritmilor de clusterizare.

b) În funcţie de modul cum sunt proiectate clusterele:


Algoritmi iterativi: împart instanţele în grupe disjuncte folosind o mărime numită „distanţă”. În
funcţie de implementări această „distanţă” poate fi calculată folosind mai multe formule.
Algoritmi incrementali: au la bază o măsură a „calităţii” clusterului numită „unitatea categoriei”.
Un algoritm incremental construieşte arbori de clasificare astfel încât fiecare nou cluster format să
fie necesar sau util. Decizia de păstrare a setului de date fără a realiza un cluster nou se va lua
când vechea clasificare este „curată”. Astfel o instanţă nouă va trebui clasificată astfel încât să
producă un cluster nou doar dacă plasarea într-un cluster deja existent compromite puritatea
acelui cluster.
Algoritmi statistici: împart instanţele în grupe pe principiul probabilităţilor, spre deosebire de
principiul determinist folosit de celelalte două metode.

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
82 Inteligenţa artificială

Algoritmi de clusterizare

Algoritmi de clusterizare Algoritmi de clusterizare non


ierarhică - ierarhică sau algoritmi
partiţionali

Single Complete Average K Means Adaptive


linkage linkage linkage K Means

Fuzzy
Median Clustering

Fig 5.17 - Clasificarea algoritmilor de clusterizare

c) În funcţie de modul de parcurgere a setului de date pentru construirea clusterizării:


Algoritmii cu agregare sau bottom - up: construiesc clusterele pornind de la nivelul frunză şi
agregă clustere în grupe mai generale, folosind diverse criterii.
Algoritmii de diviziune sau top - down: încep construirea culsterizării de la nivelul rădăcină,
unde întregul set de date constitue primul cluster. Folosind anumite criterii îl va împărţi în clustere
mai mici.

d) In funcţie de restricţiile de apartenenţă a unei instanţe la unul sau mai multe clustere:
Algoritmi de clusterizare hard: o instanţă va putea aparţine unui singur cluster.
Algoritmi de culsterizare fuzzy: o instanţă poate aparţine mai multor clustere cu o oarecare
probabilitate.

Figura 5.18 reflectă toate categoriile menţionate anterior.

Metode de clusterizare

Metode Metode de Metode cu Metode


ierarhice partiţionare bază grid specifice
machine
learning
Algoritmi K Means
aglomerativi Reţele
neuronale
Algoritmi cu K Medoids
diviziune

Algoritmi cu
bază în calculul
funcţiei
densitate

Clusterizare
probabilistic
ă
Fig 5.18 - Categoriile de metode pentru clusterizare
Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

Metode de clusterizarea folosind algoritmi de partiţionare

Algoritmii de clusterizare prin partiţionare împart setul de date în clustere folosind diverse criterii
pentru gruparea instanţelor. Prima problemă care se pune în acest tip de algoritmi este numărul de
clustere care vor fi formate. Acest număr este de obicei furnizat ca dată de intrare a procesului de
clusterizare, fiind ales în funcţie de tipul datelor care vor fi prelucrate. Altă problemă este alegerea
criteriului de grupare a instanţelor. Cel mai folosit criteriu este distanţa dintre instanţe. Pentru
evaluarea clusterizării se calculează diverşi indicatori care furnizează informaţii desrpre eterogenitatea
clusterelor, despre distanţa dintre clustere şi altele.

Considerând un set de date D, putem spune că sub-seturile de date Ck realizează o partiţionare a


di D di Cj
setului de date D, dacă pentru orice instanţă există un j, astfel încât , unde j [1,k].
C1 C2 ... Ck D
Subseturile de date Ck trebuie să îndeplinească proprietatea ca , adică
C C
reuniunea tuturor subseturilor trebuie să acopere în întregime setul de date D. Dacă i j
Ø,
oricare ar fi i,j [1,k], vom avea partiţii disjuncte ale setului de date. În funcţie de algoritmii de
partiţionare folosiţi un cluster poate fi disjunct sau cu o funcţie probabilistică de distribuţie a
instanţelor.

Descrierea algoritmului de partiţionare

Modul de lucru al unui algoritm de clusterizare care foloseşte metoda partiţionării poate fi descris
astfel: având setul de date D, un număr predefinit de clustere care se doresc a fi obţinute: N şi un
criteriu de similaritate a datelor, algoritmul va partiţiona setul de date optimizând acel criteriu.
Criteriul cel mai frecvent folosit este distanţa dintre instanţe. Pentru calculul distanţei avem mai multe
forumule, dintre care: distanţa euclidiană, dinstanţa Manhatan, etc. Clusterele sunt alcătuite printr-un
proces iterativ, în mai mulţi paşi de execuţie. Fiecare cluster va fi evaluat la sfârşitul unui ciclu. Dacă
criteriul de similaritate nu este satisfăcut, se reia procesul de distribuire e a instanţelor. O instanţă va fi
astfel redistribuită succesiv în clustere diferite. În final se obţin clustere de o calitate ridicată.
Dezavantajul metodei este că necesită un timp ridicat de calcul. În continuare vom descrie paşii
algoritmului de clusterizare de partiţionare:
Pas 1: Avem inputul constând în numărul de clustere ce se doresc obţinute (k clustere), criteriul
urmărit (distanţa dintre instanţe) şi setul de date.
Pas 2: Sunt alese aleator k puncte. Ele vor reprezenta "centrele clusterelor":
C1, ... Ck
Unde:
k este numărul de clustere,
C poate face parte din setul de date sau poate fi o instanţă ce nu aparţine setului de date dar are
aceaşi structură
Pas 3: Pentru fiecare instanţă se evaluază criteriul de similaritate cu fiecare centru de cluster:
Este Ii similar cu Cj?
Unde:
Ii este o instanţă din setul de date, i = 1..n,
Cj este un centru de cluster j = 1..k,
n - dimensiunea setului de date,
k numărul de clustere
Pas 4: O instanţă va fi repartizată clusterului care optimizează cirteriul de similaritate)
Pas 5: Pentru fiecare cluster nou format prin repartiţia instanţelor, se va recalcula noul centru, numit
centroid, pe baza unei formule consistente criteriului de similaritate, luând în calcul toate instanţele
care au fost distribuite în acel cluster
Pas 6: Algoritmul este reluat de la pasul 2 cu noile centre de clustere
Criteriul de oprire: instanţele vor fi repartizate succesiv în acelaşi cluster.

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
84 Inteligenţa artificială

Un cluster are următorii parametrii care pot fi evaluaţi: centroidul clusterului, raza clusterului şi
diametrul clusterului. Pentru evaluarea distanţei dintre clustere avem: distanţa dintre centroide,
distanţa dintre cele mai apropiate două instanţe şi distanţa dintre cele mai depărtate două instanţe. În
continuare vom furniza o formulă de calcul pentru evaluarea parametrilor unui cluster. Centroidul
clusterului reprezintă o medie a tuturor instanţelor plasate în acel cluster, şi poate fi calculată folosind
formula:
N
I ki
i 1

Centroidk = N
unde:
I: reprezintă o instanţă din setul de date
N: reprezintă numărul de instanţe din clusterul k
k : reprezintă numărul clusterului

Raza unui cluster poate fi calculată ca o sumă a distanţelor dintre instanţele care au fost clasificate în
acel cluster. Astfel raza unui luster k poate fi calculată folosind formula :

N
( I ki Centroid k ) 2
i 1
Razak = N
Unde:
I: reprezintă o instanţă din setul de date
N: reprezintă numărul de instanţe din clusterul k
k : reprezintă numărul clusterului
Centroid k: reprezintă centroidul clusterului calculat cu forumal 4.1

Diametrul unui cluster poate fi calculat după formula următoare:

N N
( I ki I kj ) 2
i 1 j 1

Diametrulk =
N ( N 1)

Unde:
I: reprezintă o instanţă din setul de date
N: reprezintă numărul de instanţe din clusterul k
k : reprezintă numărul clusterului

Metode de calcul a distanţei

Procesul de clusterizare va urmări minimizarea distanţei în scopul formării unor clustere similare.
Alegerea metodei de calcul a distanţei se face în funcţie de setul de date analizat şi în funcţie de
rezultatele ce se doresc a fi obţinute. Modul de calculul a distanţei influenţează o serie de parametrii
în procesul de clusterizare, cum sunt: forma clusterelor obţinute, calitatea clusterelor şi viteza de
construire a clusterelor.

Distanţa Euclidiană
Considerăm un set de date D, cu N înregistrări şi M atribute pentru fiecare înregistrare. Dorim să
calculăm distanţa dintre o înregistrare A şi o înregistrare B (A,B D).
A = (a1, a2, ... , aM)
B = (b1, b2, ... , bM)

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

Distanţa Euclidiană se calculează folsind formula:


M
d ( A, B ) [ (ai bi ) 2 ]1 / 2
i 1

Distanţa Manhattan
Folosind notaţiile de mai sus, distanţa Manhattan se calculează folosind formula:
M
d ( A, B ) | ai bi |
i 1 (formula 4.x)

Distanţa Minkowsky
Se calculează folosind formula:
M
d ( A, B ) ( | ai bi | r )1 / r
i 1 (formula 4.x)
Distanţa Euclidiană este un caz particular al distanţei Minkowsky. Distanţa Minkowsky are
dezavantajul că o caracteristică cu valori mari va domina setul de date. O soluţie pentru a înlătura
această problemă este normalizarea datelor când se foloseşte distanţa aceasta.
Partiţionarea setului folosind eroarea pătratică

Eroare pătratică este unul dintre cele mai folosite criterii de construire a unei clusterizări, deoarece
este uşor de calculat şi produce rezultate de o calitate ridicată atât pentru clustere izolate cât şi pentru
clustere compacte. Eroarea pătratică pentru un cluster Ck se calculează folosind formula:
m
|| I i C k || 2
Erp(Ck)= i 1
Unde:
Ii: reprezintă instanţa i din clusterul Ck
Ck: reprezintă centroidul clusterului
m: reprezintă numărul de instanţe prezente în clusterul Ck

Eroarea pătratică pentru întregul process de clusterizare se calculeză însumând erorile pentru fiecare
din clustere:
k
Erp (C j )
j 1
Erp =

Algoritmul de partiţionare folosind eroarea pătratică are următorul pseudocod:


Având ca input: D ={I1, I2, ... ,In}un set de date alcătuit din n instanţe şi numărul k de clustere pe care
dorim să le formăm; algoritmul va oferi ca output k clustere astfel:
Pas 1: fiecare instanţă Ij va fi repartizată unui cluster;
Pas 2: se calculează centrul pentru fiecare cluster;
Pas 3: Repetă:
Pas 3.1: fiecare instanţă Ij va fi repartizată unui cluster;
Pas 3.2 :se calculează centrul pentru fiecare cluster;
Pas 3.3: se calculează eroare pătratică;până când: diferenţa dintre eroarea pătratică în paşi
succesivi este sub un anumit prag prestabilit.

Un dezavantaj al acestei metode este faptul că soluţia finală poate converge spre minime locale. K-
means este o metodă care foloseşte calculul erorii pătratice. În continuare vom prezenta algoritmul de
clusterizare prin partiţionare k-means.

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
86 Inteligenţa artificială

Algoritmul K-means

Metoda K-means alcătuieşte clustere folosind date cu atribute ce conţin valori numerice. Ea împarte
instanţele în grupe disjuncte folosind distanţa dintre instanţe. În funcţie de implementări distanţă poate
fi calculată folosind una dintre formulele prezentate mai sus.

Algoritmul K-means poate fi descris astfel:


Pas1: Se precizează câte clustere va avea împărţirea: acesta este parametrul k
Pas2: Sunt alese aleator k puncte care vor fi desemnate „centrele clusterelor”: C1, ...,Ck
Pas3: Instanţele sunt repartizate în clusterul cu cel mai apropiat centru corespunzător distanţei
folosite.
Pas4: Pentru fiecare cluster format după repartizarea tuturor instanţelor se va calcula „centorid-ul”
care este media instanţelor din acel cluster
Pas5: Centrul clusterului va fi înlocuit cu „centroid”-ul calculat la pas 4.
Pas6: Algoritmul este reluat de la pasul 2.
Procesul este oprit atunci când instanţele sunt repartizate succesiv în acelaşi cluster de mai multe ori.
În acest caz se consideră că s-au „stabilizat” clusterele.

În funcţie de implementare parametrul k este predefinit sau este introdus de utilizator. Deoarece
instanţele sunt repartizate în clusterul de a cărui centru este mai aproape centrele se vor stabiliza pe un
minim. Pentru a elimina acest neajuns, algoritmul se va rula succesiv pe aceleaşi date, de fiecare
alegând alte centre de clustere iniţiale. În figura 5.18 sunt ilustraţi paşii algoritmului k means.

Se repartizează
Se aleg aleator K fiecare instanţă într-
centre: un cluster

C1 cluster1
C2 cluster2
Variabile de input: C3 Calculez cluster3 Se calculează
1. numărul de clustere . distanţa de la Ij la Ci . noul centru
2. setul de date . j = 1..m, i = 1..k . pentru fiecare
. . cluster:
Ck (m – numărul de cluster k
seturi de antrenare) „media
instanţelor care
(k – numărul de au ajuns în acel
clustere) cluster”

Se înlocuieşte vechiul centru de la pasul n-1


cu noul centru şi se reia procesul

Fig. 5.18 - Paşii algoritmului k means

Un dezavantaj al algoritmului k-means este că procesul de clusterizare este „greoi”. La fiecare pas
algoritmul trebuie să efectueze un număr mare de calcule pentru a determina distanţa dintre fiecare
instanţă şi fiecare centru. În plus algoritmul trebuie să efectueze un număr mare de iteraţii: după ce au
fost alcătuite clusterele, sunt recalculate centrele lor iar procesul este reluat. Din această cauză
algoritmul este foarte lent. Pentru a diminua cât mai mult acest dezavantaj au fost găsite diverse
metode de a scădea numărul de iteraţii necesare şi numărul de calcule efectuate. Una dintre aceste
metode este folosirea proiecţiei setului de date, sau divizarea setului după anumite axe pentru a nu mai
folosi în calcul fi instanţă în parte, ci cu diviziunile respective. Aceste „îmbunătăţiri” în sensul
creşterii vitezei au neajunsul scăderii calităţii clasificării.

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

Metoda de clusterizare „cei mai apropiaţi vecini”

Algoritmul de clusterizare a celor mai apropiaţi vecini este cunoscut în literatura de specialitate sub
numele de „nearest neighbor”. Algoritmul construieşte iterativ clusterele prin adăugarea instanţelor
noi la clustere deja existente sau prin crearea de noi clustere. Se foloseşte o mărime „prag” pentru a
determina dacă o instanţă va fi adăugată unui cluster deja existent sau dacă se va forma un cluster
now. În continuare prezentăm pseudocodul algoritmului de construire a clusterelor prin metoda celui
mai apropiat vecin:

Considerând ca date de intrare setul de date D ={I1,I2, ..., In }alcătuit din n instanţe şi A ca fiind
matricea de adiacenţă care prezintă distanţa dintre elemente, se doreşte ca output un set de k clustere.
Pas 1: K1 = {I1}, K = {K1}, k = 1; primul cluster va fi format din prima instanţă şi clusterizarea va
conţine 1 cluster.
Pentru fiecare instanţă I din setul de date:
Pas 2: Caută cel mai apropiat vecin Im (Im Km) al instanţei Ii, astfel încât
distanţa(Ii, Im) să fie cea mai mică;
Pas 3: dacă distanţa(Ii, Im) prag atunci instanţa Ii va fi inclusă în clusterul Km
Km = Km Ii
Altfel dacă distanţa(Ii, Im) prag:
Pas 4: se crează un nou cluster: k = k + 1, alcătuit din instanţa Ii: Kk = {Ii}

Alte exemple de algoritmi de partiţionare

Un alt algoritm de clusterizare prin partiţionarea setului de date este PAM (partition around medoids).
Un avantaj al algoritmului este că formarea clusterelor nu este influenţată de prezenţa de valori cu o
deviaţie mare. Fiecare cluster va fi reprezentat de o instanţă din setul de date numită medoid, aceste
instanţe sunt alese aleator în primul pas. Ulterior la fiecare pas, medoid-ul va fi schimbat cu altă
instanţă dacă un criteriu de minimizare a costului pentru schimbare este îndeplinit. Există algoritmi
genetici care clusterizează un set de date prin partiţionare. Fiind dat un set iniţial de date D, cu n
elemente şi numărul k de clustere care se doreşte a se obţine în final, se alege random o soluţie
iniţială. La fiecare pas de calcul se vor aplica operaţii de „crossover” specifice algoritmilor genetici,
pentru a crea o nouă soluţie. Algoritmul se va opri când este îndeplinit criteriul de similaritate.
Algoritmul MST (minimal spaning tree) are la bază metode de partiţionare folosind teoria grafurilor,
spre deosebire de k means care foloseşte eroarea pătratică. Algoritmul va genera un set graf pe setul
de date, iar clusterele vor fi formate eliminând ramurile cele mai lungi din grafic.

Metode de clusterizare ierarhice

Spre deosebire de clusterizarea prin partiţionare, metodele de clusterizare ierarhice nu necesită


precizarea în prealabil a numărului de clustere care vor a fi obţinute. Ele necesită precizarea condiţiei
de oprire a algoritmului. În unele cazuri condiţia de oprire poate fi numărul de clustere. Reprezentarea
rezultatului procesului de clusterizare se poate face sub forma arborilor de decizie, cu mai multe
niveluri, numite dendrograme (figura 8). Clusterele obţinute în final au o relaţie ierarhică de genul
părinte, copil, fraţi, etc. Criteriul de grupare a instanţelor în clustere se face pe baza calculului
distanţei dintre instanţe.

Tipuri de clusterizare ierarhică

Există două categorii principale de algoritmi ierarhici:


algoritmi de clusterizare ierarhică aglomerativă
algoritmi de clusterizare ierarhică fragmentară sau prin diviziune

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
88 Inteligenţa artificială

Algorimii aglomerativi realizează o analiză de tip bottom-up, pornind de la nivelul „frunză” al


arborelui nivel la care, fiecare instanţă este un cluster individual. Procesul de clusterizare urmăreşte
aglomerarea clusterelor în clustere noi, prin unirea a două sau mai multe clustere formate în pasul
precedent. Fără o condiţie de oprire corespunzătoare procesul de clusterizare aglomerativă se va opri
când toate instanţele au fost introduse într-un singur cluster final. Condiţia de oprire trebuie să
precizeze „gradul de granularitate” satisfăcător pentru clusterizare.

Algoritmii fragmentari realizează o analiză de tip top-bottom. Ei pornesc de la nivelul „rădăcină” al


arborelui şi realizează fragmentări succesive, în clustere noi. Fără o condiţie de oprire, algoritmul
împarte setul de date în clustere formate dintr-o singură instanţă, obţinând un număr de clustere egal
cu numărul de instanţe din setul de date. Condiţia de oprire are scopul de a opri algoritmul când un
număr suficient de clustere a fost atins sau când gradul de fragmentare este atins. În figura 5.8 este
prezentat un exemplu grafic de clusterizare ierarhică. Se consideră un set de date cu 7 instanţe (A..G)
cu proprietăţile: instanţele A şi B sunt suficient de similare, C, D, E şi F de asemenea, iar G distinctă
de celelalte. Astfel se doreşte o clusterizare în 3 clustere a acestui set de date. În figura 5.19.a este
ilustrat procesul de clusterizare agomerativ ce porneşte de la nivelul instanţă, iar în figura 5.19.b.
clusterizarea fragmentară. Linia punctată reprezintă momentul în care trebuie oprită clusterizarea
pentru a se obţine rezultatul dorit.

Primul pas va fragmenta setul de date în 2


clustere: C1 ={G}, C2 = {A,B,C,D,E,F}.
Pasul următor va fragmenta clusterul C2, în 2
clustere noi.
A, B F G
C, D, E

G
C, D, E
A, B F
La primul pas se formează clusterul {C, D, E}.
Pasul următor va include în cluster şi instanţa F

a) Clusterizarea aglomerativă, A, B, C, D, E,
bottom - up F, G
b) Clusterizarea
fragmentară,
top - down

A B C D E F G

Fig. 5.19. Exemplu de clusterizare ierarhică


Algoritmul de clusterizare ierarhică aglomerativ
Pas 1: Fiecare instanţă Ii este repartizată într-un cluster individual: Ii ε Kj,
i = 1..n, j = 1..m, şi m = n (la începutul procesului)
Pas 2: Pentru fiecare instanţă Ii se calculează distanţa dintre ea şi restul instanţelor: d(Ii, Ij) ( j ≠ i ).
Pas 3: Se grupează instanţele folosind criteriul celei mai mici distanţe.

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

Pas 4: Se reia algoritmul de la pas 1, folosind noile clusterele formate(m < n)

În funcţie de măsura distanţei utilizată la pasul 3, putem obţine diferite tipuri de clusterizare:
legătură simplă (single – linkage): distanţa dintre două clustere este dată de distanţa minimă dintre
două instanţe situate în clustere diferite. Aceste două instanţe reprezentând cele mai apropiate
instanţe.
legătură completă (complete – linkage): distanţa dintre două clustere este dată de maximul de
distanţă dintre două instanţe situate în două clustere diferite. Aceste instanţe reprezintă cele mai
îndepărtate instanţe.
legătură medie (average – linkage): distanţa dintre două clustere este dată de o medie a distanţelor
dintre perechi de instanţe, într-o pereche fiecare instanţă aparţinînd unui cluster diferit.

Exemple de algoritmi ierarhici

Algoritmul de clusterizare ierarhică MTS generează un graf compus din toate instanţele setului de
date. Va cauta în spaţiul datelor componente cele mai lungi ramuri ale grafului. Clusterele vor fi
formate înlăturând acea componentă. Foloseşte o mărime prag pentru a determina distanţa dintre
clustere. Algoritmul poate fi atât aglomerativ cât şi fragmentar.

Algoritmul MTS ierarhic:


Considerând ca date de input setul de date D ={I1, I2, ..., In }cu n instanţe, şi A o matrice adiacentă
care reprezintă distanţa dintre elemente, se doreşte la output o dendogramă DE care reprezintă
clusterizarea ierarhică.
Pas 1: numărul de clustere e n, fiecare cluster conţinând o instanţă: k = n; K ={{I1},..{In}};
Pas 2: iniţial dendograma conţine clustere alcătuite din câte un element: DE = <d, k , K>, unde d
reprezină o mărime distanţă, iniţial d = 0;
Repetă:
Pas 3: kanterior = k; fie Ki,Kj = cele mai aproape două clustere din MST;
Pas 4: se actualizează clusterul K: K = K – {Ki} – {Kj} {Ki Kj}
Pas 5: k = kanterior -1; d = dist(Ki, Kj), se actualizează dendograma: DE = DE <d,k,K>
Pas 6: dist(Ki, Kj) = ∞;
Până când k = 1.

Alţi algorimi aglomerativi de clusterizare ierarhică sunt: AGNES, ROCK, CHAMELEON; iar ca
exemplu de algoritm ierarhic fragmentar avem algoritmul DIANA. Un avantaj important al metodelor
de clusterizare ierarhică este că nu necesită definirea în prealabil a numărului de clustere care trebuie
obţinut. Lucrează uşor cu orice tip de calcul a similarităţi inter cluster şi a diferenţelor intra cluster.
Aceste două proprietăţi îi face ideali pentru lucru cu seturi de date ce cuprind atribute diversificate. Ca
dezavantaj avem necesitatea definirii corecte a unui criteriu de oprire a clusterizării. O definire
inadecvată va conduce la clustere prost definite. Un alt dezavantaj este că procesul de clusterizare
ierarhică nu permite re-evaluarea clusterelor odată formate în scopul îmbunătăţirii calităţii lor ulterior
formării.

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
90 Inteligenţa artificială

Aplicatii ale ML in Natural Language Processing (NLP)

Natural Language Processing (NLP) se refera la interactiunea om-calculator, in limbaj natural


scris/vorbit. Aplicarea invatarii automate (ML) pe date asociate NLP. Ca date avem texte (scrise sau
vorbite), impreuna cu informatii/cunstinte lingvistice.

Pentru gestionarea datelor si pentru implementarea algoritmilor de ML se poate utiliza R.

Exemplificarile se vor realiza pe metodele invatare supervizata, care permit construirea de modele de
clasificare (clasificatori).

Exemplificarilor vor viza doua dintre task-uri asociate NLP:


- Asignarea sensului corect la cuvintele din cadrul textului (word-sence disambiguation)
- Identificarea colocatiilor cu semnificatie (semantic collocation Identification)

Word-sence disambiguation (WSD)


Sa consideram, de exemplu, cuvantul line, cu urmatoarele posibile sensuri: CORD, DIVISION,
FORMATION, PHONE, PRODUCT, TEXT,

WSD reprezinta un caz tipic de task de clasificare (asignarea sensului curent la un cuvant target/tinta),
pentru care:

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

WSD input = o propozitie care contine cuvantul tinta (“line”)


WSD output = una dintre valorile de lista de valori posibile pentru sensul cuvantului target
{CORD, DIVISION, FORMATION, PRODUCT, PHONE, TEXT}
Propozitiile de intrare reprezinta obiectele de clasificat, sensurile posibile sunt clasele
Taskul de clasificare presupune ca valoarea de output sa fie discrete sis a reprezinte una din clasele
posibile.
Sunt necesare multe exemple, pentru a invata cunostintele necesare recunoasterii sensul corect al
cuvantului line intr-o anumita propozie. Exemplele utilizate sunt denumite date de instruire.

Pentru recunoasterea sensului corect al cuvantului tinta “line” este necesar sa fie cunoscute anumite
informatii despre contextul in care este utilizat cuvantul tinta. Aceste informatii sunt denumite
atribute/caracteristici (features).
Fiecare propozitie va fi caracterizata printr-o lista de atribute, lista denumita vectorul
atributelor/caracteristicilor. Vectorul caracteristicilor este construit pe baza exemplelor.
Caracteristicile pot avea valori numerice (valori discrete sau continue), binare (0/1, True/False,
Yes/No), categoriale (valori discrete ne-numerice)

Euristici pentru extragerea intuitiva a caracteristicilor:

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
92 Inteligenţa artificială

Exemple de vectori de caracteristici impreuna cu valoarea clasei asociate (SENSE)

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

Pentru aplicatii de WSD se pot utiliza urmatoarele fisiere:


- Fisierele de date: wsd.development.csv si wsd.test,csv
- Scripturile R: (script-Decision Tree) DT-WSD.R si (Script-Naive Bayes) NB-WSD.R

Au fost generate urmatoarele 5 modele de tip arbore de decizie.

Pentru atributul A4: M1 Pentru atributul A1 si A11: M5

Pentru atributele A2, A3, A4 si A9: M3 Pentru atributele A1, A6, A7: M4

Pentru toate atributele A1 – A11: M2

Performanta modelelor generate, definita ca numarul exemplelor din setul de test la care rezultatul
obtinut prin model a fost corect, raportat la numarul total al exemplelor din setul de test este
prezentata in urmatorul tabel:

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
94 Inteligenţa artificială

Sa consideram propozitia: „Draw a line between the points P and Q.”, having as feature values:

Exercitiu: Asignati sensul corect pentru cuvantul line.

Identificarea colocatiilor semantice


Presupune sa se decida daca anumite grupuri de cuvinte formeaza o colocatie cu anumita semnificatie
, diferita de cea a cuvintelor individuale(semantic collocation). De exemplu, green card, grey market,
etc.
Colocatiile semnatice au proprietati care nu pot explicate strict pe baza componentelor, prin urmare
trebuie prezentate explicit/listate in cadrul dictionarului.

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

Identificarea colocatiilor semantice (COL) reprezinta un caz tipic de task de clasificare (sa se decida
daca o pereche de cuvinte formeaza sau nu o colocatie semantica), pentru care:
COL input = perechi de cuvinte
COL output = clasa {YES, NO}

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
96 Inteligenţa artificială

Capitolul 6.
Raţionamentul în condiţii de incertitudine. Clasificatorul bayesian naiv
(Naïve Bayes) şi reţelele bayesiene
Imperfecţiunea cunoaşterii nu trebuie considerată neaparat drept un aspect negativ, care determină
scăderea performanţelor în procesul de rezolvare a problemelor. Incertitudinea şi imprecizia pot avea
un caracter necesar şi pot constitui un sprijin în realizarea expertizei. Astfel, imprecizia este frecvent
utilizată pentru a menţine un anumit grad de relevanţă descrierii problemei, prin evitarea detaliilor
excesive (principiul complementarităţii relevanţei şi preciziei, formulat de Zadeh L). Enunţurile
imprecise permit, de asemenea conservarea verosimilităţii, în situaţiile cu informaţie incompletă. Se
acceptă faptul că o informaţie imprecisă este mai utilă în rezolvarea unei probleme decât o informaţie
precisă, dar inexactă sau lipsa oricărei informaţii. Este necesar în acest caz să se poată defini măsuri
ale incertitudinii şi impreciziei, cu care să se poată opera în procesul de raţionament, astfel încât din
măsurile asociate datelor de intrare să se poată determina măsurile corespunzătoare rezultatelor
obţinute.

Imperfecţiunea cunoaşterii poate fi abordată din următoarele două perspective:


incertitudinea cunoştinţelor, asociată caracterului incomplet al informaţiilor. Sursa majoră a
incertitudinii o constituie absenţa unor informaţii exhaustive cu privire la domeniul de expertiză;
imprecizia cunoştinţelor, asociată imposibilităţii de exprimare prin limbaj a caracterului gradual al
tranziţiilor dintre clase sau concepte.

În cadrul sistemelor inteligente se utilizează mai multe sisteme de măsuri pentru modelarea
incertitudinii şi impreciziei cunoştinţelor. Aceste metrici reprezintă un cadru conceptual în care sunt
definte atât măsurile, cât şi modul de lucru cu acestea. Cele mai cunoscute sisteme de modelare a
incertitudii şi impreciziei utilizate în cadrul sistemelor expert sunt: teoria probabilităţilor, teoria
factorilor de certitudine, teoria Dempster-Shafer, teoria posibilităţilor şi teoria mulţimilor fuzzy.

6.1Teoria probabilităţilor. Masura de probabilitate. Teorema lui Bayes

Reprezintă cel mai important sistem de tratare a incertitudinii. Utilizarea teoriei probabilităţilor pentru
reprezentarea incertitudinii cunoştinţelor presupune ca pentru fiecare informaţie, element de tipul
cunoştinţelor să se asocieze o mărime, denumită măsura de probabilitate. Astfel, fiecare element, e va
fi reprezentat sub forma: (e, P(e)), unde P(e) reprezintă măsura de probabilitate a lui e.

Interpretarea măsurii P(e) poate fi:


obiectivistă, în sensul că enunţul e este tratat ca eveniment, măsura P(e) fiind raportată la legea
care guvernează producerea acestui eveniment.
subiectivistă, măsura raportându-se la persoana care realizează enunţarea lui e şi fiind dependentă
de nivelul cunoştinţelor acestei persoane.

În cadrul sistemelor inteligente se utilizează frecvent interpretarea subiectivistă a măsurii de


probabilitate. Posibilităţile de utilizare a măsurilor de probabilitate sunt determinate de modul de
construire a acestor măsuri.

În cadrul axiomaticii disjunctive, măsura de probabilitate este construită cu ajutorul a două axiome. O
lege de probabilitate, P pe domeniul finit, reprezintă o aplicaţie a mulţimii părţilor lui pe
intervalul [0,1].
P: P( ) [0,1]
astfel încât:
P( )=1 (1)
P(A B)=P(A)+P(B), dacă A , B , A B= (axioma de aditivitate) (2)

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

Axiomele 1 şi 2 dau modalitatea de construire a măsurii de probabilitate pentru toate evenimentele din
, cunoscând iniţial probabilităţile numai unei părţi dintre aceste evenimente. Construirea măsurii de
probabilitate se realizează, conform celor două axiome în raport de probabilităţile evenimentelor
disjuncte elementare.

Modul în care este repartizată masa totală de probabilitate între evenimentele elementare şi mutual
exclusive, x este definit prin distribuţia de probabilitate, p pentru cazul discret:
p: [0,1]
şi respectiv densitatea de probabilitate pentru cazul continuu

Calculul probabilităţii unui eveniment compus, A cu ajutorul probabilităţilor evenimentelor


elementare se realizează:

-pentru cazul discret:


P(A) p(x) P({x}), cu P({x}) 1
x A x A x W

-pentru cazul continuu:


P(A) p(x)dx, cu p(x)dx 1
x A x W

În cadrul axiomaticii generale, pentru construirea măsurii de probabilitate se lucrează cu următorul


sistem de axiome:
1. P( )=1 (3)
2. P( )=0 (4)
3. P(A B) + P(A B)=P(A)+P(B), dacă A , B . (5)

Sistemul nu mai presupune ipoteza restrictivă privind A şi B elemente disjuncte, dar impune
enunţarea unei ipoteze privind unul dintre elementele sumei, pentru a putea fi determinat celălalt.

În ipoteza că A şi B reprezintă elemente stohastic independente, şi deci P(A B)=P(A) P(B), atunci:
P(A B)= P(A)+P(B)-P(A) P(B)

Independenţa stohastică reprezintă o proprietate puternică şi în general greu de asigurat, ceea ce face
ca sistemul general să fie chiar mai restrictiv decât cel disjunctiv.

Teorema lui Bayes tratează problema determinării măsurii de probabilitate a unui enunţ, în condiţiile
în care se dispune de o serie de informaţii apriori enunţării sale. Să presupunem că informaţia de care
se dispune este cea referitore la apartenţa la o mulţime A . Se determină o nouă lege de
probabilitate, PA. Această lege reflectă faptul că totalitatea masei de probabilitate este concentrată în
A, fiind necesar să se verifice relaţiile:
PA(A)=1 şi PA( A)=0.
Probabilitatea unui eveniment, x din A se determină cu ajutorul relaţiei:
P({x})
PA ({x})
P(A)
Densitatea de probabilitate:
pA: [0,1]
este definită prin relaţia:
p(x)
, daca x A
p A (x) P(A)
0, daca x A

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
98 Inteligenţa artificială

Din această relaţie se deduce legea de probabilitate condiţională:


p(x) P(A B)
PA (B) p A (x)
P(A) P(A)
x B x A B
(6)
unde PA(B) reprezintă probabilitatea lui B în raport de A, notată şi cu P(B A). Rescriem (6), folosind
această notaţie pentru probabilitatea condiţionată:
P(A B)
P(B A)
P(A) (7)

P(A B)
P(A B )
P(B) (8)

Rezolvând relaţiile (7) şi (8) pentru P(A∩B), se obţine următoarea relaţie, cunoscută şi sub numele de
regulă a produsului:

P(A B) P(B A ) P(A) P(A B ) P(B)


(9)

Din relaţia (9), se obţine teorema lui Bayes:

P(B A) P(A)
P(A B )
P(B) (10)

Să presupunem că se cunosc P(B A), P(B A) şi P(A). P(A) reprezintă probabilitatea apriori a lui A,
adică înainte de acumularea oricăror informaţii. Se observă B şi cu ajutorul teoremei lui Bayes se
calculează probabilitatea aposteriori, P(A B) a lui A. Cu ajutorul teoremei lui Bayes se realizează
actualizarea probabilităţii lui A, după ce s-a observat B. Se înlocuieşte vechea valoare, P(A) cu
valorea P(A B) sau P(A B). Pentru fiecare observaţie realizată, se corectează măsurile, pentru a ţine
cont de sporul de informaţii. Prin urmare, regula lui Bayes permite actualizarea probabilităţii
ipotezelor pe baza faptelor (evidenţei), după care sunt alese ipotezele cele mai probabile şi se continuă
raţionamentul.

Pentru două enunţuri independente, A şi B:

P(Α Β) P(A) P(B) (11)

In acest caz, teorema lui Bayes devine trivială:

P(A B) P(A) P(B)


P(A B ) P(A)
P(B) P(B) (12)

Ceea ce înseamnă că toate probabilitătile condiţionale se reduc la probabilitătile apriori.

Generalizând regula produsului la n variabile se obţine relaţia:

P(X 1 , ,Xn ) P(X n X 1 , X n 1 ) P( X 1 , Xn 1 )


P(X n X 1 , X n 1 ) P(X n-1 X 1 , X n 2 ) P(X 1 , Xn 2 )
P(X n X 1 , X n 1 ) P(X n-1 X 1 , X n 2 ) P(X 1 , X n 2 ) P(X 2 X 1 ) P( X 1 )
n
P( X i X 1, , X i 1
)
i 1 (13)
Dacă cele n variabile sunt independente, atunci:
P(X1 , , Xn ) P(X1) P(X 2 ) P( X n ) (14)

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

6.2 Clasificatorul bayesian naiv

Clasificarea bayesiană se recomandă în cazul în care obiectele care trebuiesc clasificate au un număr
mare de carateristici. In acest caz, alţi clasificatori, precum arborii de deciziei au aplicabilitate
limitată. Clasificatorul bayesian naiv poartă această denumire întrucât are la bază ipoteza
independenţei caracteristicilor. Acest lucru înseamnă de fapt că influenţa fiecărei caracteristici asupra
rezultatului clasificarii poate fi stabilită independent, fiind ulterior combinată cu influenţa celorlalte
caracteristici (prin multiplicare sau însumare). Desigur că această ipoteză, în cele mai multe cazuri
reprezintă o simplificare, numită şi abordare „naivă”.

Se consideră pentru început următorul exemplu: Fie setul de instanţe din figura 6.1. Acest set de
instanţe prezintă o serie de obiecte, cu ajutorul valorilor a patru caracteristici (f1, f2, f3 şi f4).
Obiectele aparţin clasei y=0 sau y=1. Se cere ca pe baza setului de instanţe dat, să se construiască un
clasificator cu ajutorul căruia orice obiect pentru care se cunosc valorile celor patru caracteristici să
poată fi clasificat corect într-una din cele două clase.

Fig. 6.1 Exemplu de set de instanţe

Se calculează Rk(n,m), ponderea instantelor din clasa m pentru care caracteristica k are valoarea n.
R1(1,1) = 1/5; R1(0,1) = 4/5
R1(1,0) = 5/5; R1(0,0) = 0/5
R2(1,1) = 1/5; R2(0,1) = 4/5
R2(1,0) = 5/5; R2(0,0) = 0/5
R3(1,1) = 1/5; R3(0,1) = 4/5
R3(1,0) = 5/5; R3(0,0) = 0/5
R4(1,1) = 1/5; R4(0,1) = 4/5
R4(1,0) = 5/5; R4(0,0) = 0/5

Valorile R permit identificarea clasei (valoarea y) în care să fie repartizat un obiect, pe baza vectorului
de caracteristici X astfel:

Fie X= <0, 0, 1, 1>

Scorul lui X, calculat pe baza R, în favoarea clasei y=1 este:


S(1) = R1(0,1)*R2(0,1)*R3(1,1)*R4(1,1) = 0.205

Scorul lui X, calculat pe baza R, în favoarea clasei y=0 este:


S(0) = R1(0,0)*R2(0,0)*R3(1,0)*R4(1,0)=0

Intrucât S(1) > S(0), obiectul X trebuie clasificat în clasa y=1.

Procedura de clasificare, utilizând clsificatorul bayesian:

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
100 Inteligenţa artificială

Se consideră un set de vectori, X de caracteristici cu valori valori binare (0, 1). Procedura de
clasificare în două clase, notate 0 şi, respectiv 1 este următoarea:

Pas 1. Calcularea ratelor Rk(n,m) ), reprezentând ponderea instantelor din clasa m pentru care
caracteristica k are valoarea n

count(xij 1 y i 1)
R j (1,1)
count(y i 1)

R j (0,1) 1 R j (1,1)

count(xij 1 y i 0)
R j (1,0) i
count(y 0)

R j (0,0) 1 R j (1,0)

Pas 2. Fiind dat un vector de caracteristici, X se calculează scorurile:

R j ( 1,1 ) daca x j 1
S( 1 )
R j ( 0 ,1 ) altfel
j

R j ( 1,0 ) daca x j 1
S( 0 )
R j ( 0 ,0 ) altfel
j

Pas 3. Stabilirea clasei care corespunde lui X


1, daca S ( 1 ) S( 0 )
y
0 , daca S ( 1 ) S( 0 )

Corecţia Laplace

Setul instanţele de instruire reflectă doar parţial realitatea, în sensul că nu includ toate obiectele care
există. Dacă în cadrul setului de instanţe dat nu există valori de caracteristici prezente la anumite
clase, acest lucru nu însemnă nicidecum că respectivele valori sunt incompatibile cu respectiva clasă.
Din acest motiv se recomandă evitarea valorilor 0/1 pentru R, care ar determina setarea socurilor pe
valori extreme. Acest lucru se realizează modficând formula de calcul a ratelor, prin introducerea unei
ajustări (+1 la numător şi +2 la numitorul formulei), ajustare denumită corecţie Laplace.

count( xij 1 y i 1) 1
R j (1,1)
count( y i 1) 2

R j (0,1) 1 R j (1,1)

count( x ij 1 yi 0) 1
R j (1,0)
count( y i 0) 2

R j (0,0) 1 R j (1,0)

Se recalculează ratele pentru exemplul anterior:


R1(1,1) = 2/7; R1(0,1) = 5/7
R1(1,0) = 6/7; R1(0,0) = 1/7

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

R2(1,1) = 2/7; R2(0,1) = 5/7


R2(1,0) = 3/7; R2(0,0) = 4/7
R3(1,1) = 5/7; R3(0,1) = 2/7
R3(1,0) = 2/7; R3(0,0) = 5/7
R4(1,1) = 3/7; R4(0,1) = 4/7
R4(1,0) = 5/7; R4(0,0) = 2/7

Se consideră din nou obiectul X= <0, 0, 1, 1>

Scorul lui X, calculat pe baza R, în favoarea clasei y=1 este:


S(1) = 0.156

Scorul lui X, calculat pe baza R, în favoarea clasei y=0 este:


S(0) = 0.017

Intrucât: S(1) > S(0), obiectul X trebuie clasificat tot în clasa y=1, dar diferenţa între cele două scoruri
s-a redus.

Liniarizarea algoritmului

Precizia calculelor poate fi afectată de creşterea numărului de probabilităţi care se înmulţesc pentru
calcularea scorurilor. Din acest motiv se recomandă liniarizarea algoritmului prin logaritmare, caz în
care operaţia de înmulţire este înlocuită de adunare:
log R j ( 1,1 ),daca x j 1
log S ( 1 )
log R j ( 0 ,1 ),altfel
j

log R j ( 1,0 ),daca x j 1


log S ( 0 )
log R j ( 0 ,0 ),altfel
j

Stabilirea clasei se realizează conform relaţiei:


1, daca log S ( 1 ) log S ( 0 )
y
0 , log S ( 1 ) log S ( 0 )

Notând cu: α1,… αn, β1, … , βn ratele în favoarea celor două clase, rezultatul clasificării este y=1,
dacă:

jxj (1 j )( 1 x j ) jxj (1 j )( 1 x j ) (15)


j j
respectiv y= 0, în rest.

Formula (15) reprezintă definiţia clasificatorului Bayesian naiv.

Avantajele clasificării bayesiene naive constau în următoarele:


Intrucât determinarea parametrilor R nu are in vedere minimizarea erorii, modul de calcul a
parametrilor este rapidă.
Fiecare caracteristica joaca un anumit rol in clasificare (voteaza pentru clasa 1 sau 0). Ponderea
caracteristicii (ponderea votului) este calculată după relaţia:
j j
log log
1 j 1 j

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
102 Inteligenţa artificială

Deazvantajele clasificării bayesiene naive sunt determinate de urmoarele aspecte:


ipoteza simplificatoare care stă la baza metodei
metoda de clasificare este, în anumite cazuri indecidabilă:

Să considerăm următorul exemplu, care descrie o problemă XOR (figura 6.2)

Fig. 6.2 - Set de instanţe pentru o problemă de tip XOR

Se calculează ratele:
R1(1,1) = 2/4; R1(0,1) = 2/4
R1(1,0) = 3/6; R1(0,0) = 3/6
R2(1,1) = 2/4; R2(0,1) = 2/4
R2(1,0) = 3/6; R2(0,0) = 3/6
R3(1,1) = 2/4; R3(0,1) = 2/4
R3(1,0) = 3/6; R3(0,0) = 3/6
R4(1,1) = 2/4; R4(0,1) = 2/4
R4(1,0) = 3/6; R4(0,0) = 3/6

Pentru orice X:
S(1) = 0.625
S(0) = 0.625
prin urmare problema de clasificare este indecidabilă.

Clasificarea bayesiană naivă, ca inferenţa probabilistică

Se consideră atât caracteristicile, cât şi rezultatul clasificării drept variabile aleatoare. Algoritmul de
clasificare bayesiană naivă include două faze: instruire (învăţare) şi predicţie

a) Faza de instruire

Se stabileşte distribuţia Pr(Y=1|f1, … , fn)

Estimarea distributiei Pr(Y=1|f1, … , fn) se realizează plecând de la relaţia (10):


P(Y=1|f1, … ,fn) = P(f1, … ,fn|Y=1)P(Y=1)/P(f1, … ,fn)

Intrucât Pr(f1, … , fn) este independentă de Y, avem:


P(Y=1) = probabilitatea apriori, putând să o considerăm ca având valoarea 0.5.

Din premiza fundamentala a algoritmului, de independenţă a variabilelor, rezultă egalitatea:


Pr( f 1 ,..., f n | Y 1) Pr( f j | Y 1)
j
Alternativ, se determină:
count( x ij 1 yi 1)
R( f1 1| Y 1)
count( y i 1)

R( f j 0 |Y 1 ) 1 R( f j 1| Y 1)

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
Academia de Studii Economice din Bucureşti, Facultatea CSIE, DICE

count( x ij 1 yi 0)
R( f j 1| Y 0)
count( y i 0 )
R( f j 0 |Y 0 ) 1 R( f j 1 | Y 0 )

b) Faza de predicţie

Fiind dat un nou obiect (instanţă), X se calculeaza Pr pentru output 1. Daca Pr>0.5 se previzionează 1,
altfel 0.

Alternativ, se calculează scorurile:


R( f j 1 | Y 1) daca x j 1
S ( x1...xn | Y 1)
j R( f j 0 | Y 1) altfel

R( f j 1 | Y 0) daca x j 1
S ( x1...xn | Y 0)
j R( f j 0 | Y 0) altfel

y=1, dacă S(x1 … xn|Y=1) > S(x1 … xn|Y=0)

6.3 Reţele bayesiene

O reţea bayesiană este un model grafic ce reprezintă relaţiile probabilistice între variabilele unei
mulţimi. În ultimul deceniu, reţelele bayesiene au devenit o modalitate populară de reprezentare a
cunoştinţelor incerte în sistemele inteligente. Mai recent cercetătorii au dezvoltat metode pentru
construirea automată de reţele bayesiene din date.

Avantajele reţelelor bayesiene comparativ cu alte sisteme existente:


Reţelele bayesiene pot manipula uşor mulţimi incomplete de date. De exemplu, să considerăm o
clasificare sau o problemă de regresie în care două dintre variabilele explicative sunt puternic
corelate. Această corelaţie nu reprezintă o problemă pentru metodele standard de învăţare
supervizată având în vedere că variabilele explicative sunt măsurate separat. Când însă una dintre
aceaste variabile nu este observată, majoritatea modelelor vor produce predicţii cu acurateţe
redusă, deoarece ele nu includ corelaţia dintre variabilele explicative. Reţelele bayesiene oferă o
modalitate naturală de modelare a acestor tipuri de dependenţe.
Reţelele bayesiene permit utilizatorului să afle de existenţa unor relaţii cauzale. Aflarea acestor
relaţii este importantă pentru cel puţin două motive. Procesul este util când încercăm să ne
formăm o imagine de asamblu asupra domeniul unei probleme. În plus cunoaşterea acestor relaţii
cauzale ne permite să facem predicţii în momentul unor modificări. De exemplu, un analist de
marketing poate dori să afle dacă este avatajos să mărească expunerea unei anumite reclame în
vederea creşterii vânzărilor unui produs. Pentru a răspunde la această întrebare prin analiza unei
reţele bayes a datelor existente se poate determina dacă reclama respectivă este cauză pentru
creşterea vânzărilor şi dacă da în ce măsură. Utilizarea reţelelor bayesiene ajută să se răspundă la
astfel de întrebări deşi nu s-au efectuat experimente asupra problemei în cauză.
Reţelele bayesiene, în combinaţie cu tehnicile statistice Bayesiene facilitează combinarea
cunoştinţelor dintr-un domeniu şi a datelor. Oricine a realizat o analiză a lumii reale ştie
importanţa datelor apriorice (cunoştinţelor despre un domeniu), mai ales când datele sunt puţine
sau costisitoare. Faptul că anumite sisteme comerciale pot fi construite doar pe baza cunoştinţelor
apriorice este o mărturie a importanţei acestora. Reţelele bayesiene au o semantică cauzală care
face ca modelarea cunoştinţelor apriorice să fie uşoară. În plus, reţelele Bayesiene reprezintă
puterea relaţiilor cauzale prin probabilităţi.
Metodele Bayesiene în combinaţie cu reţelele Bayesiene şi cu alte tipuri de modele oferă o
abordare eficientă şi bine documentată asupra evitării supra-antrenării. În aceste reţele nu este
nevoie să păstrăm parte din datele disponibile pentru testare.

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
104 Inteligenţa artificială

Structura unei reţele Bayesiene

In formă grafică, reţelele Bayesiene reprezintă modele în care variabilele sunt reprezentate prin noduri
şi relaţiile cauzale sunt săgeţi numite muchii (figura 6.3).
precipitaţii nod părinte

condiţii de
drum nod fiu

Fig. 6.3 - Exemplu de reţea bayesiană

Nodul reprezintă o variabilă în modelul dat . E reprezentat printr-un oval. Muchia reprezintă o relaţie
cauzală dintre două noduri. E reprezentată printr-o săgeată indicând direcţia şi cauzalitatea.
Însemnătatea muchiei între X şi Y este aceea că nodul X îl influenţează pe Y. Modalitatea în care un
nod îl influenţează pe celălalt este descrisă în tabela de probabilităţi. Muchiile determină, de
asemenea, nişte termeni calificativi pentru noduri. Când două noduri sunt unite de o muchie, nodul
cauzal este părintele celuilalt. Există două tipuri specifice de noduri, şi anume: nod rădăcină, care nu
are părinte şi nod frunză care nu au fii. Stările variabilei reprezintă valorile luate de o variabilă. De
exemplu stările importante pentru precipitaţii sunt (Deloc, Uşoară, Puternică); ştim că precipitaţiile
fac drumul practicabil sau impracticabil.

Tabele de probabilităţi condiţionate


Fiecare nod are asociat un tabel de probabilităţi condiţionate. Probabilităţile condiţionate sunt bazate
pe informaţiile prioritare sau experienţa anteriară. O probabilitate condiţionată, notată P(x|p1,p2,...pn)
reprezintă probabilitatea variabilei X de a se afla în starea x, atunci când variabila părinte P1 în starea
p1, variabila părinte P2 se află în starea p2, ş.a.m.d. Figura 6.4 prezintă tabelul de probabilităţi pentru
nodul Condiţii de drum din cadrul reţelei bayesiene din figura 6.3.

părinte fiu
precipitaţii condiţii de drum stările nodului
impracticabil practicabil selectat
deloc 0,050 0,950

usoară 0,100 0,900 probabilităţile


condiţionate
puternică 0,700 0,300

stările nodului
părinte
Fig. 6.4 - Tabelul de probabilităţi pentru nodul Condiţii de drum

Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018

You might also like