Expertní systém
Author
Albert FloresExpertní 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í. +more 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
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, * 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ů
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. Výpočet je opakovatelný. +more * Dokáže svůj výrok jednoznačně zdůvodnit. Může také vypsat postup odvozování. Postup a jeho výpis nemusí být v uživatelsky přívětivé formě, např. když ES zpracovává pravděpodobnostní a neurčité informace. Tuto funkcionalitu implementuje zdůvodňovací komponenta a ta si pamatuje potřebné informace, např. postup odvozování. * Pokud je potřeba více expertů, stačí je pouze kopírovat. * Umožňuje hypotetické odvozování, tj. odpovědi na otázky typu "Co se stane, když. ". Výpočet je opakovatelný za jiných podmínek. * Může integrovat zkušenosti více expertů. I když se oni neshodnou. * Dá se vylepšovat znalostní báze (i samostatně, bez zásahu do řídícího mechanizmu). Případně se může i učit. Zpracované případy se mohou ukládat a případně vhodnou formou integrovat do systému. * Expertní systém je schopen používat jednotnou terminologii. * Může radit i vzdáleně, může za ním být velký (i cloudový) 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 ale složitý.
Nevýhody expertních systémů
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 - znalostního inženýra. * Lidský expert obvykle nedokáže podrobně popsat všechny aspekty, které se podílí na jeho rozhodnutí. +more * 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.
Předcházející nevýhody se týkaly hlavně problémů s přípravou báze dat. Další nevýhody jsou:
* Dělá stále stejné chyby. Když se učí, tak dělá stále jiné chyby. +more A bázi dat je třeba udržovat, obvykle. * Když v oblasti nepracují lidé, tak se jejich znalosti ztrácí a co nebylo převedeno do ES (nebo bylo převedeno chybně či neúplně), to se ztratí úplně. * ES neuvažuje jako člověk a nemá selský rozum. V principu nerozumí doméně. Vysvětlovat svoje rozhodnutí a postup může pouze tím způsobem, jak byl naprogramovaný. Může obsahovat "černé skříňky", např. neuronové sítě nebo klasifikátory, naučené z dat, které nedovolí odvození vysvětlit, zkontrolovat a případně opravit. Viz i následující bod. * 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. Formát nemusí být dostatečně obecný.
Rozdíl mezi expertním systémem a jiným počítačovým programem
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. +more Čá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. +more 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. Řídící mechanismus je nezávislý, a tak nový expertní systém znamená vytvoření nové báze znalostí. +more 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 současných expertních systémů. Kritickou slabinou bývají také ale sami doménoví experti, neboť nemusí umět znalosti předat, nebo to nemusejí chtít. Proto ještě dnes neexistují softwaroví daňoví poradci, účetní, právníci apod.
Vznikly i tzv. prázdné expertní systémy. +more Jsou to programy, které obsahují odvozovací komponentu a další softwarové části, ale neobsahují bázi znalostí. Jsou schopny pracovat s různými bázemi znalostí z různých domén.
Strategie usuzování
Metody zaměřené na návrh a tvorbu expertních systémů, zejména na modelování bází znalostí, se souhrnně označují jako znalostní inženýrství. Expertní systémy používají při řešení úlohy dvě základní strategie procesu usuzování.
Dopředné řetězení
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. +more).
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. +more), 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í
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). +more 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.