Neuronové sítě - základy
Neuronové sítě – výuka2 Neuronové sítě jsou definovány jako nedeklarativní systémy umělé inteligence. Nedeklarativní jsou v tom smyslu, že nemusíme předem definovat pravidla, kterými se neuronová síť řídí. Pravidla řešení se stanovují až během učení. Neuronové sítě umožňují ideální řešení sítí, neboť jimi realizované sítě nezávisí na topologii a ani na propojovacích prvcích. Nevýhodou jsou velké nároky na uživatele jak v přípravě dat tak i v trénování. Protože neznáme pravidla, vytváříme si je během trénování tedy vytváříme určité nejistoty v řešení úlohy, což je fuzzy logika. Fuzzy logika matematicky vyjadřuje zachycené nejistoty spojené s poznávacím procesem. Poskytuje interferenční mechanizmus pro poznávání nejistoty. Tato řešení se nehodí pro úlohy, kde nesmí být nejistota, což je například finančnictví, účetnictví apod. Výsledky řešení nezávisí na topologii sítě, ale jen na vstupní, skryté a výstupní vrstvě jako celku. Na topologii závisí pouze jak síť pracuje (jak rychle, jakým způsobem).
1. Základní pojmy neuronové sítě Definice: Neuronová síť je orientovaný graf s ohodnocenými hranami kde rozeznáváme uzly vstupní, výstupní a skryté, a kde hrany reprezentují tok signálu. Hrany jsou ohodnoceny parametrem zpracování signálu, který je nazýván vahou. [3] Spojení mezi dvěma neurony má vždy svůj směr, takže je určen neuron, ze kterého proudí informace a do kterého. Propojení mohou být i obousměrná. Významnou vlastností spojení je váha , která určuje schopnost a intenzitu přenášení informace. Váha může mít kladnou i zápornou hodnotu, takže se neurony mohou navzájem povzbuzovat nebo potlačovat. [1] Neuron je samostatně pracující element s mnoha vstupy a většinou jedním výstupem. Výstupní signál je závislý pouze na vstupních úrovních. Neurony jsou stavební buňky mozku specializované na přenos, zpracování a uchovávání informací. Princip neuronu spočívá v procesu učení, při kterém se celý systém adaptuje podle optimalizačních algoritmů, aby co nejlépe vyřešil zadanou úlohu. Neuronové biologické systémy nejsou založeny na modelu, ale na nejistotě, nepřesnosti,složitosti a aproximace. Přesto jsou velmi úspěšné. Integrací fuzzy logiky a neuronových sítí vznikly fuzzy-neuronové sítě.
2. Topologie sítě Neuronová síť se skládá ze tří vrstev neuronů vstupních (nejsou vzájemně propojeny) - slouží jen jako vstupy do další vrstvy skrytých (obvykle obsahuje mnohonásobně více neuronů, než zbývající vrstvy) – zpracovávají signály, není u nich pro nás podstatný způsob zpracování a tedy ani mezivýsledky řešení. Může se skládat z více vrstev. výstupních – převádí výsledky skryté vrstvy (vstupy do vrstvy) na výstupy. Vnitřní propojení je jednosměrné.
21.9.2016
1
Neuronové sítě - základy
Typy sítí: (podle propojení skryté vrstvy) 1. Obecná neuronová síť může v rámci skryté vrstvy obsahovat smyčky -cykly. Neurony mohou posílat informaci i samy sobě přímo nebo přes několik dalších neuronů (v rámci jedné vrstvy nebo přes více vrstev skryté vrstvy). (Plné červené - vstupní tečkované - zelené - skrytý šrafované - modré - výstupní Směry bez šipek jdou zleva doprava)
Díky cyklickým vazbám nemusí dojít k výsledku. Tato topologie je vhodná pro paměťové sítě. 2. Acyklická neuronová síť je vhodnější pro řešení některých typů úloh. Lze u nich jednoznačně určit postup šíření informace přes jednotlivé neurony. Každý neuron tedy čerpá informace od svých předchůdců (může to být i neuron z další vrstvy skryté vrstvy). Je vhodná pro realizaci neuronové sítě na jednoprocesorovém počítači.
2.A. Zvláštní případ acyklické sítě, která je nejběžnější, je hierarchická síť. Obsahuje více skrytých vrstev, které mají více prvků než vrstvy vnější (i řádově). Informace proudí pouze zleva doprava.(není zde ani vazba mezi prvky jedné vrstvy). Zvláštní podskupiny tvoří sítě triviální - mají jen vstupní s výstupní vrstvu vícevrstvé – mohou mít propojení i přes několik vrstev skryté vrstvy vrstvené – výstupy jedné vrstvy jsou vždy vstupy další vrstvy skryté vrstvy.
21.9.2016
2
Neuronové sítě - základy
U živých živočichů, kteří mají hierarchickou síť neuronů, se počet skrytých vrstev pohybuje do 4. 2.B. Redukovaná síť
Zvláštním případem hierarchické sítě je redukovaná síť, která má u vnitřních vrstev méně neuronů než u vnějších. Používá se při ztrátové kompresi dat související s přibližným uchováním a přenášením akustické a video informace. Vstupní neurony mají plné informace, které předají menšímu počtu skrytých neuronů za účelem zmenšení prostoru v paměti a posléze opět rekonstruována na původní počet výstupních neuronů.
3. Základní funkce neuronů Neuron je element, který realizuje přenosovou funkci. Tato funkce je tvořena jako součet všech rozdílů určených váhováním vstupních hodnot a jejich následným porovnáním s existující přenosovou funkcí. Přeponosová funkce může být skoková (např při hlasování je existující funkce 50% všech hlasů nebo součet překročí prahovou hodnotu), nebo .analogová (výstup se postupně (obecně nelineárně) mění) Lineární analogová přenosová fce je užívána ve vstupních vrstvách sítí, kdežto skoková jen u výstupní vrstvy sítě. Pak má binární výstup a neuron se nazývá preceptron. Pro optimalizaci musí mít všechny přenosové funkce spojitou 1. derivaci. (Vyjma koncové binární.) Přenosové analogové funkce Nejjednodušší funkcí je lineární funkce
y= k*x*w 21.9.2016
y 3
Neuronové sítě - základy
x
y W
y= k x w
Kde k je přenosová funkce x
přenosová funkce s prahováním y= k( x*w – B)
y
x
y y= k (x w – B)
W
X
lineární sumační funkce y= k(SUMA( x*w)) y y= k(SUMA( x*w))
w1
y
x1 w2 x2 suma x
sumační funkce s prahováním y= k(SUMA(x*w-B)) y y= k(SUMA(x*w-B))
x1
w1
y
w2 x2 suma x Následují příklady nejužívanějších funkcí sigmoida y = 1/(1+ e-x ) Následující graf je sestrojen pro =2.
21.9.2016
4
Neuronové sítě - základy
y
1,2 1 0,8 0,6 0,4 0,2 0 -4
-2
Řada1
0
2
4
x
hyperbolický tangens
y (x) = tgh (x) = (e x – e-x) / (e x + e-x) Graf je sestrojen pro =2. 1,5 1 0,5
y
0 -2
-1
Řada1
-0,5 0
1
2
-1 -1,5 x
Struktura a činnost sítě Za neuronovou síť budeme považovat takovou strukturu pro rozprostřené paralelní zpracování informací, která se skládá z jistého (obvykle velmi vysokého) počtu N výkonných prvků (neuronů). Každý neuron transformuje vstupní signál na výstupní signál podle své přenosové (transformační) funkce. Při takové transformaci může neuron uplatnit i svoji lokální paměť. Přenosová funkce může působit buď spojitě nebo přerušovaně (opakovaně). Lokální paměť je často reprezentována hodnotami váhových koeficientů u jednotlivých vstupů (resp. ovlivňuje její obsah u opakovaně působících funkcí). Funkci neuronové sítě můžeme zapsat jako jistou transformaci vstupního signálu X = (x1, x2, ..., xn) na výstupní signál Y = (y1, y2, ..., ym) : Y = (X).
4. Metody učení Účelem učení je naučit síť pracovat tak, aby dávala správné výsledky. Toho se dosáhne nastavováním vah u jednotlivých vazeb. Tedy učením nastavujeme váhy tak, aby výsledky byly odpovídající. Učení rozlišujeme na učení s učitelem 21.9.2016
5
Neuronové sítě - základy
učení bez učitele. Víme, že neuronové sítě mohou provést libovolné zobrazení (výpočet). Ke každému problému máme zajištěnu existenci řešící sítě. Nevíme ovšem, jak řešení najít. U biologických neuronů jsou znalosti uloženy v synapsích, ve formálním modelu jsou uloženy ve vahách příslušných spojů. Naučit síť řešit nějaký problém znamená nalézt hodnoty všech vah a prahů jednotlivých neuronů. Získání těchto hodnot přímým výpočtem synaptických vah neuronů (jako u binárních prahových neuronů) je nevhodné a ve většině případů i neuskutečnitelné. Proto hodnoty vah získáváme během tréninku sítě. Nastavování vah je součástí jednotlivých trénovacích metod a je nazýváno výukovým zákonem. Jedná se tedy o režim, který nazýváme adaptivní (učící). Po ukončení tohoto režimu přechází síť do režimu aktivního (vybavovacího).
4.1 Učení s učitelem Učení s učitelem můžeme popsat jednoduchým způsobem následovně. Předložíme-li na vstupy neuronové sítě zadání některého problému, síť na výstupech zareaguje podle momentálního nastavení vah a prahových úrovní. Výstup můžeme porovnat s požadovaným řešením a stanovit chybu. Na jejím základě se budeme snažit změnit váhy tak, aby při dalším řešení stejného zadání byla velikost chyby menší. Pro zobecnění řešení je potřeba stanovit trénovací množinu vstupních vzorů. Princip učení živých organizmů je podobný, i když pozice učitele nebývá vždy jednoznačně určena (bývají to nejčastěji různé okolní vlivy působící jako zpětná vazba). Máme-li vícevrstvou síť s m vstupními neurony x1,…,xm a n výstupními neurony o1,...,on, můžeme trénovací množinu zapsat jako: T = x1, y1, x2, y2, ...,xP, yP, kde xp = (x1p,..., xmp) je vektor vstupních hodnot a yp = (y1p,...,ynp) je vektor požadovaných výstupních hodnot p-tého příkladu. T značí transformaci vstupních hodnot na výstupní a tedy lze symbolicky předcházející vztah zapsat jako T = [x, y] Trénovací množina obsahuje P příkladů, které se síť musí naučit; platí p P. Pak celková střední kvadratická odchylka sítě (nejčastěji používaná metoda vyhodnocení) je dána vztahem: 1
E=— 2
P
n
( (ykp - okp)2 ), p=1 k=1
kde okp je skutečný výstup k-tého neuronu ve výstupní vrstvě při předložení vstupu p-tého příkladu na neurony vstupní vrstvy, E je chybová funkce. Pak (ykp - okp) je rozdíl požadovaného a očekávaného výstupu. Neuronová síť se může naučit i to co nechceme. Dáváme-li například prvky trénovací množiny stále ve stejném pořadí, může se síť mezi nimi vytvořit souvislost. Chybová funkce E závisí na vstupech a na vahách sítě. Považujeme-li vektor vstupů (tj. trénovací množinu) za konstantní, stává se střední kvadratická odchylka jen funkcí vah neuronové sítě. Po úpravě vah je tedy funkce E pro stejnou trénovací množinu zase jen závislá na nastavení vah. Pomocí nastavování vah se snažíme 21.9.2016
6
Neuronové sítě - základy
chybovou funkci E minimalizovat. Vzhledem k tomu, že aktivační funkce neuronů jsou derivovatelné, je i E derivovatelná podle jednotlivých vah. Dále zavedeme parametr učení sítě, který označíme , a který budeme nazývat rychlostí učení. Tento parametr také určuje délku kroku iterace. Pak pro změnu váhy (gradientní metoda) platí:
wi = -(E/wi) Tento vztah lze nahradit přibližným vztahem, ve kterém jsou za derivace dosazeny podíly diskrétních čísel
( wi )t+1 = -(E/wi) kde pravá strana je v čase t. E
minimum
Wi
Bude-li hodnota parametru příliš vysoká, budou se vlastnosti sítě měnit rychle, ale bude i větší riziko, že přeskočíme hledané minimum chyby. Naopak, jestliže je hodnota příliš nízká, je učení pomalejší a síť se stává více náchylná k uváznutí v lokálním minimu chybové funkce. Příklady sítí s učením s učitelem: 1. perceptronová síť, 2. zpětné šíření chyb, 3. asociativní paměť (Hopfield).
Perceptronová síť Prvky perceptronové sítě jsou perceptrony, což jsou neurony s binárními výstupy nebo s nelineárním výstupem (nelineární perceptron). Binární perceptrony se používají obvykle ve výstupní vrstvě. Perceptronová síť je vrstvená neuronová síť s dopřednými vazbami. Vstupy každého neuronu jedné vrstvy jsou napojeny na výstupy všech neuronů vrstvy předchozí. Neexistují žádné vazby mezi vzdálenějšími vrstvami nebo mezi neurony v rámci jedné vrstvy. Každý neuron má tedy právě tolik vstupů, kolik je neuronů v nižší vrstvě. Vstupní vrstva sítě slouží pouze k distribuci vstupních hodnot. Pro přenosovou funkci vrstvených perceptronových sítí není vhodná funkce skoková ani lineární (u lineárních funkcí nemá smysl vytvářet více vrstev, protože jedna vrstva lineárních neuronů provádí lineární zobrazení a skládáním více lineárních zobrazení dostaneme zase jen lineární zobrazení). Budeme tedy používat nelineární perceptrony. Ty používají jako aktivační funkci takovou funkci, která součet impulsů transformuje do intervalu 0,1, a to tak, že u vstupních hodnot v blízkosti nuly prudce roste, zatímco u vysokých a nízkých hodnot se mění jen nepatrně (tato 21.9.2016
7
Neuronové sítě - základy
vlastnost je převzata od biologických neuronů). Tyto požadavky splňují již zmíněné nelineární aktivační funkce, z nichž nejčastěji se používá sigmoida g(x) = 1 / (1 + e-x).
Back Propagation Back propagation - algoritmus zpětného šíření neboli Sítě se zpětným šířením chyby. Algoritmus zpětného šíření chyby je nejdůležitějším a nejpoužívanějším algoritmem pro učení sítí. Základem je vrstvená síť, kde nejsou žádné zpětné vazby. Chyba se šíří zpětně přes všechny vrstvy k první vrstvě. Musí ale být známa vstupní a výstupní dvojice hodnot. Pro přenosovou funkci se u těchto sítí opět používá sigmoida a hyperbolický tangens. Učení podle tohoto algoritmu probíhá ve třech fázích. V první fázi je předloženo zadání. Na toto zadání reagují neurony jednotlivých vrstev sítě, postupně od vstupní vrstvy až po výstupní. Jakmile síť vrátí výstupní hodnoty, je možné zjistit chybu výstupu. Ve druhé fázi dochází k šíření informací o chybě, a to směrem od výstupní vrstvy zpět. Chybu neuronů ve skryté vrstvě určuje součet chyb neuronů následující vrstvy vynásobených odpovídajícími vahami. U vstupní vrstvy není třeba chybu zvažovat, neboť vstupní vrstva pouze distribuuje vstupní hodnoty. Ve třetí fázi, kdy už je pro každý neuron chyba známá, je možné podle pravidla učení adaptovat váhy. Realizace výpočtu chyby a nastavení vah se provádí připojením další části sítě k dané síti, tak, aby umožnila šíření informace od výstupu ke vstupu. Pak ale při provozu se musí tato část sítě odpojit (pokud se nejedná o stále se učící síť). Další způsob je realizace sítě na počítači, kdy se obvykle provádí výpočet změny vah mimo síť. Programy tak vypočtou nové koeficienty, které se poté u sítě nastaví. Učící cyklus je tvořen jednotlivými iteracemi popsanými výše. Každý vzor je během cyklu předložen síti právě jednou. Zkušenosti ukazují, že v případě, kdy jsou trénovací vzory navzájem nezávislé, není vhodné, jak již bylo řečeno, vzory předkládat ve stále stejném pořadí. V opakujících se sekvencích by totiž síť mohla nacházet nežádoucí závislosti. Back-propagation má však i několik nepříjemných vlastností. Především je to skutečnost, že chybová funkce je závislá na všech vahách a díky tomu je to funkce velice komplexní, tedy má mnoho lokálních minim. Gradientní metoda vede vždy do nejbližšího minima, které nemusí být globální. Druhým problémem je množství učících parametrů, které nejsou algoritmem určeny, a přitom na nich závisí úspěšná konvergence chybové funkce. Vhodné nastavení těchto parametrů může značně ovlivnit úspěšnost učení. Tato metoda konverguje relativně pomalu, zejména pro velké váhy, kde jsou změny sigmoidy velmi malé.
21.9.2016
8
Neuronové sítě - základy
Obr. Metoda back-propagation error. Plné šipky ukazují směr šíření signálu, zatímco čárkované směr šíření chyby.
Vylepšení algoritmu se zpětným šířením chyby spočívá v zavedení ”setrvačnosti” ve změnách vah, kdy změna váhy záleží i na velikosti předchozí změny váhy. Jiné vylepšení spočívá ve změně délky kroku . Další vylepšení může být v dynamické změně strmosti aktivační funkce; na začátku učení sítě se používá pozvolnější aktivační funkce s menším , ke konci učení se pak její strmost zvyšováním zvětšuje. Back-propagation však není algoritmem, který používá pro učení sítí příroda. Jeho výpočet je sice lokální, ale lokálnost je pro biologickou implementaci podmínkou nutnou, nikoliv však postačující. Problém spočívá v obousměrnosti spojů, kdy se po nich zpětně šíří chyba. Reálné axony nejsou v žádném případě obousměrné.
Hopfieldův model Hopfieldův model je krok směrem od biologické reality. Používá totiž symetrické spoje mezi neurony, které v přírodě neexistují. Hopfieldův model neuronové sítě byl vytvořen jako asociativní paměť. Ta je tvořena neurony propojenými symetrickými spoji každý s každým. Propojení může být reprezentováno symetrickou maticí vah s nulovou hlavní diagonálou. Neurony mají dva stavy +1 (aktivovaný) a -1 (neaktivovaný) a provádějí prahový vážený součet, kde 1, pro a 0 sign (a) = -1, pro a 0 Postupným nastavováním vah model nepodstatné informace zapomíná a podstatné čím dál tím víc pamatuje (posiluje vazby). Kladný popud zesiluje vazbu, záporný zeslabuje. Postupuje tímto způsobem tak dlouho, až zůstanou jen potřebné vazby. Fáze učení bude začínat nastavením všech vah synaptických spojení na nulu. Neuronům přiřadíme hodnoty {+1, -1}. Potom změníme všechny váhy podle následujícího pravidla: jsou-li
21.9.2016
9
Neuronové sítě - základy
spojeny neurony se stejnou hodnotou, zvýšíme hodnotu váhy o jedničku, pokud jsou spojeny neurony s rozdílnými hodnotami, hodnotu váhy o jedničku snížíme. Váha se zde mění, i když oba neurony jsou neaktivní [-1, -1], což neexistuje u biologických neuronů, jejichž funkce je popsána Hebbovým pravidlem, podle kterého se synaptické spojení mezi dvěma současně aktivovanými neurony posiluje. Tuto změnu vah opakujeme u všech postupně přiložených vzorů. Po naučení sítě hodnota váhy každého neuronu vyjadřuje rozdíl počtu vzorů, ve kterých se spojené neurony shodují svými hodnotami, a počtu vzorů, ve kterých se neshodují. Stav Hopfieldovy sítě je binární číslo, a má tedy konečný počet stavů. Při změně svého stavu klesá její energetická funkce, a proto nemůže dojít k jejich zacyklení. To znamená, že po konečném počtu kroků se musí dostat do stabilního stavu, kdy už žádné změny neuronů nemohou proběhnout.
Obr. Hopfieldova síť
Na rozdíl od vrstvených sítí perceptronů, které dávají odpověď ihned, Hopfieldův model potřebuje nějaký čas, aby se ustálil v určitém stabilním stavu. Kromě základního Hopfieldova modelu existují rozšířené varianty, které umožňují používat místo binárních hodnot hodnoty reálné nebo které si místo jednotlivých stabilních stavů pamatují celé jejich sekvence.
4.2 Učení bez učitele Učení bez učitele (učení samoorganizací - třídění) není založeno na vyhodnocování výstupu. Tato metoda vytváří zobecněný výstup jen na základě použitých vstupních vzorů. Před trénováním je obsah výstupu neznámý. Při učení bez učitele dostává síť na vstup množinu podnětů, které si sama utřídí. Například rozdělí podněty do skupin podle podobnosti a určí typického zástupce skupiny (model ART), nebo začne svojí konfigurací vah a tím topologií vystihovat vlastnosti vstupů (Kohonen). U tohoto typu učení dělíme paměť na dlouhodobou (LTM – long term memory) a krátkodobou (STM – short term memory). Dlouhodobá paměť je tvořena nastavením synaptických vah, které se pomalu mění. Kdežto krátkodobá paměť je tvořena okamžitým stavem vzruchů, které se každým okamžikem proměňují. Učením sítě se vybírají charakteristické rysy daných vzorů. Po určité době trénování lze dospět do stavu, kdy síť rozpoznává s dostatečnou spolehlivostí vstupy v aktivním režimu. Při dalším trénování může nastat situace, kdy dojde k takzvanému přetrénování sítě. To znamená, že charakteristické rysy už nejsou obecné, ale 21.9.2016
10
Neuronové sítě - základy
odpovídají spíše jen trénovací sadě. To se projeví zvýšenou chybovostí v aktivním režimu. Proto je vhodné použít po každé iteraci testovací sadu znaků, která nemění nastavené váhy, abychom zjistili optimální nastavení vah. Pokud by se chybovost zvýšila, vrátíme se ke stavu, kde byla ideální. Příklady sítí s učením bez učitele 1. model ART 2. Kohonenova metoda – starší metoda Kohonenova metoda Kohonenova síť je tvořena vrstvou n vstupních neuronů a druhou vrstvou Kohonenových neuronů, které jsou vzájemně propojeny každý s každým. Do každého z Kohonenových neuronů přichází spoje ze všech vstupních neuronů, každý Kohonenův neuron tedy čte vstupní vektor x. Vstupy jsou násobeny synaptickými vahami, takže každému Kohonenovu neuronu i přísluší vektor synaptických vah wi . Podstata Kohonenova modelu spočívá v tom, že vektor vah je stejně jako vektor vstupu n-prvkový. Prostor vah je totožný s prostorem vstupů. Kohonenovy neurony se navzájem ovlivňují, takže po krátké době se síť ustálí ve stavu, kdy bude excitovaný jen jeden neuron a to ten, který byl na počátku excitovaný nejvíc. Tedy v Kohonenově síti reaguje na vstup jen ten neuron, který je vstupu "nejpodobnější". Kohonenova síť se učí celý život, nemá fázi učení a fázi používání jako perceptrony nebo Hopfieldův model, učí se za provozu. Kohonenova síť se používá na roztříďování vstupů do skupin, přičemž tyto skupiny si síť sama vytvoří. Proto volba počtu neuronů u Kohonenova modelu má velký vliv na dosažené výsledky. Tento nedostatek odstraňuje algoritmus ART. Vylepšení učení Kohonenovy sítě se dá dosáhnout tím, že na vstup nebude reagovat jen jeden neuron, ale víc.
Obr. Kohonenova síť
Metoda ART (Adaptive Resonance Theory) Tento model se používá pro kategorizaci vstupních dat. Pokud předkládáme Kohonenově síti další a další data, nemáme zajištěnu stabilitu již vytvořených kategorií dat. Nová data mohou kategorii změnit. ART metoda vytváří tolik kategorií na výstupu, kolik je výstupů. Proto při volbě malého počtu výstupů dochází k prolínání kategorií, naopak při velkém počtu může dojít i ke stavu, že každému vzoru je přiřazena jedna kategorie. ART akceptuje vstup jen tehdy, je-li dostatečně podobný některému již existujícímu prototypu nějaké kategorie. Pokud není, vytvoří se nová kategorie se vstupem jako svým prototypem a je použita nová vstupní buňka. Tyto metody mohou pracovat jak s binárním, tak i s reálným vstupem. 21.9.2016
11
Neuronové sítě - základy
5. Fuzzy-neuronová síť Spojení fuzzy logiky a neuronových sítí vznikají systémy, kterými lze snadněji modelovat fuzzy problémy. Jeho vstupní veličiny a synaptické váhy mohou být fuzzy množiny. Schopnost neuronové sítě se učit spolu se schopností fuzzy logiky zpracovávat vágní, ne přesně definované, informace vede k vytvoření výkonných a adekvátních systémů. Teorie neuronových sítí poskytuje základní adaptační algoritmy, které lze po úpravě použít i pro fuzzy-neuronovou strukturu. Činnost fuzzy-neuronu se skládá ze dvou odlišných operací synaptická operace - váhy vstupních hodnot jsou spojeny s dlouhodobou pamětí. Váhy se adaptují v souladu s učícím algoritmem somatická operace jsou nelineární operace, které se nastavují během procesu učení – tzn. mění se přenosová funkce. Přesáhne-li váha agregace tj. upravených vstupů zabudovaný práh, neuron (soma) generuje výstupní signál. U fuzzy neuronu je vstupní součet nahrazen tzv. agregací, která je obvykle fuzzy sjednocení. Vývoj fuzzy-neuro systémů se skládá 1. z vývoje modelu motivovaným biologickým neuronem 2. jeho modelováním pomocí synaptických spojení 3. vývoje učícího algoritmu pomocí vhodného přizpůsobování synaptických vah a somatických operací. Učení podporuje snahu vytvořit co nejvíce podobné vektory synaptických vah a vstupního vektoru nového vzoru. Učení může být na základě výstupů - bez učitele chyb - s učitelem, tzn., že je znám předem výsledek Nejběžnější algoritmus je algoritmus zpětného šíření chyb. Při modifikaci parametrů se od sebe liší neuronová a fuzzy-neuronová síť. U fuzzy se navíc modifikují i agregační funkce, prahy, přenosové funkce. Tyto modifikace urychlují výpočtový proces. Učení bez učitele zachycuje pravidelnosti ve vstupních vektorech bez přijímání jakékoliv další informace. Pomáhá vytvářet uzly pravidel. Učení s učitelem vyžaduje specifikaci výstupního vektoru a je nadřazené (algoritmy) učení bez učitele. Toto učení adaptuje funkce příslušnosti - vágnosti. Fuzzy neuronová síť má 5 vrstev. První vrstva je vstupní, Druhá vrstva provádí fuzifikaci proměnné (high,low), Třetí vrstva zobrazuje logická pravidla (např. AND) Čtvrtá vrstva je agregační (např. OR) Pátá vrstva je defuzifikace. Z páté - výstupní jsou vyvedeny dva výstupy. Jeden je trénovací a informace z něho vstupují do sítě a druhý je skutečný výstup ze sítě. low
trénovací
21.9.2016
12
Neuronové sítě - základy
high
řádný
Hybridní učící algoritmus se skládá z fáze samoorganizace (bez učitele), kdy se snaží nalézt fuzzy významná logická pravidla. Využívá trénovací data. Pak provádí shlukovou analýzu, ve které vybírá ty vstupní/výstupní oblasti, které mají smysl v úloze uvažovat. Pak je vybráno spojení (důsledek) s největší vahou (agregace) a ostatní jsou zrušena. Druhá fáze je učení s učitelem, kdy se používá algoritmus zpětného šíření chyby. Ladění systému [2] se provádí pomocí Trénovací data jsou datové věty určené trénování sítě Ověřovací data (Validation data) řeší problém přetrénování neuronové sítě. Při dlouhém trénování ztrácí síť vlastnosti zobecnění. Ověřovací data monitorují trénování. Ověřovací data jsou data, která nebyla použita k vytváření modelu. Testovací data jsou data k ověření funkce aplikace. Na rozdíl od fuzzy modelů, kde jsou znalosti vytvořeny explicitně, nejčastěji podmínkou if – then, u neuronů jsou znalosti koncentrované v jejich vektoru synaptických vah. Převod (transformace) fuzzy modelu do F-N sítě. Model F-N sítě lze vytvořit pomocí 5ti vrstvé sítě. První – vstupní – vrstva má výstupy do druhé vrstvy, tak, že se jednotlivé vstupy ve druhé vrstvě vzájemně neovlivňují. Tím druhá vrstva vytváří hodnoty úměrné vstupní hodnotě, které jsou převedeny do fuzzy množiny. Každý neuron 3. vrstvy odpovídá jednomu podmíněnému pravidlu. Čtvrtá vrstva vypočítává výstupní proměnné. Neurony v 5. vrstvě sestavují výstupní vektor. Před učením sítě jsou váhové koeficienty nastaveny na 1. Adaptační procedura umožňuje pomocí back-propagation adaptovat tvary fuzzy množin (parametry) jazykových hodnot pravidel váhové koeficienty pravidel váhové koeficienty hodnot výpočtu. Chyba je dána
En= 0,5 (yvzor – yvýstup)2 Tato chyba je základem pro zpětnou vazbu, tj. signál na vstupu.
6. Aplikace Díky svým vlastnostem jsou neuronové sítě často nasazovány na řešení problémů, které nedokážeme přímo popsat. Důvody jsou různé; vstupní data mohou být poškozená nebo neúplná, nebo je řešení natolik komplikované, že jeho popis je 21.9.2016
13
Neuronové sítě - základy
prakticky nemožný. Jediným způsobem popisu pro všechny takové problémy je stanovení množiny některých možných zadání a odpovídajících řešení daného problému. Takový popis označujeme jako trénovací množinu řešeného problému. Snahou tvůrců neuronových sítí je navrhovat neuronové sítě strukturovaně. Proto se sítě člení na menší části nejen podle geometrických hledisek, ale často mnohem jemněji. Vytvářené skupiny se nazývají úseky. Úseky slučují prvky, které mají určité společné charakteristické vlastnosti. To znamená, že v každé síti lze nalézt alespoň jeden úsek. Pro síť s N prvky vytvoříme K úseků s Nk prvky, pro něž platí K
N = Nk . k=1
6.1 Rozlišování vzorů Základem optických neuronových sítí je rozlišování vstupních obrazců a vzorů. Ke správnému rozpoznání musí síť projít stádiem učení. Data mají obvykle velké množství nepodstatných informací. K vybírání těch podstatných slouží tzv. klasifikátory. Klasifikátor je mechanismus, který vybírá vlastnosti objektu. Má za úkol snižovat pravděpodobnost chyby, která může vzniknout chybným vyhodnocením nebo překrýváním dat. Klasifikátor se testuje nezávisle na trénovacím souboru dat. Pokud jsou klasifikátory známé lze je přímo síti nadefinovat. Klasifikátory dělíme na: Bayesův optimalizační klasifikátor lineární klasifikátory kvadratické klasifikátory klasifikátor k-nejbližších sousedů umělé neuronové sítě Bayesův klasifikátor Bayesův klasifikátor vybírá jednu vlastnost ze dvou nebo více možných. Podle výsledku zařazuje objekt do příslušné třídy. Třídy vybírá podle nejpravděpodobnějšího výskytu. Každá vlastnost má své rozložení pravděpodobnosti. Toto rozložení pravděpodobnosti nebo hustoty pravděpodobnosti může zasahovat do jiné třídy. Tím může tento klasifikátor způsobit chybu ve vyhodnocení. Přesto klasifikátor způsobuje během učení minimální chyby a lze předpokládat, že chyby budou minimální i v pracovním režimu. Lineární klasifikátory Jsou to lineární rozlišovací funkce. Použití tohoto klasifikátoru předpokládá (kovarianci) u trénovacího souboru.
stejnou míru vazby
Kvadratické klasifikátory Jsou to kvadratické rozlišovací funkce, jako je např. elipsa a parabola. Tyto klasifikátory, na rozdíl od lineárních, počítají kovariantní vztahy pro každou třídu zvlášť. Klasifikátor k–nejbližších sousedů Za nejbližšího souseda se považuje v N-dimenzionální vrstvě ta informace, která má podle Eukleidovského vyjádření nejblíže k předváděnému vzoru. Velmi oblíbený je klasifikátor s k=1. Nevýhodou tohoto klasifikátoru je potřeba velké výpočetní kapacity.
Zpracování obrazu Obraz (vzor) je soubor bodů většinou v jedné rovině. Každý bod může nabývat buď binárních hodnot, nebo může představovat stupně šedé či různé odstíny barvy. 21.9.2016
14
Neuronové sítě - základy
Neuronové sítě se sdílenými vahami zpracovávají tyto obrazy dvěmi metodami. Jsou to metody porovnávání se vzorem a metody filtrování. Filtrování je definováno jako mapování okolí pixelu do samotného pixelu (včetně jeho původní hodnoty). Definované okolí musí být větší než pixel, ale menší než celý obraz. Diskrétní obraz filtru f(x,y) je reprezentován oknem obsahujícím funkční hodnoty pro jednotlivé pozice, ze kterých určujeme střední hodnotu. Filtry jsou používány k zvýraznění obrazu, nalezení obrysů, k obnovení obrazu a k odfiltrování detailů. Srovnávání se vzorem je způsob izolování určitých vlastností v obraze. Je to obdobný způsob jako filtrování, ale má jiný výsledek. Srovnávání části obrazu se vzorem (např. okno 3x3) dává výsledné vysoké hodnoty tam, kde obraz a vzor sobě navzájem odpovídají, a nízkou hodnotu tam, kde jsou rozdílné. Proto se srovnávání používá jako kritérium shodnosti. Využití např. ve vojenství k rozlišování tvaru letadel, k identifikaci osob.
6.2 Komprese dat Komprese se provádí tak, že síť učíme na identitu, tedy má stejný vstup a výstup. Vnitřní vrstva musí mít méně neuronů než vstupní a výstupní. Pak je síť nucená vícerozměrný vstup transformovat do méně rozměrného prostoru reprezentovaného vnitřní vrstvou. Síť se pak “rozstřihne“ ve střední vrstvě a její přední část se používá pro kompresi a zadní část pro dekompresi.
6.3 Předvídání dat K předvídání dat je zapotřebí dlouhodobých záznamů, ze kterých se vybírá určitý úsek a hledá se závislost následujícího výstupu na tomto předcházejícím úseku dat. Př.: Předpověď teploty na základě dlouhodobé statistiky a např. týdenního průběhu teplot. Př.: Předzásobení benzinových pump, na základě dlouhodobých zkušeností, podle místa, ročního období, svátků, datumu, počasí, atd. (učení této sítě trvalo přibližně půl roku).
6.4 Určení stavu Perceptronová síť s back propagation se využívá pro zjišťování srdeční arytmie. K učení byly použito EKG a vyjádření skupiny odborníků. Po natrénování síť vyhodnocuje arytmii lépe než 90% lékařů.
literatura [1] [2] [3] [4] [5]
ST 8/96 (nevybráno vše) PC World 4/97 soft. Noviny 6/98 Novák: Umělé neuronové sítě Diplomové práce MU a UP.
21.9.2016
15