35
Fakulteta za računalništvo in informatiko Tržaška cesta 25 1000 Ljubljana Umetna inteligenca, 2011/12 Teorija --za interno rabo-- Žiga Makuc #zadnja posodobitev 2.7.2012

FRI - Umetna Inteligenca - Snov za ustni izpit

Embed Size (px)

DESCRIPTION

Snov za ustni izpit

Citation preview

Page 1: FRI - Umetna Inteligenca - Snov za ustni izpit

Fakulteta za računalništvo in informatiko Tržaška cesta 25 1000 Ljubljana

Umetna inteligenca, 2011/12

Teorija

--za interno rabo--

Žiga Makuc

#zadnja posodobitev 2.7.2012

Page 2: FRI - Umetna Inteligenca - Snov za ustni izpit

1. Prostor stanj

1.1 Graf Graf je sestavljen iz vozlišč in povezav med njimi. Vozlišče(node) predstavlja trenutno stanje problema (recimo igre). Povezava (arc) je pa pomik iz ene pozicije v drugo – torej akcija ali dovoljena poteza. Prostor stanj je v bistvu usmerjen graf:

Graf lahko razgradimo tudi v drevo.

Rešitev problema predstavlja pot čez graf. Problem je podan s:

prostorom stanj,

začetnim stanjem in

ciljem(cilji) – ciljni pogoj. Reševanje problema je torej iskanje poti. Problem lahko predstavimo na dva načina:

Prostor stanj (običajen graf) in

AND/OR graf. Za iskanje poti (preiskovanje grafa) potrebujemo nek algoritem:

neinformirani algoritmi to si »neumni«, kar pomeni da probajo vse – sistematično preiskuje cel graf Primeri:

Iskanje v globino Iskanje v širino Iterativno poglabljanje

informirani algoritmi najprej probajo najboljšo možno pot – uporabi neko specifično informacijo za usmerjanje Primeri:

Prioritetno preiskovanje (best-first) A* IDA* RBFS, Hill Climbing, Steepest Descent, Greedy Search, Beam Search,...

Page 3: FRI - Umetna Inteligenca - Snov za ustni izpit

Tako dobimo rešitev problema – pot od začetnega do končnega vozlišča. Primeri predstavitve problemov s prostorom stanj:

Planiranje v svetu kock,

Manevriranje mobilnih robotov,

15-puzzle,

Trgovski potnik,

Sestavljanje urnika,

Modeliranje izmerjenih podatkov,...

1.2 Algoritmi za preiskovanje dreves/grafov Kaj predstavlja problem pri preiskovanju prostorov stanj? Kombinatorična zahtevnost/eksplozija. Pri preiskovanju poznamo tri smeri preiskovanja:

Iskanje naprej (od starta do cilja) – forward search

Iskanje nazaj (od cilja do starta) – backward search (dopiši opis te metode)

Dvosmerno iskanje – bidirectional search (dopiši opis te metode) V ekspertnih sistemih pa poznamo še:

Veriženje naprej – forward chaining (data driven)

Veriženje nazaj - backward chaining (goal driven) d-depth b-branching factor (težavnost za računalnik) – povprečno št. naslednikov, ki jih ima vozlišče za dani primer Te metode delujejo tudi na grafih (ne samo pri drevesih), vendar če se deli drevesa ponovijo, lahko postanejo zelo neučinkovite. Zato dodamo preverjanje ponovitve vozlišč.

1.2.1 Breadth First Časovna kompleksnost: O(bd) Prostorska kompleksnost: O(bd) Optimalnost: DA Težave s cikli: NE

Vedno najde optimalno rešitev in se ne zacikla. Je pa potraten pri porabi pomnilnika, saj si mora zapomniti vse alternativne poti, ki »upajo«, da bojo podaljšane do ciljnega vozlišča. Implementiramo s seznamom seznamov. V vsaki iteraciji zbrišemo prvo pot in dodamo vse njene možne podaljške na konec seznama.

1.2.2 Depth First To je algoritem iskanja v globino. Ta algoritem gre v globino, torej se vedno bolj oddaljuje od začetnega stanja.

Časovna kompleksnost: O(bdmax) Prostorska kompleksnost: O(b*dmax) oz. O(dmax) Optimalnost: NE Težave s cikli: DA

Prostorska kompleksnost je lahko manjša, saj ko se premakne na alternativno pot, lahko pozabi prej preiskane poti. Najlažje ga implementiramo z rekurzijo. Problem je, ker ne najde optimalne rešitve in se lahko zacikla, ni pa potraten s pomnilnikom. Kako rešiti probleme s cikli:

zapomnimo si, kje smo že bili

omejimo globino na dmax Problem je, kako najti pravi dmax. Če je premajhen, ne najdemo rešitve, če je prevelik zopet ni v redu. Rešitev tega je iterativno poglabljanje. To je zanka, ki povečuje globino in ponavlja BF. Implementiramo s seznamom seznamov. V vsaki iteraciji zbrišemo prvo pot in dodamo vse njene možne podaljške na začetek seznama. Lahko generiramo vse naslednjike, ali pa samo enega. Od tega je odvisna prostorska zahtevnost: O(d) ali O(d*b)

Page 4: FRI - Umetna Inteligenca - Snov za ustni izpit

1.2.3 Depth First with ID Časovna kompleksnost: O(bd) Prostorska kompleksnost: O(d*b) oz. O(d) Optimalnost: DA Težave s cikli: NE

Ta predstavlja torej same dobre stvari izmed BF in DF (razen časa). Vprašanje je, ali je smiselno da vsakič preišče isto pot (ko začne z novo globino)? Temu se reče over-head (faktor dodatnega dela) in predstavlja b/(b-1). Da pa je smiselno, pa to dokažemo z matematično indukcijo in ugotovimo da velja za poljuben d. Večji ko je b, vedno manj imamo »več dela«. Pri b=2 =>2x več dela, b=10=> 1/11 več.

1.2.4 A* f(n) ocenjuje ceno najboljše poti skozi vozlišče n f(n)=g(n)+h(n)

g(n) – je dejanska cena, ki je znana

h(n) - je pa hevristično ugibanje – ocena najcenejše poti iz n do najbližjega cilja oziroma obetavnost Torej prednost damo tistim potem, ki so bolj obetavne (nižja cena). Pri tem algoritmu izhajamo iz BFS – hranimo vse poti (prostorska potratnost je velika).

Časovna kompleksnost: O(bd) Prostorska kompleksnost: O(bd) Optimalnost: DA, če so hevristike ustrezne Težave s cikli: NE

Če so vse cene 1 in vse hevrsitike 0, potem A* postane BFS. Če imamo popolnoma natančno hevristiko, postane časovna kompleksnost O(1). A* nam vrača optimalno rešitev, ko za hevristiko velja Izrek o popolnosti (admissibility): A* je popoln, če za vsak n velja: h(n)≤h*(n)

h(n) – hevristična ocena

h*(n) – dejanska cena najcenejše poti do cilja Kar pomeni, da hevristična ocena vozlišča NE SME preseči prave vrednosti vozlišča (realna pot do cilja). Preiskovalni algoritem je torej popoln, če garantirano vedno najde optimalno rešitev. A* je torej popoln, če uporablja optimistične hevristične ocene. Primer je h(n)=0 za vse n, vendar to ni dobro. Zakaj? Idealno bi bilo, da je h(n)=h*(n). Pove točno, koliko je do cilja. Problem pa je, ker h*(n) ponavadi ne poznamo, zato moramo nekako to hevristiko zgraditi. Primer je recimo če gledaš poti iz enega mesta do drugega; če vzameš za hevristiko zračno razdaljo, bo ta res vedno krajša od dejanske razdalje, zato bo to dobra hevristika. Admissible-dopusten/sprejemljiv. Če imamo nek prostor, lahko za hevristično funkcijo uporabimo Manhattansko razdaljo. Ni pa dobra če imamo neko oviro vmes, saj bi lahko napačno pot izbral (predolgo – primer na AI-classu). Zaradi slabe prostorkse kompleksnosti poznamo dve izboljšavi: IDA* in RBFS.

Page 5: FRI - Umetna Inteligenca - Snov za ustni izpit

1.2.5 IDA* Iterative Deepening A*. Tukaj je podobna ideja kot pri iterativnem poglabljanju, le da ponavlja iskanje znotraj naraščajočih mej za f(f-limit).

Časovna kompleksnost: O(bd) Prostorska kompleksnost: O(b*d) Optimalnost: DA, če so hevristike ustrezne Težave s cikli: NE

Hevristika, ki precenjuje (non admissible), kjer ne velja h(n)≤h*(n), nam NE DA optimalne rešitve, ampak se izkaže, da da hitro rešitev. Primer je recimo f=g+2*h ali 3*h...odivsno od problema. A* in IDA* imata tudi lastnost, ki ji rečemo monotonost. To pa pomeni, da mora f naraščati po poti do cilja. Za vsak n,n' velja: parent(n,n') => f(n) ≤ f(n').

Če ni monotonosti, potem best-first vrstni red ni zagotovljen (kar pri monotonosti je). Če je f monotona, potem IDA* razvija vozlišča v prioritetnem zaporedju. Primer:

Če IDA* uporablja oceno f=g+h in je h-optimistična, potem IDA* vedno najde optimalno rešitev (ne glede na to, ali je funkcija f monotona). Če je funkcija f monotona, potem IDA* spoštuje prioritetni vrstni red (ni pa nujno, da to tudi zagotavlja optimalno rešitev).

F-bound (f-meja) je lahko tako zelo velika, da bo algoritem razvijal vozlišča zelo dolgo (dokler bodo v okviru f-meje) in se ne bo oziral na vrstni red razvijanja vozlišč. IDA* postane zelo neučinkovit, če prevladujejo vozlišča z različnimi f-vrednostmi (npr. majhen šum v Manhattanskih razdaljah).

1.3 Primeri

1.3.1 Razporejanje opravil Opravila vstavljamo v razpored od leve proti desni. Začetno stanje je, da so vsi procesorji prazni, Todo=poln. Pogojni cilj je da je Todo=prazn. Cena povezave je trajanje opravila. Poteze pa so razvrščanje enega opravila na procesor.

1.3.2 Puzzle Tukaj smo obravnavali dva primera hevristike: 1. Uporabimo Manhattansko razdaljo.

Torej razdalja trenutne pozicije do tiste, na katerem bi številka morala biti. Tukaj odmislimo ovire – recimo to, da ga ne moremo premakniti.

2. Za hevristiko uporabimo št. koliko jih je v pravilnem vrstnem redu. Hevristika za take primere je sestavljena iz nekih dejstev (št. v pravilnem vrstnem redu).

Tako lahko iz dejstev gradimo hevristiko – gledamo kaj je najbolj koristno za nov korak do rešitve in ta dejstva utežimo – linearna utežena funkcija. Tako lahko dobimo kombinacije manjših rešitev – pattern databases – uporabno pri šahu.

Page 6: FRI - Umetna Inteligenca - Snov za ustni izpit

1.3.3 Reševanje problemov iz dveh smeri

1.4 AND/OR formalizem AND/OR grafi oziroma »konjunktivno-disjunktivni« grafi. AND/OR grafi ponazarjajo reševanje problemov z dekompozicijo. Problem razstavimo na lažje podprobleme, rešimo podprobleme enega za drugim, sestavimo rešitve podproblemov v rešitev celote. Algoritmi za preiskovanje AND/OR grafov:

V globino, v širino

Hevristični algoritem AO*, posplošitev A* OR vozlišča – rešimo le en podproblem AND vozlišča – rešujemo vse podprobleme Problem = začetno vozlišče + ciljni pogoj Rešitev = rešitveni graf(drevo) Cena rešitve = vsota cen povezav v drevesu Rešitev grafa ni več le pot, ampak celotno poddrevo! OR vozlišče pomeni minimizacija: F(a)=min{cost(a,ai') + F(ai')} F - predstavlja obetavnost AND/OR grafi so recimo uporabni pri igri, kjer imamo nasprotnika (šah,dama) ali pa ekspertnih sistemih. Recimo mi iščemo maksimum, nasprotnik išče minimum. Od tod izbira tudi algoritem minimax ->veliko uporabljen pri rač. igrah, statistikah,... mini | max LOSS | GAIN

Page 7: FRI - Umetna Inteligenca - Snov za ustni izpit

1.4.1 AO* To je v bistvu A* algoritem, ki rešuje tudi AND in OR vozlišča. Tudi tukaj mora veljati izrek o popolnosti: za vsak n: h(n)≤h*(n). Pojmi:

Cena rešitvenega drevesa = vsota cen povezav v rešitvenem drevesu.

Cena vozlišča = cena optimalnega rešitvenega drevesa vozlišča.

h(N) = hevristična ocena cene vozlišča

»Preiskovalno drevo«= doslej generirani del AND/OR grafa

H(N) = dinamična hevristična ocena vozlišča N H(N)=h(N), če je N list v preiskovalnem drevesu Pri OR:

H(N)=mini(cost(N,Ni) + H(Ni)) Pri AND:

H(N)=SUMi(cost(N,Ni) + H(Ni))

1.4.2 Minimax Problem časa: odvisno od tega, koliko vozlišč pogledamo Problem horizonta: d je ravno premajhen, da bi videli možno potezo nasprotnika (npr. zmagovalno). Pri minimax pogledamo do d-potez.

Page 8: FRI - Umetna Inteligenca - Snov za ustni izpit

Algoritem α-β: Določenih delov drevesa nam ni potrebno pregledovati. Bolj znan kot Alfa-Beta pruning.

Fora je, ker gledaš od leve proti desni. Recimo čist spodi levo. Maš 5 in 6. Eno vrstico gor veš da minimizira zato je izmed teh dveh izbrana 5ka. En nivo višji spet veš da maksimizira, torej če te zanima ker bo v naslednji greš po vrsti spet. Ker je ta 7, veš pa da zgori minimizira in da more bit manjši ali enak od 5, veš da morš it naprej. In zdej vidš 4ko. 4 je pa že manjše od 5 in zato ne rabš it sploh naprej gledat. Zdej pa recimo naslednji primer. Greš najprej 3 ..tm je logičn. Potem pa 6. Min od samo 6 je 6. Zato greš naprej. Maš 6 tm in ker zgornji minimizira, pa veš da zgori maksimizira, ne boš pršu čez 6, zato naprej ne rabš gledat. Potem pa še zadnje. Veš da tm minimizira zgori. In je levi enak 5. Torej more bit desni manjši ali enak 5. In greš dol gledat in vidš 9, je že neuporabno. Vse ostalo kar je večje je neuporabno. Zdej če te to zmede, tm pr prvm primeru je bla fora da si mogu najdt neki manšiga ali enako 4, zato si šu doklr nis našu. Tm pa si že vidu da je 8 zgori in ne morš zmanjšat.

Pri minimax imamo ocenjevanje potez. Z ocenjevanjem nehamo, ko najdemo slabšo potezo od prejšne. Hevristika – upoštevamo vse pomembne dejavnike igre (ali jih dobimo od mojstra, ali pa se jih računalnik sam nauči-strojno učenje).

3. Strojno učenje Ali avtomatsko učenje (učenje računalnika). Računalnik se uči iz »izkušenj«. To so pa lahko obstoječi podatki, lahko jih je potrebno še zbrati (poskusi), »nagrade in kazni«, ki jih daje okolje kot odgovor na akcije, sledi reševanja problemov,... Značilen primer učenja je napovedovanje vremena iz podatkov iz prejšnih let. Kako se učiti?

Učitelj poda a) Vse primere (problem je, ali smo ga razumeli) b) Le dobre primere (učenec jih zna posplošiti in zato reševati tudi druge (podobne) primere)

Učenec dela poiskuse, zbira podatke, posplošuje zbrane podatke,... in se pri tem uči (odkrivanje – discovery)

Učenje iz primerov (v praksi najbolj pomembno) Učenec se iz podatkov nauči model. Torej iz nekih primerov, naredi nek model znanja(npr. drevo) in potem klasificira v ustrezne razrede. Pri nadzorovanem učenju učitelj poda vse možne izide klasifikacije (razred). Pri nenadzorovanem (unsupervised) ni razreda, takrat poznamo pojem grupiranja (gručenje). Klasifikacija pomeni razvrščanje razredov. Nekako velja pravilo, da predpriprava podatkov (napake, podvajanje, presejanje podatkov) prinese okoli 90% pravilnosti, samo učenje in zajem znanja pa 10%. Klasifikacijska točnost (CA) = št. pravilnih1 / št. primerov2

*1: pravilno klasificiranih *2: testnih primerov

Podatki so lahko:

učni (70%) so za učenje, na njih ne testiramo!

testni (30%) Izključno za testiranje

Procent v oklepaju pomeni klasični pristop razdelitve vseh podatkov.

Page 9: FRI - Umetna Inteligenca - Snov za ustni izpit

3.1 Gradnja dreves Računalnik gradi drevesa po principu TDIDT (top-down induction of decision tree). To je požrešni algoritem, ki minimizira nečistost lokalno. Ne upošteva pa drugih atributov. Imamo neko množico podatkov, recimo 76 živali. Skušamo najti neko »delitev«, da dobimo čimbolj čiste podmnožice. Rekurzivno gradimo toliko časa, da razdelimo vse različice razredov. Atribute za delitev dobimo s pomočjo entropije (nedoločenost). Atribut, ki da najmanjšo entropijo bo v vozlišču drevesa. Atribut deli na toliko podmnožic, kolikor je vrednosti atributov. Entropija pomeni, koliko informacije potrebujemo, da ločimo primere med seboj.

𝐼 = ∑ 𝑝(𝑐) ∗ log2(𝑝(𝑐))

𝑐

c – razredi p(c) – verjetnost razreda I € *0, 1+ 0..ni nedoločenosti 1..max nedoločenost (recimo met pravega kovanca)

𝐼𝑟𝑒𝑠(𝐴)

= − ∑ 𝑝(𝑣) ∑ 𝑝(𝑐|𝑣) ∗ log2(𝑝(𝑐|𝑣))

𝑣

v – določena vrednost c – razred p(v) – delež vrednosti glede na vse vrednosti

𝐼𝑔𝑎𝑖𝑛(𝐴)

= 𝐼 − 𝐼𝑟𝑒𝑠(𝐴)

Atribut z največjim informacijskim prispevkom damo v vozlišče. Če nam atributov »zmanjka«, dobimo na koncu t.i. »nečiste« razrede, ki jim določimo neko (prevladujočo) vrednost. Dvomimo v:

Mero za izbiro atributa

Velikost/razumljivost drevesa

Šum (napake v podatkih)

Hitrost

Ali lahko dobimo boljše drevo?

Neznane vrednosti (atributov)

2 enakovredna atributa za računalnik (en razumljiv človeku, drug ne)

Zvezni atributi (večvrednostni atributi)

Zvezni razred 1. Ali lahko naredimo boljše drevo? Ne (to je NP poln problem). Pri izgradnji lahko uporabimo greedy search. Lahko zgradimo vsa možna drevesa, vendar pa število teh narašča eksponentno po številu atributov – kar je prepočasi. 2. Velikost/razumljivost + šum Drevesa lahko režemo. 3. Obravnava neznanih vrednosti Drevesa so bolj slaba. Zato izberemo na random ali pa bolj verjetnega. Poskusimo obe veji, vendar uteženo.

Page 10: FRI - Umetna Inteligenca - Snov za ustni izpit

4. Zvezni atributi (npr. višina človeka) Naredimo številčno os in razdelimo po x-ih. Recimo ≤x. Računamo entropijo pri tem x-u. Atributi z več vrednostmi imajo prednost, ker dajo bolj čiste podmnožice. Zato slabost Igain odpravimo z Igainratio.

𝐼 𝐺𝐴𝐼𝑁𝑅𝐴𝑇𝐼𝑂

= 𝐼𝑔𝑎𝑖𝑛

𝐼(𝐴)

Torej delimo s številom vrednosti atributa.

𝐼(𝐴) = − ∑ 𝑝(𝑣) ∗ log2(𝑝(𝑣))

𝐺𝑖𝑛𝑖 𝑖𝑛𝑑𝑒𝑥 = ∑ 𝑝(𝑖) ∗ 𝑝(𝑗)𝑖≠𝑗 => 1 − ∑ 𝑝2

i,j € cross value Gini gain(A) = Gini – Ginires(A) Gini index lahko interpretiramo kot pričakovano klasifikacijsko napako. 5. Zvezni razred Regresijska drevesa.

Page 11: FRI - Umetna Inteligenca - Snov za ustni izpit

6. Šum (v podatkih) V realnih podatkih je zelo pogost. Do šuma lahko pride zaradi:

Napake pri vnosu podatkov,

Ni dovolj informacije v atributih za napoved razreda ali

Pri merskih enotah. Primer likov: 2 lika iste barve, obrobe in pike. Nemogoče je napovedati – ker ni dovolj atributov. Problem s šumnimi podatki je, da imamo velika drevesa, ki niso dovolj razumljiva, imamo nizko klasifikacijsko točnost na novih podatkih,... Glavna ideja za učenje iz šumnih podatkov je rezanje dreves. 7. Rezanje dreves Ko imamo v vozlišču premalo primerov za delitev naprej ali ko imamo čiste podmnožice. Po rezanju se točnost lahko poveča, to pa zato, ker je drevo preveč prilagojeno podatkom (overfitting). Cilj rezanja je torej čimvečja točnost!

Rezanje delimo na dva načina:

Rezanje vnaprej Še predno zgradimo drevo se ustavimo. Rezanje naprej je kratkovidno, zato je rezanje nazaj boljše. Rezanje vnaprej je smiselno če:

Imamo majhen informacijski dobitek Število primerov v vozlišču je zelo majhno Učna množica je statistično nepomembna

Ponavadi določimo mejo Minimalno število primerov Ali je zadosti čist (recimo 95%)

Režemo nezanesljive dele dreves

Rezanje nazaj

Ideja je, da porežemo nezanesljiva poddrevesa Če imamo dovolj podatkov, uporabimo testno podmnožico (Reduced Error Pruning), če pa ne pa

ocenimo točnost direktno iz učnih podatkov (Minimal Error Pruning) Če je vzvratna napaka≥statična napaka => režemo, sicer ne režemo

Page 12: FRI - Umetna Inteligenca - Snov za ustni izpit

3.2 Ocenjevanje verjetnosti

3.2.1 Relativna frekvenca Dobra, če imamo več podatkov, saj manj podatkov pomeni večje nihanje.

𝑝 =𝑛

𝑁

3.2.2 m-ocena (m-popravek verjetnosti) Sestavljen je iz relativne frekvence in popravka. Torej prvi del n/N predstavlja relativno frekvenco, drugi del pa popravek.

𝑝 =𝑛 + 𝑚 ∗ 𝑝𝑎

𝑁 + 𝑚

pa – apriorna distribucija večinskega razreda n – število primerov večinskega razreda N – število vseh primerov m – popravek – Velik m uporabimo, kadar zelo verjamemo v svoje predznanje, sicer uporabimo majhen m. Ponavadi uporabimo m=2, lahko pa tudi št. razredov. Rezanje ni odvisno od števila razredov. Ponavadi če imamo malo šuma izberemo majhen m -> malo rezanja. Če imamo veliko šuma izberemo velik m -> več rezanja.

3.2.3 Laplace Ne upošteva apriorne distribucije razreda. Večji m(oz. v tem primeru k) ko uporabimo, več lahko porežemo, saj smo več zaupali v naše predznanje.

𝑝 =𝑛 + 1

𝑁 + 𝑘

Izhaja iz m-ocene. m*pa/m ..m se počrta, ostane samo pa, ker pa ne upošteva apriorne distribucije, vse obravnava enako: pa=1/k; od tod tudi (n+1)/(N+k) k – število razredov Problem Laplaca je, da predpostavlja, da so vsi razredi apriori enako verjetni. Problem je tudi, da je stopnja rezanja odivsna od števila razredov. NEKI X Kaj je pristranskost? (Angl. bias) Omejitvena pristranskost (Restriction bias) omeji množico možnih hipotez.

Imenovana tudi jezikovna pristranskost (language bias). Preferenčna pristranskost uredi možne hipoteze .

Imenovana tudi preiskovalna pristranskost.

Page 13: FRI - Umetna Inteligenca - Snov za ustni izpit

3.3 Testiranje modela

3.3.1 Kx prečno preverjanje (cross validation) Zgradimo model (drevo) na recimo 4/5 podatkov. Torej razdelimo podatke v k-skupin, tako da se distribucija razreda ohrani. In zgradimo drevo, tako da ene te skupine ne upoštevamo (leave one out). Ta postopek potem ponovimo k-krat in vsakič pustimo drugo skupino. Torej tudi k-krat testiramo na 1/k podatkih (vsakič druga skupina). Na koncu dobimo k-dreves in CA-jev, nato zračunamo povprečni CA teh dreves in to je naš končni CA. K je lahko poljuben, vendar ne 1!

3.3.2 Naivni Bayes Bayesova formula po Thomas Bayesu (1702-1761). B – dokaz (evidenca) A – Hipoteza

𝑃(𝐴|𝐵) =𝑃(𝐴) ∗ 𝑃(𝐵|𝐴)

𝑃(𝐵)

𝑃(𝐴, 𝐵) = 𝑃(𝐴) ∗ 𝑃(𝐵|𝐴) = 𝑃(𝐵) ∗ 𝑃(𝐴|𝐵), če sta A in B odvisna. 𝑃(𝐴, 𝐵) = 𝑃(𝐴) ∗ 𝑃(𝐵), če sta A in B neodvisna. 𝑃(𝐴, 𝐵|𝐶) = 𝑃(𝐴|𝐶) ∗ 𝑃(𝐵|𝐶), če sta A in B neodvisna. (mensezdi) Problem Bayesa je, da zahteva veliko število pogojnih verjetnosti, ki pa jih je v praksi težko določiti. Zato pogojne verjetnosti poenostavimo, kot da bi bili atributi med seboj verjetnostno neodvisni. 𝑛𝑎𝑖𝑣𝑛𝑖 𝐵𝑎𝑦𝑒𝑠 = 𝑃(𝐶) ∗ ∏ 𝑃(𝑎𝑖|𝐶)𝑛

𝑖=1 , kjer je P(C)=P(C|A1,...An). Naivni bayes – navini zato, ker predpostavlja, da so atributi neodvisni. Približki so dobri, če so atributi med seboj dovolj neodvisni. V praksi deluje to dobro, tudi kadar ta predpostavka ni izpoljnena. Žal pa marsikrat ni izpolnjena, saj atributi niso velikokrat neodvisni, kar pa lahko privede do napačnih klasifikacij.

Page 14: FRI - Umetna Inteligenca - Snov za ustni izpit

Primer iz predavanj:

Page 15: FRI - Umetna Inteligenca - Snov za ustni izpit
Page 16: FRI - Umetna Inteligenca - Snov za ustni izpit

3.3.3 Nomogram Daljša daljica predstavlja večjo pomembnost atributa. Če je na sredini, ničesar ne vemo o atributu. Če je verjetnost za dva razreda pri nekem atributu enaka, nam to nič ne pove, zato ga damo na sredino. Če sta atributa enakmomerna na levi in na desni, nam to spet nič ne pove.

ln𝑃(𝑎𝑡𝑟 = 𝑣|𝑟𝑎𝑧𝑟𝑒𝑑)

𝑃(𝑎𝑡𝑟 = 𝑣|! 𝑟𝑎𝑧𝑟𝑒𝑑)

Primer za spol moški in ženska, kjer klasifiricamo v razred DA ali NE. SPOL:

M: ln𝑃(𝑀|𝐷𝐴)

𝑃(𝑀|𝑁𝐸)

Ž: ln𝑃(Ž|𝐷𝐴)

𝑃(Ž|𝑁𝐸)

Temu se reče razmerje obetov (odds ratio). Nato logaritmiramo in tako izračunamo točko za skalo v nomogramu. Logaritmiramo pa zato, da jih lahko seštevamo? Tisto, kar je v zgornjem delu enačbe, gre na desno stran.

3.3.4 Povezovalna pravila S povezovalnimi pravili (association rules) iščemo povezave (relacije) v podatkih.

𝑖𝑓 𝑥 𝑡ℎ𝑒𝑛 𝑦; 𝑥 𝑖𝑛 𝑦 𝑠𝑡𝑎 𝑚𝑛𝑜ž𝑖𝑐𝑖 𝑝𝑟𝑒𝑑𝑝𝑜𝑠𝑡𝑎𝑣𝑘 Na majhni količini podatkov je možno veliko pravil, vendar zanimive pa so povezave, ki so pogoste in točne. Izberemo le podmnožico pravil, ki so dovolj pogosta in hkrati dovolj zanesljiva (točna). Podpora pravilu (coverage support) posredno meri pogostost uporabnosti pravila.

𝑠𝑢𝑝𝑝𝑜𝑟𝑡 = š𝑡𝑒𝑣𝑖𝑙𝑜(𝑥&𝑦)

š𝑡𝑒𝑣𝑖𝑙𝑜 𝑝𝑜𝑑𝑎𝑡𝑘𝑜𝑣

Zaupanje (confidence, accuracy) meri zanesljivost pravila.

𝑐𝑜𝑛𝑓𝑖𝑑𝑒𝑛𝑐𝑒 = š𝑡𝑒𝑣𝑖𝑙𝑜(𝑥&𝑦)

š𝑡𝑒𝑣𝑖𝑙𝑜(𝑥)

Kjer je x-levi del IF stavka, y-desni del IF stavka. Support-i so v velikih PB lahko zelo majhni (<9%), tudi confidence je lahko manjši <50%(veliko vzrokov, da vzorec potem ni po naših željah), vendar je zaželjen čim večji. Za strojno učenje ne velja, da je confidence lahko dosti manjši. »Prekriv« je množica pravil, ki pokrije vse primere. Kriterij ocenjevanja pravil:

Pravilo naj pokrije čim bolj »čisto« množico primerov

Pravilo naj pokrije čim več primerov

Pravilo naj bo čimkrajše Principi učenja pravil iz šumnih podatkov so podobni kot pri učenju dreves (tudi tukaj lahko pravila »režemo« - tako da odstranimo nekatere selektorje oz. predčasno ustavimo dograjevanje pravila). Tako tehtamo med dolžino pravila in čistostjo množice primerov, ki jih pravilo pokriva – prednost imajo krajša pravila, lahko tudi na račun čistosti. Pravilo lahko ocenimo z oceno njegove klasifikacijske točnosti na novih podatkih. Pravila lahko pokrivajo le del prostora in se lahko prekrivajo.

Page 17: FRI - Umetna Inteligenca - Snov za ustni izpit

3.3.5 Algoritem apriori Namenjen je za učinkovito učenje povezovalnih pravil. Neučinkovito je, da iščemo vsa pravila in izberemo le najboljša! Algoritem gradi množico, ki imajo zadostno podporo, potem pa iz njih gradi pravila. Začne z množico velikosti 1, iz teh gradi množico velikosti 2 (če je podpora premajhna že za manjšo množico, je za večjo množico ta še manjša),... Podobno gradi tudi pravila iz najdenih množic – najprej tista z eno »posledico« (na desni), nato iz teh tista z dvemi (zopet velja tukaj, da če zaupanje ni zadosti visoko že za posamezno posledico, potem bo še slabeš za več posledic – na tak način tudi rešujemo časovno kompleksnost),... Support,pivo, kruh- ≤ support,pivo- Primeri uporabe:

Prostorska razporeditev artiklov (skupaj je smiselno dati stvari, ki se skupaj kupujejo)

Akcijske cene artiklov (strani, ki se ogledujejo v isti seansi, naj bodo enostavno povezane) V Orangeu bi to zgradili kot File->Associate Rule->Ass.Rules Explorer

3.3.6 Cenovno občutljivo učenje

Page 18: FRI - Umetna Inteligenca - Snov za ustni izpit

4. Ekspertni sistemi Računalnik je ekspert (na nekem ozkem področju). Primeri uporabe ekspertnih sistemov:

Diagnoze v medicini,

Načrtovanje economy/business sedežev na letalu,

Diagnosticiranje okvar v napravah,... Feigenbaumovo ozko grlo: »Največ časa vzame pridobivanje podatkov od npr. strokovnjakov«. Danes se uporabljajo predvsem ekspertni sistemi »pod krinko« - odločitveni sistemi (decision support systems) – inteligentni tutorski sistemi. Znani sistemi so:

Mycin (diagnoze okužb)

Prospector (raziskave naftnih in rudninskih najdišč)

Internist (interna medicina – medicina odraslih) Zgradba: V mehanizmu za sklepanje postavljamo vprašanja »Kako?« in »Zakaj?«. Lastnosti:

Probleme rešuje na nekem določenem področju

Zmožnost razlage rezultatov uporabniku

Močno upiranje(opiranje?) na domeno znanja

Sodelovanje z uporabnikom pred in po reševanju problema »In the knowledge lies the power« Najbolj tradicionalno razširjena oblika znanja v ekspertnih sistemih je predstavljena z IF-THEN pravili: 𝐼𝐹 𝑠𝑖𝑡𝑢𝑎𝑡𝑖𝑜𝑛 𝑆 𝑇𝐻𝐸𝑁 𝑎𝑐𝑡𝑖𝑜𝑛 𝑎, 𝐼𝐹 𝑐𝑜𝑛𝑑𝑖𝑡𝑖𝑜𝑛 𝑃 𝑇𝐻𝐸𝑁 𝑐𝑜𝑛𝑐𝑙𝑢𝑠𝑖𝑜𝑛 𝑆, 𝐼𝐹 𝑐𝑜𝑛𝑑𝑖𝑡𝑖𝑜𝑛 𝐴 𝑇𝐻𝐸𝑁 𝑐𝑜𝑛𝑐𝑙𝑢𝑠𝑖𝑜𝑛 𝐵 𝑤𝑖𝑡ℎ 𝑐𝑒𝑟𝑡𝑎𝑖𝑛𝑡𝑦 𝐹,... Ta pravila so popularna, ker so preprosta in efektivna. Zaželjene lastnosti pravil so:

Modularnost (vsako pravilo definira relativno neodvisen del znanja)

Razširljivost (nova pravila dodajamo relativno neodvisno od ostalih)

Pravila omogočajo razlago

Omogočajo obravnavo negotovosti Baza znanja:

Gradimo ročno/machine-learning/data-mining/oboje

Pravila

Page 19: FRI - Umetna Inteligenca - Snov za ustni izpit

Razlaga “Kako?” (How explanation) Odgovor na uporabnikovo vprašanje: Kako si prišel do tega zaključka? Npr.:

Ekspertni sistem: »Voda pušča v kuhinji.«

Uporabnik: »Kako si prišel do tega zaključka?« Razlaga je dokaz za končni zaključek.

Razlaga “Zakaj?” (Why explanation) Odgovor na uporabnikovo vprašanje: Zakaj potrebuješ to informacijo? Npr.:

Ekspertni sistem preučuje vprašanje »leak in kitchen«, sistem vpraša: »Ali je deževalo?«

Uporabnik ni prepričan o odgovoru, zato vpraša: »Zakaj potrebuješ to informacijo?«

Sistem: »Da raziščem, če je voda prišla od zunaj«. Razlaga »zakaj« je veriga pravil, ki povezuje tekoči cilj z originalnim-glavnim ciljem.

4.1 Pearsonova korelacija

=€[−1,1]𝑠𝑖𝑚(𝑎,𝑏) ∑ (𝑟𝑎,𝑝 − 𝑟�̅�) ∗ (𝑟𝑏,𝑝 − 𝑟�̅�)𝑝€𝑃

√∑ (𝑟𝑎,𝑝 − 𝑟�̅�)2

∗ ∑ (𝑟𝑏,𝑝 − 𝑟�̅�)2

𝑝𝑝

; 𝑑𝑜𝑝𝑖š𝑖 š𝑒 𝑒𝑛𝑎č𝑏𝑜 𝑧𝑎 𝑛𝑎𝑝𝑜𝑣𝑒𝑑!

a,b – uporabnika P=,p1,...pm- - izdelki U=,u1,...un- – uporabniki ra,p – ocena uporabnika a za produkt p 𝑟�̅� – povprečna ocena vseh produktov uporabnika a

𝑟�̅� – tega odštejemo, zato je količnik neubčutljiv na skalo -> 2 uporabnika ocenjujeta podobno, le da je en bolj radodaren in je recimo ocena 3 zanj slabo, za drugega je pa 3 dobra ocena. -1: negativna korelacija 0: ni nobene odvisnosti +1: pozitivna korelacija

Page 20: FRI - Umetna Inteligenca - Snov za ustni izpit

4.2 Spearmanov količnik Spearmanov količnik uporablja Pearsona, le da ocene (r) razvrstimo oz. rangiramo. Ne računamo z realnimi podatki, ampak z »rangi« (ocenami vrstnega reda). Tako nam osamelci ne povzročajo težav.

4.3 Kosinusna razdalja

sin(𝑎, 𝑏) =�⃑� ∗ �⃑⃑�

‖�⃑�‖ ∗ ‖�⃑⃑�‖

a,b – produkta

4.4 Jaccardov index

𝐽(𝐴, 𝐵) = |𝐴 ∩ 𝐵|

|𝐴 ∪ 𝐵|

|𝐴 ∩ 𝐵| – velikost preseka |𝐴 ∪ 𝐵| – velikost unije A,B – množici (npr. množica uporabnikov za izdelek A in B) Ta indeks v bistvu meri razdaljo med dvema množicama. Primer: Maja je gledala »Father of the Bride, Part II« in je bila navdušena. Sedaj priporoči Maji nek drug film.

Page 21: FRI - Umetna Inteligenca - Snov za ustni izpit
Page 22: FRI - Umetna Inteligenca - Snov za ustni izpit
Page 23: FRI - Umetna Inteligenca - Snov za ustni izpit
Page 24: FRI - Umetna Inteligenca - Snov za ustni izpit
Page 25: FRI - Umetna Inteligenca - Snov za ustni izpit
Page 26: FRI - Umetna Inteligenca - Snov za ustni izpit
Page 27: FRI - Umetna Inteligenca - Snov za ustni izpit
Page 28: FRI - Umetna Inteligenca - Snov za ustni izpit
Page 29: FRI - Umetna Inteligenca - Snov za ustni izpit
Page 30: FRI - Umetna Inteligenca - Snov za ustni izpit
Page 31: FRI - Umetna Inteligenca - Snov za ustni izpit
Page 32: FRI - Umetna Inteligenca - Snov za ustni izpit
Page 33: FRI - Umetna Inteligenca - Snov za ustni izpit
Page 34: FRI - Umetna Inteligenca - Snov za ustni izpit
Page 35: FRI - Umetna Inteligenca - Snov za ustni izpit