Aktuální vydání

celé číslo

05

2019

komunikace a software pro snímače a akční členy

tlakoměry

celé číslo

Úvod do neuronových sítí

číslo 1/2005

Úvod do neuronových sítí

Článek nenásilným způsobem uvádí do problematiky umělých neuronových sítí. K porozumění základním principům není třeba žádných komplikovaných matematických znalostí. Po krátkém historickém přehledu jsou nejprve diskutovány struktury umělých neuronových sítí a uvedeny základní metody zpracování signálů uvnitř umělých neuronů. Snadné přístupy k učení umělých neuronových sítí jsou dokumentovány na Hebbově učení, síti OLAM a Hammingově síti. Článek nabízí jak obecné vzorce, tak jednoduché konkrétní příklady jejich použití při učení a zpracování dat. Stručně jsou diskutovány i další typy umělých neuronových sítí z pohledu jejich struktury a možného využití.

1. Historický přehled

Kdo sleduje nové trendy v informatice, jistě ví, že neuronové sítě jsou mimořádně úspěšné již déle než patnáct let. Historie umělých neuronových sítí zahrnuje též období od roku 1943 do roku 1969, které lze považovat za dobu vzniku oboru. Ve 40. letech minulého století fyziologové McCulloch, Pitts a Hebb ve svých pojednáních o modelech chování nervové soustavy živých organismů nejen podali vysvětlení příčin tzv. podmíněných reflexů, ale také zavedli normu grafického znázorňování struktury umělých neuronových sítí. Od roku 1943 je zvykem znázorňovat umělou nervovou buňku jako kroužek (vrchol grafu) a nazývat ji zkráceně neuron a směr toku signálu označovat šipkou (orientovaná hrana grafu). Používání orientovaných grafů s ohodnocenými hranami, které se od té doby vžilo, zavedli McCulloch a Pitts.

Matematikům a elektronikům trvalo déle než deset let, než pro neuronové sítě nalezli uplatnění. V letech 1958 až 1959 Rosenblatt, Windrow a Hoff realizovali dva elektronické modely neuronové sítě včetně mechanismů jejich učení. Počátkem 60. let byla v Bellových laboratořích použita umělá neuronová síť ke konstrukci nelineárních filtrů určených pro potlačování šumu vznikajícího v dálkových telefonních kabelech. Jde o jeden z paradoxů vývoje, kdy to, co je nové (v roce 1960), jednoduché a funguje, je prostě používáno (dodnes) a ani se o tom pořádně neví. Spolu s tím začali teoretici i praktici rozvíjet a realizovat složitější konstrukce neuronových sítí bez ohledu na to, zda budou užitečné, spolehlivé a funkční. V 60. letech tak vznikla velká euforie, v rámci které se dokonce polemizovalo s von Neumannovou koncepcí počítačů s centrální jednotkou, řadičem, pamětí a programem. Předpokládalo se totiž, že brzy budou problémy řešeny bez programování a s využitím nových typů tzv. neuropočítačů, které se od lidí naučí řešit úlohy prostřednictvím zobecňování konkrétních poznatků. Ze současného pohledu jde o zřejmě neuskutečnitelný, ale krásný sen.

Ani po více než 40 letech uvnitř počítače umělý mozek stále ještě není a namísto toho, aby se počítače od lidí něco přiučily a pochopily, o co jim jde, musí se lidé učit obsluhovat stále vyšší verze programového vybavení. V průběhu 60. let sílily snahy konstruktérů počítačů nahradit složité logické obvody sítěmi jednoduchých elektronických neuronů. Matematickými odvozeními se však brzy zjistilo, že existují takové logické obvody, jejichž náhrada neuronovou sítí je složitější než klasické řešení. Proto se může stát, že určit optimální strukturu sítě a nalézt váhy spojení mezi neurony je časově velmi náročné.

V roce 1984 spustil Hopfield druhou vlnu zájmu o neuronové sítě tím, že zkonstruoval neuronové sítě zvané autoasociativní. V 80. letech odborníci věřili tomu, že autoasociativní neuronové sítě pomohou detekovat vojenské cíle z radiolokátorových a jiných pozorování. To vedlo dokonce ke vzniku firem, které vyvíjely, vyráběly a dodávaly speciální čipy s paralelními Hopfieldovými autoasociativními obvody. Posléze se zjistilo, že autoasociativní paměti tohoto typu mají malé paměťové schopnosti, malou spolehlivost vybavování asociací a navíc vytvářejí falešné představy neexistujících objektů. Tak se stalo, že do roku 1989 čipy s Hopfieldovou pamětí nebyly k sehnání, protože podléhaly přísnému embargu, zatímco v současnosti je nikdo nevyrábí a navíc ani neshání.

Teoretické, praktické i marketingové nadšení z neuronových sítí ovšem trvá víceméně od roku 1984 až do současné doby. Například v roce 1987 Rummelhart zveřejnil koncepci několikavrstvých sítí se spojitým chováním. Tento typ neuronových sítí je dodnes komerčně dodáván jako karta do osobního počítače nebo jako programové vybavení. V roce 1988 Kohonen přišel s úplně novou myšlenkou neuronové sítě, která nepotřebuje ani učitele, ani nemá zbloudilé asociace, ale sama o sobě mění své vnitřní chování, aniž by se od člověka dozvěděla, zda se chová dobře nebo špatně. V takovém případě se hovoří o samoorganizujících se mapách (SOM) založených na soutěživosti mezi paralelními neuronovými buňkami. Sám Kohonen tyto sítě realizoval elektronicky a použil je k analýze lidské řeči. Prvním výsledkem učení sítí SOM bylo úspěšné rozpracovávání hlásek a fonémů. Neuronová síť SOM je důležitým a silným nástrojem pro analýzu dat, a to zejména v oblastech bankovnictví, finančních transakcí, pojišťovnictví, marketingu a technické diagnostiky. Roku 1990 se začaly neuropočítače ve velké míře komerčně využívat. Stalo se tak díky profesoru matematiky Hechtu Nielsenovi. Velmi správě vytipoval konkrétní aplikaci: odstranění šumu z elektrokardiogramu. Dále pochopil roli neuropočítače jako hardwarového klíče a nutnost dodávat neuronovou síť již jako naučenou. Tím totiž odpadají problémy se spolehlivostí a spotřebou času na učení u koncového zákazníka.

Existuje ještě mnoho jiných typů sítí založených na dalších principech. Jde např. o neuronové sítě s radiální bází (Radial Basis Function – RBF), modulární neuronové sítě a fuzzy neuronové sítě. Sítě RBF jsou založeny na zohlednění vzdáleností od etalonů, modulární sítě nacházejí kompromisy z několika dílčích řešení a fuzzy neuronové sítě určují řešení s využitím fuzzy logiky.

Nárůst počtu typů neuronových sítí však neřeší následující implementační paradox. Kdo je konzervativní, volí jednoduchou síť se spolehlivým učením a je spokojen s tím, že chyba je menší než 10 %. Druhou možností je sledovat moderní či módní trendy, volit složitou strukturu sítě se složitou metodou učení a divit se, že v rozporu s optimistickým očekáváním je chyba sítě ještě větší. Neuronovou síť lze těžko předem seznámit se všemi situacemi, které mohu nastat. Proto je důležité, aby byla co nejlépe připravena i na situace, které ještě nezažila. V této souvislosti se hovoří o schopnosti zobecňovat. Zde opět platí okřídlené „někdy méně znamená více„. Čím méně neuronů a vazeb mezi nimi, tím lépe je síť schopna zobecňovat. Lépe dokážou zobecňovat také sítě s malými absolutními hodnotami vah.

Obr. 1. Obr. 1. Umělý neuron jako neuronová síť s topologií 3-1

Z předchozího výkladu je patrná velká rozporuplnost celého oboru. V balsacovském smyslu slova lze právem hovořit o lesku a bídě umělých neuronových sítí. Při použití spíše rudolfinské analogie je neuronová síť Golemem bez šému. Pokud není věnována dostatečná péče volbě vhodné struktury a typu neuronové sítě, nemusí se podařit ji dobře nastavit. Optimalizovat hodnoty vah má smysl tehdy, je-li do sítě vložena nějaká významná předběžná znalost. Mnohdy např. stačí mít kvalitní počáteční odhad hodnot vah a i jednoduché metody učení mohou přinést pozitivní výsledek – optimální nastavení.

2. Struktura neuronových sítí

Zatímco strukturu nervových tkání lze pro vysoký stupeň provázanosti jednotlivých nervových buněk znázornit jen obtížně, struktura umělé neuronové sítě je výrazně jednodušší. Umělé sítě nemají přesně napodobit živý mozek nebo jeho část. Cílem matematiků i techniků je navrhnout co nejjednodušší síť, která ještě řeší daný problém.

Obr. 2. Obr. 2. Neuronová síť 3-2

Struktura neuronové sítě se znázorňuje s využitím symboliky teorie grafů. Na obr. 1 je schéma elementární sítě tvořené jedním výstupním neuronem napájeným ze tří vstupních neuronů. Hodnoty signálů na vstupu sítě jsou označeny x1, x2, x3, hodnota výsledného signálu je y, směr toku signálu ze vstupů k výstupu je znázorněn šipkami u jednotlivých hran spojujících uzly a w0, w1, w2, w3 jsou hodnoty vah, které hrají roli při výpočtu hodnoty y z hodnot x1, x2, x3. Do vstupních neuronů (označeny červeně) jsou coby vstupní údaje pro řešení dané úlohy typicky přiváděny signály z okolí. Z výstupního neuronu potom vystupuje signál, jehož hodnota představuje číselnou formu řešení. Výstupních neuronů může být několik a společně vytvářejí druhou vrstvu sítě, jak je ukázáno na obr. 2 (zde jsou vynechány symboly jednotlivých vah a orientace směru toku signálu; v takovém případě se předpokládá, že šipky směřují zleva doprava; výstupní neurony jsou označeny zeleně). Vzhledem k tomu, že síť na obr. 2 má jen dvě vrstvy, jednu se třemi vstupními a druhou se dvěma výstupními neurony, je záznamem její topologie dvojice čísel 3-2. Podle této normy je na obr. 1 dvouvrstvá síť 3-1.

Obr. 3. Obr. 3. Hierarchická síť 3-2-3 se skrytou vrstvou

Dvouvrstvé sítě se snadno učí a umějí dobře zobecňovat, ale nedokážou se zcela přizpůsobit každé situaci. To souvisí s nelineární podstatou obecného rozhodovacího procesu. Proto se v mnoha úlohách používají třívrstvé i vícevrstvé neuronové sítě. První vrstva se nazývá vstupní, poslední vrstva výstupní a mezilehlé vrstvy se označují jako skryté (hidden – h). Na obr. 3 je ukázána třívrstvá síť se třemi vstupními, dvěma skrytými (označeny modře) a třemi výstupními neurony. Taková síť má topologii 3-2-3.

Zajímavou skupinou jsou autoasociativní sítě, které mají stejný počet vstupů i výstupů. Navíc je signál z každého výstupu přiváděn na příslušný vstup tak, jak je znázorněno na obr. 4. Autoasociativní Hopfieldova síť v prvním kroku vytvoří z pozorovaných hodnot x1, x2, x3 zpřesněné hodnoty x1*, x2*, x3* na svém výstupu. Ty jsou ve druhém kroku považovány za nové pozorování (sebe sama), které vyvolá další zpřesnění. Proces autoasociace buď nikdy neskončí (bludný kruh), nebo se ustálí v jednom z několika dovolených stavů (utkvělých představ). Při znázorňování autoasociativních sítí je nutné doplnit orientaci zpětných spojení.

Obr. 4. Obr. 4. Autoasociativní síť 3-3

Při zpracování signálů a předpovědi budoucích hodnot v časových řadách jsou důležité rekurentní sítě. Jde opět o sítě se vstupní i výstupní vrstvou, kde alespoň jeden signál z výstupní vrstvy je zaveden do vstupní vrstvy tak, jak je pro rekurentní síť 3-2-2 znázorněno na obr. 5. Pak je autoasociativní síť z obr. 4 pouze speciálním případem rekurentní sítě 3-3. Neurony umístěné v jedné vrstvě mohou mít též vzájemné konkurenční vztahy. Ty se obvykle zobrazují tak, že se příslušná vrstva (např. výstupní) znázorní v rovině (vyznačeno silným orámováním) a vzájemné vztahy mezi neurony se znázorní prostřednictvím výrazných hran. Tato norma se používá při znázorňování sítí SOM. Na obr. 6 je ukázána dvouvrstvá síť SOM 3-4. Výstupní neurony y1, y2, y3, y4 zaujímají kruhovou topologii. To znamená, že neurony y1 a y3 jsou si cizí podobně jako neurony y2 a y4.

Obr. 5. Obr. 5. Rekurentní síť 3-2-2 s jednou zpětnou vazbou

Zbylé dvojice jsou si blízké, neboť jsou propojeny výraznými hranami. Topologie výstupní vrstvy sítě SOM může být rozmanitá. V tom případě se hovoří o lineární SOM (jedna řada), čtvercové SOM (každý vnitřní neuron má čtyři sousedy), hexagonální SOM (šest sousedů) a oktagonální SOM (osm sousedů). Někdy se lze též setkat s pojmem redukovaná neuronová síť. Ta musí mít nejméně jednu skrytou vrstvu, pro kterou platí, že počet neuronů v ní je menší než počet vstupních i výstupních neuronů. Síť 3-2-3 na obr. 3 je tudíž redukovaná. Redukované neuronové sítě lze použít např. ke ztrátové kompresi dat. Z topologie neuronové sítě ještě neplyne, jak se bude chovat v dané konkrétní situaci a jak se bude učit.

3. Zpracování signálu neuronem

Po roce 1960 postupně ztratilo na významu exaktní modelování chování živé nervové buňky. Pro konstrukci umělých neuronových sítí se používají velmi zjednodušené matematické modely, které jsou především nástrojem umělé inteligence schopným řešit danou třídu úloh. Stačí uznávat několik způsobů zpracování signálu tak, jak jsou uvedeny v tab. 1, a umět je kombinovat v rámci jednoho neuronu nebo celé sítě. Má-li být popis chování neuronů jednoznačný, nelze se vyhnout použití matematických výrazů.

Obr. 6. Obr. 6. Síť SOM se čtvercovou topologií 2 × 2

Neurony vstupní vrstvy pouze archivují momentální hodnoty jednotlivých vstupů, a žádné hodnoty v nich nejsou zpracovávány.

Nejjednodušším způsobem je signál zpracováván v lineárním neuronu. Nejjednodušším způsobem je signál zpracováván v lineárním neuronu. Výstupní hodnota je dána vztahem y = s, tedy s = w0 + w1x1 + … + wnxn kde n je počet vstupů neuronu.

Tab. 1. Způsoby zpracování signálů
Symbol Způsob zpracování
chybí vrstva
* žádné
L lineární kombinace
V vzdálenost
Z znaménko
S sigmoida
G Gaussova funkce
E exponenciála
MIN nejmenší vyhrává
MAX největší vyhrává

Někdy se namísto hodnoty součtu zveřejňuje její znaménko podle vztahu y = sign(s). Tak pro kladný součet platí y = +1, zatímco pro záporný součet je y = –1. Tím vznikne tzv. bipolární neuron, kdy výstupní hodnota +1 symbolizuje logické ANO, hodnota –1 symbolizuje logické NE a hodnota 0 symbolizuje NAPŮL. S použitím bipolárního neuronu je možné realizovat základní logické funkce AND, OR, NOT, NAND, NOR a MAJ (většina z lichého počtu vstupů), a to při použití vztahů
AND(x1, …, xn) = sign(1 – n + x1 + … + xn)
OR(x1, …, xn) = sign(n – 1 + x1 + … + xn)
NOT(x1) = sign(–x1)
NAND(x1, …, xn) = sign(n – 1 – x1 – … – xn)
NOR(x1, …, xn) = sign(1 – n – x1 – … – xn)
MAJ(x1, …, xn) = sign(x1 + … + xn)

Při řešení libovolného problému logického řízení lze vždy realizovat příslušný kombinační nebo sekvenční obvod pomocí umělé neuronové sítě složené pouze z bipolárních neuronů. Obávanou funkci XOR lze realizovat s použitím hierarchické sítě 2-2-1 takto XOR(x1, x2) = sign(1 + h1 + h2). Kde h1 = sign(–1 + x1 – x2), h2 = sign(–1 – x1 + x2).

Použití znaménka lineární kombinace vede pouze ke třem možným rozhodnutím.

Obr. 7. Obr. 7. Modulární neuron

Je-li třeba zajistit plynulý přechod mezi oběma extrémy, použije se vhodná sigmoidální funkce, např. hyperbolický tangens y = tgh(s), která plynule nabývá hodnot od –1 do +1 v závislosti na hodnotě součtu. Sigmoidální funkce je tak podstatným vylepšením znaménkového přístupu, kdy mezi dvěma extrémy existuje plynulá škála mezihodnot a je zajištěno nejen spojité, ale i hladké chování modelu neuronu. V této souvislosti se hovoří o hladkém bipolárním neuronu.

V rámci modulárních sítí se na součet s aplikuje exponenciální funkce podle vzorce y = exp(s). Rovná-li se s potenciálu nějakého řešení, je y jeho kladná hodnota. Exponenciála zveličuje rozdíly v hodnotách s. Tak pro s = 0 je např. y = 1, pro s = 1 je y = 2,718 a pro s = 2 je y = 7,389. V rámci jednoho neuronu je možné počítat vzdálenost d jeho vstupů x1, …, xn od jeho vah w1, …, wn podle vzorce D = d2 = (x1 – w1)2 + … + (xn – wn)2. V mnoha úlohách není nutné hodnotu D odmocňovat, neboť se pouze porovnávají hodnoty s cílem určit nejmenší vzdálenost. Detaily uvedeného postupu lze demonstrovat na následujícím jednoduchém příkladě.

Příklad 1

Je-li Frantovi 30 let, měří 170 cm a váží 63si uvědomit, že x1 = 30, x2 = 170, x3 = 63.

Průměrnému členu basketbalového oddílu je přitom 23 let, měří 193 cm a váží 90 kg, tedy w1 = 23, w2 = 193, w3 = 90. Potom D1 = (30 – 23)2 + (170 – 193)2 + (63 – 90)2 = 72 + 232 + 272 = 1 307 a d1 = 36,152.

Průměrný člen oddílu karate je dvacetiletý, měří 175 cm a váží 70 kg, tedy w1* = 25, w2* = 175, w3* = 70. Potom D2 = (30 – 20)2 + (170 – 175)2 + (63 – 70)2 = 102 + 52 + 72 = 174 a d2 = 13,191.

Nakonec průměrnému členu oddílu sumo je 30 let, měří 160 cm a váží 180 kg, tedy w1+ = 30, w2+ = 160, w3+ = 180, a tudíž D3 = (30 – 30)2 + (170 – 160)2 + (63 – 180)2 = 02 + 102 + 1172 = 13 789 a d3 = 117,427.

Pokud platí heslo „které skupině jsem nejblíže, do té patřím,„ je snadné zjistit, že d2 je nejmenší vzdálenost, takže lze doporučit oddíl karate. Ke stejnému výsledku se dojde při použití D2 bez odmocňování. Nejde-li o jednoznačné vítězství, ale spíše o stupeň příslušnosti Františka k jednotlivým skupinám, použije se Gaussova funkce y = exp(–d2/2w02) = exp(–D/2w02) kde w0 > 0 je kritická vzdálenost.

Tab. 2. Základní typy neuronových sítí (viz text)
Typ sítě Vrstva Autoři
vstupní skrytá výstupní
OLAM * L(+Z) Haykin
HEBB * L+Z Hopfield
HAMM * L+MAX L+Z Lipmann
MLP1 * L+Z L+Z Widrow, Hoff
MLP2 * L+S L+S Rummelhart
SOM * V+MIN Kohonen
RBF * V+G L Poggio, Girosi
MOD * L+E L Jacobs, Jordan
COUNT * V+MIN L Nielsen

Pro w0 = 10 vyjde postupně
y1 = exp(–1 307/200) = 0,0015
y2 = exp(–174/200) = 0,4190
y3 = exp(–13 789/200) = 0,0000

To znamená, že pro Frantu je vhodný basketbal na 0,15 %, karate na 41,9 % a sumo vůbec ne. Karate sice vyhrává, ale je to podobnost na méně než 50 %, a tedy žádná velká sláva. Jestliže se určuje jednoznačný vítěz, má buď maximální součet, nebo minimální vzdálenost. V takovém případě se u něj klade y = 1 a u zbylých neuronů je y = 0. V případě víceznačného vítězství se náhodně vybere jeden z vítězných neuronů.

Kombinací zmíněných principů je možné sestavit velký počet klasických neuronových sítí. V tab. 2 je uvedeno základních devět: optimální lineární asociativní paměť (Optimum Linear Associative Memory – OLAM), Hebbova síť (HEBB), Hammingova síť (HAMM), několikavrstvá síť s bipolárními neurony (Multi Layer Perceptor 1 – MLP1), několikavrstvá síť se spojitým chováním (MLP2), Kohonenovy mapy (SOM), síť s radiální bází (RBF), modulární síť (MOD) a síť se zpětným šířením (counterpropagation – COUNT). U každé sítě je uvedeno, jaký typ zpracování probíhá v jejích vrstvách, přičemž ve vstupní vrstvě se neděje nic a sítě OLAM, HEBB a SOM nemají skryté vrstvy.

4. Učení neuronových sítí

Při učení neuronových sítí jsou většinou používány komplikované matematické postupy, jejichž popis překračuje rámec tohoto článku. Některé sítě se učí velmi snadno, zejména pokud jsou vstupní i výstupní signály bipolární. Bez hlubšího vysvětlení stojí za to si ukázat, jak se učí z dat sítě OLAM, HEBB a HAMM. Opět poslouží jednoduchý příklad.

Příklad 2

V tab. 3 jsou uvedeny čtyři situace, které zažil František o prázdninách. Konzumace piva je zde interpretována jako následek tří okolností: pocitu vedra, žízně a řidičské povinnosti. Ke znázornění pravdivosti výstupního a vstupních výroků slouží bipolární hodnoty +1 a –1. Otázka je, jak nastavit hodnoty vah neuronové sítě, aby byla schopna předvídat Frantovo chování. Při učení sítě OLAM stačí vyřešit soustavu lineárních rovnic
w0 + w1 + w2 – w3 = +1
w0 + w1 + w2 + w3 = –1
w0 + w1 – w2 – w3 = +1
w0 – w1 – w2 – w3 = –1

Tab. 3. Čtyři zážitky z prázdnin
Vedro x1 Žízeň x2 Řidič x3 Pivo y
+1 +1 –1 +1
+1 +1 +1 –1
+1 –1 –1 +1
–1 –1 –1 –1

Výsledek je w0 = –1, w1 = +1, w2 = 0 a w3 = –1. Tomu odpovídá chování lineární sítě OLAM podle vzorce y = –1 + x1 – x3

To tedy znamená, že žízeň (x2) nehraje roli, protože w2 = 0, vedro (x1), jak už to bývá, hraje kladnou roli (w1 = +1) a řidičské povinnosti (x3) zápornou roli (w3 = –1).

Při testu naučené sítě pro případ, že není vedro (x1 = –1) a Franta musí jet autem (x3 = +1) vyjde y = –1 + (–1) – 1 = –3. To je trochu podezřelé, neboť výstup sítě není ani +1, ani –1.

Naproti tomu znaménko výstupu souhlasí, a tak stačí přidat znaménkovou funkci. Tak vznikne modifikace sítě OLAM, která realizuje bipolární neuron a je popsána vztahem y = sign(w0 + w1x1 + w2x2 + w3x3)

Podmínky učení jsou dány soustavou nerovností
w0 + w1 + w2 – w3 > 0
w0 + w1 + w2 + w3 < 0
w0 + w1 – w2 – w3 > 0
w0 – w1 – w2 – w3 < 0

Stačí nalézt libovolné řešení soustavy a bipolární neuron je naučen správnému chování. Jedno takové řešení už je známo: w0 = –1, w1 = +1, w2 = 0, w3 = –1. Výsledné řešení má tvar y = sign(–1 + x1 – x3)

Teď již je všechno v pořádku i pro x1 = –1, x3 = +1, kdy y = –1, tedy pivo nebude.

Avšak řešení obecných soustav rovnic nebo nerovností, jiných než v příkladě, může být numericky komplikované, nemusí existovat nebo může být mnohoznačné. Různé metody učení řeší takové situace individuálně. Extrémem jsou jednoduché metody, které nemusí zajistit exaktní řešení, tedy mohou dělat chyby.

V dalším textu bude věnována pozornost síti s Hebbovým učením, jak ji popsal Hopfield. Především platí, že w0 = 0, takže y = sign(w1x1 + … + wnxn). Hebbovo učení vede k přímému výpočtu každé váhy wk pomocí vzorce wk = (xky)1 + … + (xky)m, kde m je počet vzorů k učení a symbol (…)j představuje hodnotu pro j-tý vzor. Potom platí
w1 = (+1)(+1) + (+1)(–1) + (+1)(+1) + (–1)(–1) = 1 – 1 + 1 + 1 = 2
w2 = (+1)(+1) + (+1)(–1) + (–1)(+1) + (–1)(–1) = 1 – 1 – 1 + 1 = 0
w3 = (–1)(+1) + (+1)(–1) + (–1)(+1) + (–1)(–1) = –1 – 1 – 1 + 1 = –2

Tak se použitím pouhého násobení a sčítání +1 a –1 přímo získají hodnoty vah w1 = 2, w2 = 0, w3 = –2 a vzorec pro pití piva je y = sign(2x1 – 2x3) = sign(x1 – x3)

Ale pozor na Hebbovo „snadné“ učení. Síť sice správně odhalila kladný vliv vedra, nulový vliv žízně a záporný vliv motorismu na konzumaci, ale naproti tomu dělá chyby. Je-li vedro (x1 = +1) a František nikam nejede (x3 = –1), je správně y = sign(1 + 1) = 1. Není-li vedro (x1 = –1) a František musí řídit (x3 = +1), je opět správně y = sign(–1 – 1) = –1. Ve zbylých dvou případech (x1 = x3 = +1 nebo x1 = x3 = –1) vychází y = sign(0) = 0. To znamená, že síť alibisticky „neví„, zda má František pít pivo; to je v porovnání s tab. 3 chyba.

Vzorec pro Hebbovo učení je příliš jednoduchý na to, aby byla navržená neuronová síť kvalitním a přesným nástrojem.

Nyní je načase se seznámit s Hammingovou sítí, která se snadno učí tak, že pro každou situaci v datech založí jeden skrytý lineární neuron s výběrem maxima, jehož váhy w1, w2, w3 jsou postupně rovny hodnotám x1, x2, x3 pro každý vzor (v příslušném řádku v tab. 3). Tak vznikne síť s topologií 3-4-1, kde pro skryté neurony platí
s1 = x1 + x2 – x3
s2 = x1 + x2 + x3
s3 = x1 – x2 – x3
s4 = –x1 – x2 – x3
a dále hk = 1, když je sk větší než zbylé hodnoty sj pro j ą k. V opačném případě je hk = 0. Tím je popsáno chování skryté vrstvy. Z tab. 3 plyne, že neurony h1 a h3 vyhrávají, jestliže si Franta dá pivo, zatímco neurony h2 a h4 vyhrávají v případě abstinence. Z toho lze pro výstup sítě snadno získat vzorec y = sign(h1 – h2 + h3 – h4) kde příslušné váhy odpovídají hodnotám y v jednotlivých situacích. Není to krásné, místo učení rovnou nahrazovat váhy údaji z tabulky vzorových situací? Navíc je zajištěno, že síť neudělá žádnou chybu. Při testu jejího chování pro druhý řádek tab. 3 je x1 = x2 = x3 = +1. Potom
s1 = 1 + 1 – 1 = +1
s2 = 1 + 1 + 1 = +3
s3 = 1 – 1 – 1 = –1
s4 = –1 – 1 – 1 = –3

Je tudíž okamžitě zřejmé, že s2 = +3 je maximální hodnota. Pak h2 = +1 a h1 = h3 = h4 = 0 a nakonec vyjde y = sign(0 – 1 + 0 – 0) = –1 tedy žádné pití piva.

Co se týče testu Hammingovy sítě v případě, kdy František má žízeň a nikam nejede, ale není známo, zda je vedro, stačí položit x1 = 0, x2 = +1, x3 = –1 a počítat
s1 = 0 + 1 – (–1) = 2
s2 = 0 + 1 + (–1) = 0
s3 = 0 – 1– (–1) = 0
s4 = –1 – 1 – (–1) = –1

Potom s1 je maximální, takže h1 = +1, h2 = h3 = h4 = 0 a y = sign(1 – 0 + 0 – 0)= +1.

To bylo možné v případě žízně čekat.

Hammingova síť je modelem skladování konkrétních informací a plně vyhovuje preciznímu uživateli, neboť nedělá chyby a má mírný sklon k zobecňování. Zároveň se tato síť snadno učí z dat (jako HEBB). Zapomíná se však na to, že pro řešení skutečného problému by bylo třeba uchovávat velké trénovací množiny v milionech neuronů skryté vrstvy, což je technicky neúnosné. A navíc je nepříjemné, že Hammingova síť není schopna dokonale zobecňovat zákonitosti v datech. To je také hlavní důvod, proč se raději dává přednost komplikovaným a matematicky náročným postupům učení založeným na méně spolehlivých principech.

5. Použití neuronových sítí

Z úvodní části článku je patrné, že již historie vývoje umělých neuronových sítí je velmi kontroverzní. Rozpor mezi aplikačním nadšením, logickými požadavky na kvalitu řešení a technickými možnostmi neuronových sítí se plně odráží i v jejich postavení jako nástroje pro praxi. V tab. 4 je uveden přehled tradičních aplikací neuronových sítí tak, jak jsou publikovány i komerčně dodávány.

Tab. 4. Tradiční použití neuronových sítí
Úloha Vhodné neuronové sítě
logické obvody HEBB, HAMM, MLP1
odstranění šumu MLP1, MLP2, RBF, MOD
řeč a výslovnost MLP2, SOM
komprese COUNT
dolování dat (data mining) OLAM, HEBB, SOM
optické rozpoznávání znaků HEBB, OLAM, HAMM, MLP1, MLP2, RBF, SOM

V současné době se umělé neuronové sítě uplatňují často jako pomocné nástroje uvnitř funkčních systémů. Jde zejména o nástroje pro potlačování šumu v datech, optické rozpoznávání znaků (Optical Character Recognition – OCR), analyzátory provozu na internetu a jiné systémy, které za uživatele dělají špinavou a mnohdy i špionážní práci. Přestože existují i aplikace umělých neuronových sítí v oblasti řízení procesů, rozhodování, poradenství a dolování dat (data mining), nelze v současné době hovořit o masivním uplatnění a obchodním úspěchu. Hlavní příčinou rozpaků při implementaci neuronových sítí jsou problémy s jejich učením. Právem lze hovořit o paradoxu: dodavatelem dobře naučená síť s pevnými vahami nudí uživatele svým stabilním chováním a naopak síť s náhodně nastavenými vahami, která je ochotná se cokoliv začít učit, může fascinovat svým nečekaným chováním, které ovšem končí vystřízlivěním zákazníka. Navíc typický uživatel osobního počítače neprahne po tom, aby jeho stroj byl něco víc než jen „trpělivý sluha„. Nelze se tedy divit, že si málokdo za své peníze dobrovolně koupí „nového pána„ v podobě expertního systému s neuronovou sítí uvnitř. Z obchodního hlediska lze jen závidět výrobcům fuzzy vysavačů, praček, ždímaček a žehliček, že nikoho ze zákazníků neruší přítomnost řídicích fuzzy logických obvodů uvnitř. Fuzzy řízení je také moderní, ale předmětem dodávky je typicky řídicí systém s pevnou strukturou a parametry, které nastavil výrobce jednou provždy. Kdo chce používat neuronové regulátory, může se uvedenou paralelou inspirovat.

Poděkování

Práce vznikla za podpory výzkumným záměrem Fakulty chemicko-inženýrské VŠCHT Praha č. MŠM 223400007.

Literatura:
[1] ŠNOREK, M.: Neuronové sítě a neuropočítače. Vydavatelství ČVUT, Praha, 2002.
[2] ŠÍMA, J. – NERUDA, R.: Teoretické otázky neuronových sítí. Matfyzpress, Praha, 1996.
[3] HAYKIN, S.: Neural Networks. Macmillan, New York, 1994.
[4] FAUSETT, L. V.: Fundamentals of Neural Networks: Architectures, Algorithms and Applications. Prentice Hall, New Jersey, 1994.


doc. Ing. Jaromír Kukal, Ph.D.,
ústav počítačové a řídicí techniky, VŠCHT Praha
(jaromir.kukal@vscht.cz)

Lektoroval: doc. Ing. Václav Jirsík, CSc.

Doc. Ing. Jaromír Kukal, Ph.D., je absolvent katedry automatizovaných systémů řízení VŠCHT Praha (1978). Do roku 1992 pracoval v chemickém průmyslu v oblastech technické přípravy výroby, vývoje řídicích systémů technologických procesů a řízení jakosti. Od roku 1992 vyučuje na vysoké škole. Od roku 2000 je doktorem aplikované matematiky na Přírodovědecké fakultě Ostravské univerzity a od roku 2004 docentem technické kybernetiky na VŠCHT Praha. Zaměřuje se především na numerickou matematiku, optimalizaci, zpracování obrazu, umělou inteligenci a techniky programování.