Odborný systém, také známý jako systém založený na znalostech, je počítačový program, který obsahuje znalosti a analytické dovednosti jednoho nebo více lidských expertů, vztahující se ke konkrétnímu tématu. Tato třída programu byla poprvé vyvinuta výzkumníky v oblasti umělé inteligence během 60. a 70. let a komerčně používána během 80. let.
Expertní systém je softwarový systém, který zahrnuje koncepty odvozené od expertů v oboru a využívá jejich znalostí k poskytování analýzy problémů uživatelům softwaru.
Nejběžnější formou expertního systému je počítačový program se souborem pravidel, který analyzuje informace (obvykle dodávané uživatelem systému) o konkrétní třídě problémů a doporučuje jeden nebo více postupů činnosti uživatele. Expertní systém může také poskytovat matematickou analýzu problému (problémů). Expertní systém využívá něco, co se jeví jako schopnost uvažování, aby dospěl k závěrům.
Souvisejícím termínem je průvodce. Průvodce je interaktivní počítačový program, který pomáhá uživateli vyřešit problém. Původně byl termín průvodce používán pro programy, které sestavují dotaz pro vyhledávání v databázi na základě kritérií zadaných uživatelem. Některé expertní systémy založené na pravidlech se však nazývají také průvodci. Další „průvodci“ jsou sekvence online formulářů, které provázejí uživatele řadou voleb, například těmi, které spravují instalaci nového softwaru do počítačů, a to nejsou expertní systémy.
Prominentní expertní systémy a jazyky
Studie expertních systémů
Zastoupení znalostí je problém, který se objevuje jak v kognitivní vědě, tak v umělé inteligenci. V kognitivní vědě se zabývá tím, jak lidé ukládají a zpracovávají informace. V umělé inteligenci (AI) je primárním cílem uchování znalostí, aby je programy mohly zpracovávat a dosahovat věrohodnosti lidské inteligence. Výzkumníci AI si vypůjčili reprezentační teorie z kognitivní vědy. Existují tedy reprezentační techniky, jako jsou rámce, pravidla a sémantické sítě, které vznikly z teorií zpracování lidských informací. Vzhledem k tomu, že znalosti se používají k dosažení inteligentního chování, je základním cílem zastoupení znalostí reprezentovat znalosti způsobem, který usnadňuje vyvozování závěrů, tj. vyvozování závěrů ze znalostí.
Znalostní inženýři se zabývají reprezentací zvolenou pro znalostní prohlášení odborníka a inferenčním motorem použitým ke zpracování těchto znalostí. Může použít komponentu expertního systému pro získávání znalostí k zadání několika charakteristik, o nichž je známo, že jsou vhodné pro dobrou inferenční techniku, včetně:
Forwardové řetězení začíná dostupnými daty a používá odvozená pravidla k vyvození dalších dat, dokud není dosaženo požadovaného cíle. inferenční engine používající forward řetězení hledá odvozená pravidla, dokud nenajde takové, ve kterém je klauzule if pravdivá. Poté uzavře klauzuli then a přidá tuto informaci do svých dat. Bude v tom pokračovat, dokud nebude dosaženo cíle. Protože dostupná data určují, která odvozená pravidla jsou použita, nazývá se tato metoda také řízená daty.
Předpokládejme, že cílem je dospět k závěru, že Fritz hopsá.Pravidlo by bylo vyhledáno a pravidlo (2) by bylo vybráno, protože jeho závěr (tehdá klauzule) odpovídá cíli. Není známo, že Fritz je žába, proto je tento výrok „pokud“ přidán do seznamu cílů. Pravidlo je znovu vyhledáno a tentokrát je vybráno pravidlo (1), protože jeho tehdá klauzule odpovídá novému cíli, který byl právě přidán do seznamu. Tentokrát je klauzule if (Fritz je zelený) známa jako pravdivá a cíl, který Fritz hopsá, je uzavřen. Protože seznam cílů určuje, která pravidla jsou vybrána a použita, nazývá se tato metoda řízená cílem.
Další výhodou expertních systémů oproti tradičním metodám programování je, že umožňují použití „konfidencí“ (neboli „jistých faktorů“). Když člověk uvažuje, ne vždy uzavírá věci se stoprocentní jistotou. Mohl by říci: „Je-li Fritz zelený, pak je pravděpodobně žába“ (konec konců, mohl by být chameleon). Tento typ uvažování lze napodobit použitím číselných hodnot zvaných konfidence. Je-li například známo, že Fritz je zelený, lze s jistotou 0,85 dospět k závěru, že je žába; nebo je-li známo, že je žába, lze s jistotou 0,95 dospět k závěru, že hopsá. Tato čísla jsou svou povahou podobná pravděpodobnostem, ale nejsou stejná. Mají spíše napodobovat konfidenci, kterou lidé používají v uvažování, než se řídit matematickými definicemi používanými při výpočtu pravděpodobnosti.
Expertní systémová architektura
Následující obecné body o expertních systémech a jejich architektuře byly ilustrovány.
Existují různé expertní systémy, v nichž „rulebase“ a „inferenční motor“ spolupracují, aby simulovaly proces uvažování, který lidský odborník sleduje při analýze problému a dospívání k závěru. V těchto systémech, aby bylo možné simulovat proces lidského uvažování, bylo třeba uložit obrovské množství znalostí do znalostní základny. Obecně znalostní základna takového expertního systému sestávala z poměrně velkého množství prohlášení typu „tehdy, když“, která spolu vzájemně souvisela způsobem, který alespoň teoreticky připomínal sled mentálních kroků, které byly zapojeny do procesu lidského uvažování.
Vzhledem k potřebě velkých úložných kapacit a souvisejících programů pro ukládání pravidel byla většina expertních systémů v minulosti provozována pouze na velkých systémech pro zpracování informací. V poslední době se úložná kapacita osobních počítačů zvýšila natolik, že je možné uvažovat o provozování některých typů jednoduchých expertních systémů na osobních počítačích.
V některých aplikacích expertních systémů je povaha aplikace a množství uložených informací nutných k simulaci procesu lidského uvažování pro tuto aplikaci prostě příliš rozsáhlé na to, aby je bylo možné uložit do aktivní paměti počítače. V jiných aplikacích expertních systémů je povaha aplikace taková, že ne všechny informace jsou vždy potřebné v procesu uvažování. Příkladem posledně jmenovaného typu aplikace by bylo použití expertního systému pro diagnostiku systému zpracování dat zahrnujícího mnoho samostatných komponent, z nichž některé jsou nepovinné. Pokud tento typ expertního systému využívá jedinou integrovanou základnu pravidel pro diagnostiku minimální systémové konfigurace systému zpracování dat, velká část této základny pravidel není vyžadována, protože mnoho komponent, které jsou nepovinnými jednotkami systému, nebude v systému přítomno. Dřívější expertní systémy nicméně vyžadují uložení celého souboru pravidel, protože všechna pravidla byla v podstatě řetězena nebo propojena
struktura rulebase.
Když je rulebase segmentována, nejlépe do kontextových segmentů nebo jednotek, je pak možné eliminovat části rulebase obsahující data nebo znalosti, které nejsou potřebné v konkrétní aplikaci. Segmentace rulebase také umožňuje, aby expertní systém byl spuštěn se systémy nebo na systémech s mnohem menší paměťovou kapacitou, než bylo možné při dřívějších úpravách, protože každý segment rulebase může být stránkován do a ze systému podle potřeby. Segmentace rulebase do kontextových segmentů vyžaduje, aby expertní systém řídil různé vztahy mezi segmenty tak, jak jsou segmenty stránkovány do a z paměti během provádění programu. Vzhledem k tomu, že systém umožňuje volat a spouštět segment rulebase kdykoli během zpracování první rulebase, musí být učiněno opatření pro uložení dat, která byla nahromaděna až do tohoto bodu, aby někdy později během procesu, když se systém vrátí do prvního segmentu, mohl pokračovat od posledního bodu
nebo uzlu pravidla, který byl zpracován. Dále musí být učiněno opatření, aby data, která byla systémem shromážděna až do tohoto bodu, mohla být předána do druhého segmentu rulebase poté, co byla stránkována do systému, a data shromážděná během zpracování druhého segmentu mohla být předána do prvního segmentu, když se systém vrátí k úplnému zpracování tohoto segmentu.
Uživatelské rozhraní a procesní rozhraní jsou dvě důležité funkce v procesu sběru informací.
Koncový uživatel obvykle vidí expertní systém prostřednictvím interaktivního dialogu, jehož příklad následuje:
Jak je patrné z tohoto dialogu, systém vede uživatele sadou otázek, jejichž účelem je určit vhodnou sadu restaurací, které doporučí. Tento dialog začíná dotazem systému, zda uživatel již zná výběr restaurace (běžný rys expertních systémů) a okamžitě ilustruje charakteristiku expertních systémů; uživatelé se mohou rozhodnout neodpovídat na žádnou otázku. V expertních systémech nejsou dialogy předem naplánované. Neexistuje žádná pevná řídicí struktura. Dialogy jsou syntetizovány z aktuálních informací a obsahu znalostní základny. Z tohoto důvodu nemožnost poskytnout odpověď na konkrétní otázku konzultaci nezastaví.
Další zásadní rozdíl mezi expertními systémy a tradičními systémy ilustruje následující odpověď systému, když uživatel odpoví na otázku jinou otázkou „Proč“, jak se stalo ve výše uvedeném příkladu. Odpověď zní:
Je velmi obtížné implementovat obecný systém vysvětlení (odpovídání na otázky jako „Proč“ a „Jak“) do tradičního počítačového programu. Odborný systém může generovat vysvětlení zpětným sledováním jednotlivých kroků své úvahy. Odpověď expertního systému na otázku PROČ je vystavením základní znalostní struktury. Je to pravidlo; soubor předchozích podmínek, které, pokud jsou pravdivé, umožňují tvrzení následku. Pravidlo odkazuje na hodnoty a testuje je proti různým omezením nebo na ně uplatňuje omezení. To je ve skutečnosti významná část znalostní struktury. Existují hodnoty, které mohou být spojeny s nějakou organizační entitou. Například jednotlivý strávník je entitou s různými atributy (hodnotami) včetně toho, zda pije víno a druh vína. Existují také pravidla, která spojují aktuálně známé hodnoty některých atributů s tvrzeními, která lze učinit o jiných atributech. Je to řádné zpracování těchto pravidel, které diktuje samotný dialog.
Expertní systémy versus systémy řešení problémů
Základním rozdílem mezi expertními systémy a tradičními programy pro řešení problémů je způsob, jakým je expertiza související s problémem kódována. V tradičních aplikacích je expertiza problému kódována jak v programové, tak v datové struktuře.
V expertním systémovém přístupu jsou všechny odborné znalosti související s problémem zakódovány pouze v datových strukturách, žádné není v programech. Tato organizace má několik výhod.
Příklad může pomoci kontrastovat tradiční program řešení problémů se systémovým přístupem expertů. Příkladem je problém daňového poradenství. V tradičním přístupu jsou popsány datové struktury daňového poplatníka a daňové tabulky a program, ve kterém jsou výkazy představující znalosti odborného daňového poradce, například výkazy, které dávají informace o daňovém poplatníkovi do souvislosti s výběrem daňové tabulky. Právě toto znázornění znalostí daňového experta je pro daňového experta obtížné pochopit nebo upravit.
V expertním systémovém přístupu se informace o daňových poplatnících a daňových výpočtech opět nacházejí v datových strukturách, ale nyní jsou znalosti popisující vztahy mezi nimi zakódovány i v datových strukturách. Programy expertního systému jsou nezávislé na problémové doméně (daně) a slouží ke zpracování datových struktur bez ohledu na povahu problémové oblasti, kterou popisují. Existují například programy pro získání popsaných datových hodnot prostřednictvím interakce s uživatelem, programy pro reprezentaci a zpracování zvláštních organizací popisu a programy pro zpracování deklarací, které představují sémantické vztahy v problémové doméně a algoritmus pro řízení posloupnosti zpracování a zaměření.
Obecná architektura expertního systému zahrnuje dvě hlavní složky: na problému závislou sadu datových deklarací zvanou znalostní báze nebo báze pravidel a na problému nezávislý (i když vysoce závislý na struktuře dat) program, který se nazývá inferenční engine.
Jednotlivci zapojení do expertních systémů
Pochopení konceptu „pravidla odvození“ je důležité pro pochopení expertních systémů. Pravidlo odvození je tvrzení, které má dvě části, klauzuli if a klauzuli then. Toto pravidlo dává expertním systémům schopnost najít řešení diagnostických a preskriptivních problémů. Příkladem pravidla odvození je:
Základ pravidel expertního systému se skládá z mnoha takových odvozujících pravidel. Zadávají se jako samostatná pravidla a je to právě odvozovací stroj, který je používá dohromady k vyvození závěrů. Protože každé pravidlo je jednotkou, pravidla mohou být vypuštěna nebo přidána, aniž by to ovlivnilo jiná pravidla (i když by to mělo ovlivnit, ke kterým závěrům se dospěje). Jednou z výhod odvozovacích pravidel oproti tradičnímu programování je, že odvozovací pravidla používají uvažování, které se více podobá lidskému uvažování.
Když je tedy učiněn závěr, je možné pochopit, jak byl tento závěr učiněn. Navíc vzhledem k tomu, že znalecký systém využívá znalosti v podobné formě jako znalec, může být snazší získat tyto informace od znalce.
Funkcí rozhraní uzlu procedur je přijímat informace od koordinátora procedur a vytvářet příslušné volání procedur. Schopnost volat proceduru a přijímat informace z této procedury lze považovat za pouhé zobecnění vstupů z vnějšího světa. Zatímco v některých dřívějších expertních systémech byly získány externí informace, tyto informace byly získány pouze předem stanoveným způsobem, takže bylo možné skutečně získat pouze určité informace. Tento expertní systém, zveřejněný v křížově odkazované aplikaci, prostřednictvím znalostní základny, je oprávněn vyvolat jakýkoli postup povolený na svém hostitelském systému. Díky tomu je expertní systém užitečný v mnohem širší třídě znalostních oblastí, než kdyby neměl externí přístup nebo jen omezený externí přístup.
Znalosti, které jsou v systému zastoupeny, se objevují v rulebase. V rulebase popsané v aplikacích s křížovými odkazy existují v zásadě čtyři různé typy objektů s přidruženými informacemi.
Základ pravidel zahrnuje les mnoha stromů. Horní uzel stromu se nazývá cílový uzel, protože obsahuje závěr. Každý strom v lese má jiný cílový uzel. Listy stromu jsou také označovány jako uzly pravidel nebo jeden z typů uzlů pravidel. List může být evidenční uzel, vnější uzel nebo referenční uzel.
Uzel evidence slouží k získání informací od operátora položením konkrétní otázky. Při odpovědi na otázku předloženou uzlem evidence je operátor zpravidla instruován, aby odpověděl „ano“ nebo „ne“ reprezentované číselnými hodnotami 1 a 0 nebo poskytl hodnotu mezi 0 a 1 reprezentovanou „možná“.
Otázky, které vyžadují od operátora jinou odpověď než ano nebo ne nebo hodnotu mezi 0 a 1, jsou řešeny jiným způsobem.
List, který je externím uzlem, označuje, že budou použita data, která byla získána z volání procedury.
Funkce referenčního uzlu odkazují na jiný strom nebo podstrom.
Strom může také obsahovat mezilehlé nebo vedlejší uzly mezi cílovým uzlem a listovým uzlem. Mezilehlý uzel může představovat logické operace jako A nebo Nebo.
Logika odvození má dvě funkce. Vybere strom k trasování a pak sleduje tento strom. Jakmile je strom vybrán, je tento strom trasován, hloubkou napřed, zleva doprava.
Slovo „trasování“ odkazuje na akci, kterou systém podniká, když prochází stromem, klade třídy (otázky), volá procedury a počítá důvěrnosti, jak postupuje.
Jak je vysvětleno v aplikacích s křížovými odkazy, výběr stromu závisí na pořadí stromů. Původní pořadí stromů je pořadí, v jakém se objevují v souboru pravidel. Toto pořadí však lze změnit přiřazením evidenčního uzlu atributu „počáteční“, který je v těchto aplikacích podrobně popsán. Prvním provedeným úkonem je získání hodnot pro všechny evidenční uzly, kterým byl přiřazen „počáteční“ atribut. Používají se pouze odpovědi na tyto počáteční evidenci a pravidla jsou seřazena tak, aby byla jako první vyhodnocena ta nejpravděpodobnější. Stromy mohou být dále seřazeny znovu, protože jsou neustále aktualizovány, jak je sledován vybraný strom.
Bylo zjištěno, že typ informací, které si systém od uživatele vyžádá prostřednictvím otázek nebo tříd, by měl být přizpůsoben úrovni znalostí uživatele. V mnoha aplikacích je skupina budoucích využití hezky definována a úroveň znalostí lze odhadnout tak, aby otázky mohly být prezentovány na úrovni, která obecně odpovídá průměrnému uživateli. V jiných aplikacích se však znalost konkrétní oblasti expertního systému může u skupiny budoucích uživatelů značně lišit.
Jedna aplikace, kde je to obzvláště pravda, zahrnuje použití expertního systému, který pracuje v sebediagnostickém režimu na osobním počítači, aby pomohl provozovateli osobního počítače diagnostikovat příčinu chyby nebo chyby v hardwaru nebo softwaru. Obecně platí, že vyžádat si informace od provozovatele je pro expertní systém nejjednodušší způsob, jak získat informace, samozřejmě za předpokladu, že informace jsou nebo by měly být v dosahu provozovatele. Například při diagnostice osobního počítače musí expertní systém znát hlavní funkční složky systému. Mohl by se provozovatele například zeptat, zda je displej jednobarevný nebo barevný. Provozovatel by měl být se vší pravděpodobností schopen poskytnout správnou odpověď ve 100% případů. Expertní systém by naopak mohl způsobit spuštění testovací jednotky k určení typu displeje. Přesnost údajů shromážděných jedním z přístupů by v tomto případě pravděpodobně nebyla tak
odlišná, aby inženýr znalostí mohl použít jeden nebo druhý přístup, aniž by to ovlivnilo přesnost diagnózy. V mnoha případech je však vzhledem k povaze vyžádaných informací lepší získat informace ze systému než se operátora ptát, protože přesnost údajů poskytnutých operátorem je tak nízká, že by je systém nemohl efektivně zpracovat k smysluplnému závěru.
V mnoha situacích jsou informace již v systému a jejich forma umožňuje získat správnou odpověď na otázku postupem induktivního nebo deduktivního uvažování. Údaje dříve shromážděné systémem by mohly být odpověďmi poskytnutými uživatelem na méně složité otázky, které byly položeny z jiného důvodu, nebo výsledky vrácené z dříve spuštěných testovacích jednotek.
Funkcí uživatelského rozhraní je předkládat dotazy a informace uživateli a poskytovat jeho odpovědi na inferenční engine.
Všechny hodnoty zadané uživatelem musí uživatelské rozhraní přijmout a interpretovat. Některé odpovědi jsou omezeny na sadu možných právních odpovědí, jiné nikoli. Uživatelské rozhraní kontroluje všechny odpovědi, aby se ujistilo, že jsou správného datového typu. Všechny odpovědi, které jsou omezeny na legální sadu odpovědí, jsou porovnány s těmito právními odpověďmi. Kdykoli uživatel zadá nepovolenou odpověď, uživatelské rozhraní informuje uživatele, že jeho odpověď byla neplatná, a vyzve ho, aby ji opravil.
Aplikace expertních systémů
Zatímco expertní systémy se ve výzkumu umělé inteligence vyznamenaly v hledání praktického uplatnění, jejich uplatnění bylo omezené. Expertní systémy jsou notoricky úzké ve své oblasti znalostí – jako zábavný příklad lze uvést, že výzkumník použil expertní systém „kožních chorob“ k diagnostice svého vozu s rezavým potahem jako pravděpodobného původce spalniček – a systémy tak byly náchylné k chybám, kterých by si lidé snadno všimli. Navíc, jakmile se část mystiky vytratila, většina programátorů si uvědomila, že jednoduché expertní systémy jsou v podstatě jen o něco propracovanější verze rozhodovací logiky, kterou již používali. Proto lze dnes některé techniky expertních systémů nalézt ve většině složitých programů bez jakéhokoli povyku kolem nich.
Příkladem a dobrou ukázkou omezení expertního systému, který používá mnoho lidí, je software pro odstraňování problémů s operačním systémem Microsoft Windows umístěný v sekci „help“ v nabídce hlavního panelu. Získat odbornou / technickou podporu operačního systému je často obtížné pro jednotlivce, kteří nejsou úzce zapojeni do vývoje operačního systému. Microsoft navrhl svůj expertní systém tak, aby poskytoval řešení, rady a návrhy k běžným chybám, které se vyskytují během používání operačních systémů.
Výhody a nevýhody
Typy problémů řešených expertními systémy
Odborné systémy jsou nejcennější pro organizace, které mají vysokou úroveň know-how zkušeností a odborných znalostí, které nelze snadno přenést na ostatní členy. Jsou navrženy tak, aby nesly inteligenci a informace obsažené v intelektu odborníků a poskytovaly tyto znalosti ostatním členům organizace pro účely řešení problémů.
Problémy, které je třeba vyřešit, jsou obvykle toho druhu, který by za normálních okolností řešil lékař nebo jiný odborník. Skuteční odborníci v problémové oblasti (která bude obvykle velmi úzká, například „diagnostika kožních onemocnění u lidských teenagerů“) jsou žádáni, aby poskytli „návod“, jak vyhodnotit problémy, a to buď explicitně s pomocí zkušených vývojářů systémů, nebo někdy implicitně tak, že takové odborníky přimějí vyhodnotit testovací případy a pomocí počítačových programů prozkoumají testovací data a (přísně omezeným způsobem) z toho odvozují pravidla. Obecně platí, že expertní systémy se používají pro problémy, pro které neexistuje jediné „správné“ řešení, které by mohlo být zakódováno do konvenčního algoritmu – člověk by nenapsal expertní systém, který by hledal nejkratší cesty pomocí grafů, nebo třídil data, protože existují jednoduše jednodušší způsoby, jak tyto úkoly provést.
Jednoduché systémy používají k vyhodnocení dat jednoduchou logiku true/false. sofistikovanější systémy jsou schopny provést alespoň nějaké vyhodnocení s přihlédnutím k nejistotám reálného světa s využitím takových metod, jako je fuzzy logika. Takovou sofistikovanost je obtížné vyvinout a stále velmi nedokonalá.
Expert Systems Shells or Inference Engine
Shell je kompletní vývojové prostředí pro vytváření a údržbu aplikací založených na znalostech. Poskytuje metodiku krok za krokem pro znalostní inženýry, která umožňuje samotným odborníkům na domény přímo se podílet na strukturování a kódování znalostí. Použití shellů snižuje dobu vývoje až o 50%. K dispozici je mnoho komerčních shellů.