Expertní systémy Nepravidlové a hybridní expertní systémy Jan Górecki Název prezentace Název projektu Rozvoj vzdělávání na Slezské univerzitě v Opavě Registrační číslo projektu CZ.02.2.69/0.0./0.0/16_015/0002400 Logolink_OP_VVV_hor_barva_cz • · rozhodovací stromy · sémantické sítě · rámce · objekty • – Nepravidlové reprezentace znalostí csvukrs •Rozhodovací strom je ohodnocený spojitý acyklický graf. •Většinou je binární. • •Obsahuje uzly a hrany. • •Uzly se dělí na rozhodovací (symbol je čtverec), ve kterých dochází k rozhodnutí na základě příslušné podmínky, a situační (symbol je kolečko), ve které dochází ke klasifikaci (diagnóze, určení výstupu). •Ze čtvercových uzlů vycházejí hrany, které sumarizují jednotlivé alternativy rozhodování. – Rozhodovací stromy csvukrs – Rozhodovací stromy – příklad žádosti o úvěr příjem konto pohlaví nezaměstnaný úvěr vysoký vysoké žena ne ano vysoký vysoké muž ne ano nízký nízké muž ne ne nízký vysoké žena ano ano nízký vysoké muž ano ano nízký nízké žena ano ne vysoký nízké muž ne ano vysoký nízké žena ano ano nízký střední muž ano ne vysoký střední žena ne ano nízký střední žena ano ne nízký střední muž ne ano csvukrs Rozhodovací stromy – příklad hodnocení výšky výskoku Mladí krasobruslaři: Věková kategorie 13 až 15 let Chlapci, kteří skáčou dobře na obě nohy (vysoké TP a TL), jsou nejlepší (červená elipsa). Lze tedy soudit, že pro vysoký výskok do výšky je třeba mít obě nohy „dobré“ (pokud je jedna horší, hned se skáče méně) U dívek dělí ty lepší od těch horších délka trojskoku TP. Pokud navíc ve skupině těch lepších (TP > 609,5) mají děvčata menší váhu než 48,5 kg, pak skáčou nejvýše (oranžová) - ještě jemněji pak lze tyto nejlepší děvčata rozdělit podle %tuku, kde ty s menším množstvím tuku jsou opravdu ty „nejlepší z nejlepších“. csvukrs •Výhody: •srozumitelnost •přehlednost •dobrá interpretovatelnost •lze převést na sadu pravidel – 1 větev = 1 pravidlo • •Nevýhody: •těžkopádnost – v případě mnoha uzlů a hran Rozhodovací stromy – výhody a nevýhody csvukrs •Sémantická síť (semantic net) je ohodnocený orientovaný graf. Uzly reprezentují objekty a hrany představují vztahy mezi objekty. Místo pojmu sémantická síť se také používá pojem asociativní síť. •Sémantická síť poskytuje vyšší úroveň porozumění akcím, příčinám a událostem, které se vyskytují v odpovídající doméně. To umožňuje úplnější usuzování znalostního systému o problémech z této domény. Sémantická síť csvukrs Sémantická síť – příklad (1) csvukrs Sémantická síť – příklad (2) csvukrs Sémantická síť – příklad (3) csvukrs •Sémantická síť umožňuje reprezentaci fyzikálních, kauzálních a taxonomických vztahů a podporuje dědičnost a tranzitivitu. •Příklady vztahů v sémantické síti: is-a, has-a, part-of, number-of, connected-to, causes, … •Je nutné si dát pozor na interpretaci vztahu is-a, který může mít např. tyto významy: je instancí, je prvkem, je podmnožinou, je podtřídou, je ekvivalentní s. Vztahy v sémantické síti csvukrs •Výhody: –explicitní a jasné vyjádření, –redukce doby hledání (pro dotazy typu dědičnosti nebo rozpoznávání). • •Nevýhody: –neexistence interpretačních standardů, –nebezpečí chybné inference, –reprezentují pouze binární vztahy – např. vztah Jede(Pendolino, Karviná, Praha, Dnes) nemůže být reprezentován přímo Výhody a nevýhody sémantických sítí csvukrs •Rámce (frames) jsou struktury pro reprezentaci stereotypních situací a odpovídajících stereotypních činností (scénářů). Tento prostředek reprezentace vychází z poznatku, že lidé používají pro analyzování a řešení nových situací rámcové struktury znalostí získaných na základě předchozích zkušeností. •Rámce se pokoušejí reprezentovat obecné znalosti o třídách objektů, znalosti pravdivé pro většinu případů. Mohou existovat objekty, které porušují některé vlastnosti popsané v obecném rámci. •Rámce jsou preferovaným schématem reprezentace v modelovém a případovém usuzování (model-based reasoning, case-based reasoning). Rámce csvukrs •Rámec je tvořen jménem a množinou atributů. •Atribut (rubrika, slot) může dále obsahovat položky (links, facets), jako např. aktuální hodnotu (current), implicitní hodnotu (default), rozsah možných hodnot (range). •Dalšími položkami slotu mohou být speciální procedury, jako např. if-needed, if-changed, if-added, if-deleted. Tyto procedury jsou automaticky aktivovány, jestliže nastanou příslušné situace. •Typy událostmi řízených procedur v systému FLEX: –launches (aktivují se při vytváření instance rámce) –watchdogs (aktivují se při přístupu k aktuální hodnotě slotu) –constraints (aktivují se před změnou hodnoty slotu) –demons (aktivují se po změně hodnoty slotu) Struktura rámce csvukrs Rámec – příklad (1) csvukrs Rámec – příklad (2) csvukrs Rámec – příklad (3) csvukrs Rámec – příklad (4) csvukrs •Mezi rámci mohou existovat vztahy dědičnosti, které umožňují distribuovat informace bez nutnosti jejich zdvojování. Rámec může být specializací jiného obecnějšího rámce (vztah typu specialization-of) a současně může být zobecněním jiných rámců (vztah typu generalization-of). •Příklady vztahů mezi rámci v systému FLEX: –Rodič - potomek (is-a, is-an, is-a-kind-of): • Tento vztah může být typu 1:1, 1:n, n:1. Dědění některého atributu může být pro určitý rámec potlačeno. –Rámec - instance rámce (is-an-instance-of). • Tento vztah je typu 1:1. Přitom je navíc možné dědění nějakého specifického atributu od nějakého specifického rámce. –Vlastnictví rámce • Atributem rámce může být jiný rámec. Vztahy mezi rámci csvukrs •Výhody: –snazší usuzování řízené očekáváním (na základě využití démonů), –organizace znalostí (větší strukturovanost a organizace než v sémantických sítích), –samořízení (schopnost rámců určit svou vlastní aplikovatelnost v dané situaci), –uchovávání dynamických hodnot (ve slotech rámců); výhodné při simulaci, plánování, diagnostice, … . •Nevýhody: –potíže s odlišností objektů od prototypu, –obtížné přizpůsobení novým situacím, Výhody a nevýhody rámcových systémů csvukrs •zobecnění rámců a sémantických sítí • • • • • • • • • • • • Konceptuální grafy csvukrs Konceptuální grafy – příklad (1) csvukrs Konceptuální grafy – příklad (2) csvukrs Konceptuální grafy – příklad (3) csvukrs •Objekty podobně jako rámce sdružují deklarativní znalosti a procedurální znalosti. •Objekt je programová struktura, obsahující jak data, tak metody (procedury), které s těmito daty pracují. Data objektu jsou přístupná pouze prostřednictvím metod objektu. Tato vlastnost se označuje jako zapouzdření (encapsulation) . Objekt je instance třídy. •Třída je skupina objektů, které mají stejné vlastnosti (datové složky) a stejné chování (metody). •Příklady objektových jazyků: –jazyky čistě objektové (Smalltalk, Actor, CLOS, … ) –jazyky podporující OOP, ale umožňující programovat i neobjektově (Java, Object Pascal, C++, Python… ) Objekty csvukrs Vztahy mezi třídami •Dědičnost: –Od jedné třídy (bázové, rodičovské) můžeme odvodit třídu jinou (odvozenou, dceřinnou). –Dceřinná třída dědí všechny složky své rodičovské třídy a k nim může přidat svoje vlastní. Zděděné metody je možno předefinovat. –Objekt třídy předek může být v programu zastoupen objektem třídy potomek (může se jednat i o nepřímého potomka). •Vlastnictví (skládání): –Složkou třídy může být jiná třída. csvukrs Třídy, objekty a dědičnost csvukrs Skládání tříd a objektů csvukrs •Objekty spolu komunikují tak, že si navzájem posílají zprávy; obvykle to znamená, že jeden objekt (odesilatel zprávy) volá metodu jiného objektu (příjemce zprávy). •Časná vazba (early binding) - příjemce zprávy je určen v okamžiku kompilace. •Pozdní vazba (late binding) - příjemce zprávy je určen až za běhu programu; pomocí pozdní vazby se realizuje polymorfismus (mnohotvarost). • Komunikace mezi objekty csvukrs •Výhody: –abstrakce –zapouzdření (ukrývání informace) –dědičnost –polymorfismus –znovupoužitelnost kódu • •Nevýhody (podobné jako u rámců): –jak se vypořádat s odchylkami od normy? –jak zohlednit nové dosud neuvažované situace? • Výhody a nevýhody objektů csvukrs •Zatímco u 1.generace expertních systémů byl v rámci jednoho systému používán pouze jeden způsob reprezentace znalostí, expertní systémy 2.generace obvykle používají hybridní (kombinované) reprezentace znalostí. •Hybridní reprezentace, které jsou dostupné v nejčastěji používaných prostředcích pro vývoj ES, kombinují pravidlově, rámcově a objektově orientované techniky. Umožňují tzv. modelový přístup k tvorbě systému a usnadňují vývoj modelů. •Hybridní systémy, kombinující rámce a pravidla, používají např. rámce pro reprezentaci strukturálních znalostí a pravidla pro usuzování o těchto znalostech. Rámce také mohou být využity pro implementaci sémantických sítí. Hybridní systémy csvukrs Příklady hybridních systémů •ACQUIRE •CLIPS •FLEX • •G2 • •Rete++ • •Rtworks •XpertRule prázdný ES, pravidla, rámce a objekty programové prostředí, objekty a pravidla programové prostředí implementované v Prologu, pravidla a rámce, dopředné a zpětné řetězení objektově orientované prostředí, pravidla, modely a procedury, diagnostické a řídící aplikace programové prostředí, pravidla a objekty, dopředné a zpětné řetězení programové prostředí, objekty a pravidla programové prostředí, rozhodovací stromy a tabulky příkladů csvukrs Děkuji za pozornost Některé snímky převzaty od: RNDr. Jiří Dvořák, CSc. dvorak@fme.vutbr.cz