|
Expertní systémy - to není jednoduché téma. Vypravili jsme se proto za odborníkem na slovo vzatýám, - Doc. Ing. Petrem Berkou, CSc, zabývajícím se výzkumem na Vysoké škole ekonomické v Laboratoři inteligentních systémů, aby nám pověděl něco o minulosti, současnosti a dalším vývoji této zajímavé technologie. * Pane docente, co jsou to vlastně expertní systémy, jak vznikly? - ES se dají zařadit to širšího kontextu v rámci výzkumu v oblasti umělé inteligence, což je vědní disciplina na rozhraní matematiky, psychologie, filozofie a computer science. Cílem umělé inteligence, tedy aspoň jednoho z techničtěji zaměřených směrů je, zhruba řečeno, konstruovat systémy, které se chovají inteligentně. To znamená, že vykonávají-li činnost, kterou když vykonává člověk, je považována za projev jeho inteligence. První období výzkumu, na rozhraní 50. let se neslo v duchu hledání univerzálního algoritmu, který by byl použitelný pro obecné řešení nejrůznějších úloh. * Obecné řešení úloh jakého typu ? - Bylo to řešení úloh ve stavovém prostoru. Například při hraní šachu. Máme výchozí stav - to je pozice na počátku hry a pak cílový stav nebo množinu cílových stavů. To znamená, že třeba bílý vyhrál nebo množina konkrétních pozic při kterých bílý vyhraje. A z počátečního stavu do cílového stavu je možné se dostat nějakou posloupností přípustných tahů. S tím, že každý tah změní pozici, to znamená, že převede úlohu do jiného stavu a celé se to dá znázornit graficky jako graf nebo strom. A Obecný řešitel, General Problem Solver, tak se ten program jmenoval, vlastně pracoval na úrovni popisu úlohy ve stavovém prostoru. To znamená, že celé řešení nebylo vázáno na konkrétní aplikaci. Šlo tedy o nalezení jakéhosi obecného návodu jak řešit jakoukoliv úlohu. S tím, že tyto algoritmy byly demonstrovány na jednoduchých hříčkách typu hanojské věže nebo na šachových úlohách. To byla první etapa. Zhruba od poloviny 70. let se začal klást důraz na znalosti. Začalo se tehdy říkat, že to podstatné pro inteligenci a inteligentní chování je práce se specializovanými znalostmi. Čili opustila se představa najít jednoduchý univerzální algoritmus. * Začalo tedy jít o speciální oblasti lidské činnosti? - Ano, začal se klást důraz na specializované znalosti expertů. Od toho také vznikl název expertní systémy, eventuelně znalostní systémy. Což do jisté míry můžeme chápat jako synonyma. Čili - expertní systémy se objevily někdy v polovině 70. let. Takový první systém, který o sobě prohlásil, že je expertní byl systém Micyn, vyvinutý na Standfortské univerzitě ve Spojených státech, který na základě rozboru krevních vzorků diagnostikoval infekční onemocnění a doporučoval vhodnou terapii antibiotiky, jako je Streptomycin. Odtud lze také vysledovat původ názvu tohoto systému. * Jaký byl další vývoj? Vlastně celá myšlenka expertních systémů je taková, že místo, aby uživatel (tedy pacient) komunikoval s expertem (lékařem), tak bude komunikovat s takovýmto počítačovým systémem ve kterém jsou uloženy jeho specializované znalosti. * Vlastně elektronický lékař ... - Ano, takový elektronický lékař na disketě... * Což předpokládám, že se nepodařilo dodnes uspokojivě realizovat ... - To předpokládáte správně. Ono je to dobře pozorovatelné i na jiných směrech v oblasti umělé inteligence, nejtypičtěji na neuronových sítích, že když se objevila nějaká nová technologie, tak do ní byla často vkládána neúměrně vysoká očekávání. Po počáteční fázi nadšení následovala fáze zklamání, čili ten boom jaksi opadl a zůstávali jen ti nejvěrnější, kteří se problematikou dále zabývali a posunuli ji potom o nějaký krůček dál, ale ne o tak veký, jak se původně čekalo. Čili původní představa, že expertní systém bude ve vztahu experta vůči uživateli, to znamená, že bude chytřejší než uživatel, se samozřejmě nesplnila. * Takže se z toho vyvinula spíše podpora při rozhodování. - Jak říkáte. Mluví se tedy spíše o Decision Support Systémech a podobně. Možná, že s tím souvisí i trochu změna názvu, že se neříká expertní systémy, což implikuje postavení systému nad uživatelem, ale znalostní systémy, kde se klade důraz na využívání znalostí. Čili mluví se o těchto systémech jako o jakýchsi asistentech, z pohledu uživatele. * Tolik snad k minulosti. Jaká je současnost? Kde se tyto systémy používají, kde našly největší uplatnění? - Oblastí použití expertních systémů je celá řada. Počátek najdeme v oblasti medicíny, kde v prvních letech výzkumu byla většina aplikací z této oblasti. Což může být i trochu s podivem, protože se později ukázalo, že znalosti z lékařského prostředí nejsou příliš vhodné pro implementování v jazykovém systému. Hlavně díky značné provázanosti svých jednotlivých částí. Dá se velice obtížně vymezit nějaký úzký problém, který by šel popsat a vlastně formalizovat. Ono získávání znalostí od expertů není vlastně nic jiného než pokus nějakým způsobem strukturalizovat, formalizovat tyto znalosti, aby byly přenositelné do systému. Toto je zajímavá věc, na které se ukázal jakýsi vedlejší efekt expertních systémů - původní představa byla, že budou skutečně nahrazovat experta a že v každé vísce bude mít každý možnost dostat stejné rady jako by je dával lékař ve specializované klinice. Vedlejší efekt právě souvisí s tím, že znalosti, když se je konečně podařilo z expertů získat (což je samozřejmě klíčový problém konstrukce jakéhokoliv expertního systému, v podstatě dodnes úspěšně nevyřešený v plně šíři), čili, když byly tyto znalosti konečně sebrány a strukturovány, tak se ukázalo, že je velmi vhodné takovéto systémy používat pro výuku, řekněme mediků. Takový systém existuje, jmenuje se Internist. Tedy ten vedlejší efekt expertních systémů je, že se dají používat pro výuku adeptů, aby se stali experty. Kromě medicíny se expertní systémy samozřejmě objevují v celé řadě oblastí - geologii, matematice, právu, a v neposlední řadě v ekonomii. Tuto oblast samozřejmě hodně sledujeme, když jsme tady na Vysoké škole ekonomické. Čili takové věci jako hodnocení klientů, kteří žádají o úvěr v bance, sledování pokusů o defraudaci třeba s platebními kartami, pokusy predikovat vývoj kursů akcií. * Tento systém potom funguje jako takový - řekněme expert, který na základě vstupních parametrů a svých znalostí dokáže dát uživateli nějaký výsledek? - Spíše nějaké doporučení. Mělo by to být chápáno spíše jako doporučení pro uživatele, ne jako závazný příkaz. Čili uživatel může nebo nemusí ten systém poslechnout. To potom musí zvážit sám. Tyto systémy by tedy měly být skutečně chápány jako systémy na podporu rozhodování a ne jako systémy, které rozhodují. Jinak, co se implementace týká, ukázalo se po konstrukci prvního systému, který vznikl jako účelová aplikace na léčbu antibiotiky, že jsou od sebe odděleny znalosti a mechanismus, který tyto znalosti využívá - takzvaný inferenční mechanismus. Toto oddělení je jedním z charakteristických rysů systémů. Dají se tedy konstruovat takzvané prázdné expertní systémy, to znamená systémy, které se dají použít na jakoukoliv aplikaci, která je do nich vložena. Expert vytvoří bázi znalostí a pak ji může zpracovat za pomoci prázdného systému. To bylo v době, kdy byla představa, že tyto systémy budou izolovány a pracovat podobně jako pracuje lidský expert. Tedy v dialogu s uživatelem a nezávisle na další počítačovém okolí. V současné době je spíše trend zabudovávat jednoduché znalostní systémy do rozsáhlejších aplikací. Často znalostní část této aplikace tvoří jen malý, i když důležitý díl celého systému. * Existují tedy prázdné expertní systémy do kterých je možné vložit libovolné znalosti? Ano, jsou to vlastně univerzální prostředky, podobně jako je třeba tabulkový procesor nebo databáze. Hlavní výhodou je, že uživatel se potom soustředí jenom na znalosti a nemusí implementovat část inferenčního mechanismu. To znamená algoritmy, které manipulují se znalostmi. Ale na druhou stranu jej to trochu svazuje, protože takovéto systémy mají standardní vstupy a výstupy a podobně. Je potom obtížné zakomponovat je do rozsáhlejší aplikace. * Existují u nás nebo jsou komerčně dostupné takovéto prázdné expertní systémy? Jsou rozšířeny? - V tuzemských podmínkách vznikla celá řada expertních systémů v rámci výzkumných aktivit na vysokých školách a v Akademii věd. Zájem trvá od počátku 80. let, kdy na Elektrotechnické fakultě ČVUT vznikl FEL EXPERT, na Vysoké škole ekonomické Systém automatizovaných konzultací SAK, v Akademii věd systém EQUANT - to jsme mluvili jen o Praze. Na Slovensku vznikly systémy KODEX, TEX a podobně. S tím, že se jednalo o výzkumné aktivity. Čili tyto systémy nebyly standardně prodávány jako software, tak jak to známe dnes. V rámci spolupráce s praxí tu a tam vznikne nějaká aplikace. * Jaké aplikace takto vznikly? Zde je nutno odlišit aplikace, které vznikly v rámci společného výzkumného úkolu, ale nebyly dále šířeny, kterých je v podstatě drtivá většina. Například systém SAK sloužil v rámci spolupráce s jinými katedrami školy k vývoji asi dvou nebo tří aplikací. Hodnocení práce řešitelského týmu, to byla spolupráce s katedrou psychologie, oblast ekonometrie - volba vhodné matematické optimalizační metody na základě popisu úlohy. Systém z Elektrotechnické fakulty byl použit na přípravu lékařské výroby - čistě účelově pro partnerskou organizaci. Samozřejmě ve světě existuje celé řada komerčních expertních systémů - těch prázdných. Zde bych předeslal, že se dají koupit i ty naplněné, ale cena je řádově stokrát, tisíckrát vyšší. Nejjednodušší, prázdné expertní systémy se dají pořídit v ceně kolem 100 dolarů. Rozsáhlejší vývojové prostředí - prostředí pro tvorbu nějaké aplikace, čili prázdný systém, obalený nějakým editorem a podobně může také stát řádově tisíce dolarů. Na světovém trhu existuje celá řada prázdných expertních systémů pro různé platformy - od osobních počítačů až po sálové počítače. V kategorii osobních počítačů pro DOS nebo Windows ty nejjednodušší, i když velice rozšířené systémy například VP Expert, EXSYS, M1, KAPPA PC, NEXPERT OBJECT. Řada z nich dnes má - samozřejmě - i své webowské stránky. * Pro čtenáře Telnet by bylo zajímavé získat od Vás seznam... - Ten Vám mohu dát (je uveden na konci článku - pozn. aut.). U jednoho z jich je možné spustit demo přímo z webovské stránky, kde netscape klient funguje vlastně jako front-end k tomuto systému, který je někde v Americe. Tyto systémy je možné koupit nebo objednat také v tuzemsku. Pak jsou také firmy, které se zabývají vývojem expertních systémů na klíč - to znamená naplňují aplikace. * Tam potom musí vzniknout i projektový tým... - Ve spolupráci s lidmi ze zadávající organizace, protože, jak jsem už vlastně naznačil, úspěch systému stojí a padá s expertem z té dané oblasti, kterého obvykle nemá softwarová firma, jež aplikaci vyvíjí. Musí proto spolupracovat s expertem z příslušné oblasti, což je věc velmi dlouhodobá a časově náročná. Nemůžeme si představit, že expert okamžitě naformuluje bázi znalostí, která se dá použít a bude fungovat bezchybně. Aplikace vzniká iterativní formou neustálých seancí experta s lidmi, kteří aplikaci vyvíjejí a kterým se říká znalostní inženýři. Je to profese, která se má starat o kontakt s expertem, získávat od něj znalosti a potom plnit systém a vyvíjet danou aplikaci. Neustálým laděním a zpřesňováním upravovat systém do podoby, jak si expert přestavuje. * To musí být pěkný kus práce ... - Uvádí se, že taková záležitost se může protáhnout i na léta. * Pak je zřejmě nutné průběžně udržovat znalosti na současné úrovni. - Samozřejmě. Neznamená to, že když je báze jednou odladěna, že se o ni již nemusíme starat. Po celou dobu používání musí být báze znalostí aktualizována - příkladem, který se často uvádí v učebnicích je jeden z nejznámějších systémů, který firma Digital Equipment používá pro návrh konfigurací svých počítačů. Když přijde zákazník a chce si koupit počítač, tak firma za pomoci tohoto systému od zákazníka zjistí jeho finanční možnosti, předpokládané použití, zaměření úloh a potom doporučí vhodnou sestavu. V souvislosti s uváděním nových komponent na trh je potom zapotřebí bázi neustále aktualizovat. Údajně je zapotřebí obměnit ročně asi třetinu báze, aby byla aktuální. Jiný příklad by mohla být aplikace, která by diagnostikovala kontraindikace u léků, do které by bylo zapotřebí doplňovat všechny nově vyvinuté léky. Čili je to otázka dosti časově náročná a hledají se možnosti jak tento "Knowledge Acqusition Bottleneck" překlenout. Rýsují se v podstatě dvě cesty. Jedna je vytvořit standardizovanou metodologii pro tvorbu těchto znalostních aplikací - této metodologii se říká Knowledge Acqusition Design. * Jedná se tedy o metodu, jak co nejrychleji získat znalosti od experta? - Přesněji řečeno - jak tyto znalosti modelovat v nějaké aplikaci! Existují samozřejmě také knihy, které popisují i z psychologického hlediska jakým způsobem se bavit experty, jak s nimi komunikovat. Vlastně v psychologii se hledá inspirace pro způsob získávání znalostí přímo od expertů. Tato metoda vznikla v Holandsku, a v Evropě se začala chápat jako standard pro tvorbu znalostních systémů. Samozřejmě, že v Americe mají opět trochu jiný standard. Druhou cestou je - pokusit se získat znalosti automatizovaně formou strojového učení. * Myslíte, že u první linie - standardizovaného postupu, tento postup pomůže při procesu získávání znalostí, nebo tento proces nějak výrazně zefektivní? - Na začátku každého projektu je poměrně dlouhá přípravná fáze, kdy potřeba formulovat terminologii v dané oblasti. V dalších fází se může výrazně urychlit a zprůhlednit celý proces návrhu systému. V této metodologii se klade velký důraz právě na průhlednost celého procesu. Už to není tak, že nějaký znalostní inženýr, často autor systému, začal přímo z vody implementovat nějakou bázi a až v průběhu implementace zjistil, že to nefunguje, že je tam potřeba něco změnit a vlastně jako sám voják v poli udělal celou aplikaci, do které už nikdo jiný neviděl. Metodologie se právě orientuje na podporu týmů, které se budou podílet na aplikaci. * A jak to vypadá s automatizovaným získáváním znalostí? Předpokládám, že stále nejsme ve fázi, že by si počítač přečetl knížku a byl schopen z ní získat znalosti na nějaké použitelné úrovni? - To zatím ještě ne, ani nevím jestli se k tomu někdy dopracujeme. Zatím je možné strojové získávání znalostí pouze ze strukturovaného textu. * Počítače tedy zatím nejsou schopné získávat znalosti z lineárního textu. To už se vlastně pomalu dostáváme k otázce - kam myslíte, že bude směřovat vývoj v tomto oboru? Budou se systémy dále specializovat, nebo se spíše půjde cestou, že aplikace budou zasahovat čím dál tím širší oblasti lidské činnosti? - Z toho, jak vývoj probíhá usuzuji, že budou vznikat poměrně menší znalostní systémy zasazené do vyšších celků určených pro nějaké specializovanější úlohy. Čímž ale neříkám, že to budou úlohy vymezené jen úzkému okruhu uživatelů. Jakési první vlaštovky v oblasti umělé inteligence se objevují třeba i help-systému u Windows 95. Tento systém se může i sám doučovat, je ovšem založen na trochu jiném principu než klasické expertní systémy, tuším na Bayesovských sítích. Jakési prvky těchto systémů se mohou objevovat na takovýchto specializovaných úlohách pro velmi široký okruh uživatelů. Typicky diagnostika, proč nějaké zařízení nefunguje, což může být kupříkladu, když nefuguje tiskárna. Tedy help, proč zařízení nefunguje by se mohl realizovat za pomoci metodologie expertních systémů a mohl by být rozšířen mezi lidmi zabývajícími se počítači, aniž by věděli, že je tam použita znalostní technologie. To vlastně je další doporučení řady autorů - skrýt před uživatelem, že se jedná o znalostní technologii. Protože přece jenom běžný uživatel nemá k těmto věcem takovou důvěru jako k běžným textovým editorům nebo tabulkovým kalkulátorům. Když se dělá úloha v tabulkovém kalkulátoru, tak jsou všechny výpočty verifikovatelné, každý se může podívat, že jsou správně zadány a spočítány. U znalostí je obtížné říci, že jsou v pořádku. Jsou postupy a návody jak prověřit, že báze funguje, ale obvykle se to dělá tak, že se provede cvičná konzultace a když se systém chová rozumně, tak jej prohlásíme za fungující. A ještě zpátky ke dvou liním získávání informací - první, kde jsou znalosti získávány od experta a druhá - strojové učení, kde jsou nějaká data už vyhodnocená - např. údaje o pacientech nebo klientech banky. Zatím se obě linie vyvíjejí poměrně odděleně - to znamená, že buď vznikají systémy, kde jsou znalosti získávány od expertů nebo systémy, kde jsou znalosti získávány z dat, což u člověka tak není. Takový typický expert se ve škole naučil něco z učebnic. To jsou znalosti, které jsou do něj vloženy jakoby zvenku. Pak, když pracuje v praxi, tak získává vlastní zkušeností ty nejcennější znalosti pro své rozhodování. Domnívám se, že se oba směry budou postupně přibližovat a že budou vznikat systémy jako se již dnes objevují tzv. hybridní systémy, kde se kombinuje několik těchto technologií. Budou tedy vznikat systémy, kde něco bude od experta, něco se systém doučí. Asi to nebudou příliš rozsáhlé aplikace, které by byly začleněné do širšího kontextu pro řešení širších potřeb uživatele. * Máme se tedy na co těšit a uvidíme, kam se celá tato technologie bude vyvíjet. Doufejme, že se jednoho dne objeví takoví pomocníci pro řešení běžných lidských problémů - například domácí lékař, jak jsme uvedli na začátku. - Domácí lékař možná ne. Co je nejobtížnější, je vložit do expertního systému obecné znalosti - jak se říká common sense. Něco takového, když si malé dítě sáhne na rozpálená kamna, tak to udělá jen jednou a pak si to zapamatuje. Běžné učící se systémy by ale potřebovaly více takových příkladů, aby zjistily, že pokaždé, když si sáhnou na kamna, tak že se spálí. Pane docente, děkuji Vám za rozhovor. Petr Šídlo Doc. Ing. Petr Berka, CSc. absolvoval v letech 1978-1983 obor technická kybernetika na elektrotechnícké fakultě ČVUT. Po ukončení studií nastoupil do oddělení biomatematiky Fyziologického ústavu ČSAV. Od roku 1988 pracuje na VŠE, nejprve na katedře informačního a znalostního inženýrství (dříve VTI). K 1.7.1996 přešel do nově vytvořené Laboratoře inteligentních systémů. Jeho vědecko-výzkumné aktivity jsou zaměřeny zejména na oblast strojového učení, získávání znalostí a expertních systémů. Podílí se na vývoji expertního systému SAK a systému pro získávání znalostí z dat KEX. Je spolukoordinátorem českého uzlu v rámci ESPRIT projektu Network of Excellence in Machine Learning. Seznam webovských stránek expertních systémů a firem, které se jimi zabývají, získaných v průběhu rozhoru: EXSYS http://www.exsysinfo.com/ KAPPA PC http://www.intellicorp.com/ LEVEL 5 http://www.L5r.com/ NEXPERT OBJECT http://www.neurondata.com/ TEKNOWLEDGE - systém M4 http://www.teknowledge.com/ GENSYM.systém G2 http://www.gensym.com/ Další zajímavé informace můžete také získat na KIZI (katedře informačního a znalostního inženýrství) VŠE: http://alfa.vse.cz/
|