Neurony nejen v mozku (7)

Poslední část našeho seriálu o sítích, které se jeví jako neuvěřitelně inteligentní a vhodné pro mnoho aplikací. Kdy vlastně tyto sítě fungují a jak se dají využít, o tom se dozvíte dnes.

I inteligentní systém se může mýlit, ale jen chvíli.

Do roku 1958 se k nastavování vah umělých neuronových sítí, ať již s využitím jednoho neuronu nebo spojení více neuronů, používal lidský intelekt. Proč ne, když máme o jednu vrstvu víc než delfín. Lze pak hovořit o umělé inteligenci? Pokud se výsledná síť chová inteligentně, pak ano. Ale to odborníkům nestačilo. Roku 1958 pánové Widrow a Hoff a nezávisle na nich Rosenblatt navrhli princip, jakým by se měl učit jeden neuron být inteligentním bez pomoci člověka, a to od nuly. Tento princip se nazývá Delta Rule. Je založen na jednoduché myšlence: ten, kdo dělá chyby, musí být za ně mírně, ale okamžitě potrestán. Netrestaná buňka nemá důvod měnit své chování, a proto nemění hodnoty vah. Proto je nutné ke každému neuronu přidat osobního učitele, který nedělá nic jiného, než že dohlíží na správnost výstupu neuronu v každé situaci. Umělý učitel pouze vnímá rozdíl mezi správnou odpovědí Y* a výstupem neuronu Y. Z těchto dvou hodnot stačí udělat rozdíl DELTA tak, jak je uvedeno v následujícím vzorci.

Delta = y* - y

Tento rozdíl má zásadní význam pro učení neuronu. Jestliže je DELTA rovno nule, znamená to, že neuron zvládá situaci, do které se dostal, a učitel nic nemusí dělat. Pokud DELTA není rovno nule, musí učitel pochopit, že jeho svěřenec dělá momentálně chybu, a musí vyndat rákosku. Je-li DELTA kladné, pak výstup neuronu je menší, než očekával učitel. Čím by to tak mohlo být způsobeno? Patrně nám vyšel příliš malý vážený součet vstupů neuronu. Za to ale nemohou vstupy, nýbrž hodnoty příslušných vah u nich. Hodnotu součtu snadno zvýšíme tak, že všechny váhy u kladných vstupů zvýšíme. Naopak všechny váhy u záporných vstupů snížíme. Je-li DELTA záporné, pak výstup neuronu je větší než je zdrávo a vážený součet vstupů neuronu je příliš velký. Hodnotu součtu snadno snížíme tak, že všechny váhy u kladných vstupů snížíme a u záporných vstupů zvýšíme. Tento princip DELTA UČENÍ je popsán následujícím vzorcem

Winew = Wi + Delta Xi

Zde i je číslo vstupu, Wi je původní hodnota váhy před výpraskem, DELTA je hodnota nespokojenosti učitele a Xi je hodnota vstupu. Vzorec ukazuje, jak vypočítat novou hodnotu váhy po výprasku. Na DELTA učení je okouzlující jeho jednoduchost a spolehlivost při nastavování jednoho neuronu. Existují-li takové váhy, které řeší daný problém, pak má problém nekonečně mnoho celočíselných řešení a DELTA učení jednoho z řešení nalezne po konečném počtu kroků z libovolného počátečního odhadu. A to je od roku 1960 důvodem k jásotu. Znamená to, že pokud je problém lehký, tak DELTA učení vede vždy k úspěchu. Je-li problém neřešitelný jedním neuronem, nikdo se nemůže divit, že ani DELTA učení nic nenajde. Z praktického hlediska jsou váhy neuronu na počátku učení nulové včetně W0 a jednotlivé trénovací vzory z tabulek se náhodně střídají na vstupu neuronu. Po několika stech až milionech opakování se již váhy nemění a máme vyhráno. Hledání jiných metod učení pro sítě se skrytými neurony bylo a nadále je holou nutností a motivem rozvoje celého neurocomuptingu. Byla vyvinuta například vícevrstvá síť se spojitými neurony, která se učí metodou zpětného šíření neboli backpropagation, a použití globálních minimalizačních postupů je též v módě.

A kde vlastně neuronovou síť použít?

Rozpoznání strojově psaného písma, rozpoznání ručně psaného písma, rozpoznávání zvuků, slov, povelů a vět, automatický strojový překlad, určování výslovnosti - Nettalk, fonetický psací stroj, předpověď počasí, předpověď stavu vody, předvídání kursu akcií na burze, předpověď kursu měn, automatický řidič ... to je jen malý výčet hlavních aplikací neuronových sítí. Položme si otázku, zda bychom byli ochotni předjet v serpentinách auto řízené neuronovým autopilotem, zda byste investovali 100000Kč do akcií, protože vám to poradila neuronová síť, nebo si vyšli na výlet bez deštníku, protože neuronový předpovědní systém si myslí, že nebude pršet. Opět se vracím k úvodním myšlenkám, že jsme ochotni přijmout umělé systémy jako pomocníky k rozpoznávání písmen, ale příliš netoužíme po tom, aby se nám vměšovaly do dalších našich činností, ať již k tomu máme důvody bezpečnostní, nebo ješitné. To ovšem nemusí znamenat, že tyto sítě nefungují.

Kdy vůbec neuronové sítě fungují?

Poslední odstavec tohoto seriálu, který se nám rozrostl na pěkných sedm dílů a věřím, že pro vás byl přínosem, je věnován především optimistům, kteří by chtěli získat informace o tom, kterým směrem upřít své snažení v oboru neurocomputingu. Zde jsou tři základní principy pro realizaci fungující neuronové sítě.

  • První princip: Řešit jednoduchý problém. Pokud je problém jednoduchý, pak nezáleží na tom, zda ho řešíme klasickým neuronem nebo neuronem s hladkou charakteristikou, a dospějeme snadno k řešení úlohy. Pokud si ale navíc dáme záležet, aby váhy neuronu byly v absolutní hodnotě pokud možno co nejmenší čísla, a přesto byl problém ještě vyřešen, pak získáme velmi stabilní a robustní řešení, se kterým budeme spokojeni.
  • Druhý princip: Preprocesoring. Pokud zvolíme vhodné zpracování signálu, můžeme vyřešit i obtížnější úlohu. Je však třeba mít určitou znalost, jak ze vstupních informací vypočítat nové informace s kvalitativně vyšší vypovídací schopností, které vnášejí více jasno do řešené úlohy. Ty pak použí jako vstupy pro vlastní neuronovou síť. Při této druhé metodě jsme nuceni vložit určité své lidské know - how do systému a požádat ho pouze o naučení vah horní vrstvy.
  • Třetí princip: Globální minimalizace. Pokud chceme, aby neuronová síť fungovala ve složitějších případech, je třeba se obrátit k některým metodám globální minimalizace funkce více proměnných, ale toto téma by myslím samo o sobě vystačilo na seriál podobný tomuto a rozhodně bychom si přitom nevystačili pouze s jednoduchou matematikou.

    Proto tímto náš seriál o neuronových sítích uzavírám a těším se s vámi - opět u jiného tématu - opět nashledanou.