Umělá inteligence v IS

Vlastní logika informačních systémů, která může mít různou podobu i vlastnosti. Jiří Slabý Každý jistě měl tu...


Vlastní logika informačních systémů, která může mít různou podobu i vlastnosti.
Jiří Slabý Každý jistě měl tu čest pracovat s nějakým informačním systémem ať
se jednalo o malý vnitropodnikový systém na podporu účetnictví, nebo veliký
systém typu ERP. Hlavní účel všech informačních systémů je stejný pomoci lidem
a umožnit jim dosáhnout nějakého cíle. Různé systémy zastávají různé funkce.
Tak jak jde doba a informační technologie se vyvíjí, ukazují se nové otázky.
Nemohl by mít systém svou vlastní logiku, díky čemuž by pro některé úkoly
nebylo potřeba lidského operátora? Odpovědí může být umělá inteligence (UI).

Expertní systémy
Řešení označované jako expertní systémy (ES) naleznete všude tam, kde je
zapotřebí ukládat a používat znalosti. Například technická podpora uživatelů
nějakého produktu. Pro tento účel je stvořen systém, do kterého experti v oboru
zakódují své znalosti. Když se poté laik systému dotáže na nějaký problém, ten
prohledá svou databázi na základě uvedených indicií a nabídne nejlepší (jemu
známé) řešení situace. ES samozřejmě nemohou znát více než jejich designéři,
avšak hlavní přínos ES spočívá ve schopnosti tyto znalosti uchovat a v možnosti
jejich použití i pro laiky. ES umí uchovat pouze explicitní znalosti a jenom
takové, které je možné zapsat pomocí pravidel. ES využívají pro ukládání
vědomostí takzvanou znalostní databázi, přičemž pracují na principu podmínky
když-potom, jež je běžně používaná ve všech programovacích jazycích je to v
podstatě série podmínek a příkazů, co udělat, když jsou vstupní parametry
nastaveny tak a tak. ES ale běžně operují s řádově 200-20 000 podmínkami a
musejí být schopny účinně a poměrně jednoduše tuto databázi udržovat, upravovat
a doplňovat. Proto realizace ES v běžném programovacím jazyce není možná. Pro
tento účel byly vyvinuty mnohem specifičtější jazyky, dva nejznámější jsou
Prolog a LISP. Expertní systémy přitom mohou vyhodnocovat úlohu dvěma způsoby.
Jedná se o dopředný a zpětný způsob. Dopředný způsob je využit, když se systém
ptá na otázky a na základě odpovědí zpřesňuje řešení. Zpětný způsob pracuje
obráceně. Umožňuje dohledat podmínky nějakého výsledného stavu.

Neuronové sítě
Jedná se pravděpodobně o nejznámější formu umělé inteligence. A také patrně o
formu, o které bychom mohli říci, že je nejvíce inteligentní. Celý koncept
neuronových sítí má podklady v biologickém světě, v lidském mozku. Ten je
tvořen obrovskou sítí miliard malých buněk, vzájemně propojených. Mozkové buňky
se nazývají neurony (viz obrázek nahoře). Neuron má jádro (2), do něj vstupuje
množství vláken zvaných dendrity (1), které jsou přes synapse (4) spojeny s
dalšími neurony, a vystupuje jedno hlavní vlákno nazývané axon (3). Neuron, se
kterým pracují umělé neuronové sítě, je znázorněn v pravé části uvedeného
obrázku. Jedná se o matematický model, kde jednotlivé Xn jsou vstupy, wn jsou
váhy vstupů, uvnitř těla je přechodová funkce a výstupem je jedna hodnota.
Neuron pracuje tak, že přijme signály ze všech svých vstupů. Každý vstup má
svou váhu, kterou se vstupní hodnota upraví, a vzejdou upravené vstupní
hodnoty. Ty jádro sečte a dosadí do přechodové funkce. Z funkce vzejde hodnota,
a tu pošle na výstup. Ta je nadále vstupem velkého množství dalších neuronů, a
tímto se předává signál skrz celou síť až k výstupní vrstvě, kde jej změříme a
na jeho základě provedeme nějakou akci. Umělých neuronových sítí máme celou
řadu typů. Každá je vhodná pro jiný účel. Nám postačí si uvést obecné schéma
zapojení. Umělé neuronové sítě se používají především pro úlohy typu
klasifikace prvků, predikce trendu na základě minulosti či separace množin.
Hlavní podstatou neuronových sítí je to, že se umějí učit. Učení je umožněno
díky synaptickým vahám. Podle jejich hodnot se pak určuje, jaká bude výstupní
hodnota neuronu. Proces učení probíhá následovně: Vezmeme stav podmínek, ke
kterému známe správný výstup a dosadíme jej na vstup sítě. Spočteme postupně
celý průchod signálu sítí a výsledné hodnoty porovnáme s hodnotami správnými.
Pokud je vše v pořádku (běžně se pracuje s hladinou významnosti, tedy za
správný se považuje výsledek lepší než stanovená hladina), tak se pokračuje
dalším případem. Pokud je výsledek chybný, následuje úprava vah. Takto
opakujeme celou množinu vstupních "trénovacích" stavů, dokud síť nevykazuje
dobré výsledky na zvolené hladině významnosti. Pokud jsou provozovatelé s
výsledky spokojeni, je síť naučena a je připravena na vlastní činnost.

Fuzzy logika
Počítačové programy (a i počítač samotný) pracují na principu binární logiky.
Pokud se ale podíváte na analogické situace v reálném světě a na způsob, jakým
o nich uvažují lidé, zjistíme, že živí uživatelé operují nejen s pojmy ano/ne,
ale také třeba "částečně", "přibližně" a podobně. Příkladem může být stupnice
teploty a pocit, který člověk cítí při konkrétní teplotě (ledové, studené,
vlažné, teplé, horké, ...). Fuzzy logika umožňuje pracovat právě s takto
definovanými pojmy a umožňuje řešit i velmi složité problémy, které nejsme
jinak schopni zpracovat. Způsob fuzzy logiky je člověku a jeho myšlení velmi
blízký. Například je možné sestavit regulátor otáček větráku klimatizačního
zařízení, v nějakém vlhkém provozu. Otáčky (tedy výkon) větráku jsou řízeny na
základě aktuální teploty a vlhkosti v místnosti. Pravidla pro fuzzy řízení by
mohla vypadat následovně: POKUD Teplota je "malá" a Vlhkost je "nízká" POTOM
Otáčky "nízké" POKUD Teplota je "střední" a Vlhkost je "malá" POTOM Otáčky
"větší než nízké" ... atd.
To, že počítač bude rozumět těmto nepřesným pojmům, je zaručeno jejich
definicí. Každá veličina má svou stupnici, kde má množinově definovány hodnoty,
kterých může nabývat. Například v případě klimatizace by mohly definice teploty
a vlhkosti vypadat třeba jako na obrázku níže. Z něj je patrné, že například
teplo předpokládáme v rozmezí 0-40? C. Nízká vlhkost je od 10-30 % atd. Stejným
způsobem stanovíme množinu závislé veličiny. Při výpočtu se sestaví celkový
obal množiny. Vznikne dvourozměrné těleso, u kterého hledáme těžiště.
Souřadnice X nalezeného těžiště je výslednou hodnotou. Postup vyjadřuje obrázek
nahoře. Dle stanovených podmínek pro závislou veličinu poté stanovíme její
hodnotu.
Fuzzy logika je nasazována především v regulátorech a chytrých automatech lze
ji například nalézt v automatických pračkách, myčkách na nádobí, fotoaparátech,
videopřehrávačích, automobilech apod. Krása fuzzy logiky spočívá v lehkém
návrhu podmínek, kde nemusíme znát exaktní popis problému a velmi snadné
implementaci jak do čipů, tak počítačových programů. Lze díky ní řešit i jinak
extrémně složité problémy.

Genetické algoritmy
Ačkoliv mají genetické algoritmy (GA) svůj základ v živých organismech a
evoluci, pro svou činnost žádný živý organismus nepotřebují. GA je metoda, jak
řešit velmi složité problémy poměrně snadno a rychle. Je založena na způsobu,
jakým se živé organismy přizpůsobují novým podmínkám evoluci. Využívají procesu
reprodukce, mutace a selekce. Na začátku je populace čítající určitý počet
jedinců, každý jedinec je nositelem zakódované informace (nejčastěji se používá
binární kódování) a představuje jedno možné řešení úlohy. Jedinci se párují a
množí. Potomci mutují, aby se zabránilo degeneraci, poté se vybírají nejlepší,
a ti dále přežívají, aby měli ještě lepší potomky, než tomu bylo v předchozí
generaci. Každý jedinec má vypočtenu hodnotu tzv. fitness funkce. Ta určuje,
jak dobré je řešení, které reprezentuje. Ukažme si hrubý postup, jak probíhá
výpočet.
1. Náhodně vygeneruj n chromozomů (jedinců populace možných řešení). 2. Vypočti
fitness funkci každého jedince. 3. Tvoř novou populaci opakováním následujících
kroků, dokud nebude vytvořena vyber dva rodiče ze současné populace. Čím větší
je hodnota fitness funkce, tím větší šance je být vybrán. Procesem párování
vytvoř potomky, proveď mutaci potomků a zařaď potomky do nové generace. 4.
Použij novou generaci pro další běh algoritmu. 5. Jestliže je dosaženo
požadovaných výsledků, skonči a vrať nejlepší výsledek. 6. Jdi zpět na krok 2.
Ohlédněme se za bodem 5. Říká, že je-li dosaženo požadovaných výsledků, tak
výpočet končí. Co je to ale požadovaný výsledek? GA se používají pro řešení
tzv. NP čili těžkých úloh. To jsou takové, kde složitost řešení roste s počtem
vstupních podmínek nelineárně. Tedy rozšířením množiny vstupních prvků o
polovinu zdaleka neznamená, že složitost se zvýší také o polovinu, nýbrž
exponenciálně. I v dnešní době velmi výkonných počítačů jsou úlohy, které by i
pro počet pouhých několika tisíc vstupních prvků dokázaly exaktními
algoritmickými metodami zaměstnat i největší superpočítač na světě na stovky
let. U většiny těchto úloh je velmi složité a náročné nalézt řešení, ale pokud
nějaké máme, je velmi snadné zkontrolovat, je-li správné. V této fázi
přicházejí na řadu právě GA. Ty umějí velice efektivně a rychle nalézt nějaké
řešení, které lze poté poměrně snadno ověřit.

Závěrem
Každý způsob realizace umělé inteligence je vhodný k jinému účelu. Úkol
rozhodnout, kterou skupinu použít v konkrétním systému, leží na jeho
návrhářích. Není výjimkou použití několika typů v jednom systému. Dosáhne se
tím vysoce sofistikovaného systému, schopného řešit složité úlohy. Špičku
ledovce v použití umělé inteligence pak představují humanoidní roboti. Ti v
sobě kombinují neuronové sítě pro rozpoznávání obrazu a učení se vlastními
chybami, expertní systémy pro rozhodování či fuzzy logiku pro ovládání sebe
sama.









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.