NEST Vladimr La NEST Petr Berka Vladimr La
NEST Vladimír Laš NEST Petr Berka, Vladimír Laš, Vojtěch Svátek FIS VŠE, Praha
NEST 2 Obsah prezentace • • Historie expertních systémů na VŠE Reprezentace znalostí Odvozování a práce s neurčitostí Konzultace Implementace systému Případové usuzování Problémy, současné práce, výhledy
NEST 3 Expertní systémy na VŠE - Systém Automatických Konzultací SAK • 1983: počítač Wang, jazyk Basic – J. Ivánek + J. Ferjenčík, J. Švenda (DP) (Ivánek, J. : Realizace konzultačního systému SAK-OPIMALI pro výběr matematické metody rozhodování. In: Expertní systémy, ČSVTS FEL ČVUT, Praha 1984 160 -172) • 1987 -91: převod na počítače IBM PC pod DOSem – jazyk Turbo. Prolog (Ivánek, Ferjenčík, Švenda) – jazyk Turbo. Basic (Ivánek, Ferjenčík, Berka) • 1995: konec záplatování verze Turbo. Basic
NEST 4 SAK – Turbo. Basic
NEST 5 SAK - Turbo. Prolog
NEST 6 Expertní systémy na VŠE - prehistorie systému NEST • druhá pol. 90 let - práce na návrhu nového systému (P. Berka, V. Svátek) – publikace • Berka, P. : Nový expertní systém. LISp-Report 94 -06, 1994 • Svátek, V. - Berka, P. : Specifications of a Question/Answer Knowledge-Based Agent. In: (Žižka, Brazdil eds. ) Artificial Intelligence Techniques AIT'95, Brno, 1995, s. 338 – 1995 -97: specifikace systému NEST – 1996: konzultační modul v rámci systému pro hodnocení bonity klienta banky implementovaný komerční firmou – 1998 -2003: nesystematické neúspěšné pokusy sehnat studenta-programátora
NEST 7 Expertní systémy na VŠE - historie systému NEST • květen 2003: začátek práce na implementaci systému NEST (P. Berka, V. Laš) – vývojové prostředí DELPHI pod Windows – báze znalostí zapisovány v XML – stand-alone + webová verze – editor báze – česká i anglická verze
NEST 8 Reprezentace znalostí (1/4) • Atributy a výroky – – binární True, False jednoduché nominální hodnoty atributu množinové nominální hodnoty atributu numerické fuzzy intervaly n s atributy sdruženy zdroje a akce n atributy popisují případ nebo prostředí
NEST 9 Reprezentace znalostí (2/4) • Pravidla s prioritami IF předpoklad THEN závěr A akce kde předpoklad je disjunktivní forma (disjunkce konjunkcí) literálů (výroků nebo negací výroků), závěr je seznam literálů a akce je seznam akcí (externích programů) – kompozicionální - každý literál v závěru doplněn vahou – apriorní - kompozicionální pravidla bez předpokladu – logická - nekompozicionální pravidla bez vah; pouze tato pravidla mohou dát absolutní jistotu
NEST 10 <compositional_rule> IF velikost_nohy(malá_noha) AND <id>c 1</id> dobrá_rodina THEN princ[3, 000] <condition> <conjunction> <literal> <id_attribute>velikost_nohy</id_attribute> <id_proposition>malá_noha</id_proposition> <negation>0</negation> </literal> <id_attribute>dobrá_rodina</id_attribute> <negation>0</negation> </literal> </conjunction> </condition> <conclusions> <conclusion> <id_attribute>princ</id_attribute> <negation>0</negation> <weight>3, 000</weight> </conclusions> </compositional_rule>
NEST 11 Reprezentace znalostí (4/4) • Integritní omezení ANT SUC (stupeň) kde ANT i SUC jsou DNF literálů a stupeň je číslo vyjadřující důležitost integritního omezení používají se pro kontrolu logické konzistence průběhu konzultace diagnoza(chřipka) not diagnoza(zdráv) • Kontexty - disjunktivní forma literálů, která (v případě kladné váhy) určuje, že je aplikovatelné nějaké pravidlo či integritní omezení
NEST 12 Odvozování • Odvozování v síti pravidel jako kombinace zpětného a přímého řetězení – kompozicionální odvozování v rámci kompozicionálních a apriorních pravidel (skládání příspěvků pravidel) – nekompozicionální odvozování v rámci logických pravidel (modus ponens + disjunkce) • Vyhodnocení porušení integritních omezení IMPL(a, s) = max(0, min(1, a-s)) pro a > 0
NEST 13 Práce s neurčitostí (1/4) (Založena na algebraické teorii P. Hájka) • použity kombinační funkce pro práci na [-1, 1]: – – – NEG pro výpočet váhy negace výroku, CONJ pro výpočet váhy konjunkce výroků, DISJ pro výpočet váhy disjunkce výroků, CTR pro výpočet příspěvku pravidla k váze závěru, GLOB pro skládání příspěvků více pravidel.
NEST 14 Práce s neurčitostí (2/4) • definovány různé „inferenční mechanizmy“, tj různé varianty kombinačních funkcí CTR a GLOB: – Standardní - vychází ze systémů MYCIN (funkce CTR) a PROSPECTOR (funkce GLOB) – Logický - funkce CTR je fuzzy modus ponens a funkce GLOB je fuzzy disjunkce v Lukasiewiczově sémantice – Neuronový - funkce CTR odpovídá váženému vstupu wixi do neuronu, funkce GLOB aproximuje aktivační funkci tanh( iwixi)
NEST 15 Práce s neurčitostí (3/4) • NEG(w) = - w • CONJ(w 1, w 2) = min(w 1, w 2) • DISJ(w 1, w 2) = max(w 1, w 2) Inferenční Funkce CTR(a, w) pro mechanismus váhu předpokladu a>0 standardní logický neuronový hybridní Funkce GLOB(w 1, …, wk) a*w (w 1+w 2)/(1+w 1*w 2) sign(w)*max(a+|w|-1) min(Σw>0 w, 1) – min(Σw<0|w|, 1) a*w min(max(Σiwi, -1), 1) standardní logický
NEST 16 Práce s neurčitostí (4/4) • práce s neurčitostí rozšířena (díky monotonii) na práci s intervaly vah: – – – NEG[w 1, w 2] = [NEG(w 2), NEG(w 1)] CONJ([w 1, w 2], [v 1, v 2]) = [CONJ(w 1, v 1), CONJ(w 2, v 2)] DISJ ([w 1, w 2], [v 1, v 2]) = [DISJ(w 1, v 1), DISJ(w 2, v 2)] CTR([a 1, a 2], w) = [CTR(a 1, w), CTR(a 2, w)] GLOB([w 1, w 2], [v 1, v 2]) = [GLOB(w 1, v 1), GLOB(w 2, v 2)]
NEST 17 Režimy konzultace • dialogový režim - klasický režim dotaz/odpověď využívající pro volbu aktuálního dotazu zpětné řetězení • režim dotazník – po vyplnění dotazníku se rovnou spouští odvozování (tento režim simuluje přímé řetězení) • režim dialog s dotazníkem – nejprve systém nabídne dotazník obsahující všechny dotazy, po vyplnění dotazníku se případně kladou další potřebné dotazy • načítání odpovědí ze souboru – načtené odpovědi lze měnit (režim dotazník) • just-in-time – zobrazovní odpovědí zároveň s vyplňováním dotazníku
NEST 18 Nastavení konzultace
NEST 19 Typy odpovědí • binární atribut - váha • jednoduchý nominální atribut – hodnota a váha • jednoduchý nominální atribut – seznam hodnot a jejich vah • numerický atribut - hodnota Dotazy nezodpovězené v průběhu konzultace získávají automaticky implicitní váhu „neznámá“ [-1, 1] nebo “irelevantní“ [0, 0], odpovědi lze rovněž odkládat a po skončení konzultace se k nim vrátit
NEST 20 Příklad dotazu
NEST 21 Výsledek konzultace
NEST 22 Implementace systému NEST • stand-alone verze: – vnitřní architektura jako klient-server aplikace • klient-server verze: – webový server (windows) + prohlížeč – víceuživatelský přístup řešen vytvářením kopií báze znalosti na serveru pro každého přihlášeného uživatele – ke každé bázi znalostí přiřazeny html stránky definující vzhled dialogu s uživatelem (možnost libovolně modifikovat při zachování příslušných „pseudotagů“)
NEST 23 Síťová verze - server
NEST 24 Síťová verze - standardní klient
NEST 25 síťová verze - klient na míru
NEST 26 Editor báze
NEST 27 Případové usuzování – CBR (1/3) • alternativa k pravidlovému usuzování • znalosti reprezentovány množinou typických případů – jako nestrukturované vektory hodnot atributů, – jako strukturované objekty, nesoucí informace o situacích, kdy je použití případu relevantní i o akcích, které se mají provést.
NEST 28 Případové usuzování – CBR (2/3) • Usuzování na základě podobnosti – pro případy reprezentované jako vektory hodnot atributů založeno na vzdálenosti:
NEST 29 Případové usuzování – CBR (3/3) Klasifikace (k-NN) 1. Pro nový příklad x 1. 1. Najdi x 1, x 2, … x. K K nejbližších příkladů 1. 2. Přiřaď y = ŷ’ y‘ je majoritní třída příkladů x 1, … x. K, (pokud y je kategoriální) nebo (pokud y je numerické)
NEST 30 Případové usuzování a NEST – principy (1/2) • případy odpovídají konzultacím - obsahují tedy informace o odpovědích na dotazy i o odvozených cílech (vyjádřeno jako váhy příslušných výroků) • podobnost mezi případem a novou konzultací dána podobností mezi váhami odpovídajících si výroků • analogicky s pravidlovým usuzováním navrženo a kompozicionální a logické (nekompozicionální) odvozování
NEST 31 Případové usuzování a NEST – principy (2/2) • odvozování realizováno „kombinačními funkcemi“ pro – výpočet podobnosti vah dvou (odpovídajících si) výroků – výpočet podobnosti dvou konzultací (případu a konzultace) - na základě podobností vah všech výroků případu a nové konzultace – výpočet váhy cíle nové konzultace – na základě váhy cíle u případu a podobnosti mezi případem a novou konzultací • možnost pracovat s intervaly vah
NEST 32 Případové usuzování a NEST – kompozicionální odvozování
NEST 33 Případové usuzování a NEST – logické odvozování
NEST 34 Implementace případového usuzování v systému NEST • návaznost na stávající systém NEST • zatím implementována jen stand-alone verze • jen dva režimy práce (dotazník a nahrání odpovědí ze souboru) • podobně jako u pravidlového odvozování nemusí být zadány hodnoty všech atributů, nezodpovězené dotazy získají implicitní váhu „neznámá“ (w=[-1, 1]) případně „irelevantní“ (w=0) • Zatím případové usuzování začleněno do NESTu jako samostatný modul
NEST 35 Problémy se současnou verzí • Vývoj prostředí Delphi byl ukončen – Špatná podpora nových technologií – Nezájem učit se tento jazyk – Problematické úpravy v programu – Téměř nemožný další vývoj • Nevhodná koncepce webové verze (samostatný webový server)
NEST 36 Současné práce • Převod systému do nového vývojového prostředí (Visual Studio. NET) • Základ systému koncipován jako knihovna napojitelná na různé klienty – Webová verze – Webová služba – Stand-alone verze (zatím není) • Webová verze psaná pro standardní server (IIS) – snadnější a „bezpečnější“ nasazení
NEST 37 Výhledy (aneb co by se dalo dělat) • Propojení pravidlového a případového usuzování (výběr vhodnějšího způsobu odvozování, kombinování obou, …) • Modifikace pravidel na základě případového usuzování (automatická tvorba BZ) • Předělání editoru BZ • Implementace jiných jazyků pro zápis BZ • ? ? ?
- Slides: 37