INTELIGENŢĂ
ARTIFICIALĂ
Laura Dioşan
Curs 13
Sisteme inteligente
Calcul afectiv
Sumar A. Scurtă introducere în Inteligenţa Artificială (IA)
B. Rezolvarea problemelor prin căutare
Definirea problemelor de căutare Strategii de căutare
Strategii de căutare neinformate Strategii de căutare informate Strategii de căutare locale (Hill Climbing, Simulated Annealing, Tabu Search, Algoritmi
evolutivi, PSO, ACO) Strategii de căutare adversială
C. Sisteme inteligente
Sisteme bazate pe reguli în medii certe Sisteme bazate pe reguli în medii incerte (Bayes, factori de
certitudine, Fuzzy) Sisteme care învaţă singure
Arbori de decizie Reţele neuronale artificiale Maşini cu suport vectorial Algoritmi evolutivi Q-learning
Sisteme hibride Calcul afectiv Cautari in ontologii
Mai, 2017 2 IA- Sisteme inteligente
Materiale de citit şi legături utile
http://users-cs.au.dk/cstorm/courses/PRiB_f12/slides/hidden-markov-models-1.pdf
http://users-cs.au.dk/cstorm/courses/PRiB_f12/slides/hidden-markov-models-3.pdf
http://users-cs.au.dk/cstorm/courses/PRiB_f12/slides/hmm-bioinf.pdf
http://www.cslu.ogi.edu/people/hosom/cs552/
http://www.cs.tut.fi/~puhtunn/lecture_model_search.pdf
Mai, 2017 3 IA- Sisteme inteligente
Calcul afectiv (Affective Computing)
Scop Detectarea şi recunoaşterea emoţiilor
Construirea maşinilor emoţionale
Problematica ştiinţifică Vorbire emotivă analiză şi recunoaştere de semnal
vocal
Mimică emotivă analiză şi recunoaştere de informaţii vizuale
Gesturi emotive analiza şi recunoaşterea gesturilor
Monitorizare psihologică
Domenii de aplicare E-learning
Robotică
Dispozitive personalizate (Siri, Kinect, Jocuri)
Mai, 2017 4 IA- Sisteme inteligente
Calcul afectiv (Affective Computing)
Tehnici inteligente
Cel mai apropiat vecin (kNN)
Arbori de decizie
Reţele neuronale artificiale
Maşini cu suppor vectorial
Algoritmi evolutivi
Modele Markov
Mai, 2017 5 IA- Sisteme inteligente
De ce modele Markov?
Modele de predicţie pe baza unor observaţii (trecute)
Observaţii independente/corelate
Observaţii identic distribuite / cu distribuţii diferite
Ex.
Predicţia vremii
Predicţia cursurilor valutare
Recunoaşterea de semnal vocal
Compoziţia structurilor ADN
Mai, 2017 6 IA- Sisteme inteligente
De ce modele Markov?
Modele Markov Intrări
Model:
Observaţii:
Ieşiri P( ) = ?
Modele Markov ascunse Intrări
Model:
Observaţii:
Ieşiri P( ) = ?
Mai, 2017 7 IA- Sisteme inteligente
Model Markov Ideea de bază
Similar unui automat finit, dar cu tranziţie probabilistică de la o stare la alta
La fiecare moment de timp se realizează o tranziţie dintr-o stare în altă stare La orice moment de timp, un eveniment se poate afla într-o singură stare Fiecare eveniment are o singură ieşire (un singur rezultat)
Elemente
Ceas cuantifică momentele de timp (discret) t = {1, 2, 3, … T}
N stări Q = {S1, S2, ..., SN}
N evenimente E = {e1, e2, ..., eN}
Probabilităţi iniţiale Πj = P(S1=Sj), 1 j N
Probabilităţi de tranziţie dintr-o stare Si (de la momentul t-1) într-o stare Sj (de la momentul t) aij = P[qt = Sj | qt-1 = Si] 1 i, j N Obs.: suma probabilităţilor care ies dintr-o stare = 1
11
N
j
j
Mai, 2017 8 IA- Sisteme inteligente
Model Markov
Cazuri particulare
MM de ordin 1
A n-a observaţie este influenţată doar de a n-1-a observaţie
p(xn|x1,x2,...,xn-1)=p(xn|xn-1)
p(x1,x2,...,xN)=Пn=1,2,..,Np(xn|x1,...,xn-1)=p(x1) Пn=2,..,Np(xn|xn-1)
MM de ordin 2
A n-a observaţie este influenţată de a n-1-a observaţie şi de a n-2-a observaţie
p(xn|x1,x2,...,xn-1)=p(xn|xn-1,xn-2)
p(x1,x2,...,xN)=p(x1)p(x2|x1) Пn=3,..,Np(xn|xn-1,xn+2)
Mai, 2017 9 IA- Sisteme inteligente
Model Markov
Exemple Aruncarea unei monezi perfecte
Intrări: Starea S1 evenimentul “moneda cade şi se vede
capul (C)” Starea S2 evenimentul “moneda cade şi se vede
pajura (P)” Probabilitatea apariţiei:
Stării S1: P(C) = ½ = 0.5 Stării S2: P(P) = ½ = 0.5 Stării S1 după starea S1: P(C|C) = ½ = 0.5 Stării S1 după starea S2: P(C|P) = ½ = 0.5 Stării S2 după starea S2: P(P|P) = ½ = 0.5 Stării S2 după starea S1: P(P|C) = ½ = 0.5
Ieşiri: Care este probabilitatea generării unei secvenţe de
evenimente C P C C P C P P P C C? A unei secvenţe de sări S1 S2 S1 S1 S2 S1 S2 S2 S2 S1
S1
S1 S2
0.5
0.5
0.5 0.5
Mai, 2017 10 IA- Sisteme inteligente
Model Markov
Exemple Aruncarea unei monezi imperfecte
Intrări: Starea S1 evenimentul “moneda cade şi se vede
capul (C)” Starea S2 evenimentul “moneda cade şi se vede
pajura (P)” Probabilitatea apariţiei:
Stării S1: P(C) = ½ = 0.5 Stării S2: P(P) = ½ = 0.5 Stării S1 după starea S1: P(C|C) = 0.7 Stării S1 după starea S2: P(C|P) = 0.4 Stării S2 după starea S2: P(P|P) = 0.6 Stării S2 după starea S1: P(P|C) = 0.3
Ieşiri: Care este probabilitatea generării unei secvenţe de
evenimente C P C C P C P P P C C? A unei secvenţe de sări S1 S2 S1 S1 S2 S1 S2 S2 S2 S1
S1
S1 S2
0.3
0.4
0.7 0.6
Mai, 2017 11 IA- Sisteme inteligente
Model Markov Exemple
Previziunea vremii Intrări:
Starea S1 evenimentul “afară plouă (P)” Starea S2 evenimentul “afară sunt nori (N)” Starea S3 evenimnetul “afară este soare (S)”
Probabilitatea apariţiei: Stării S1: P(S1) = 0.5 Stării S2: P(S2) = 0.4 Stării S3: P(S3) = 0.1 Stării S1 după starea S1: P(S1|S1) = 0.7 Stării S2 după starea S2: P(S2|S2) = 0.5 Stării S3 după starea S3: P(S3|S3) = 0.1 Stării S1 după starea S2: P(S1|S2) = 0.4 Stării S2 după starea S3: P(S2|S3) = 0.7 Stării S3 după starea S1: P(S3|S1) = 0.05 Stării S1 după starea S3: P(S1|S3) = 0.2 Stării S3 după starea S2: P(S3|S2) = 0.1 Stării S2 după starea S1: P(S2|S1) = 0.25
Ieşiri: Care este probabilitatea generării unei secvenţe de evenimente P P P N S N P?
A unei secvenţe de sări S1 S1 S1 S2 S3 S2 S1? P = P[S1] P[S1|S1] P[S1|S1] P[S2|S1] P[S3|S2] P[S2|S3] P[S1|S2] P = 0.5 · 0.7 · 0.7 · 0.25 · 0.1 · 0.7 · 0.4 P = 0.001715
Care este probabilitatea generării unei secvenţe de evenimente S S S P N S S? A unei secvenţe de sări S3, S3, S3, S1, S2, S3, S3? • P = P[S3] P[S3|S3] P[S3|S3] P[S1|S3] P[S2|S1] P[S3|S2] P[S3|S3] • P = 0.1 · 0.1 · 0.1 · 0.2 · 0.25 · 0.1 · 0.1 • P = 5.0x10-7
S1 S2
0.25
0.4
0.7 0.5
S3
0.2
0.05
0.7
0.1
0.1
P N S
P
N
S 10.70.20.
10.50.40.
05.25.70.
Mai, 2017 12 IA- Sisteme inteligente
Model Markov ascuns Ideea de bază
Similar unui automat finit, dar cu tranziţie probabilistică de la o stare la alta La fiecare moment de timp se realizează o tranziţie dintr-o stare în altă stare
La orice moment de timp, un eveniment se poate afla în mai multe stări (cu o anumită probabilitate)
Elemente
Ceas cuantifică momentele de timp (discret) t = {1, 2, 3, … T}
N stări Q = {S1, S2, ..., SN}
M evenimente E = {e1, e2, ..., eM}
Probabilităţi iniţiale Πj = P(S1=Sj), 1 j N
Probabilităţi de tranziţie dintr-o stare Si (de la momentul t-1) într-o stare Sj (de la momentul t)
aij = P[qt = Sj | qt-1 = Si] 1 i, j N Obs.: suma probabilităţilor care iasă dintr-o stare = 1
Probabilităţi ale observaţiilor bj(k)=P[ot = ek | qt = Sj] 1 k M bj(ot)=P[ot = ek | qt = j] 1 k M
Model Markov ascuns = (π, A, B), unde
Π probabilităţile stărilor iniţiale
A – matricea probabilităţilor de tranziţie de la o stare ascunsă la alta (NxN) B – matricea probabilităţilor de tranziţie de la o stare ascunsă la o observaţie (NxM)
11
N
j
j
Mai, 2017 13 IA- Sisteme inteligente
Model Markov ascuns
Cazuri particulare
Ergodice (complet conectate)
Bakis (stânga-dreapta)
0.3
0.3
0.6 0.2
0.1
0.1
0.6
0.5
0.3
S1 S2
S3
1 = 0.4 2 = 0.2 3 = 0.4
0.3
0.6 0.4
S1 S2
1 = 1.0 2 = 0.0 3 = 0.0 4 = 0.0
S3
0.1
0.4 S4
1.0
0.9
0.1 0.2
Mai, 2017 14 IA- Sisteme inteligente
Model Markov ascuns Exemple
Previziunea vremii Intrări:
Starea S1 evenimentul “afară plouă (P)” Starea S2 evenimentul “afară sunt nori (N)” Starea S3 evenimnetul “afară este soare (S)” Probabilitatea apariţiei unei
presiuni atmosferice mare: πMa = 0.4 presiuni atmosferice medie: π Me= 0.2 presiuni atmosferice mică: π Mi = 0.3 presiuni atmosferice mare după presiune atmosferică medie: P(Ma|Me) = aMe,Ma =0.3 presiuni atmosferice mare după presiune atmosferică mică: P(Ma|Mi) = aMi,Ma =0.1 presiuni atmosferice medie după presiune atmosferică mare: P(Me|Ma) = aMa,Me =0.3 presiuni atmosferice medie după presiune atmosferică mică: P(Me|Mi) = aMi,Me =0.5 presiuni atmosferice mică după presiune atmosferică mare: P(Mi|Ma) = aMa,Mi =0.1 presiuni atmosferice mică după presiune atmosferică medie: P(Mi|Me) = aMe,Mi =0.5 presiuni atmosferice mare după presiune atmosferică mare: P(Ma|Ma) = aMa,Ma =0.6 presiuni atmosferice medie după presiune atmosferică medie: P(Me|Me) = aMe,Me =0.2 presiuni atmosferice mică după presiune atmosferică mică: P(Mi|Mi) = aMi,Mi =0.1
S1 S2
0.3
0.3
0.6 0.2
S3
0.1 0.1 0.5
0.5
0.1
Ma Me
Mi
0.1
0.7
0.2
0.3
0.3
0.4
0.6
0.1
0.3
a Ma Me Mi
Ma 0.6 0.3 0.1
Me 0.3 0.2 0.5
Mi 0.1 0.5 0.3
π
Ma 0.5
Me 0.2
Mi 0.3
Mai, 2017 15 IA- Sisteme inteligente
Model Markov ascuns Exemple
Previziunea vremii Intrări:
Starea S1 evenimentul “afară plouă (P)” Starea S2 evenimentul “afară sunt nori (N)” Starea S3 evenimnetul “afară este soare (S)”
Probabilitatea apariţiei: Ploii şi a unei presiuni atmosferice mare P(P|Ma)=bMa,P=0.1 Ploii şi a unei presiuni atmosferice medie P(P|Me)=bMe,P=0.3 Ploii şi a unei presiuni atmosferice mică P(P|Mi)=bMi,P=0.6 Norilor şi a unei presiuni atmosferice mare P(N|Ma)=bMa,N=0.2 Norilor şi a unei presiuni atmosferice medie P(N|Me)=bMe,N=0.4 Norilor şi a unei presiuni atmosferice mică P(N|Mi)=bMi,N=0.3 Soarelui şi a unei presiuni atmosferice mare PS|Ma)=bMa,S=0.8 Soarelui şi a unei presiuni atmosferice medie P(S|Me)=bMe,S=0.3 Soarelui şi a unei presiuni atmosferice mică P(S|Mi)=bMi,S=0.1
S1 S2
0.3
0.3
0.7 0.5
S3
0.1 0.1 0.5
0.6
0.1
Ma Me
Mi
0.1
0.7
0.2
0.3
0.3
0.4
0.6
0.1
0.3
a Ma Me Mi
Ma 0.6 0.3 0.1
Me 0.3 0.2 0.5
Mi 0.1 0.5 0.3
π
Ma 0.5
Me 0.2
Mi 0.3
b S N P
Ma 0.7 0.2 0.1
Me 0.3 0.4 0.3
Mi 0.1 0.3 0.6
Mai, 2017 16 IA- Sisteme inteligente
Model Markov ascuns Exemple
Previziunea vremii Ieşiri:
Care este probabilitatea generării unei secvenţe de evenimente P P P N S N P fiind date modelul HMM (π, A, B) şi o secvenţă de stări ascunse (seq=Ma Me Me Mi Mi Ma Ma)?
P = P[P|Ma] P[P|Me] P[P|Me] P[N|Mi] P[S|Mi] P[N|Ma] P[P|Ma] P = bMa,PbMe,P bMe,PbMi,NbMi,S bMa,N bMa,P P = 0.1*0.3*0.3*0.3*0.1*0.2*0.1
Care este probabilitatea generării unei secvenţe de evenimente P P P N S N P şi a unei secvenţe de stări ascunse (seq=Ma Me Me Mi Mi Ma Ma) fiind dat modelul HMM (π, A, B)?
P=(Pstart[Ma]*P[P|Ma])*(P[Me|Ma]*P[P|Me])*(P[Me|Me]*P[P|Me])*(P[Mi|Me]*P[N|Mi])*(P[Mi|Mi]*P[S|Mi])*(P[Ma|Mi]*P[N|Ma])*(P[Ma|Ma] *P[P|Ma])
P = (πMabMa,P)*(aMa,MebMe,P)*(aMe,MebMe,P)*(aMe,MibMi,N)*(aMi,MibMi,S)*(aMi,MabMa,N)*(aMa,MabMa,P) P = 0.5*0.1*0.3*0.3*0.2*0.3*0.5*0.3*0.3*0.1*0.1*0.2*0.6*0.1
a Ma Me Mi
Ma 0.6 0.3 0.1
Me 0.3 0.2 0.5
Mi 0.1 0.5 0.3
π
Ma 0.5
Me 0.2
Mi 0.3
b S N P
Ma 0.7 0.2 0.1
Me 0.3 0.4 0.3
Mi 0.1 0.3 0.6
S1 S2
0.3
0.3
0.7 0.5
S3
0.1 0.1 0.5
0.6
0.1
Ma Me
Mi
0.1
0.7
0.2
0.3
0.3
0.4
0.6
0.1
0.3 Mai, 2017 17 IA- Sisteme inteligente
Model Markov ascuns
Dileme Care este probabilitatea producerii unei secvenţe de
observaţii O? Algoritmul foward-backward Ex. care este probabilitatea ca săptămâna viitoare să fie S
S N P S S S?
Care este următoarea observaţie după o secvenţă de
observaţii? Calcul de probabilităţi condiţionate Ex. Care este cea mai probabilă vreme pentru mâine ştiind
că ultima săptămână a fost S S N P S S S?
Care este cea mai probabilă explicaţie (secvenţă de
stări ascunse) care a generat un set de observaţii? Algoritmul Viterbi Ex. Care este cea mai probabilă secvenţă de nivele ale
presiunii (Mică, Medie, Mare) care au generat o săptămână cu S S N P S S S?
Mai, 2017 18 IA- Sisteme inteligente
Model Markov ascuns
Exemple Recunoaşterea vocii
Semnalul vocal este separat în fragmente de 10-msec Cum? Quantificare vectorială
generându-se o mulţime O de observaţii (stări observabile).
Pe baza HMM-urilor corespunzătoare fiecărui posibil cuvânt wi (fonem fi), se calculează probabilitatea Pi ca observaţiile O să fi fost generate de cuvântul wi (fonemul fi).
Se alege cea mai mare probabilitate cuvântul rostit (fonemul rostit).
T=80
Mai, 2017 19 IA- Sisteme inteligente
Cuantificare vectorială
Ideea de bază
Separarea spaţiului de caracteristici în grupe de date
Fiecare grupă are asociat un centroid
Toţi centroizii formează un codebook
cu scopul reducerii dimensiunii datelor
Mai, 2017 20 IA- Sisteme inteligente
Cuantificarea vectorială şi generarea observaţiilor Generarea observaţiilor corespunzătoare unei stări Starea =
Cuvânt Mono-fonem (mono-gram)
Fonem independent (b) Ex. BRYAN B R AY AX N
Bi-fonem (bi-gram) Foneme contextuale (stânga a-b, dreapta b+c) Ex. BRYAN SIL-B B-R R-AY AY-AX AX-N, BRyAN B+R R+AY AY+AX AX+N N+SIL
Tri-fonem (tri-gram) Foneme contextuale (stânga şi dreapta a-b+c) Ex. BRYAN SIL-B+R B-R+AY R-AY+AX AY-AX+N AX-N+SIL
y eh s
0.3 0.5 0.8
0.7 0.5 0.2 0.4 sil sil
1.0 0.6
o1 o2 o3 o4 o5 o6 o7 o8 o29
Mai, 2017 21 IA- Sisteme inteligente
Model Markov ascuns Dileme
Care este probabilitatea producerii unei secvenţe de observaţii O? Algoritmul foward-backward Ex.
Care este probabilitatea ca semnalul vocal să fie ?
Care este următoarea observaţie după o secvenţă de
observaţii? Calcul de probabilităţi condiţionate Ex.
Care este cel mai probabil semnal vocal următor ştiind că semnalul curent a fost ?
Care este cea mai probabilă explicaţie (secvenţă de stări
ascunse) care a generat un set de observaţii? Algoritmul Viterbi Ex.
Care este cea mai probabilă secvenţă de foneme care au generat un semnal audio ?
Mai, 2017 22 IA- Sisteme inteligente
Cautare in ontologii
Mai, 2017 23 IA- Sisteme inteligente
Web semantic şi metode de căutare
Web - concept şi evoluţie
Web semantic
Metode de căutare
Mai, 2017 24 IA- Sisteme inteligente
Web - concept şi evoluţie
Web (WWW)
“pânza de păianjen mondială”
WWW != Internet
Idee (Sir Tim Berners-Lee la CERN – 1989)
integrarea unor sisteme informaţionale
dispersate într-un mod unitar,
fără diferenţe între sursele de date
anything can link to anything
bazat pe:
modelul client/server
hypertext
Mai, 2017 25 IA- Sisteme inteligente
Web - concept şi evoluţie
Web (WWW)
“pânza de păianjen mondială”
WWW != Internet
Idee (Sir Tim Berners-Lee la CERN – 1989)
integrarea unor sisteme informaţionale
dispersate într-un mod unitar,
fără diferenţe între sursele de date
anything can link to anything
bazat pe:
modelul client/server
hypertext
Mai, 2017 26 IA- Sisteme inteligente
Web - concept şi evoluţie
Arhitectură
Resursele sunt identificate prin adresa lor
identificator uniform de resurse (URI – Uniform Resource Identifier)
http://www.cs.ubbcluj.ro/~forest/wp/
Accesul la conţinutul (reprezentarea) resurselor Web
protocol
HTTP – HyperText Transfer Protocol
Resursele – documentele (pagini Web) – includ <marcaje/>
marcajele conţin la rândul lor URI-uri hipertext
Relaţiile dintre o resursă Web, adresa ei (URI)
şi reprezentarea structurată a resursei
Mai, 2017 27 IA- Sisteme inteligente
Web - concept şi evoluţie
Web 1.0
Sit Web
sistem pe care rulează un server Web găzduind o serie de pagini (documente) WWW înrudite – ale unei organizaţii, companii sau persoane
Aplicaţie Web
Interfaţă
HTML, CSS, Ajax, Flash, Silverlight, SVG, widget-uri,…
+ Conţinut (Date)
relationale (SQL), XML, grafuri, modelare semantica (RDF)
+ Program
server: C#, Java, Perl, PHP, Ruby etc.; client: JavaScript
Mai, 2017 28 IA- Sisteme inteligente
Web - concept şi evoluţie Web 2.0 (web social)
WWW - platforma în care utilizatorul îşi controlează propriile date
Participare read/write Web colaborare, comunităţi, conectivitate inter-personală & între
aplicaţii
Partajare de artefacte informationale documente, fotografii, multimedia, cod-sursă etc.
Inteligenţa colectivă editare & management colaborativ al conţinutului aplicaţii de tip wiki
Servicii şi nu pachete software Software rulat oriunde Mediatizare (syndication) Web
datele privitoare la un sit Web sunt expuse liber via un flux (feed) în format ex. RSS (Really Simple Syndication) XML
ex. Atom
Mai, 2017 29 IA- Sisteme inteligente
Web - concept şi evoluţie
Web 3.0 (Web-ul datelor, Web-ul semantic) Cum pot fi descrise la nivelul masinii aceste web-uri? modelarea cunoştinţelor o manieră de a ataşa meta-date
Informaţii privitoare la date
un mod de specificare a relaţiilor dintre resurse
structuri de organizare a datelor în cadrul unui sau mai multor web-uri
modelarea & procesarea cunoştinţelor despre „lucruri”
knowledge about things
realizate sistematic, formalizat ontologii
create ad-hoc, manual, de către utilizatorii obişnuiţi folksonomii
Implicitul explicit
Java = limbaj / insulă / cafea
Uşor de înţeles de către oameni, dar şi de către calculatoare
Mai, 2017 30 IA- Sisteme inteligente
Web semantic
Modelarea cunoştinţelor
Definirea cunoştinţelor
Meta-date RDF (Resource Description Framework)
Reprezentarea cunoştinţelor
Reţele semantice graf (orientat sau neorientat)
Mai, 2017 31 IA- Sisteme inteligente
Web semantic
Modelarea cunoştinţelor
Definirea cunoştinţelor
Meta-date RDF (Resource Description Framework)
Reprezentarea cunoştinţelor
Asocieri de subiecte (topic map) Hyper-graf (relaţii n-are între noduri)
Mai, 2017 32 IA- Sisteme inteligente
Web semantic
Modelarea cunoştinţelor
Definirea cunoştinţelor
Meta-date RDF (Resource Description
Framework)
Reprezentarea cunoştinţelor
Diagrame UML
Mai, 2017 33 IA- Sisteme inteligente
Web semantic
Modelarea cunoştinţelor
Definirea cunoştinţelor
Meta-date RDF (Resource Description
Framework)
Reprezentarea cunoştinţelor
Grafuri conceptuale interfaţă grafică pentru
logica de ordin I
Mai, 2017 34 IA- Sisteme inteligente
Web semantic Modelarea cunoştinţelor Definirea cunoştinţelor
Meta-date RDF (Resource Description Framework)
Reprezentarea cunoştinţelor Grafuri RDF
ofera posibilitatea de a descrie/adnota (explicit) resursele Web relaţii ternare între elemente (subiect-predicat-complement direct)
Subiectul resursa Predicatul caracteristică a resursei; leagă subiectul de complement Obiect (complement) atribut valoare
Ex. Floarea are culoarea roşie
Mai, 2017 35 IA- Sisteme inteligente
Web semantic
Modelarea cunoştinţelor
Reprezentarea cunoştinţelor
taxonomii
in termeni de clase, superclase si subclase de resurse si relatiile intre ele
vocabular controlat (controlled vocabulary)
scheme RDF
tezaur
a controlled vocabulary arranged in a known order and structured so that equivalence, homographic, hierarchical, and associative relationships among terms are displayed clearly & identified by standardized relationship indicators
relaţii între resurse
Echivalenţă, omonimie, ierarhie, asociere
Mai, 2017 36 IA- Sisteme inteligente
Web semantic
Modelarea cunoştinţelor
Reprezentarea cunoştinţelor
Ontologii
Conceptualizarea unui domeniu de cunoastere intr-un format destinat a fi procesat de calculator, format modelind entitati, atribute, relatii si axiome
Conţine categoriile, clasele, conceptele fundamentale proprietatile conceptelor relatiile & distinctiile dintre concepte
studiul categoriilor de lucruri (things) care exista sau pot exista intr-un domeniu de interes
Reprezentare prin RDFS, OWL (WordNet)
Proiectare, aliniere, fuziune
Mai, 2017 37 IA- Sisteme inteligente
Metode de căutare
Definire
Necesitate
Algoritmi
Mai, 2017 38 IA- Sisteme inteligente
Metode de căutare
Definire
Identificarea celor mai bune k răspunsuri (top k) care se potrivesc cu interogarea unui utilizator
Rezultatul poate fi furnizat sub forma:
unei mulţimi
unei liste sortate
unei liste sortate şi cu scoruri
Alegerea celor k răspunsuri dintre N elemente
unde N >> k
Mai, 2017 39 IA- Sisteme inteligente
Metode de căutare
Exemplu
obiect
Arie (x1)
Circularitate (x2)
Albăstreală (x3)
0.9 0.4 0.4
0.8 0.5 0.2
0.6 0.1 0.3
0.2 0.6 0.5
0.5 0.7 0.3
0.1 0 0
Mai, 2017 40 IA- Sisteme inteligente
Metode de căutare
Necesitate
Căutări în web şi alte sarcini de regăsire/ordonare de informaţie utilă
Identificarea documentelor cu informaţii despre “Apps for Galaxy Smartphones“
Căutări în depozitele cu informaţii multimedia
Identificarea imaginilor care prezintă un palmier şi un apus de soare
Căutări în depozite structurate de date pe baza preferinţelor clienţilor
Identificarea apartamentelor spaţioase în cartierele apropiate campusului universitar
Mai, 2017 41 IA- Sisteme inteligente
Metode de căutare
Raportate la interogările de tip SQL
Relevanţă graduală (nu doar bi-valentă)
Rezultate formate din cele mai bune exemple (nu toate exemplele care se potrivesc cu interogarea)
Calitatea unui exemplu este exprimată prin intermediul unui scor
Mai, 2017 42 IA- Sisteme inteligente
Metode de căutare
Utilitate
Explorează compromisul complexitate temporală vs. complexitate spaţială
Explorează domenii reale de definiţie a atributelor
Mai, 2017 43 IA- Sisteme inteligente
Metode de căutare
Algoritmi
Algoritmi de potrivire (matching)
Algoritmi de ordonare (ranking)
Algoritmi de selecţie (top k)
Mai, 2017 44 IA- Sisteme inteligente
Metode de căutare
Algoritmi de potrivire
Potrivire exactă
True/False
Potrivire inexactă
distanţa între 2 elemente să fie < decât un prag
2 elemente să aibă un nucleu comun
2 elemente să provină de pe aceaşi ramură semantică
Mai, 2017 45 IA- Sisteme inteligente
Metode de căutare Algoritmi de potrivire
Cel mai apropiat strămoş comun (Least common ancestor – LCA) – vers 1 complexitate:
Pre-procesare: const, Căutare: O(log n)
LCA(root, val1, val2){
if (root == NULL || root.getInfo() == val1 || root.getInfo() == val2) return -1;
if (root.getRight() != NULL && (root.getRight().getData() == val1 || root.getRight().getData() == val2 ))
return root.getData(); if (root.getLeft() != NULL && (root.getLeft().getData() == val1 ||
root.getLeft().getData() == val2 )) return root.getData();
if (root.getData() > val1 && root.getData() < val2)
return root.getData(); if (root.getData() > val1 && root.getData() > val2)
return LCA(root.getLeft(), val1, val2) if (root.getData() < val1 && root.getData() < val2)
return LCA(root.getRight(), val1, val2) }
Mai, 2017 46 IA- Sisteme inteligente
Metode de căutare Algoritmi de potrivire
Cel mai apropiat strămoş comun (Least common ancestor - LCA) – vers 2 complexitate:
Pre-procesare: O(n), Căutare: O(sqrt(N))
LastSectionAncestor(node, F[n], n, P[n], L[n], no=sqrt(H)){ if (L[node] < nr) P[node] = 1; else{ if ((L[node] % nr == 0)) P[node] = F[node]; else P[node] = P[F[node]]; } for each son of node LastSectionAncestor(nod, F, n, P, L, no); }
LCA(F[n], P[n], L[n], val1, val2){
while (P[val1] != P[val2]){ if (L[val1] > L[val2]) val1 = P[val1]; else val2 = P[val2]; } while (val1 != val2){ if (L[val1] > L[val2]) val1 = F[val1]; else val2 = F[val2] } return val1;
}
Mai, 2017 47 IA- Sisteme inteligente
Metode de căutare
Algoritmi de ordonare Funcţii de scor (ranking)
Folosite pentru a calcula scorul (importanţa) unui exemplu Un exemplu poate avea mai multe atribute mai multe
scoruri Frecvenţa de apariţie a cuvântului “galaxy” Nivelul de roşu din imagine Suprafaţa apartamentului
Pp un exemplu E cu m atribute E = (a1, a2, ..., am) S(E) = g(f1(a1), f2(a2), f3(a3),..., fm(am))
fi – funcţie monotonă g – funcţie monotonă de agregare (sumă, medie, max,
etc) Eg.
g = 2 * suprafaţa apartamentului + 3 * distanţa până în campus
Mai, 2017 48 IA- Sisteme inteligente
Metode de căutare
Algoritmi de selecţie (top k)
Timpul de execuţie
Acces secvenţial la exemple iterator
Access aleator cf. unei chei primare
Mai costisitor decât accesul secvenţial
Spaţiul de execuţie
Câte exemple relevante se reţin la un moment dat?
Un anumit număr (k)?
Un număr dependent (liniar) de mărimea setului de date (N)?
Mai, 2017 49 IA- Sisteme inteligente
Metode de căutare
Algoritmi de selecţie (top k)
Abordarea naivă
Ideea de bază
Calcularea scorului pentru fiecare exemplu
Sortarea exemplelor pe baza scorului
Selectarea primelor k exemple
Proprietăţi
Simplă
Complexitate liniară O(n)
Mai, 2017 50 IA- Sisteme inteligente
Metode de căutare
Algoritmi de selecţie (top k)
Abordarea naivă
obiect
Arie (x1)
Circularitate (x2)
Albăstreală (x3)
Scor total
0.9 0.4 0.4 1.7
0.8 0.5 0.2 1.5
0.6 0.1 0.3 1
0.2 0.6 0.5 1.3
0.5 0.7 0.3 1.5
0.1 0 0 0.1
Mai, 2017 51 IA- Sisteme inteligente
Metode de căutare
Algoritmi de selecţie (top k)
Abordarea naivă
obiect
Arie (x1)
Circularitate (x2)
Albăstreală (x3)
Scor total
0.9 0.4 0.4 1.7
0.8 0.5 0.2 1.5
0.5 0.7 0.3 1.5
0.2 0.6 0.5 1.3
0.6 0.1 0.3 1
0.1 0 0 0.1
Mai, 2017 52 IA- Sisteme inteligente
Metode de căutare
Algoritmi de selecţie (top k)
Algoritmul lui Fagin
Ideea de bază
Precalcularea scorurilor/atribut şi formarea a m liste
Sortarea acestor m liste
Accesarea sevenţială şi în paralel a acestor liste până când au fost vizitate k obiecte în fiecare listă
Calcularea scorului pentru obiectele accesate
Sortarea pe baza scorului şi returnarea primelor k exemple
Proprietăţi
Complexitate O(nm-1/mk1/m)
Mai, 2017 53 IA- Sisteme inteligente
Metode de căutare Algoritmi de selecţie (top k)
Algoritmul lui Fagin Pp. că:
d n exemple cu m atribute fiecare s cele n exemple sortate după fiecare atribut în parte
i = 0; while (i < n) && (!stopCond){
for(j=0; j<m; j++){ Object o(s[i][j].index, j, s[i][j].value) seenObj.add(o)
} no = 0; for each o Є seenObj{
if (o.getNoFilledAtrib() == m) no++; } stopCond = (no == k); i++;
}
Mai, 2017 54 IA- Sisteme inteligente
Metode de căutare
Algoritmi de selecţie (top k)
Algoritmul lui Fagin
obiect
Arie (x1)
0.9
0.8
0.6
0.5
0.2
0.1
obiect
Circularitate (x2)
0.7
0.6
0.5
0.4
0.1
0
obiect
Albăstreală (x3)
0.5
0.4
0.3
0.3
0.2
0 Mai, 2017 55 IA- Sisteme inteligente
Metode de căutare Algoritmi de selecţie (top k)
Algoritmul lui Fagin
i=1 obiect (x1) (x2) (x3)
0.9
0.7
0.5
Mai, 2017 56 IA- Sisteme inteligente
Metode de căutare Algoritmi de selecţie (top k)
Algoritmul lui Fagin
i=2 obiect (x1) (x2) (x3)
0.9 0.4
0.7
0.6 0.5
0.8
Mai, 2017 57 IA- Sisteme inteligente
Metode de căutare Algoritmi de selecţie (top k)
Algoritmul lui Fagin
i=3 obiect (x1) (x2) (x3)
0.9 0.4
0.7
0.6 0.5
0.8 0.5
0.6 0.3
Mai, 2017 58 IA- Sisteme inteligente
Metode de căutare Algoritmi de selecţie (top k)
Algoritmul lui Fagin
i=4 obiect (x1) (x2) (x3)
0.9 0.4 0.4
0.5 0.7 0.3
0.6 0.5
0.8 0.5
0.6 0.3
Mai, 2017 59 IA- Sisteme inteligente
Metode de căutare Algoritmi de selecţie (top k)
Algoritmul lui Fagin
i=4 obiect (x1) (x2) (x3) Global
0.9 0.4 0.4 1.7
0.5 0.7 0.3 1.5
0.6 0.5
0.8 0.5
0.6 0.3
Mai, 2017 60 IA- Sisteme inteligente
Metode de căutare
Algoritmi de selectare (top k) Algoritmul cu prag
Ideea de bază Execută
Pentru fiecare exemplu E care a fost accesat cel puţin o dată în oricare dintre listele individuale
Accesează atributele lui E din listele în care exemplul nu a fost încă accesat
Calculează t(E) şi actualizeză lista primelor k exemple (Y) – dacă este necesar
Calculează τ = t(f1, f2, ..., fm), unde fi este scorul ultimului exemplu accesat în lista Li
Până când τ < g (g – scorul agregat cel mai mic al setului de k exemple Y)
Proprietăţi Complexitate
verifică mai puţine exemple k*(m-1) accese random spaţiu tampon pentru maxim k exemple
Mai, 2017 61 IA- Sisteme inteligente
Metode de căutare Algoritmi de selectare (top k)
Algoritmul cu prag Pp.:
d n exemple cu m atribute fiecare s cele n exemple sortate după fiecare atribut în parte
i = 0; while (i < n) && (!stopCond){
for(j=0; j<m; j++){ Object o(s[i][j].index, j, s[i][j].value) for(t = 0; t < j; t++) o.setInfo(t, d[s[i][j].index][t]); //random access for(t = j + 1; t < m; t++) o.setInfo(t, d[s[i][j].index][t]); //random access seenObj.add(o)
} sort(seenObj, Object.getAgregation()); //reverse theta = agregation(s[i]) no = 0; for each o Є seenObj{
if (o.getAgregation() > theta) no++; } stopCond = (no == k); i++;
} Mai, 2017 62 IA- Sisteme inteligente
Metode de căutare Algoritmi de selectare (top k) Algoritmul cu prag
i=1 obiect (x1) (x2) (x3)
0.9
0.7
0.5
Mai, 2017 63 IA- Sisteme inteligente
Metode de căutare Algoritmi de selectare (top k) Algoritmul cu prag
i=1 obiect (x1) (x2) (x3)
0.9 0.4 0.4
0.5 0.7 0.3
0.2 0.6 0.5
Mai, 2017 64 IA- Sisteme inteligente
Metode de căutare Algoritmi de selectare (top k) Algoritmul cu prag
i=1
Θ = 0.9+0.7+0.5=2.1
no = 0
obiect (x1) (x2) (x3) Global
0.9 0.4 0.4 1.7
0.5 0.7 0.3 1.5
0.2 0.6 0.5 1.3
Mai, 2017 65 IA- Sisteme inteligente
Metode de căutare Algoritmi de selectare (top k) Algoritmul cu prag
i=2 obiect (x1) (x2) (x3)
0.9 0.4 0.4
0.5 0.7 0.3
0.2 0.6 0.5
0.8
Mai, 2017 66 IA- Sisteme inteligente
Metode de căutare Algoritmi de selectare (top k) Algoritmul cu prag
i=2 obiect (x1) (x2) (x3)
0.9 0.4 0.4
0.5 0.7 0.3
0.2 0.6 0.5
0.8 0.5 0.2
Mai, 2017 67 IA- Sisteme inteligente
Metode de căutare Algoritmi de selectare (top k) Algoritmul cu prag
i=2
Θ = 0.8+0.6+0.4=1.8
no = 0
obiect (x1) (x2) (x3) Global
0.9 0.4 0.4 1.7
0.5 0.7 0.3 1.5
0.2 0.6 0.5 1.3
0.8 0.5 0.2 1.5
Mai, 2017 68 IA- Sisteme inteligente
Metode de căutare Algoritmi de selectare (top k) Algoritmul cu prag
i=2
Θ = 0.8+0.6+0.4=1.8
no = 0
obiect (x1) (x2) (x3) Global
0.9 0.4 0.4 1.7
0.5 0.7 0.3 1.5
0.8 0.5 0.2 1.5
0.2 0.6 0.5 1.3
Mai, 2017 69 IA- Sisteme inteligente
Metode de căutare Algoritmi de selectare (top k) Algoritmul cu prag
i=3 obiect (x1) (x2) (x3)
0.9 0.4 0.4
0.5 0.7 0.3
0.2 0.6 0.5
0.8 0.5 0.2
0.6 0.3
Mai, 2017 70 IA- Sisteme inteligente
Metode de căutare Algoritmi de selectare (top k) Algoritmul cu prag
i=3 obiect (x1) (x2) (x3)
0.9 0.4 0.4
0.5 0.7 0.3
0.2 0.6 0.5
0.8 0.5 0.2
0.6 0.1 0.3
Mai, 2017 71 IA- Sisteme inteligente
Metode de căutare Algoritmi de selectare (top k) Algoritmul cu prag
i=3
Θ = 0.6+0.5+0.3=1.4
no = 3
obiect (x1) (x2) (x3) Global
0.9 0.4 0.4 1.7
0.5 0.7 0.3 1.5
0.8 0.5 0.2 1.5
0.2 0.6 0.5 1.3
0.6 0.1 0.3 1.0
Mai, 2017 72 IA- Sisteme inteligente
Metode de căutare
Algoritmi de selectare (top k) Algoritmul fără acces random
Ideea de bază
Se accesează toate listele, în paralel, secvenţial
După fiecare mişcare a cursorului
Se calculează scorul cel mai slab şi cel mai bun al fiecărui exemplu
Se sortează obiectele vizitate pe baza celui mai slab scor
se stabileze pragul (ca prin agregarea scorurlor curente)
se opreşte căutarea dacă scorul cel mai slab al celui de-al k-lea exemplu depăşeşte pragul
Se returnează primele k obiecte
Proprietăţi
Complexitate bazată doar pe accesul secvenţial Mai, 2017 73 IA- Sisteme inteligente
Metode de căutare Algoritmi de selectare (top k)
Algoritmul fără acces random Pp.:
d n exemple cu m atribute fiecare s cele n exemple sortate după fiecare atribut în parte
i = 0; limits = []; while (i < n) && (!stopCond){
for(j=0; j<m; j++){ Object o(s[i][j].index, j, s[i][j].value; seenObj.add(o); limits[j] = s[i][j].value;
} theta = agregation(s[i]) for each o Є seenObj{
o.setWorst(o.getAgregation()); info=[]; for(j = 0; j < m; j++) if (o.getInfo(j) == 0) info[j] = limits[j]; else info[j] = o.getInfo(j); o.setBest(agregation(info);
Sort(seenObj, Object.getWorst()); //reverse minTopk = seenObj[k – 1].getWorst(); stopCond = (theta < minTopk); i++;
}
Mai, 2017 74 IA- Sisteme inteligente
Metode de căutare Algoritmi de selectare (top k) Algoritmul fără acces random
i=1
limits 0 0 0
obiect (x1) (x2) (x3) worst best θ topMinK
0.9
0.7
0.5
Mai, 2017 75 IA- Sisteme inteligente
Metode de căutare Algoritmi de selectare (top k) Algoritmul fără acces random
i=1
limits 0.9 0.7 0.5
obiect (x1) (x2) (x3) worst best θ topMinK
0.9 0.9 2.1 2.1 0.5
0.7 0.7 2.1
0.5 0.5 2.1
Mai, 2017 76 IA- Sisteme inteligente
Metode de căutare Algoritmi de selectare (top k) Algoritmul fără acces random
i=2
limits 0.9 0.7 0.5
obiect (x1) (x2) (x3) worst best θ topMinK
0.9 0.4 0.9 2.1 2.1 0.5
0.7 0.7 2.1
0.6 0.5 0.5 2.1
0.8
Mai, 2017 77 IA- Sisteme inteligente
Metode de căutare Algoritmi de selectare (top k) Algoritmul fără acces random
i=2
limits 0.8 0.6 0.4
obiect (x1) (x2) (x3) worst best θ topMinK
0.9 0.4 1.3 1.9 1.8 0.5
0.7 0.7 1.9
0.6 0.5 1.1 1.9
0.8 0.8 1.8
Mai, 2017 78 IA- Sisteme inteligente
Metode de căutare Algoritmi de selectare (top k) Algoritmul fără acces random
i=2
limits 0.8 0.6 0.4
obiect (x1) (x2) (x3) worst best θ topMinK
0.9 0.4 1.3 1.9 1.8 1.1
0.6 0.5 1.1 1.9
0.8 0.8 1.8
0.7 0.7 1.9
Mai, 2017 79 IA- Sisteme inteligente
Metode de căutare Algoritmi de selectare (top k) Algoritmul fără acces random
i=3
limits 0.8 0.6 0.4
obiect (x1) (x2) (x3) worst best θ topMinK
0.9 0.4 1.3 1.9 1.8 1.1
0.6 0.5 1.1 1.9
0.8 0.5 0.8 1.8
0.7 0.7 1.9
0.6 0.3
Mai, 2017 80 IA- Sisteme inteligente
Metode de căutare Algoritmi de selectare (top k) Algoritmul fără acces random
i=3
limits 0.6 0.5 0.3
obiect (x1) (x2) (x3) worst best θ topMinK
0.9 0.4 1.3 1.8 1.4 1.1
0.6 0.5 1.1 1.7
0.8 0.5 1.3 1.6
0.7 0.7 1.6
0.6 0.3 0.9 1.4
Mai, 2017 81 IA- Sisteme inteligente
Metode de căutare Algoritmi de selectare (top k) Algoritmul fără acces random
i=3
limits 0.6 0.5 0.3
obiect (x1) (x2) (x3) worst best θ topMinK
0.9 0.4 1.3 1.8 1.4 1.3
0.8 0.5 1.3 1.6
0.6 0.5 1.1 1.7
0.6 0.3 0.9 1.4
0.7 0.7 1.6
Mai, 2017 82 IA- Sisteme inteligente
Metode de căutare Algoritmi de selectare (top k) Algoritmul fără acces random
i=4
limits 0.6 0.5 0.3
obiect (x1) (x2) (x3) worst best θ topMinK
0.9 0.4 0.4 1.3 1.8 1.4 1.3
0.8 0.5 1.3 1.6
0.6 0.5 1.1 1.7
0.6 0.3 0.9 1.4
0.5 0.7 0.3 0.7 1.6
Mai, 2017 83 IA- Sisteme inteligente
Metode de căutare Algoritmi de selectare (top k) Algoritmul fără acces random
i=4
limits 0.5 0.4 0.3
obiect (x1) (x2) (x3) worst best θ topMinK
0.9 0.4 0.4 1.7 1.7 1.2 1.3
0.8 0.5 1.3 1.6
0.6 0.5 1.1 1.6
0.6 0.3 0.9 1.3
0.5 0.7 0.3 1.5 1.5
Mai, 2017 84 IA- Sisteme inteligente
Metode de căutare Algoritmi de selectare (top k) Algoritmul fără acces random
i=4
limits 0.5 0.4 0.3
obiect (x1) (x2) (x3) worst best θ topMinK
0.9 0.4 0.4 1.7 1.7 1.2 1.5
0.5 0.7 0.3 1.5 1.5
0.8 0.5 1.3 1.6
0.6 0.5 1.1 1.6
0.6 0.3 0.9 1.3
Mai, 2017 85 IA- Sisteme inteligente
Informaţiile prezentate au fost colectate din diferite surse de pe internet, precum şi din cursurile de inteligenţă artificială ţinute în anii anteriori de către:
Conf. Dr. Mihai Oltean – www.cs.ubbcluj.ro/~moltean
Lect. Dr. Crina Groşan - www.cs.ubbcluj.ro/~cgrosan
Prof. Dr. Horia F. Pop - www.cs.ubbcluj.ro/~hfpop
Mai, 2017 86 IA- Sisteme inteligente