Ako pracujú expertné systémy

Člověk |

Prostredie, v ktorom pôsobia organizácie, sa stáva čoraz zložitejším a komplexnejším. K efektívnemu rozhodovaniu sú potrebné čoraz lepšie znalosti, a to nielen "učebnicové", teoretické, ale najmä praktické, získané skúsenosťou a dlhodobou praxou. Práve táto skupina znalostí je vlastná ľuďom, ktorých nazývame experti. Je žiadúce transformovať znalosti expertov do perzistentnej, znovupoužiteľnej, uchovávateľnej a odovzdávateľnej formy. Jednou možnosťou takejto reprezentácie vedomostí sú expertné systémy.




Prostredie, v ktorom pôsobia organizácie, sa stáva čoraz zložitejším a komplexnejším. K efektívnemu rozhodovaniu sú potrebné čoraz lepšie znalosti, a to nielen "učebnicové", teoretické, ale najmä praktické, získané skúsenosťou a dlhodobou praxou. Práve táto skupina znalostí je vlastná ľuďom, ktorých nazývame experti. Je žiadúce transformovať znalosti expertov do perzistentnej, znovupoužiteľnej, uchovávateľnej a odovzdávateľnej formy. Jednou možnosťou takejto reprezentácie vedomostí sú expertné systémy.
Expertné systémy sú počítačové programy, ktoré simulujú rozhodovaciu činnosť experta pri riešení netriviálnych úloh. Používajú pri tom vhodne zakódované znalosti prevzaté od človeka–experta (tzv. bázu znalostí) a údaje o konkrétnej riešenej úlohe (tzv. bázu údajov). Expertný systém by mal svojou činnosťou dosiahnuť kvalitu rozhodovania vo zvolenej problémovej oblasti na úrovni experta.
Jedným dychom je však potrebné dodať, že nie vždy ide pri implementácii expertného systému o úplné odstránenie ľudského faktora z procesu rozhodovania; niekedy expertný systém iba odbremeňuje experta od rutinných rozhodovacích procesov a tak mu poskytuje viac priestoru, aby sa mohol venovať špecifickým črtám problému, ktoré v expertnom systéme nie sú zohľadnené, a tým expertný systém umožňuje zvýšiť kvalitu rozhodovania ľudského experta.

História

Expertné systémy sa prvýkrát objavili na prelome 70. a 80. rokov. Dôraz sa vtedy kládol na flexibilitu a znovupoužiteľnosť vytvorených softvérových implementácii. Systémy boli veľmi všeobecné a mohli byť použité v rozličných problémových oblastiach. Neskôr bolo kvôli zvýšeniu efektivity potrebné zahrnúť do ich implementácie rôzne problémovo závislé informácie, čím sa ich všeobecnosť znížila.
V súčasnosti sa upúšťa od implementácie expertných systémov pre široké použitie, implementujú sa skôr jednoúčelové (vyhradené, angl. dedicated) expertné systémy, ktoré sú často súčasťou iných, komplexnejších systémov (tzv. vnorené, angl. embeded systémy).
Dôležitú úlohu najmä pre výskum expertných systémov a implementáciu rôznych pilotných projektov mali tzv. prázdne expertné systémy. Jedná sa o expertné systémy bez problémovo závislých častí. Poskytovali mechanizmus na rýchle a pohodlné vytvorenie potrebnej bázy znalostí a napojenie na bázu údajov.

Báza znalostí a údajov

Expertné systémy sa svojím charakterom, architektúrou i vlastnosťami líšia od konvenčných programov pre vedecko-technické výpočty. Zatiaľ čo v konvenčných programoch sú znalosti špecialistov "roztrúsené" v jednotlivých častiach algoritmu, pri expertných systémoch sú znalosti experta vyjadrené úplne explicitne v podobe bázy znalostí. Oddelene od znalostí je určený spôsob manipulácie s týmito znalosťami – inferenčný (odvodzovací) mechanizmus.
Báza znalostí obsahuje znalosti experta alebo expertov potrebné k riešeniu zvoleného problému. Zachytáva znalosti od najzákladnejších, "učebnicových" až po špeciálne heuristiky a neraz iba tušenia získané skúsenosťou a dlhodobou praxou, pre ktoré často neexistuje lepšie vysvetlenie ako to, že "niekedy dobre fungujú" a expert by si ich ani nedovolil publikovať. Znalosti experta nemajú statický charakter, ale postupne sa môžu vyvíjať a rozrastať. Prirodzenou požiadavkou kladenou na bázu znalostí expertného systému je vysoká modularita, ktorá umožní bázu znalostí upravovať a dopĺňať.
Riešiť konkrétnu úlohu s pomocou expertného systému znamená aplikovať v ňom uložené znalosti na informácie o konkrétnej úlohe. Množinu všetkých údajov relevantných k danému prípadu nazývame – narozdiel od bázy znalostí – bázou údajov. Báza údajov sa počas spracovávania úlohy mení. Na začiatku riešenia úlohy obsahuje iba predvolené (defaultné) fakty o všeobecnej úlohe v danej problémovej oblasti, ktoré sa dajú vopred predpokladať. Tieto údaje sa modifikujú na základe zistených údajov o riešenej úlohe – upresňujú sa, pridávajú sa nové odvodené údaje a vyraďujú sa údaje, ktoré sa ukázali ako neplatné.
Zadávanie údajov o konkrétnej úlohe môže byť riešené formou odpovede používateľa na požiadavku systému (tzv. dialógový režim) alebo výberom z vopred pripravenej databázy faktov o úlohe (tzv. dávkový alebo batch režim). Niekedy je vhodné požadované údaje získať ich priamym meraním, čím sa odstráni potreba interakcie s používateľom.

Odvodzovací mechanizmus

Srdcom každého expertného systému je odvodzovací alebo inferenčný mechanizmus. Tento mechanizmus určuje spôsob využívania znalostí z bázy znalostí a ich aplikácie na údaje v báze údajov. Od kvality inferenčného systému závisia vlastnosti celého expertného systému. Báza znalostí je spravidla implementovaná ako množina pravidiel tvaru

AK PLATÍ [podmienka] POTOM PLATÍ [záver].

Spravidla možno v jednom okamžiku činnosti expertného systému aplikovať viacero odvodzovacích pravidiel; vzniká tzv. konflikt výberu pravidiel. Inferenčný mechanizmus určuje, ktoré z pravidiel sa v danej chvíli použije (hovorí sa o "odpálení pravidla"). Výber pravidla sa môže riadiť viacerými spôsobmi. Najjednoduchším spôsobom určenia použitého pravidla je vopred stanovené poradie pravidiel (týmto spôsobom sa napr. uskutočňuje výber inferenčných pravidiel, ak je expertný systém implementovaný v programovacom jazyku ProLog).
Sofistikovanejší spôsob výberu inferenčného pravidla môže byť založený na očakávanej hodnote informačného zisku pre jednotlivé pravidlá: vždy sa vyberá to pravidlo, od ktorého vyhodnotenia sa očakáva najväčší informačný zisk. Naopak tento spôsob výberu môže byť potlačený napr. pomocou metainformácií (t.j. "informácií o informáciách"), ktoré môžu určovať cenu overenia platnosti daného pravidla.
Ako príklad môže byť expertný systém pre diagnostiku ochorenia, v ktorom môže byť pre účely diagnózy uprednostnené niekoľko síce menej priekazných (ale lacných a rýchlych) vyšetrení pred jedným vysoko odborným, ale veľmi drahým vyšetrením. Existujú aj ďalšie heuristiky na výber použitého odvodzovacieho pravidla, zohľadňujúce aktuálnosť údajov (uprednostňuje sa použitie aktuálnejších údajov) alebo históriu predtým použitých pravidiel (uprednostňujú sa pravidlá čo najviac odlišné od už predtým použitých pravidiel).
Ak ani po aplikovaní týchto heuristík nie je stále možné jednoznačne vybrať jedno pravidlo pre "odpálenie", možno analyzovať množinu pravidiel stále prichádzajúcich do úvahy na aplikáciu a z nich vybrať čo možno najmenej všeobecné pravidlo, alebo – v krajnom prípade – vybrať zo zostávajúcej množiny odvodzovacích pravidiel náhodné pravidlo.

Vysvetľovací mechanizmus

Expertné systémy majú ešte jednu dôležitú črtu, ktorá zatiaľ nebola spomenutá. Je to vysvetľovací mechanizmus, ktorý je v ktorejkoľvek fáze spracovania úlohy schopný podať používateľovi informáciu o tom, čo už bolo odvodené, čo je aktuálnym cieľom odvodzovania (t.j. vysvetlenie, "prečo bol používateľ požiadaný práve o túto informáciu") a ako bol odvodený niektorý zo záverov expertného systému.
Vysvetľovací mechanizmus je počas činnosti expertného systému používaný len veľmi zriedkavo, ale pocit jeho existencie zvyčajne značne zvyšuje dôveru používateľov k systému. Má nenahraditeľnú úlohu pri návrhu, úpravách, kontrole a ladení systému. Pomocou neho ľudský expert testuje činnosť systému a kontroluje spôsob, akým systém došiel k svojím záverom.

Neurčitosť systému

Mnoho údajov o reálnom svete sa nedá vyjadriť presne. Expertný systém sa musí vedieť vysporiadať hneď s niekoľkými druhmi neurčitostí. Prvým druhom je neurčitosť v báze znalostí, spôsobená domnienkami a tušeniami experta o vzťahoch platiacich v danej problémovej oblasti a/alebo znalosťami platiacimi iba v obmedzenom rozsahu. Neurčitosť v báze údajov vyplýva z toho, že ani používateľ expertného systému nie je vždy schopný odpovedať na jeho otázky kategoricky "áno" alebo "nie", ale dokáže vyjadriť určitú mieru svojho presvedčenia o platnosti alebo neplatnosti určitého faktu (odpoveď "asi áno", "takmer isto nie", "možno" a pod.).
Na danom mieste je potrebné poukázať na rozdiel chápania neurčitosti v expertných systémoch a vo fuzzy systémoch. Pokiaľ neurčitosť v expertných systémoch je založená na presvedčení o miere platnosti či neplatnosti určitého faktu alebo na miere všeobecnosti platnosti údajov v báze znalostí, neurčitosť vo fuzzy systémoch vychádza z prirodzenej vágnosti pojmov ako sú "vysoký", "rýchly", "vzdialený" a pod. Fuzzy systémy umožňujú výpočtovej technike pracovať s pojmami, ktoré sú človekom bežne používané a v ľudskej komunikácii majú veľkú informačnú hodnotu.
Našťastie sa tieto dve spomínané chápania neurčitosti môžu kombinovať; niekedy sa vágnosť uvádza ako jeden z typov neurčitosti, s ktorou dokážu expertné systémy pracovať. V takomto prípade sa hovorí o tzv. fuzzy expertných systémoch; tieto sú jedným z príkladov veľmi úspešnej kombinácie metód symbolickej ("klasickej") a subsymbolickej umelej inteligencie.
Z konkrétnych metód práce s neurčitosťou v expertných systémoch treba spomenúť najmä Bayesovskú pravdepodobobnostnú metódu, metódu Dempster-Sheffera a tzv. intuitívny prístup založený na algebraickej teórii.

Implementácia

Najťažším krokom implementácie expertného systému je tvorba bázy znalostí. Získavaním znalostí od experta sa zaoberá znalostné inžinierstvo. Kľúčovým faktorom, na ktorom môže proces získavania znalostí zlyhať, je porozumenie a dobrá komunikácia medzi expertom a znalostným inžinierom, implementujúcim znalosti experta do výpočtového systému.
Expert poskytujúci potrebné informácie pre budovanie expertného systému má často len veľmi slabé alebo dokonca žiadne znalosti o výpočtovej technike. Je úlohou znalostného inžiniera preniknúť do danej problematiky, ktorej sa vyvíjaný expertný systém dotýka, natoľko, aby mohol s expertom komunikovať v jeho odborných pojmoch, usmerňovať ho pri poskytovaní informácií a sám sa pýtať na danú problematiku.
Existuje veľmi mnoho metód získavania znalostí od experta a ich popis je nad rámec tohto článku; znalostné inžinierstvo má však túto problematiku dobre zvládnutú a metódy na interakciu znalostného inžiniera s expertom sú rozpracované veľmi podrobne. Pri návrhu bázy znalostí sa v hojnej miere používajú aj metódy tzv. strojového učenia, ktorých cieľom je opäť odbúranie ľudského faktora z procesu návrhu expertného systému a tým zamedzenie prieniku subjektívnych dojmov do implementovaného systému.

Hodnotenie

Činnosť expertného systému je možné hodnotiť z viacerých pohľadov. Odhliadnuc od pamäťovej a časovej náročnosti činnosti expertných systémov, ktoré sú skôr závislé od efektívnosti ich programovej realizácie a rozsahu riešených úloh, existuje niekoľko veličín, ktorými možno hodnotiť návrh systému, efektívnosť jeho manipulácie so znalosťami a kvalitu bázy znalostí.
Verifikácia testuje samotnú bázu znalostí. Detekuje konzistentnosť pravidiel, ich neprotirečivosť, možnosť vzniku slučiek pri odvodzovaní a pod. Pri verifikácii bázy znalostí sa odstraňujú nadbytočné pravidlá, pravidlá obsahujúce nesplniteľné podmienky a testuje sa syntaktická správnosť pravidiel. Zároveň sa zisťuje, či je expertný systém schopný reagovať na extrémne hodnoty vstupných údajov.
Validáciou sa overujú závery expertného systému. Porovnávajú sa závery experta a expertného systému pre rôzne modelové situácie. Vyhodnocuje sa nielen správnosť záveru poskytnutého expertným systémom, ale aj spôsob, akým expertný systém k tomuto záveru došiel – pri tejto činnosti sa hojne využíva už spomínaný vysvetľovací mechanizmus expertného systému.
Dôležitou mierou úspešnosti implementácie expertného systému je jeho prijatie používateľom. Zbytočne bude expertný systém poskytovať veľmi dobré závery, keď bude jeho používanie veľmi zložité a náročné na čas tak pri zaučení ako aj pri používaní. Z hľadiska používateľa je dôležité, aby práca zo systémom bola nenáročná a ľahko pochopiteľná. Vhodné je, aby systém vedel korigovať najčastejšie používateľské chyby. Je nutné poznamenať, že expertné systémy je možné používať aj na výučbu nových expertov, kedy sa pracovníci za pomoci vysvetľovacieho mechanizmu systému oboznamujú so spôsobom vyhodnocovania vstupných údajov a s možnými závermi, ktoré z nich môžu vyplývať.
Po rozmachu expertných systémov v 80. rokoch minulého storočia je badať citeľný útlm v tejto oblasti výskumu a vývoja, spôsobený sklamaniami vyplývajúcimi s prehnaných očakávaní od tejto technológie. Expertné systémy sa však stále môžu uplatniť, pokiaľ sa bude na ich možnosti pozerať triezvo, bez prehnaných očakávaní a budú sa hľadať cesty na ich vhodné spojenie s inými technológiami, možno diametrálne odlišnými. Čitateľa, ktorý by sa o činnosť a fungovanie expertných zaujímal hlbšie, odporúčam na knihu Vladimíra Maříka a kolektívu "Umělá inteligence 2" (Academia, Praha 1997), v ktorej je problematika expertných systémov rozpracovaná dostatočne podrobne, ale pútavo a čitateľne aj pre laika v odbore umelej inteligencie.








Související články




Komentáře

Napsat vlastní komentář

Pro přidání příspěvku do diskuze se prosím přihlašte v pravém horním rohu, nebo se prosím nejprve registrujte.