Neuronové sítě Marcel Jiřina
Neuronové sítě Inspirovány poznatky o neuronech a nervových sítích živých organizmů Schopnost extrahovat a reprezentovat závislosti v datech, které nejsou zřejmé Schopnost řešit silně nelineární úlohy Schopnost učit se Schopnost zevšeobecňovat Využití pro klasifikaci, regresi a predikci časových řad
Biologická inspirace
Biologická inspirace
Tvar impulsu vysílaných do axonu Biologická inspirace Tvar impulsu vysílaných do axonu
Biologická inspirace Synapse (elektrická, chemická)
Biologická inspirace
Biologická inspirace Paměť a její mechanizmy Paměťové mechanismy Reflexní paměť – více podnětů Deklarativní paměť – asociačního charakteru Paměťové mechanismy Krátkodobý paměťový mechanismus Střednědobý paměťový mechanismus Dlouhodobý paměťový mechanismus Principy učení Asociativní učení Neasociativní učení
Umělá neuronová síť Umělá neuronová síť je distribuovaný výpočetní systém sestávající z dílčích podsystémů (neuronů), který je inspirován neurofyziologickými poznatky o struktuře a činnosti neuronů a nervových systémů živých organizmů, a který je ve větší či menší míře realizuje.
Model neuronu neuron je základní výpočetní jednotkou neuronových sítí
Model neuronu obsahuje několik vstupů, které jsou ohodnoceny vahami a jeden výstup v neuronu pobíhají dva procesy: výpočet (post-synaptického) potenciálu výpočet hodnoty výstupu pomocí aktivační funkce, nejčastěji tzv. sigmoidy
Struktura sítě pro větší výpočetní sílu se neurony uspořádávají do sítí neuronů
Typy neuronových sítí Existuje celá řada typů neuronových sítí Každý typ se hodí pro jinou třídu úloh Základními úlohami neuronových sítí jsou klasifikace a regrese (aproximace) Podle přítomnosti „učitele“ můžeme neuronové sítě dělit na sítě s učitelem a bez učitele
Typy neuronových sítí Existuje celá řada neuronových sítí, např. Vícevrstvá perceptonová síť (MLP) Hopfieldova síť Kohonenovy samoorganizující se mapy Síť RBF ... Každá neuronová síť je vhodná pro jiné třídy úloh. Některé neuronové sítě se mohou vzájemně doplňovat.
Proces učení neuronových sítí Pro učení (trénování NS) je třeba mít dostatek reprezentativních příkladů Trénovací, výběrová, testovací množina Na začátku učení bývají váhy nejčastěji nastaveny na náhodná čísla Proces učení se snaží minimalizovat odchylku (chybu) mezi skutečným (aktuálním) a požadovaným výstupem Každá neuronová síť má jiný algoritmus učení, vesměs jsou to ale iterační procesy
Návrh neuronové sítě Pro řešení každé úohy musí být navržena jedinečná neuronová síť Otázka vhodného výběru sítě Výběr struktury sítě, tj. počet vstupů, výstupů, vrstev, skrytých neuronů, typ aktivačních funkcí, atd. Výběr trénovacího algoritmu Problém over-sizing, over-learning (over-fitting)
Vícevrstvá perceptonová síť Nejrozšířenější a nejpoužívanější síť Jak pro klasifikaci tak pro regresi (a tedy i predikci časových řad) Síť s učitelem Aktivační funkcí je nejčastěji sigmoida Otázka výběru počtu vrstev a počtu neuronů Kromě základního algoritmu backpropagation existuje řada sofistikovaných metod učení, např. metoda sdružených gradientů, Levenbergova-Marquardtova metoda atd.
Vícevrstvá perceptonová síť K nevýhodám sítě patří obtížné řešení problému lokálních minim a poměrně dlouhá doba učení Zlepšení pomocí momentu, šumu, dalších neuronů
Vícevrstvá perceptonová síť
Vícevrstvá perceptonová síť Věta (Kolmogorovova, 1957) Nechť n > 1 je přirozené číslo a f je spojitá reálná funkce. Potom lze tuto funkci reprezentovat vztahem kde a jsou spojité funkce jedné proměnné. libovolnou rozumnou, tj. spojitou, funkci lze zapsat (reprezentovat) s pomocí do sebe vnořených funkcí jediné proměnné.
Vícevrstvá perceptonová síť Příklad trénování vícevrstvé perceptronové sítě x1 x2 třída 0.8680 0.2640 1 0.1790 0.4230 0.6940 0.1630 0.5380 0.6450 0.6230 0.0030 0.7870 0.2680 0.4610 0.3860 0.6030 0.2790 0.1700 0.8050 ...
Vícevrstvá perceptonová síť
Vícevrstvá perceptonová síť
Vícevrstvá perceptonová síť
Vícevrstvá perceptonová síť
Vícevrstvá perceptonová síť
Vícevrstvá perceptonová síť Metody zlepšující chování sítě Velikost parametru učení Moment Šum Přidání neuronů
Síť RBF Radial Basis Function (RBF), síť radiálních jednotek Pevný počet vrstev Dva typy neuronů: radiální a perceptronového typu (nejčastěji lineární) Váhy v první vrstvě jsou nastavovány pevně na začátku učení, ve druhé vrstvě podobně jako u vícevrstvé perceptronové sítě nebo přímo regresí
Síť RBF Síť se učí velmi rychle Vhodná jak pro klasifikaci, tak pro regresi
Síť RBF Postsynaptický potenciál Aktivační funkce Adaptace vah
Síť RBF Příklad: Např. bod se transformoval na
Kohonenova síť Kohonenova síť (SOM, SOFM) Bez učitele, provádí proto pouze analýzu vstupních dat, přesněji druh shlukové analýzy Obsahuje jedinou vrstvu radiálních neuronů, které mohou být uspořádaný to tzv. mřížky Síť je možné rozšířit tak, aby byla schopna klasifikace (Learning Vector Quantization – LVQ)
Kohonenova síť Struktura Kohonenovy sítě
Kohonenova síť
Kohonenova síť Proces učení (adaptace vah)
Kohonenova síť Vzdálenosti vzoru k neuronům Výběr nejbližšího neuronu Adaptace vah
Kohonenova síť Adaptační funkce
Kohonenova síť
Kohonenova síť Kohonenovu neuronovou síť lze rozšířit tak, aby mohla klasifikovat → učící vektorová kvantizace (Learning Vector Quantization – LVQ) LVQ1, LVQ2, LVQ3 Princip spočívá v přiřazení ohodnocení třídy neuronům na základě četností, s jakou se vyskytují v dominantní skupině.
Hopfieldova síť Navržena J. Hopfieldem v roce 1982 Autoasociativní paměť Pracuje s bipolárními (binárními) hodotami vstupů/výstupů Spojitá varianta Hopfieldovy sítě se používá pro řešení optimalizačních problémů
Hopfieldova síť
Hopfieldova síť Učení Vybavování
Hopfieldova síť Učení
Hopfieldova síť Vybavování
Hopfieldova síť Příklad
Technické realizace umělých neuronových sítí
Technické realizace umělých neuronových sítí
Technické realizace umělých neuronových sítí Neuronové čipy (neuročipy)
Technické realizace umělých neuronových sítí Optické realizace neuronových sítí
Technické realizace umělých neuronových sítí Holografický klasifikátor (autoasociativní paměť)
Softwarové prostředky pro NS Matlab Neural Network Toolbox
Softwarové prostředky pro NS
Softwarové prostředky pro NS
Softwarové prostředky pro NS x = [0 1 2 3 4 5 6 7 8]; y = [0 0.84 0.91 0.14 -0.77 -0.96 -0.28 0.66 0.99]; net = newff([0,8],[10,1],{'logsig','purelin'},'traingd'); net.trainParam.epochs = 2000; net.trainParam.goal = 0.001; net = train(net,x,y);
Softwarové prostředky pro NS y2 = sim(net,x) plot(x,y,'bo',x,y2,'r*')
Softwarové prostředky pro NS
Softwarové prostředky pro NS Statistica Neural Networks
Softwarové prostředky pro NS Statistica Neural Networks
Literatura české učebnice Mařík V., Štěpánková O., Lažanský J. a kol.: Umělá inteligence 4. Academia, Praha, 2003. Šíma J., Neruda R.: Teoretické otázky neuronových sítí. Matfyzpress, Praha, 1996. zahraniční učebnice Bishop C. M.: Neural Networks for Pattern Recognition. Oxford University Press, NewYork, 1995. Fausett, L.: Fundamentals of Neural Networks. Prentice Hall, New York, 1994. Hassoun M. H.: Fundamentals of Artificial Neural Networks. The MIT Press, Cambridge, Massachusetts, London, 1995. Haykin, S.: Neural Networks: A Comprehensive Foundation. Macmillan Publishing, New York, 1994. Rojas R.: Neural Networks: A Systematic Introduction. Springer-Verlag, Berlín, Heidelberg, New York, 1996.