Recenze: Umělá inteligence (4)
Ptal se mě před několika lety jeden můj kamarád, tehdy čerstvý absolvent – informatik: Co je to ta umělá inteligence, není to nějaký podvod? Myslel to vážně. Připadalo mi legrační i smutné, jak málo může vědět odborník o umělé inteligenci. Vysvětlil jsem mu to a snad ho i přesvědčil. Minulé léto jsem se zúčastnil přechodu jedněch slovenských hor se čtyřmi v praxi ostřílenými elektroinženýry – kteří o umělé inteligenci také nic nevěděli. Dva případy, i když statisticky nevýznamné, přece jen vzbuzují podezření, že to se znalostmi o umělé inteligenci asi není nijak slavné. Recenzovaná kniha může pomoci takový stav napravit. Jejím cílem je zpřístupnit znalosti o umělé inteligenci (UI) českému odborníkovi.
Obecné hodnocení
Nejprve zhodnotím knihu obecně, celkově. Nechcete-li tuto část recenze číst, zejména znáte-li předchozí, třetí díl, není to třeba. Celkově jsou si oba díly velmi podobné. Když jsem si znova četl svou recenzi předchozího dílu, říkal jsem si, že bych teď mohl napsat skoro to samé. Ale nedalo mi to a napsal jsem ji trochu jinak. Chci hodnotit co nejobjektivněji. Žádný náš výtvor není dokonalý, ani tato kniha. Vyberu proto několik hledisek, ze kterých se mi zdá publikace přínosná, i několik slabin. Nechám na vás, abyste si závěr udělali sami.
+ Kniha svůj cíl plní, tj. zpřístupňuje znalosti o UI fyzicky, ekonomicky (za 185 Kč – některé odkazované knihy stojí téměř tolik v dolarech nebo eurech), jazykově (čeština), terminologicky – zavádí terminologii. Nepodává sice informace nové, revoluční, takové, které jinde nenajdete, ale většinou předkládá přehledové informace stručněji, jednodušeji a dostupněji než jiné zdroje. Jde ovšem o čtvrtý díl, takže základní informace již byly předloženy v předchozích dílech.
+ Kniha poskytuje obrázek, byť dílčí, o tom, kdo je kdo v české UI. Z tohoto hlediska knihu doporučuji zejména nastávajícím doktorandům a zájemcům hodlajícím UI aplikovat v praxi.
± V předmluvě jsou většinou velmi dobře popsány jednotlivé kapitoly. Doporučuji se s ní seznámit. Bohužel však není dostupná na webových stránkách nakladatelství.
+ V knize je „objemově“ více informací než v jednotlivých předchozích dílech.
± Co to je umělá inteligence? To je nejisté. (První kapitola se zabývá nejistotou.) Pouze předpokládáme, že by mohla být podobná inteligenci přirozené. Ovšem tu také neumíme přesně vymezit, pouze doufáme, že by mohla být založena na některých poznaných kamenech a kaméncích: např. informacích, sítích neuronů, znalostech, deduktivních, induktivních, evolučních, organizačních a dalších procesech. Recenzovaná kniha to vše odráží:
Přináší představy o některých „kaméncích„ umělé inteligence. Navazuje přitom na předchozí díly.
Dvanáct kapitol, jedenáct „kaménků“; v této „kaménkové“ analogii je dvanáctá kapitola trochu odlišná, snaží se integrovat, snaží se z kaménků vystavět celý (lze ho tak nazvat?) inteligentní systém.
Název přesně neodpovídá obsahu. První dvě kapitoly bych spíše než do oblasti UI zařadil do obecné informatiky.
UI řeší složitý (nejsložitější?) problém. Nepřekvapí, že i její prezentace je složitá, že využívá různé a složité (formální, matematické, softwarové) nástroje.
± Ještě jednou použiji „kaménkovou„ analogii. Kniha je složena z velice různorodých kaménků – kapitol. Ty jsou lineárně dobře uspořádány, tj. jdou za sebou tak, že sousedící jsou si vždy co možná nejvíce podobné. Trochu je tento postup usnadněn tím, že tři čtvrtiny kapitol se přímo týkají vytváření znalostí. Přesto všechno je různorodost předkládaných poznatků obrovská. To znamená, že se sice můžete mnoho dozvědět, ale nemnoho čtenářů může všechny části do detailů sledovat – některé části jsou napsány formou věta-důkaz nebo náznak důkazu. Čtenáři ani nemusí se vším plně souhlasit – lze zde nalézt i spekulace a odhady dalšího vývoje. Opakuji, většinou jde o přehledové informace, které odkazují na další prameny. Autoři nepředpokládají, že čtenář musí přečíst vše.
± Umělá inteligence se nejen zabývá tím, jak „myslí“ počítače, ale může být a je využívána k porozumění lidským myšlenkovým procesům. Příkladem, aktuálním pro tuto recenzi, může být proces psaní knihy: je to činnost podobná získávání, shromažďování a organizování znalostí, tj. znalostnímu inženýrství. O tom tato kniha (stejně jako předchozí díly) také pojednává. Z uvedeného pohledu přístup, který autoři zvolili, připomíná jednu skupinu metod strojového učení, nazývanou učení založené na příkladech (instance based learning). V ní se znalosti jednoduše ukládají jako příklady a složité zpracování se odkládá do okamžiku jejich použití. Podobně je v knize uvedena spousta informací. A ponechává se na čtenáři, aby si to v hlavě srovnal sám.
± Při vytváření znalostí je důležitá např. jejich srozumitelnost – podobně jako při psaní knihy. To v recenzované publikaci sice najdete – jako příslib kvality knihy, jako pravidlo získávání znalostí i jako vlastnost textu, ale zejména někteří autoři toho mohli udělat víc. Mohli pravidla o získávání znalostí důsledněji aplikovat na vytváření knihy. Takto se čtenář musí připravit např. na:
množství nejednoznačných, synonymních názvů některých popisovaných objektů (na používání synonym z důvodu stylistiky jsem se s některými autory neshodl),
množství chyb (já si je vyjasňoval s jednotlivými autory – na webu nakladatelství errata nenajdete),
to, že nejsou uváděny předpoklady pro čtení jednotlivých kapitol (až na tři výjimky),
to, že v rejstříku většinou nic nenajdete; udělat dobrý rejstřík ovšem umí málokdo, ale u autora knihy o UI to mrzí obzvlášť,
to, že někde je text ilustrován příklady, jinde ne,
to, že je málo informací o použitelnosti jednotlivých popisovaných přístupů a o jejich výpočetní složitosti.
Autoři si zřejmě vzájemně své kapitoly nečetli. Projevuje se to např. v duplicitách i rozporech. Jeden konkrétní případ, navíc emotivně podbarvený, přímo zmíním: všechny tři kapitoly o neuronových sítích upozorňují na negativní důsledky vydání knihy Minského a Paperta, ale každá trochu jinak. (Třetí kapitola tyto autory alespoň přímo nejmenuje.) Z osobní korespondence s Minským vím, že ho to mrzí, že je na to citlivý. Souhlasím s jeho sdělením, že toho pro UI udělal hodně, a přesto se nejčastěji nespravedlivě zmiňuje jeho podíl na zbrzdění rozvoje neuronových sítí.
± Nadpisy kapitol vystihují jejich základní zaměření. Na případy, kdy tomu tak není, upozorním.
Na závěr celkového hodnocení zobecním: Kniha pěkně ilustruje jeden důležitý problém celé umělé inteligence: neumíme příliš využívat to, co o umělé inteligenci už víme, a neumíme to použít ve svém každodenním životě.
Dále stručně popíšu jednotlivé kapitoly. V závorce uvádím autory a rozsah.
Zobecněná teorie informace (Klír, 30 s.)
V prezentované teorii se systematicky zkoumají různé typy neurčitosti. A také se již formalizované typy, např. neurčitost založená na klasické pravděpodobnosti a klasických množinách nebo Dempsterova-Shaferova teorie či Hartlayova neurčitost, zasazují do společného obecnějšího rámce. Kromě klasické teorie míry a klasických množin se používají obecnější monotónní míry a fuzzy množiny. Kapitola má přehledový charakter, na třiceti stránkách je stručně shrnuta tematika popsaná dvěma knihami (592 +časopiseckých článků. Teorie je stále ještě rozvíjena, doplňována, dozrává. Některé části v závěru kapitoly naznačují další vývoj a použití a mají, na rozdíl od předchozích, spekulativní charakter. Téma kapitoly tvoří široký a obecný rámec UI, tak široký, že jeho použitelnost spíše zatím jen tušíme.
Pravděpodobnostní algoritmy (Kramosil, 20 s.)
Druhá kapitola je na podobně abstraktní a podobně UI vzdálené úrovni jako předchozí kapitola. V podstatě se snaží podat nebo alespoň naznačit matematicky přesnou formalizaci pravděpodobnostních algoritmů. Proto postupně prezentuje pojmy, na kterých formalizaci buduje, např. Turingův stroj, vyčíslitelnost, stroj s orákulem, nedeterministický Turingův stroj. Úvodní část kapitoly čtenáře srozumitelně, na příkladech motivuje. Vlastní formalizace je stručnější. V závěru jsou opět docela srozumitelně prezentovány nebo alespoň naznačeny existující a možné aplikace. Já osobně bych ovšem uvítal, kdyby aplikace byly více orientovány na UI.
Deduktivní systémy fuzzy logiky (Hájek, 22 s.)
Třetí kapitola poměrně podrobně představuje fuzzy logiku, na třech místech zmiňuje deduktivní pravidla, ale neuvádí deduktivní systém. To je pro tuto kapitolu charakteristické: Když říká, že vykládá logiku, tak ji spíše připomíná, jako by spoléhala na čtenářovy znalosti, interpretaci, inteligenci. Výklad je dosti formální, ale přitom třeba některé pojmy začne používat, a zavede je až později nebo (výjimečně) je nezavede vůbec. Možná to jinak nejde – je to poměrně složitá problematika (na jedné náhodně vybrané stránce jsem napočítal jedenáct nově zavedených pojmů). Vzhledem k této skutečnosti by byla užitečná fulltextová počítačová verze kapitoly, aby bylo možné editorem zavedené pojmy vyhledávat. (To vlastně platí pro celou knihu.) Autor kapitoly doufá, že čtenář si „odnese dojem, že fuzzy logika je velmi vhodný nástroj pro reprezentaci jistého druhu znalostí a že je dostatečně hluboká a propracovaná“. Můj dojem však je: od teorie k praxi bývá daleko. Rozhodnutí o reprezentaci je velmi závažné, s dalekosáhlými dopady v praxi. Proto bych byl opatrný; také proto, že kapitola se o reprezentaci jinak (přímo) vůbec nezmiňuje. Co se týče vlastní fuzzy logiky, po přečtení kapitoly jsem nabyl dojmu, že je skutečně dost hluboká a propracovaná.
Fuzzy modelování a řízení (Horáček, 35 s.)
Kapitola se zabývá modelováním nelineárních, vágně definovaných systémů pomocí fuzzy přístupů a fuzzy pravidel. Dává základní představu, jak vytvářet model (identifikovat) i jak ho využívat (dělat inferenci). Pro vytváření modelu popisuje Gustafsonův-Kesselův algoritmus a identifikaci parametrů fuzzylogické neuronové sítě. Pro určení výstupů ke známým vstupům používá Mamdaniho inferenci a Takagiho-Sugenův model. K těmto konkrétním, na praxi orientovaným informacím však neuvádí žádné zkušenosti. V závěru se na obecné úrovni zamýšlí nad obtížným prosazováním nových metod (jako je fuzzy řízení) na trhu, jenž je obsazen klasickými regulátory. Tato kapitola jako jediná uvádí požadavky na čtenáře.
Genetické programování a vybrané problémy genetických výpočtů (Lažanský – Kubalík, 44 s.)
Tato část je v podstatě volným pokračováním kapitoly o evolučních výpočtech z předchozího dílu. Rozšiřuje ji a aktualizuje. Obsahuje čtyři témata. První, hlavní, je genetické programování. To se soustřeďuje především na úlohy, kde jsou jedinci populace reprezentováni ne lineárními chromozomy, ale stromovými strukturami. Tato odlišnost reprezentace se promítá do detailů genetického algoritmu, které jsou zde stručně popsány. Navíc jsou na příkladu řešení umělého mravence na stezce „Santa Fe„ klasické genetické algoritmy srovnány s genetickým programováním. Další téma stručně popisuje gramatickou evoluci. Ta je vhodná pro úlohy, kde je možné jedince popsat bezkontextovou gramatikou. V uvedených tématech hrají významnou roli důležité stavební bloky v chromozomech. Na jejich identifikaci se zaměřuje třetí téma. Poslední téma se systematicky vrací k selekčním mechanismům.
Diferenciální evoluce (Zelinka, 32 s.)
Jde o další typ evolučního algoritmu, ve kterém se potomek tvoří ze čtyř rodičů. Ze dvou náhodně vybraných rodičů se tvoří jejich diference, která se pak spolu s dalšími rodiči použije v operaci podobné mutaci i křížení. Kapitola demonstruje vhodnost algoritmu pro často úspěšné hledání globálního extrému, tj. pro řešení složitých optimalizačních problémů. Ukazuje to na množství testovacích funkcí i úspěšných aplikací. (Odstavec předmluvy uvádějící tento algoritmus by mohl svádět k domněnce, že algoritmus najde globální extrém vždy.) Co kapitola příliš nezmiňuje, jsou meze využití tohoto algoritmu.
Vybrané partie z neuronových sítí (Jiřina, 50 s.)
Kapitola poskytuje přehled o různých typech sítí: perceptronové, Hopfieldově, Kohonenově, ART. Další její téma se zabývá použitím sítí v expertních systémech. To mne nepřesvědčilo. Zejména proto, že jediný uváděný příklad je z hlediska rozsahu zcela triviální. (Následující kapitola uvádí příklad přece jen přijatelnější.) V tématu o zpracování obrazových informací mě zato potěšila zajímavá informace o segmentaci hloubkových map. Poslední téma se věnuje kompresi dat.
Aproximace funkcí neuronovými sítěmi (Kůrková, 22 s.)
Zde je uvedena univerzálnost aproximovaných funkcí a přesnost a rychlost aproximací. Prezentovaný přístup se opírá o dosti abstraktní matematické pojmy (takže některé části jsem, při svém inženýrském zaměření, nesledoval do detailů) a je také zaměřen teoreticky. Jeho přímé využití v praxi (mi) není zřejmé.
Pravděpodobnostní neuronové sítě (Grim, 37 s.)
Kapitola dává přehled o pravděpodobnostním přístupu, který umožňuje návrh vícevrstvých neuronových sítí. Úlohu statistického rozhodování převádí na aproximaci neznámých podmíněných hustot pravděpodobností pomocí distribučních směsí s využitím EM algoritmu. Celý přístup částečně teoreticky zdůvodňuje. Kapitola se rovněž zabývá sekvenční verzí řešení, neúplně propojenými sítěmi, binární aproximací, neurofyziologickou interpretací a srovnáním s Kohonenovou sítí.
Datové sklady a získávání znalostí (Kouba, 43 s.)
Autoři se zabývají hlavně datovými sklady. Chtějí čtenáři poskytnout informace o kontextu, ve kterém může být umělá inteligence využita. (Nevím, je-li to rozumné – takových kontextů může být mnoho.) Asi 80 % rozsahu kapitoly je věnováno datovým skladům, jen 20 % UI. Získávání znalostí je podrobněji popsáno až v následující kapitole. Přístup k datovým skladům je hodně formalizovaný. To je pro umělou inteligenci příznačné. Formalizaci pro formalizaci nemám rád; zde však je v některých místech viditelně užitečná. Navíc bylo její užití v této oblasti pro mne nové.
Strojové učení v dobývání znalostí (Železný – Kléma – Štěpánková, 42 s.)
Dobývání znalostí je velmi podobné strojovému učení, obě oblasti se hodně překrývají; u první je pouze zdůrazněna přímá použitelnost vytvořených znalostí v praxi. To znamená, že některé důležité části, které strojové učení neumí, např. vybrat vhodná data, jsou v získávání znalostí řešeny jinak, „organizačně“, „ručně“. Takové vymezení ale v kapitole nenajdete (je tam jiné). Umožní vám však uvědomit si, jaký je vlastně inzerovaný vztah strojového učení a dobývání znalostí. Ten v popisovaných konkrétních přístupech a metodách přímo patrný není. Autoři spoléhají na čtenářovy apriorní znalosti. Nevadí. Jinak se toho dozvíte hodně. Jde o problematiku velmi rozsáhlou. Autoři se proto soustřeďují na to, co považují za nejdůležitější. To jsou přehledové informace, jež jsou většinou zaměřeny na klasické, ověřené přístupy, např. předzpracování dat, některé algoritmy vytváření znalostí, hodnocení vytvořených znalostí, vytváření znalostí v některých specifických oborech a induktivní logické programování. Budete-li se chtít dozvědět víc, doporučuji, kromě knih uvedených autory v seznamu literatury, publikace svých oblíbených autorů, Mitchella nebo Langleyho.
Od holonů k virtuálním organizacím (Mařík – Vrba – Pěchouček, 40 s.)
V této kapitole se seznámíte se základními pojmy a koncepcemi distribuované umělé inteligence. Autoři sice slibují, že se seznámíte i s jejich uplatněním v průmyslové výrobě, ale po přečtení získáte dojem, že jde o zajímavou a perspektivní oblast, která se ovšem v průmyslu zatím příliš neuplatňuje. Holon je koncept obdobný agentu z multiagentních systémů UI; koncept vznikl v disciplíně zabývající se řízením procesů v reálném čase. Autoři se snaží integrovat tři takové disciplíny; navíc, kromě zmíněných, ještě disciplínu mobilních systémů, kterými se zabývá systémové inženýrství. Domyslíte-li integraci do důsledků, dostanete se k představě virtuální organizace. To je např. sdružení výrobních a organizačních jednotek dočasně provázané internetem, které se chovají jako kooperující agenty. Představa virtuální organizace je však v kapitole v podstatě jen zmíněna. Probírané přístupy jsou stručně ilustrovány na příkladech dvou případových studií.
Jindřich Bůcha
|