Reprezentace a vyvozování znalostí
Aleš Horák
E-mail: hales@fi.muni.cz
http://nlp.fi.muni.cz/uui/
Obsah:
▶ Statistické výsledky průběžné písemky
▶ Reprezentace a vyvozování znalostí
▶ Extralogické informace
▶ Pravidlové systémy
▶ Nejistota a pravděpodobnost
Úvod do umělé inteligence 9/12 1 / 32
Statistické výsledky průběžné písemky
Oznámení
23. listopadu přesun přednášky do D2
Úvod do umělé inteligence 9/12 2 / 32
Statistické výsledky průběžné písemky
Statistické výsledky průběžné písemky
průběžná písemka PB016
177 studentů
Body Počet studentů
20 56
18–17 22
16.5 46
14.5 3
14 6
13.5 8
13 10
11–10 14
9.5 3
7.5 2
7 3
6.5–4 4
Medián: 16.5 bodů
Úvod do umělé inteligence 9/12 3 / 32
Reprezentace a vyvozování znalostí
Reprezentace a vyvozování znalostí
otázka:
Jak zapíšeme znalosti o problému/doméně?
Když je zapíšeme, můžeme z nich mechanicky odvodit nová fakta?
▶ reprezentace znalostí (knowledge representation) – hledá způsob
vyjádření znalostí počítačově zpracovatelnou formou (za účelem
odvozování)
▶ vyvozování znalostí (reasoning) – zpracovává znalosti uložené v bázi
znalostí (knowledge base, KB) a provádí odvození (inference) nových
závěrů:
• odpovědi na dotazy
• zjištění faktů, které vyplývají z faktů a pravidel v KB
• odvodit akci, která vyplývá z dodaných znalostí, . . .
Úvod do umělé inteligence 9/12 4 / 32
Reprezentace a vyvozování znalostí Reprezentace znalostí
Reprezentace znalostí
proč je potřeba speciální reprezentace znalostí?
vnímání lidí × vnímání počítačů
▶ člověk
▶ když dostane novou věc (třeba pomeranč) – prozkoumá a
zapamatuje si ho (a třeba sní)
▶ během tohoto procesu člověk zjistí a uloží si všechny základní
vlastnosti předmětu
▶ později, když se zmíní daná věc, vyhledají se a připomenou uložené
informace
▶ počítač
▶ musí se spolehnout na informace od lidí
▶ jednodušší informace – přímé programování
▶ složité nebo rozsáhlé informace – zadané v symbolickém jazyce
Úvod do umělé inteligence 9/12 5 / 32
Reprezentace a vyvozování znalostí Reprezentace znalostí
Volba reprezentace znalostí
která reprezentace znalostí je nejlepší?
Pro řešení skutečně obtížných problémů musíme používat několik různých
reprezentací. Každý konkrétní typ datových struktur má totiž své
klady a zápory a žádný se sám o sobě nezdá adekvátní pro všechny
funkce zahrnuté v tom, čemu říkáme “selský rozum” (common sense).
– Marvin Minsky, spoluzakladatel MIT UI lab
Úvod do umělé inteligence 9/12 6 / 32
Reprezentace a vyvozování znalostí Reprezentace znalostí
Limity reprezentace znalostí
Všechny modely se mýlí, některé jsou ale užitečné.
(All models are wrong, but some are useful)
– George Box, významný britský statistik
Kompletní reprezentace
znalostí má řešit:
▶ kategorie
▶ míry a hodnoty
▶ složené objekty
▶ čas, prostor a změny
▶ události a procesy
▶ fyzické objekty
▶ látky/substance
▶ mentální objekty a postoje
▶ ...
Často je nutné se kvůli efektivitě modelu vzdát přesnosti nebo úplnosti.
Úvod do umělé inteligence 9/12 7 / 32
Reprezentace a vyvozování znalostí Reprezentace znalostí
Reifikace – abstrakce jako objekt
reifikace (zvěcnění ) – zjednodušení (logické) analýzy
abstrakci/objekt vyššího řádu modelujeme jako objekt
vlastnost objektu ≈ predikát pomeranč
“držím pomeranč” ≈ držet(Já, x) ∧ pomeranč(x)
“mám rád chuť pomeranče” ≈ mít_rád(Já, x) ∧ x = chuť(?pomeranč?)
... v PL1 nelze
s reifikací predikátu pomeranč (konstanta):
“mám rád chuť pomeranče” ≈ mít_rád(Já, x) ∧ x = chuť(pomeranč)
“držím pomeranč” ≈ držet(Já, x) ∧ is_instance(x, pomeranč)
Z čistě logického hlediska vznikají neexistující objekty (spory při tvrzení
o neexistenci)
ale při korektním zpracování – stačí jednodušší formalismus
Úvod do umělé inteligence 9/12 8 / 32
Extralogické informace
Extralogické informace – třídy, sémantické sítě, rámce
co jsme dosud ignorovali:
▶ objekty reálného světa mají mezi sebou vztahy
• třídy/kategorie, podtřídy × nadtřídy
• hierarchie vztahů části/celku
• dědění vlastností v hierarchiích
▶ stav světa se může měnit v čase
• explicitní reprezentace času
• nemonotónní uvažování (pravdivost se může měnit v čase)
▶ ne každá informace je “černobílá”
• nejistota
• statistika, fuzzy logika
Úvod do umělé inteligence 9/12 9 / 32
Extralogické informace Třídy objektů
Třídy objektů
▶ “Chci si koupit fotbalový míč.”
• Chci si koupit FM27341 – špatně
• Chci si koupit objekt, který je prvkem třídy fotbalových míčů – správně
▶ objekty jsou organizovány do hierarchie tříd
• FM27341 ∈ fotbalové_míče
• fotbalové_míče ⊂ míče
▶ fakta (objekty) × pravidla (třídy)
• Všechny míče jsou kulaté.
• Všechny fotbalové míče mají X cm v průměru.
• FM27341 je červenomodrobílý.
• FM27341 je fotbalový míč.
• (Proto: FM27341 je kulatý a má X cm v průměru.)
Úvod do umělé inteligence 9/12 10 / 32
Extralogické informace Ontologie
Ontologie
▶ ontologie ve filozofii – nauka o existenci a typech existencí
▶ ontologie v informatice – formální popis znalostí, pojmy a vztahy mezi
pojmy, hierarchie
▶ ontologie obecné (upper level) × doménové
▶ různé dostupné obecné, žádná standardem (zatím):
(Open)Cyc, SUMO/MILO, Dublin Core, DOLCE, ...
http://archivo.dbpedia.org, http://www.ontologyportal.org
(=>
(and
(instance ?KILL Killing)
(patient ?KILL ?OBJ))
(exists (?DEATH)
(and
(instance ?DEATH Death)
(experiencer ?DEATH ?OBJ)
(causes ?KILL ?DEATH))))
Pokud nějaký proces (?KILL) je instancí zabíjení
(Killing) a nějaký agent (?OBJ) je předmětem
toho procesu
=>
pak existuje jiný proces (?DEATH) takový, že
tento jiný proces je instancí smrti (Death) a
agent ?OBJ se účastní tohoto jiného procesu
?DEATH a původní proces ?KILL je příčinou
tohoto jiného procesu ?DEATH
Úvod do umělé inteligence 9/12 11 / 32
Extralogické informace Sémantické sítě
Sémantické sítě
sémantické sítě – reprezentace faktových znalostí (pojmy + vztahy)
▶ vznikly kolem roku 1960 pro reprezentaci významu anglických slov
▶ znalosti jsou uloženy ve formě grafu
pojmy (objekty, třídy)
vztahy
▶ nejdůležitější vztahy – taxonomie:
• podtřída (subclass) – vztah mezi třídami
• instance – vztah mezi konkrétním objektem a jeho rodičovskou třídou
jiné vztahy – část (has-part), barva, . . .
Úvod do umělé inteligence 9/12 12 / 32
Extralogické informace Sémantické sítě
Sémantické sítě – příklad
zvíře
plaz savec hlava
velký slon šedý
Clyde Nellie jablka
podtřída podtřída
část
podtřída
barvavelikost
instance instance
mít_rád
Úvod do umělé inteligence 9/12 13 / 32
Extralogické informace Sémantické sítě
Dědičnost v sémantických sítích
▶ pojem sémantické sítě předchází OOP
▶ dědičnost:
• jestliže určitá vlastnost platí pro třídu→ platí i pro všechny její podtřídy
• jestliže určitá vlastnost platí pro třídu→ platí i pro všechny prvky této třídy
▶ určení hodnoty vlastnosti – rekurzivní algoritmus
▶ potřeba specifikovat i výjimky – mechanizmus vzorů a výjimek (defaults
and exceptions)
• vzor – hodnota vlastnosti u třídy nebo podtřídy, platí ta, co je blíž objektu
• výjimka – u konkrétního objektu, odlišná od vzoru
Úvod do umělé inteligence 9/12 14 / 32
Extralogické informace Sémantické sítě
Dědičnost vztahů část/celek
▶ “Krávy mají 4 nohy.”
• každá noha je částí krávy
▶ “Na poli je (konkrétní) kráva.”
• všechny části krávy jsou taky na poli
▶ “Ta kráva (na poli) je hnědá (celá).”
• všechny části té krávy jsou hnědé
▶ “Ta kráva je šťastná.”
• všechny části té krávy jsou šťastné – neplatí
▶ lekce: některé vlastnosti jsou děděny částmi, některé nejsou
explicitně se to vyjadřuje pomocí pravidel jako
part-of(x, y) ∧ location(y, z) ⇒ location(x, z)
Úvod do umělé inteligence 9/12 15 / 32
Extralogické informace Sémantické sítě
Vzory a výjimky – příklad
pták umí létat
pták se
zlom.křídly
. . . tučňák neumí létat
kouzelný
tučňák
umí létat
▶ “Všichni ptáci mají křídla.”
▶ “Všichni ptáci umí létat.”
▶ “Ptáci se zlomenými křídly jsou ptáci, ale neumí létat.”
▶ “Tučňáci jsou ptáci, ale neumí létat.”
▶ “Kouzelní tučňáci jsou tučňáci, kteří umí létat.”
▶ kdo umí létat:
– “Penelope je pták.” ⇒ ”Penelope umí létat.”
– “Penelope je tučňák.” ⇒ ”Penelope neumí létat.”
– “Penelope je kouzelný tučňák.” ⇒ ”Penelope umí létat.”
▶ všimněte si, že znalost hodnoty vlastnosti objektu se může měnit
s příchodem nových informací o klasifikaci objektu
Úvod do umělé inteligence 9/12 16 / 32
Extralogické informace Sémantické sítě
Aplikace sémantických sítí
(Princeton) WordNet – http://wordnet.princeton.edu/
▶ sémantická síť 150.000 (anglických) pojmů, zachycuje:
• synonyma, antonyma (významově stejná/opačná)
• hyperonyma, hyponyma (podtřídy)
• odvozenost a další jazykové vztahy
▶ tvoří se národní wordnety (navázané na anglický WN)
český wordnet – cca 30.000 pojmů
▶ nástroj na tvorbu a editaci národních wordnetů – DEBVisDic/VisDic,
vyvinutý na FI MU – http://deb.fi.muni.cz/
▶ VisualBrowser –
http://nlp.fi.muni.cz/projekty/visualbrowser/
nástroj na vizualizaci (sémantických) sítí, vznikl jako DP na FI MU
Úvod do umělé inteligence 9/12 17 / 32
Extralogické informace Sémantické sítě
Úvod do umělé inteligence 9/12 18 / 32
Extralogické informace Sémantické sítě
Úvod do umělé inteligence 9/12 19 / 32
Extralogické informace Rámce
Rámce – příklad
Rámce (frames) – varianta sémantických sítí představená Marvinem Minskim
rámec obsahuje objekty, sloty a hodnoty slotů
příklady rámců:
savec:
podtřída: zvíře
část: hlava
*má_kožich: ano
slon:
podtřída: savec
*barva: šedá
*velikost: velký
Nellie:
instance: slon
mít_rád: jablka
’*’ označuje vzorové hodnoty, které mohou měnit hodnoty u podtříd a instancí
Úvod do umělé inteligence 9/12 20 / 32
Extralogické informace Rámce
Rámce
▶ rámec – univerzální struktura všech informací relevantních pro daný
pojem
▶ velice populární pro reprezentaci znalostí v expertních systémech
▶ stejně jako sémantické sítě, rámce podporují dědičnost
▶ OO programovací jazyky vycházejí z teorie rámců
Sémantické sítě × rámce:
sémantické sítě rámce
uzly objekty
spoje sloty
uzel na druhém konci spoje hodnota slotu
deskripční logika (description logic) – logický systém, který manipuluje
přímo s rámci
Úvod do umělé inteligence 9/12 21 / 32
Extralogické informace Rámce
Rámce – využití v praxi
příklad využití rámců – ontologie Friend of A Friend (FOAF)
▶ popisuje osoby, jejich činnosti a vztahy k jiným osobám a objektům
▶ decentralizovaný přístup, http://xmlns.com/foaf/spec/
▶ využívaný komunitami (blogovací platformy, MediaWiki, ...)
▶ základ standardu W3C WebID 1.0 (2014 draft)
Vincent van Gogh
f o a f : Person>
Úvod do umělé inteligence 9/12 22 / 32
Pravidlové systémy Pravidlová báze znalostí
Pravidlová báze znalostí – příklad
pravidla pro oblékání:
pravidlo 1 IF X je seriózní
AND X bydlí ve městě
THEN X by měl nosit sako
pravidlo 2 IF X je akademik
AND X je společensky aktivní
AND X je seriózní
THEN X by měl nosit sako a
kravatu
pravidlo 3 IF X bydlí ve městě
AND X je akademik
THEN X by měl nosit kravatu
pravidlo 4 IF X je podnikatel
AND X je společensky aktivní
AND X je seriózní
THEN X by měl nosit sako, ale
ne kravatu
společenská pravidla:
pravidlo 5 IF X je podnikatel
AND X je ženatý
THEN X je společensky
aktivní
pravidlo 6 IF X je akademik
AND X je ženatý
THEN X je seriózní
profesní pravidla:
pravidlo 7 IF X učí na univerzitě
OR X učí na vysoké škole
THEN X je akademik
pravidlo 8 IF X vlastní firmu
OR X je OSVČ
THEN X je podnikatel
Úvod do umělé inteligence 9/12 23 / 32
Pravidlové systémy Pravidlová báze znalostí
Pravidlová báze znalostí
▶ snaha zachytit produkčními pravidly znalosti, které má expert
▶ obecná forma pravidel
IF podmínka
THEN akce
• podmínky – booleovské výrazy, dotazy na hodnoty proměnných
• akce – nastavení hodnot proměnných, příznaků, . . .
▶ důležitá vlastnost – strukturování znalostí do modulů
• systém může být snadno rozšířen přidáním nových pravidel beze změny
zbytku systému
Úvod do umělé inteligence 9/12 24 / 32
Pravidlové systémy Expertní systémy
Expertní systémy
Aplikace pravidlových systémů
▶ zaměřeny na specifické oblasti – medicínská diagnóza, návrh konfigurace
počítače, expertíza pro těžbu nafty, . . .
▶ snaha zachytit znalosti experta pomocí pravidel
ale znalosti experta zahrnují – postupy, strategie, odhady, . . .
▶ expertní systém musí pracovat s procedurami, nejistými znalostmi,
různými formami vstupu
▶ vhodné oblasti pro nasazení expertního systému:
• diagnóza – hledání řešení podle symptomů
• návrh konfigurace – složení prvků splňujících podmínky
• plánování – posloupnost akcí splňujících podmínky
• monitorování – porovnání chování s očekávaným chování, reakce na změny
• řízení – ovládání složitého komplexu
• předpovědi – projekce pravděpodobných závěrů z daných skutečností
• instruktáž – inteligentní vyučování a zkoušení studentů
Úvod do umělé inteligence 9/12 25 / 32
Pravidlové systémy Expertní systémy
Expertní systémy v praxi
CLIPS, pravidlový jazyk a prostředí pro expertní systémy
▶ původně NASA Johnson Space Center – řízení kontroly raket
(1985–1996)
▶ aktivně vyvíjený (v. 6.41 z 21.6.2023), tisíce projektů
▶ pracuje s objekty, fakty a IF-THEN pravidly
( deftemplate emergency ( s l o t type )) ; o b j e k t
( deftemplate response ( s l o t action )) ; o b j e k t
( d e f r u l e fire−emergency ( emergency ( type f i r e )) ; p r a v i d l o
=> ( a s s e r t ( response ( action a c t i v a t e − s p r i n k l e r ) ) ) )
( r e s e t )
( a s s e r t ( emergency ( type f i r e ) ) ) ; f a k t
( run )
( f a c t s )
f−0 ( i n i t i a l − f a c t )
f−1 ( emergency ( type f i r e ))
f−2 ( response ( action a c t i v a t e − s p r i n k l e r ))
For a t o t a l of 3 f a c t s .
Úvod do umělé inteligence 9/12 26 / 32
Nejistota a pravděpodobnost Nejistota
Nejistota
definujme akci At jako “Vyrazit na letiště t hodin před odletem letadla.”
jak najít odpověď na otázku “Dostanu se akcí At na letiště včas k odletu letadla?”
problémy:
1. částečná pozorovatelnost (stav vozovky, záměry ostatních řidičů, . . . )
2. nejistota výsledků akcí (píchnutí kola, . . . )
3. obrovská složitost modelování a předpovědi dopravní situace
čistě logický přístup tedy:
– riskuje chybu – “A5 mě na letiště dostane včas.”
– vede k závěrům, které jsou příliš slabé pro rozhodování: “A5 mě tam
dostane včas, pokud nebude na dálnici nehoda a pokud nebude pršet a
jestli nepíchnu kolo a jestli nebude fronta na odbavovacích přepážkách a
jestli nebudou problémy při kontrole zavazadel . . . ”
Úvod do umělé inteligence 9/12 27 / 32
Nejistota a pravděpodobnost Nejistota
Metody pro práci s nejistotou
▶ defaultní/nemonotónní logika
Předpokládejme, že nepíchnu cestou kolo.
Předpokládejme, že A5 bude OK, pokud se nenajde protipříklad.
▶ logická pravidla s faktory nejistoty (problém příčiny a následku)
A5 →0.3 dostat se na letiště včas.
zalévání →0.99 mokrý trávník
mokrý trávník →0.7 déšť
▶ pravděpodobnost (míra předpokladu, že hodnota bude true)
Vzhledem k dostupným informacím, A3 mě tam dostane včas
s pravděpodobností 0.05.
poznámka: fuzzy logika se zabývá mírou pravdivosti, NE pravděpodobností
Úvod do umělé inteligence 9/12 28 / 32
Nejistota a pravděpodobnost Pravděpodobnost
Pravděpodobnost
Pravděpodobnost sumarizuje nejistotu pocházející z
– lenosti – nepodařilo se vypočítat všechny výjimky, podmínky, . . .
– neznalosti – nedostatek relevantních údajů, počátečních podmínek, . . .
subjektivní × Bayesovská pravděpodobnost:
– pravděpodobnostní vztah mezi tvrzením a jeho pravdivosti vzhledem
k podmínkám:
P(A4|žádné hlášené nehody) = 0.5
nejedná se o vyjádření pravděpodobnostní tendence (ale může se získat ze
znalostí podobných případů v minulosti)
– pravděpodobnost tvrzení se může měnit s novými (vstupními) podmínkami:
P(A4|žádné hlášené nehody, je 4:00 ráno) = 0.63
pravidlo pro podmíněnou pravděpodobnost – P(a|b) = P(a∧b)
P(b) pokud P(b) ̸= 0
neboli pravidlo násobení (product rule) – P(a ∧ b) = P(a, b) = P(a|b)P(b)
P(a ∧ b ∧ c) = P(a, b, c) = P(a|b, c)P(b, c) = P(a|b, c)P(b|c)P(c)
Úvod do umělé inteligence 9/12 29 / 32
Nejistota a pravděpodobnost Vyvozování z nejistých znalostí
Vyvozování z nejistých znalostí
▶ náhodná proměnná (random variable) – funkce, která vzorkům
přirazuje hodnoty → vrací výsledky měření sledovaného jevu
distribuce pravděpodobností náhodné proměnné = (vektor)
pravděpodobností, že daná proměnná bude mít konkrétní hodnotu
např.:
náhodná proměnná Odd ≈ výsledek hodu kostkou bude lichý
náhodná proměnná Weather ≈ jaké bude počasí (slunce, déšť, mraky, sníh)
Odd(1) = true Weather(21.11.2005) = déšť
distribuce pravděpodobností proměnných Odd a Weather
P(Odd = true) = 1/6 + 1/6 + 1/6 = 1/2
P(Odd) = ⟨1/2, 1/2⟩
P(Weather) = ⟨0.72, 0.1, 0.08, 0.1⟩
▶ pravidla pro výpočet pravděpodobnosti logicky souvisejících událostí
P(a ∨ b) = P(a) + P(b) − P(a ∧ b)
Úvod do umělé inteligence 9/12 30 / 32
Nejistota a pravděpodobnost Vyvozování z nejistých znalostí
Bayesovské pravidlo pro vyvozování
z pravidla pro podmíněnou pravděpodobnost – P(a|b) = P(a∧b)/P(b)
lze odvodit Bayesovské pravidlo pro určení diagnostické
pravděpodobnosti ze znalosti příčinné pravděpodobnosti:
P(Příčina|Následek) =
P(Následek|Příčina)P(Příčina)
P(Následek)
např. ZMB zánět mozkových blan, ZK ztuhlý krk:
P(zmb|zk) =
P(zk|zmb)P(zmb)
P(zk)
=
0.8 × 0.0001
0.1
= 0.0008
vyvozování =1. rozdělení akce na atomické události
2. zjištění pravděpodobností atomických událostí
3. výpočet/odvození pravděpodobností pomocí složených distribucí
pravděpodobností (joint probability distribution)
P(Odd, Weather) =
0.36 0.05 0.04 0.05
0.36 0.05 0.04 0.05
Úvod do umělé inteligence 9/12 31 / 32
Nejistota a pravděpodobnost Vyvozování z nejistých znalostí
Bayesovské sítě
Bayesovská síť:
▶ acyklický orientovaný graf
▶ uzly obsahují tabulky podmíněných pravděpodobností rodičů
▶ síť reprezentuje složenou distribuci pravděpodobností všech proměnných
▶ umožňuje efektivní přesné nebo přibližné (Monte Carlo) vyvozování
▶ nejčastěji používaný aparát pro vyvozování z nejistých znalostí
Alarm
Vloupání Zemětřesení
Honza volá Marie volá
P(V )
0.001
P(Z)
0.002
V Z P(A)
t t 0.95
t f 0.94
f t 0.29
f f 0.001
A P(H)
t 0.90
f 0.05
A P(M)
t 0.70
f 0.1
P(v|h, m) = αP(v) z P(z) a P(a|v, z)P(h|a)P(m|a)
Úvod do umělé inteligence 9/12 32 / 32