Prostředky umělé inteligence Motto: Umělá inteligence je věda o vytváření strojů nebo systémů, které budou při řešení určitého úkolu užívat takového postupu, který - kdyby ho dělal člověk - bychom považovali za projev jeho inteligence. (Minsky, 1967) Umělá inteligence se zabývá tím, jak počítačově řešit úlohy, které dnes zatím zvládají lidé lépe. (Rich, Knight, 1991) Umělá inteligence je vlastnost člověkem uměle vytvořených systémů vyznačujících se schopností rozpoznávat předměty , jevy a situace, analyzovat vztahy mezi nimi a tak vytvářet vnitřní modely světa, ve kterých tyto systémy existují, a na tomto základě pak přijímat účelná rozhodnutí, za pomoci schopností předvídat důsledky těchto rozhodnutí a objevovat nové zákonitosti mezi různými modely nebo jejich skupinami. (Kotek a kol., 1983) © 2004, doc. RNDr. Ing. Tomáš Březina, CSc. Hlavní cíle UI ■ Realizace usuzováni. Z daných obecných znalostí a konkrétních faktů se vyvozují určité důsledky. Např. Při daných znalostech nemocí a příznaků zjistit na základě informací o symptomech diagnózu konkrétního případu. Nejobtížněji realizovatelný typ usuzování je založen na tom, co je běžně nazýváno "zdravý rozum". ■ Realizace plánováni. Z daných znalostí plus přítomné situace plus žádoucího cíle se rozhoduje jak cíle dosáhnout, tj. jak použít usuzování zaměřené na cíl. Plánování a usuzování se překrývá, ale zhruba řečeno, usuzování hledá odpověď na "Co ?" a plánování na otázku "Jak ?". Např. "Jaký druh motoristy jsem ?" proti "Jak se mohu stát motoristou ?" • Realizace učeni. Nabývání znalostí (učení) je ústřední otázkou, protože znalostí musí být nabyto před tím, než je jich užito. V některých situacích je možné vestavět znalosti do systému. V jiných je to ale neproveditelné (nebo nepřijatelné). Potom se požaduje, aby systém souvislým způsobem opakovaně rozšiřoval svou bázi znalostí získáváním nových faktů a integroval je s předchozími znalostmi, často s použitím abstrakce. Např. když systém přijme různá fakta týkající se "židle", je žádoucí abstrahovat pojem "židle". Hlavní nástroje UI (znalosti o znalostech) Znalost může být reprezentována ■ deklarativně (deklarativními příkazy, většinou konkrétní znalosti) ■ procedurálně (procedurálními pravidly, většinou obecné znalosti). Rozdíl nemusí být ostře ohraničený, ale je stále ještě patrný. Deklarativní znalosti jsou uloženy v tzv. bázi znalostí. Znalosti o znalostech poskytují nástroje pro manipulaci s bází znalostí: ■ Nástroje organizace znalostí. Datové struktury a algoritmy zabezpečující organizaci báze znalostí. ■ Nástroje zpracování znalostí. Metody pro získání nové znalosti z báze znalostí; např. použitím usuzování nebo plánování. ■ Nástroje nabývání znalostí. Metody zahrnující nové znalosti do báze znalostí nebo metody, které modifikují nástroje ("učení"). Hranice mezi zpracováním a nabýváním není ostrá. Vymezení umělé inteligence (UI) UI bývá obvykle vymezována ze 3 odlišných hledisek. Z hlediska: • cílů, m metoda nástrojů a ■ dosažených úspěchů / neúspěchů. Některé části UI jsou především definovány cíly (např. strojové učení), jiné metodami (např. neuronové sítě). Úspěchy / neúspěchy dávají obraz o rozvoji dotyčné oblasti. Další cíle UI Hlavní cíle jsou obecné a vztahují se k většině oblastí UI. V UI však existují i dostatečně mohutné konkrétnější cíle. Ačkoliv čerpají z výsledků obecných cílů, jsou to relativně samostatné části UI, se svými konkrétními úlohami a nástroji. ■ Porozumění jazykům a jejich používání, samozřejmě se úzce vztahuje k usuzování a učení, ale zasluhuje si zvláštní kategorii. V jazyku hraje významnou roli "zdravý rozum". Zdravý rozum je naneštěstí krajně neuchopitelné téma, které, jak se zdá, vyžaduje úctyhodnou bázi znalostí. Pokusy porozumět mluvené řeči musí navíc překonávat další komplikace. ■ Zpracování vizuálních vstupů, vidění je pouze jedním typem senzorického vstupu, který musí být zpracován, ale je zdaleka nejsložitější. Dokázat získat užitečné informace z vizuálního vstupu je velmi těžké. ■ Aplikace vmechatronice (robotíce): mechatronika propojuje UI s inženýrstvím. Kromě nejjednodušších průmyslových případů jde o velmi komplikované záležitosti. Metody UI používané v robotíce musí poskytovat výsledky v reálném čase a v případě autonomních soustav nesmí vyžadovat nadměrné počítačové zdroje. Hlavní nástroje UI (znalosti o znalostech) V UI je ústřední otázkou reprezentace znalostí. Tvar deklarativních znalostí vymezuje, co můžeme z báze znalostí získat a současně jak snadno lze s bází znalostí manipulovat. Deklarativní znalost je sice v UI zřídka chápána jako "pouhá data", ale nástroje UI lze členit i podle souvislostí, jakých datových struktur používají pro reprezentaci znalosti: • Prohledávací prostory. Relativně nestrukturované prohledávací prostory jsou přitažlivé, protože téměř nepodléhají omezením. Obrovská spotřeba výpočetních zdrojů je činí použitelnými pouze pro řešení nejjednodušších problémů. ■ Matematická logika: Matematická logika dovoluje reprezentovat fakta o světě ve zpracovatelném tvaru. ■ Reprezentace podobné logice: omezení reprezentací postavených na matematické logice motivují alternativní přístupy. Některé (např. pravidlový systém, sémantické sítě) vycházejí z logiky, jiné (např. usuzování na základě analogií, případové usuzování) používají jiné metody. • Numerická informace: Numerická informace může hrát významnou úlohu v popisu neurčitostí světa (např. "Je 40 % naděje, že bude pršet") Úspěchy/Neúspěchy Některé úspěchy: m Programová paradigmata: byla vyvinuta jako nástroje pro přípravu nástrojů UI: o Objektově orientované programování, o Funkčně orientované programování: tvoří základ LISPu, o Logické nebo deklarativní: tvoří základ PROLOGu. ■ Fuzzy regulátory. "Fuzzy logika" vede na stabilnější a flexibilnější regulátory. ■ Programy hraní her. Asi od roku 1995 vítězí nejlepší šachové programy nad lidskými hráči (s výjimkou těch nejlepších). Programy na "piškvorky" dosáhly podobné úrovně (jeden z nich porazil mistra světa). ■ Expertní systémy. V posledních letech se komerčně velmi rozšířily. K napsání expertního systému šitého na míru se stále častěji používá speciálního účelového software. ■ Jazyková rozhraní. Některé programy disponují uživatelsky přátelštějšími rozhraními založenými na omezené schopnosti porozumět lidskému jazyku. ■ Diktátovésystémy. Začínají se objevovat systémy schopné přepisovat mluvenou řeč. Prozatím mají omezený slovník a jsou pomalé. Úspěchy/Neúspěchy Některé neúspěchy: • Přehnaný optimismus: Příčiny mnoha zklamání vznikly už v 50. letech -počátečních letech UI, kdy bylo vše "téměř na dosah". V 80. letech došlo k mírnému oživení optimismu díky znovuobjevení neuronových sítí - přístupem inspirovaným konekcionistickým modelem biologických neuronových systémů. • Programy hraní her. Dosavadní výtěžnost studia her je prozatím nízká. Pozornost bývá zaměřena spíše na dílčí zlepšení než na zcela nové myšlenky. Vývoj ad hoc. Mnoho výzkumů bylo a je založeno spíše na ad hoc metodách než na pevných základech. Systémy UI (zobecněné expertní systémy) Původní vymezení pojmu expertní systém vyžadovalo, aby expertní systém: • produkoval výstupy procesem blízkým abstraktnímu usuzování, • dokázal "vysvětlit", jak dosáhl svých závěrů, • vykazoval schopnosti alespoň srovnatelné s lidskými. Požadavek na abstraktní usuzování zřejmě vznikl z kombinace požadavku na vysvětlení a intelektuálních předsudků o tom, jak by měla být úloha UI zpracovávána. Požadavek na vysvětlení se odvíjel z toho, že lidé - dříve než akceptovali závěry počítače - trvali často na kontrole jeho "uvažování". Pokud nebyl systém navíc aspoň tak dobrý jako člověk (ve své odborné oblasti), nikdo ho nepoužil. Systémy UI (zobecněné expertní systémy) Obecnější definice systému UI (zobecněného expertního systému), která se od 90. let začíná prosazovat jako jednotící pojem pro UI, umožňuje chápat jako expertní systémy i systémy, které nejsou založeny na symbolické manipulaci s daty, např. neuronové sítě. Dovoluje i použití systémů v oblastech, kde lidé používají málo nebo žádné vědomé usuzování (např. při zpracování vizuálního vstupu, řízení apod.). Dále považuje za užitečné i takové systémy, které jsou méně schopné než lidé, např. systémy zpracování přirozené řeči. Zobecněný expertnísystém je uměle vytvořený systém, který: • zpracovává vstupy týkající se určitého problému, • nepracuje jako pouhý organizátor dat (jako výstup produkuje doporučení, akce, atd.), • používá znalostí specifických pro danou oblast a • chová se v dané oblasti "schopně". Systémy UI (zobecněné expertní systémy) Dělení zobecněných expertních systémů podle metod, které používají: Mechanismy zobecněných expertních syst ér Extrakce pravidel vytváří vstup pro usuzovací systémy. Hybridní jsou systémy, které používají více než jeden mechanismus. Jsou stále rozšířenější. Klasifikace vzorů (rozpoznávání vzorů) Klasifikace vzorů má významnější postavení, než jaké bychom jí přiřkli na základě uvedeného dělení. V podstatě prostupuje celou UI. Zobecněné expertní systémy lze chápat rovněž jako klasifikátory, i když jsou jejich klasifikace často nazývány závěry Klasifikace vzorů (rozpoznávání vzorů) Během učení si systém vyvíjí klasifikaci založenou na vstupních vzorech. Učení může probíhat • s učitelem: systému jsou překládány vzory včetně svých klasifikací, které by se měl klasifikátor naučit, • bez učitele: jsou překládány vzory bez svých klasifikací. Systém by v nich měl nalézt významné rysy, které teprve určí klasifikaci. V obou případech systém musí být schopen přiřadit nové (neznámé) vzory nejvhodnější klasifikační třídě. To se nazývá rozpoznávání. Celý proces se nazývá automatická klasifikace vzorů. V UI jsou jednodušší problémy zahrnovány pod klasifikaci vzorů a složitější pod strojové učení. Jednodušší klasifikátory se zaměřují čistě jenom na nejjednodušší stránky struktury (syntaxe) vzorů, přičemž se ignorují abstraktnější vzory a význam (sémantika). Klasifikace vzorů (rozpoznávání vzorů) Klasifikace vzorů je zpracováním zobrazení rozsáhlého prostoru vzorů do podstatně menšího prostoru tříd klasifikace. Klasifikátor vzorů je automatický, jestliže si vyvíjí svůj vlastní algoritmus podle dané tréninkové množiny. Tato množina se skládá ze vzorů (vstupů), které mohou být spárovány požadovanými třídami klasifikace (výstupy). • Statistické mechanismy klasifikace: představují metody, které byly původně vyvinuty ve statistice. Často jsou založeny na přizpůsobení jednoduché funkce datům. • Rozhodovací stromy, přizpůsobují datům komplikovanější funkce. Provádí se to skládáním jednodušších funkcí-jednotlivými rozhodnutími. • Neuronové sítě: dosahují přizpůsobení datům opět skládáním jednodušších funkcí - excitací/i n hi bicí neuronů. Složitost rozhodovacích stromů a neuronových sítí dovoluje rozsáhlejší flexibilitu. Cenou za tuto pružnost je spotřeba mnohem více výpočtů a menší pochopení jejich průběhu. Panuje názor, že dosažená přizpůsobivost za tuto cenu stojí. Klasifikátor zobrazení f*\X—>Y. X (vstupní) prostor vzorů, Y konečný (výstupní) prostor kategorií klasifikace klasifikace vzoru xeX je f[x\eY Automatický klasifikátor • fp:X->Y, peP/ P prostor parametrů • zahrnuje mechanismus vytvoření klasifikace nalezením vhodných parametrů p"eP/ f =f* Učení • proces hledání vhodných parametrů p"eP na základě množiny faktů (tréninkové množiny) F = kxi,y\xieX,yieYJ=l,...,n{ • výsledkem učení je /"[xA-y^ (x^y^eF, i=l,...,n • požadují se generalizační vlastnosti, tj. aby i pro fakt xeX, yeY, [x,ý}£F dostatečně blízký některému faktu (x^yAeF bylo f*[x\~y Intuitivně • během učení je podle množiny faktů vytvářen model zobrazení /" = /,- yeY y e P Činnost automatického klasifikátoru Fáze činnosti automatického klasifikátoru • fáze učení (trénink, off-line učení) • aktivní fáze • kombinovaná fáze (on-line učení) Schémata učení • s učitelem o hodnotící funkce = učitel = externí míra chyby pokusů klasifikace o učení = hledání minima hodnotící funkce • bez učitele o hodnotící funkce = interní míra příbuznosti faktů klasifikace o učení = hledání maxima hodnotící funkce