V tomto seriálu bych chtěl zájemce seznámit se základními typy ekonomických úloh, které je možné řešit pomocí neuronových sítí. Pro snadnější pochopení problematiky nabízím volně šiřitelný simulátor neuronové sítě TNeuron s typovými příklady.
Úvod
Vedle standardních a přesně definovaných výpočetních postupů, jaké se používají například v účetnictví, fakturaci, zpracování mezd nebo personální evidenci, existují v ekonomické praxi i takové úlohy, kde nelze nalézt přesný algoritmus řešení. Manažeři musejí odhadovat vývoj ekonomických podmínek v příštím období, analyzovat, jak jednotlivé faktory ovlivní průběh ekonomických jevů, předvídat možná rizika a využívat schopnosti a iniciativy pracovníků ve svém podniku. Zatímco dosud řešili tyto úlohy intuitivně na základě svých zkušeností, moderní teorie umělé inteligence umožňuje pro ně vytvořit počítačovou podporu.
Neuronové sítě
Neuronové sítě vycházejí z biologické předlohy uspořádání neuronů v lidském mozku. Mozková kůra obsahuje 13 až 15 miliard neuronů, z nichž každý může být propojen až s 5000 jinými neurony. Každý neuron se skládá z těla – somy, vstupních výběžků – dendritů, výstupního vlákna – axonu, které je na konci rozvětveno. Propojení je realizováno tak, že terminály axonu se stýkají s výběžky – trny dendritů jiných neuronů. K přenosu informace slouží mezineuronové rozhraní nazývané synapse, které mohou být buďto excitační, rozšiřující vzruch, nebo inhibiční, vzruch tlumící. Pokud je neuron na vstupech podrážděn a toto podráždění přesáhne určitou hraniční mez nazývanou práh, sám generuje impuls a tím je zajištěno šíření informace.
Hlavní výhodou neuronových sítí oproti klasickým systémům je jejich schopnost se učit. Požadovanou funkci sítě neprogramujeme pomocí přesného popisu algoritmu výpočtu funkční hodnoty, ale síť sama abstrahuje a zobecňuje v procesu učení ze vzorových příkladů. Schopnost učit se a zobecňovat je typickou vlastností lidské inteligence. V tomto smyslu neuronová síť připomíná inteligenci člověka, který získává mnohé znalosti a dovednosti ze zkušenosti, kterou často není schopen formulovat pomocí přesných pravidel a algoritmů.
Aplikace neuronových sítí
Neuronové sítě se uplatňují především tam, kde klasické počítače selhávají. Jde o úlohy, kde není znám algoritmus nebo je analytický popis pro počítačové zpracování příliš komplikovaný. Zejména se uplatní tam, kde jsou k dispozici rozsáhlé soubory příkladových dat, pokrývajících dostatečně celou oblast problému. V literatuře jsou popsány tyto základní aplikace neuronových sítí:
Ekonomické informační systémy. Metody neuronových sítí se využívají v makroekonomii a finančnictví. V této aplikační oblasti se výzkum zaměřuje především na prognózování vývoje jednotlivých ekonomických jevů. V zájmu pozornosti je zejména předpověď směnných kurzů, výnosů a cen cenných papírů a dalších makroekonomických proměnných. V marketinku se modelují reakce spotřebitelů na určitou nabídku. Integrace neuronových sití a fuzzy logiky se používají v systémech pro předpověď bankrotů. V řadě informačních systémů se využívají neuronové sítě k rozpoznávání textů a ručně psaného písma, odstraňování informačního šumu a ověřování podpisů. V energetice se předpovídají požadavky uživatelů na odběr elektrické energie.
Technologie a výroba. Pravděpodobně nejrozšířenější aplikací ve výrobní sféře jsou různé systémy rozpoznávání vizuálního obrazu. Vedle toho nacházejí neuronové sítě uplatnění v prognostických modelech, zejména předpovědi poruch např. leteckých motorů a v kontrolních systémech - kvality potravin, vůně parfémů, degustace čaje, kávy, piva.
Zdravotnictví. Aplikace učících se systémů na bázi neuronových sítí ve zdravotnictví se zaměřují především na dvě oblasti: analýzu obrazového materiálu, např. snímků z tomografu nebo rentgenu, a na prognostické modely nejčastěji v onkologii.
Meteorologie. Již značně rozšířené jsou aplikace v meteorologii, kde neuronové sítě našly velmi dobré uplatnění v oblasti předpovídání počasí.
Výukový program
Pro lepší pochopení problematiky jsem vytvořil volně šiřitelný simulátor neuronové sítě s typovými úlohami TNeuron. Tento program je zaměřen přímo na probíranou látku a budu se na něj v průběhu seriálu odvolávat. Program pracuje pod Windows XP a vyšším.
Program si můžete stáhnout na www.optiintelligent.cz v sekci Pro školy. Při instalaci rozbalte soubor TNeuron.zip
do předem vytvořeného adresáře. Výukový systém vyžaduje přístup pro čtení i zápis.
První příklad
Pro první seznámení s učícími se programy použijeme známý příklad podmíněného reflexu podle I. P. Pavlova. Při krmení pejska vždy zazvonil. Když to opakoval několikrát, pejskovi začaly téct sliny již při zazvonění, aniž by cokoliv dostal. Vznikl podmíněný reflex mezi podnětem zvonění a krmením.
Odstartujte program TNeuron poklepáním myší na TNeuron.exe
. V menu Popis → Parametry → Vyhledej
zvolte v seznamu příklad pes.top a potvrďte tlačítkem OK. Stiskněte tlačítko Konec a zvolte v menu Data → Zápis
.
Vidíte, že trénovací množina, která obsahuje data pro učení, má pouze dvě informace, ve kterých se používají logické hodnoty 1 = pravda, 0 = nepravda.
- První věta říká, že když nezvoní zvonek, nedostane pejsek žrádlo.
- Po stisknutí tlačítka Následující se objeví druhá věta s informací, že při zazvonění dostane pejsek žrádlo.
Nyní začneme systém učit. Zvolte v menu Zpracování → Učení sítě
. Po krátké době se objeví hlášení, že neuronová síť je naučena. Můžeme si ověřit, že pejsek skutečně umí reagovat na zvonek.
- Zvolte menu
Výsledky → Dotaz
. Vstup Zvonek je zadán 0, tj. zvonek nezvoní. - Stisknete tlačítko Výpočet, v proměnné Žrádlo se zobrazí hodnota 0, pes neočekává potravu.
- Klikněte myší na položku 0,0 v seznamu Vstupní proměnné Hodnota. Pod seznamem se objeví editační okénko, do kterého zapíšete 1 a stisknete tlačítko OK (stačí klávesa Enter). Vstupní hodnota 1 se objeví v seznamu.
- Stiskněte tlačítko Výpočet, výstupní hodnota nastaví na 1 – zazvonil zvonek a pes očekává žrádlo.
Celou činnost ukončíme tlačítkem Konec.
Průběh učení
Podívejme se nyní podrobněji na proběh učení počítačového modelu pejska.
- Zvolte menu
Výsledky → Adaptace
. Vidíme, že na počátku pes neví, zda dostane žrádlo, a reaguje zcela náhodně. Totéž platí, když stisknete tlačítko Další. - Opakovaně stiskněte tlačítko Další. Pes se učí a jeho reakce jsou stále přesnější.
- Stiskněte tlačítko Poslední a poté Předcházející. Pes se naučil a reaguje přesně.
Prohlížení ukončíme opět tlačítkem Konec.
Matematický model neuronu
Pro využití další funkce TNeuronu potřebujete znát základní informace o matematické podobě neuronu. Vychází z fyziologické představy, ta je však již velmi podrobně popsána v článku Umělá inteligence I a II autora Lukáše Churého (Curo), kde můžete nalézt podrobnější informace. Z uvedeného názoru vychází matematický model neuronu, znázorněný na následujícím obrázku.
Jestliže označíme x1, x2, ... , xn reálné vstupy neuronu a w1, w2, ... , wn synaptické váhy na těchto vstupech, pak výraz
definuje vnitřní potenciál neuronu. Neuron pak na výstupu realizuje aktivační funkci potenciálu.
Představě biologického neuronu odpovídá aktivační funkce ostrá nelinearita, která je definována takto:
kde h je hodnota prahu označovaného také bias. Jestliže zavedeme w0 = - h
a x0 = 1
, pak bude
a ostrá nelinearita přejde na tvar:
Aktivační funkce však mohou být definovány různým způsobem a nemusí odpovídat představě biologického neuronu. Nejznámější aktivační funkce jsou:
- lineární saturovaná funkce
- standardní sigmoida
- hyperbolický tangens
Modelování na TNeuronu
V našem příkladě je zvolen nejjednodušší přiklad bez aktivační funkce, kdy hledáme lineární závislost ve tvaru y = k * x + q
, v našem případě žrádlo = 1 * zvonek + 0
.
- Zvolte v TNeuronu funkci
Výsledky → Výpočet
a v seznamu Vrstva klikněte na položku s hodnotou 2. - Vidíte, že jsme definovali jeden neuron v druhé vrstvě. Jde o čistě formální vyjádření, neurony v první vrstvě pouze přenášejí vstupy a neúčastní se výpočtu.
- Klikněte nyní na 1 v seznamu Neuron a objeví se informace o vnitřním stavu našeho neuronu. Jediná vstupní proměnná je v prvním řádku: Zvonek zvoní – 1, nezvoní 0. V druhém řádku je vždy 1 – reprezentuje absolutní člen funkce.
- Synaptická váha je znázorněna ve sloupečku Nová. Tlačítkem Další můžete sledovat, jak se od původních náhodných hodnot vah jejich hodnoty postupně upravují, až dosáhnou správné hodnoty 1 u zvonku a 0 u absolutního členu, tj. pejsek se naučil zásadu „Když zvoní, dostane žrádlo, jinak nedostane nic.“.
Program ukončíme v menu Popis → Konec
a potvrdíme vymazání souborů informací o průběhu učení tlačítkem OK.
Složitější funkce
V seznamu TNeuron vyberte příklad nas.top a postupujte obdobným způsobem. Poté vyzkoušejte příklad func.top. Přesvědčíte se, že neuronová síť se dokáže naučit i složitější funkci. Můžete si také sami zapsat vstupní a výstupní hodnoty podobné lineární funkce v příkladu myfunc.top. Pokud bude trénovací množina dostatečně velká a variabilní, měl by neuron i tuto vaši funkci rozpoznat.
Závěr
V této kapitole jsme si vysvětlili základní pojmy teorie neuronových sítí a na simulátoru jsme si předvedli princip učení na velmi jednoduchých příkladech s jedním neuronem. V dalších kapitolách si probereme složitější typy neuronových sítí a jejich použití v ekonomických úlohách.
Literatura
- Šíma, J., Neruda, R.: Teoretické otázky neuronových sítí, Praha, MATFYZPRESS,1996
- Teda, J.: Uplatnění umělé inteligence v ekonomickém řízení údržby, časopis Automatizace č. 10, říjen 2001, str. 624-626
- Vondrák, I.: Umělá inteligence a neuronové sítě, Ostrava, VŠB TU, 1994