Expertní systém

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

Expertní systém je počítačový program, který má za úkol poskytovat expertní rady, rozhodnutí nebo doporučit řešení v konkrétní situaci.

Expertní systémy jsou navrženy tak, aby mohly zpracovávat nenumerické a neurčité informace a řešit tak úlohy, které nejsou řešitelné tradičními algoritmickými postupy.

Expertní systém má dvě základní komponenty, které jsou na sobě relativně nezávislé. Řídící mechanismus pro odvozování závěrů a bázi znalostí. V průběhu zpracovávání se k bázi znalostí přidávají dočasné informace o řešeném případu.

Funkce expertního systému[editovat | editovat zdroj]

V praxi expertní systémy plní celou řadu funkcí:

  • knihovník – pomáhají lidem hledat, organizovat a interpretovat informace potřebné k řešení úloh, to chci vidět, když to do něj musí vkládat znalostní expertní inženýr
  • rádce – shromažďuje a poskytuje specializované expertní znalosti,
  • instruktor – pomáhá uživatelům získávat potřebné znalosti a řešit úkoly,
  • asistent – zabezpečuje řešení některých rutinních úloh a umožňuje lidem věnovat se kreativnějším aspektům řešení úkolu.

Výhody expertních systémů[editovat | editovat zdroj]

  • Poskytuje stále stejné výsledky, může pracovat 24 hodin denně, nemusí si brát dovolenou, nedá výpověď, rozhodování expertního systému neovlivňuje únava, časový stres a jiné faktory.
  • Dokáže svůj výrok jednoznačně zdůvodnit. Zpracovává nenumerické a neurčité informace, ... Pokud má zdůvodňovací komponentu a pamatuje si něco, např. postup odvozování.
  • Pokud je potřeba více expertů, stačí je pouze kopírovat. Taky by se hodil hardwér.
  • Umožňuje hypotetické odvozování, tj. odpovědi na otázky typu "Co se stane, když ... (se stane oné)".
  • Může integrovat zkušenosti od víc expertů. (od Aše po Mukačevo) I když se oni neshodnou.
  • Dá se vylepšovat znalostní báze (i samostatně, bez zásahu do řídícího soustrojí mechanizmu). Případně se může i učit.
  • Expertní systém je schopen používat jednotnou terminologii. No a když se to nepodaří, tak má znalostní inženýr svoji a expertní inženýr taky svoji.
  • Dnes (psáno l.p. 2014) může kibicovat i po sítí, může za ním být velký (i klaudový) výkon a velká (i distribuovaná) báze dat. Taktéž může být integrován s člověkem.
  • Znalosti jsou v jednotném formátu. Znalosti jsou formalizované. (Formát může být složitý.)

Nevýhody expertních systémů[editovat | editovat zdroj]

  • Lidský expert v dané oblasti nedokáže své vědomosti expertnímu systému předat přímo, ale je odkázaný na prostředníka – expertního inženýra.
  • Lidský expert obvykle nedokáže podrobně popsat všechny aspekty, které se podílí na jeho rozhodnutí.
  • Lidský expert provádí svá rozhodnutí také tak, že je nedokáže nijak přesně zdůvodnit. Jednoduše proto, že nezná, nebo zapomněl zdroj svého poznání a tvrdí: „Nevím, ale vždycky to dělám tak a všichni to tak v tomto případě dělají.“
  • Lidský expert má další vlastnosti, které do expertního systému nelze vůbec promítnout – tzv. selský rozum, intuici, schopnost rozpoznat velmi vzácné výjimky a okamžitě se jim přizpůsobit.
  • Na lidském rozhodování se podílí i další znalosti a schopnosti, které s problémem na první pohled přímo nesouvisí – všeobecný přehled, lidská životní zkušenost a moudrost, zdravý úsudek, vtip apod.

A dá se tedy taky teď zde něco říct i o nelidských expertech?

  • Dělá stále stejné chyby. Když se učí, tak dělá stále jiné chyby. A bázi dat je třeba udržovat, obvykle.
  • ES neví, co radí. Nerozumí oblasti. ... a kecá, a kecá, a kecá.
  • Když v oblasti nepracují lidé, tak se jejich znalosti ztrácí a co nebylo převedeno do ES, to se ztratí úplně.
  • Některé metody vyhodnocování (neurčité) informace nedovolují jednoduché a přímočaré opravy. Znalostní inženýr ví, že výsledek je špatný, ale neumí správně přenastavit tisíce parametrů (bez toho, aby něco nenaboural).
  • Znalosti se musí přizpůsobit formátu a převést do něj. Může být víc způsobů převodu, se svými výhodami a nevýhodami.

Rozdíl mezi expertním systémem a jiným počítačovým programem[editovat | editovat zdroj]

Běžný počítačový program je obvykle navržen tak, že zpracovává nějaká vstupní data a pomocí algoritmů, které jsou naprogramovány v určitém programovacím jazyce, dospěje k nějakým závěrům – výsledkům.

Při tvorbě počítačového programu proto musí nejprve specialista (počítačový analytik) velmi přesně a detailně popsat řešení daného problému a rozdělit řešení na dílčí kroky, které jsou algoritmizovatelné. Podle tohoto popisu pak programátor vytvoří počítačový program. Část inteligence programu může být uložena mimo samotný program v souborech nebo databázích, část inteligence je realizovaná v programovém kódu samotném.

Expertní systém používá úplně jiný model. Veškerá inteligence je uložena mimo programový kód. Programový kód řídícího mechanismu má za úkol pouze vyhodnocovat stav, který je ovlivněn expertními znalostmi uloženými v bázi znalostí a informacemi získanými z okolního světa (například odpovědi na otázky kladené uživateli, výsledky měření nějakých čidel apod.). Na základě toho expertní systém samostatně rozhoduje o tom, zda je schopen poskytnout expertní radu nebo zda je potřebné získat ještě další informace. Expertní systém se dokáže rozumně rozhodnout i při odpovědích, které nejsou úplně přesné (asi ne, nevím, velký, hodně velký apod.) nebo si vzájemně protiřečí.

Vytváření expertního systému proto probíhá jinak. jinak než co? Řídící mechanismus je nezávislý, a tak nový expertní systém znamená vytvoření nové báze znalostí. Transformovat poznatky lidského experta do této podoby není vůbec jednoduché. Expertní znalosti nejsou reprezentovány pouze holými fakty (tzn. všechno, co se musel expert naučit nazpaměť), ale i vztahy mezi jednotlivými aspekty problému se všemi pravidly i výjimkami. Obvykle tuto činnost provádí specialista – znalostní inženýr. Tento mezičlánek je kritickou slabinou dnešních[kdy?] expertních systémů.[zdroj?] Proto ještě dnes neexistují softwaroví daňoví poradci, účetní, právníci apod. To si děláte srandu. To jako 40 let nedokážou sehnat jednoho člověka?

Strategie usuzování[editovat | editovat zdroj]

Expertní systémy používají při řešení úlohy dvě základní strategie procesu usuzování.

Dopředné řetězení[editovat | editovat zdroj]

Jedná se o usuzování řízené daty (dopředné řetězení, forward chaining).

Expertní systém postupuje tak, že získává potřebná data a na jejich základě se rozhoduje. Používá se při řešení problému zahrnující syntézu (navrhování, konfigurace, plánování apod.).

Příklad

Expertní systém mi může vyřešit problém, co si dám dnes k večeři. Zeptá se, na co mám chuť (má to být něco sladkého, nebo pikantního?), jaké mám zásoby v ledničce (máš kuřecí maso?) a ve spíži (máš rýži?), a podle toho doporučí ten správný recept.

Zpětné řetězení[editovat | editovat zdroj]

Jedná se o usuzování řízené cíli (zpětné řetězení, backward chaining).

Expertní systém postupuje tak, že vybere možný závěr a pokouší se dokázat jeho platnost hledáním dat, které tento závěr podporují. Tato strategie je vhodná pro diagnostické problémy, které mají malý počet cílových hypotéz.

Příklad

Dnes večer přijdu domů a budu mít chuť na Kung-pao. Expertní systém mi potvrdí, zda je to možné (na základě stavu mé ledničky a spíže). Na rozdíl od mechanického porovnání seznamu obsahu ledničky s receptem, expertní systém potvrdí, že je to možné i v případě, že bude chybět nějaká nepodstatná záležitost nebo pokud bude možné nahradit požadovanou surovinu něčím jiným.