Professional Documents
Culture Documents
Suport IA 2018
Suport IA 2018
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ă
Î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.
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
Î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.
Mecanismele de
utilizare a cunostintelor
Baza de cunostinte (de rationament,
inferentiale)
Interfata
Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
4 Inteligenţa artificială
Mecanismele de
utilizare a cunostintelor
Baza de cunostinte (de rationament,
inferentiale)
Interfata
Fig. 1.4 Arhitectura unui sistem bazat pe cunoştinţe cu facilităţi de învăţare automată
Î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
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
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 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ă
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
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
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ă.
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ă
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.
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.
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
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
Rezolvarea
problemei Generarea şi executarea algoritmului
Rezultate Explicaţii
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.
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.
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
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ă
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.
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.
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.
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ă 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.
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.
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.
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.
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.
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*.
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
Teoremă. Monotonia şi consistenţa reprezintă proprietăţi echivalente ale unei funcţii euristice.
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.
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
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.
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
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ă.
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.
Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
20 Inteligenţa artificială
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.
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
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.
( 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.
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
Rezoluţia reprezintă operaţia de derivare a unei clauze rezolvent din două sau mai multe clauze
premiză (claze 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.
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 )
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
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.
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.
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)
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.
Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
28 Inteligenţa artificială
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.
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
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
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ă
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.
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
Privire de
Descrierea Descrierea Descrierea
ansamblu a
planului datelor evenimentelor
aptitudinilor
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).
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
Specificarea Identificarea
sarcinilor rolurilor
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 rolurilor
View arhitectural
View-ul
View social
interacţiunilor
Criterii pentru procese Criterii pentru etape si Criterii pentru modelare Criterii pentru
tehnici folosite (şi concepte) adaptabilitate
Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
34 Inteligenţa artificială
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.
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.
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)
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.
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)
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
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).
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
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.
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, 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ă.
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ă.
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.
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ă
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.
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
Î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.
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.
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
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 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.
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.
Î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
Î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
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
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
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
b) funcţii liniare
c) funcţii sigmoide
output output
net net
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
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.
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.
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.
Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
56 Inteligenţa artificială
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))
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
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.
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.
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.
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.
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
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.
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.
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 |
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.
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.
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
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ă
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ă
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.
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
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
Diagrama tranziţiilor de stare este prezentată în fig. 4.15. Starea (0,1,1) este stare stabilă a reţelei.
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.
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
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ă).
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
cţ
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 ?
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.
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 = =
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.
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ă
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.
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
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.
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ţă).
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.
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
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 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)
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ă
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)
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
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).
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.
Figura 5.12 prezinta datele pentru instruire vs. datele pentru testare.
Principalele solutii de management al datele atunci cand volumul acestora este insuficient pentru
constituirea de seturi distincte de date:
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
(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.
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)
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:
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.
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ă
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.
Î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
Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
82 Inteligenţa artificială
Algoritmi de clusterizare
Fuzzy
Median Clustering
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.
Metode de clusterizare
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
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.
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
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
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 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 =
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.
Î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”
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
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}
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.
Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
88 Inteligenţa artificială
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
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
Î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.
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.
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ă
Exemplificarile se vor realiza pe metodele invatare supervizata, care permit construirea de modele de
clasificare (clasificatori).
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
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)
Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
92 Inteligenţa artificială
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 atributele A2, A3, A4 si A9: M3 Pentru atributele A1, A6, A7: M4
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:
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.
Î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.
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.
Î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
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ă
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(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.
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
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.
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:
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)
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
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)
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
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
Notând cu: α1,… αn, β1, … , βn ratele în favoarea celor două clase, rezultatul clasificării este y=1,
dacă:
Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
102 Inteligenţa artificială
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ă.
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
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.
R( f j 1 | Y 0) daca x j 1
S ( x1...xn | Y 0)
j R( f j 0 | Y 0) altfel
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.
Inteligenţa artificială, Constanţa-Nicoleta Bodea, Radu Ioan Mogoş, ASE din Bucureşti, 2018
104 Inteligenţa artificială
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
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.
părinte fiu
precipitaţii condiţii de drum stările nodului
impracticabil practicabil selectat
deloc 0,050 0,950
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