Pavel Kordík, Josef Borkovec (ČVUT FIT) Vytěžování znalostí z dat BI-VZD, 2012, Přednáška 8 1/26 Vytěžování znalostí z dat Pavel Kordík, Josef Borkovec Department of Computer Systems Faculty of Information Technology Czech Technical University in Prague Přednáška 8: Neuronové sítě BI-VZD, 09/2011 MI-POA Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
Pavel Kordík, Josef Borkovec (ČVUT FIT) Vytěžování znalostí z dat BI-VZD, 2012, Přednáška 8 2/26 Co jsou neuronové sítě? (Umělá) neuronová síť (Artificialneuralnetwork -ANN) je výpočetní model založený na propojení velkého množství jednoduchých výpočetních elementů. Původně inspirováno přírodou propojení neuronů v nervové soustavě živočichů.
Široké spektrum využití: Klasifikace Regrese Clustering Komprese Umělá inteligence Řízení K čemu slouží? Pavel Kordík, Josef Borkovec (ČVUT FIT) Vytěžování znalostí z dat BI-VZD, 2012, Přednáška 8 3/26
Příklad ANN ANN na rozpoznávání čísel: Vstup: binární obrázek 4x7 px Výstup: číslo na obrázku v kódu 1zN x 0 = 0 x 1 = 1 x 2 = 1 x 3 = 0 x 4 = 1 y 0 = 0 y 1 = 0 y 2 = 1 y 3 = 0 y 4 = 0 x 26 = 1 x 27 = 1 y 9 = 0 Pavel Kordík, Josef Borkovec (ČVUT FIT) Vytěžování znalostí z dat BI-VZD, 2012, Přednáška 8 4/26
Inspirace z biologie Lidský mozek obsahuje cca. 10 11 neuronů. Každý neuron je průměrně propojen s 10 4 dalšími neurony aktivace neuronu trvá cca. 10-3 s (oproti 10-10 s u křemíkových čipů) mozek ale dokáže provádět složité operace v krátkém čase (rozpoznání obličeje 10-1 s) nejdelší cesta signálu tak může být maximálně přes stovky neuronů toho je dosaženo masivně paralelníarchitekturou a tu se snaží napodobit ANN Pavel Kordík, Josef Borkovec (ČVUT FIT) Vytěžování znalostí z dat BI-VZD, 2012, Přednáška 8 5/26
Pavel Kordík, Josef Borkovec (ČVUT FIT) Vytěžování znalostí z dat BI-VZD, 2012, Přednáška 8 6/26 Lidský neuron signál je v neuronu přijímán pomocí synapsí, na které jsou připojeny dendrity sousedních neuronů neuron přicházející signály sečte a pokud hodnota přesáhne určitou mez tak neuron vytvoří napětí, které se šíří axonem k dalším neuronům
Pavel Kordík, Josef Borkovec (ČVUT FIT) Vytěžování znalostí z dat BI-VZD, 2012, Přednáška 8 7/26 Umělý neuron Základním prvkem je neuron (také Processingelement PE, Unit) Každý neuron se skládá z: několika vstupů x 0 x i ke každému vstupu přísluší hodnota váhy w 0 w i hodnota vychýlení s aktivační funkce F právě jeden výstup y (může být přiveden na vstup více dalších neuronů) x 0 w 0 x 1 w 1 F y x i w i s
Pavel Kordík, Josef Borkovec (ČVUT FIT) Vytěžování znalostí z dat BI-VZD, 2012, Přednáška 8 8/26 Základní prvek Výstup neuronu je hodnota aktivační funkce Fz váženého součtu vstupů plus vychýlení = ( ( )+ ) x 0 w 0 x 1 w 1 F y x i w i Aktivačních funkcí se používá široká škála podle požadovaných vlastností s u některých sítí nemusí být pro všechny neurony stejná
Heavisideova funkce Nejpoužívanější aktivační funkce binární neuron je aktivní (y = 1) nebo neaktivní (y = 0) použití např. perceptron signum Pavel Kordík, Josef Borkovec (ČVUT FIT) Vytěžování znalostí z dat BI-VZD, 2012, Přednáška 8 9/26
Pavel Kordík, Josef Borkovec (ČVUT FIT) Vytěžování znalostí z dat BI-VZD, 2012, Přednáška 8 10/26 Nejpoužívanější aktivační funkce Po částech lineární funkce Sigmoidní funkce omezená fce připomínající písmeno S tanh() nebo logistická funkce -F = použití např. MLP (vícevrstvý perceptron) tanh logistická fce
Gaussova funkce ( ) Nejpoužívanější aktivační funkce použití např. u sítí typu RBF Pavel Kordík, Josef Borkovec (ČVUT FIT) Vytěžování znalostí z dat BI-VZD, 2012, Přednáška 8 11/26
Struktura ANN Podle struktury dělíme sítě na: Dopředné(feed-forward, FF) neobsahují zpětnou vazbu signál se šíří pouze jedním směrem od vstupů k výstupům Rekurentní obsahují zpětnou vazbu Pavel Kordík, Josef Borkovec (ČVUT FIT) Vytěžování znalostí z dat BI-VZD, 2012, Přednáška 8 12/26
ANN jako graf Struktura neuronových sítí se často udává pomocí orientovaného grafu uzly představují neurony hrany představují propojení výstupu neuronu se vstupem jiného neuronu většinou se kreslí jako několik vrstev neuronů se stejnými vlastnostmi u dopředných sítí se většinou nekreslí orientace hran předpokládají se vstupy vlevo výstupy vpravo vstupní vrstva skrytá vrstva výstupní vrstva Pavel Kordík, Josef Borkovec (ČVUT FIT) Vytěžování znalostí z dat BI-VZD, 2012, Přednáška 8 13/26
Vrstvy ANN Úkolem vstupní vrstvy je pouze propagovat vstupy neuronové sítě do dalších vrstev počet neuronů ve vstupní vrstvě je dán počtem atributů trénovací množiny Výstupní vrstva #neuronů = #výstupů modelu Pavel Kordík, Josef Borkovec (ČVUT FIT) Vytěžování znalostí z dat BI-VZD, 2012, Přednáška 8 14/26
Módy ANN Neuronové sítě pracují ve dvou módech: učící nastavování hodnot vah a vychýlení (případně i struktury) vybavovací naučená síť pro nové instance předpovídá výstupní hodnoty Pavel Kordík, Josef Borkovec (ČVUT FIT) Vytěžování znalostí z dat BI-VZD, 2012, Přednáška 8 15/26
Učení učení může být buď s učitelem nebo bez učitele (supervised/unsupervised) neuronové síti jsou představovány prvky z trénovací množiny a neuronová síť podle nich nastavuje hodnoty vah a vychýlení (případně i strukturu) Každá instance trénovací množiny je většinou při učení použita vícekrát Použití všech instancí z trénovací množiny právě jednou se říká epocha Pavel Kordík, Josef Borkovec (ČVUT FIT) Vytěžování znalostí z dat BI-VZD, 2012, Přednáška 8 16/26
ANN -Perceptron Frank Rosenblatt, 1957 jednovrstvá neuronová síť + učící algoritmus aktivační funkce je Heavisideova fce. x 0 w 0 x 1 w 1 wi F y x i s Pavel Kordík, Josef Borkovec (ČVUT FIT) Vytěžování znalostí z dat BI-VZD, 2012, Přednáška 8 17/26
Pavel Kordík, Josef Borkovec (ČVUT FIT) Vytěžování znalostí z dat BI-VZD, 2012, Přednáška 8 18/26 Perceptron = 1, ( 0 0, 0 lineární kombinace vstupů rozhodovací hranice je nadrovina(přímka pro 2 vstupy)
Perceptron-učení 1. inicializuj váhy w 0 w n a vychýlení s na 0 nebo malé náhodné hodnoty 2. pro instanci j z trénovací množiny: spočítej výstup neuronu y= ( )+ pokud je instance špatně klasifikována, uprav váhy: +1 = α y ŷ x 3. opakuj 2. dokud chyba není dostatečně malá αje learningratea udává rychlost učení nízké hodnoty znamenají pomalejší konvergenci při vysoké hodnotě můžeme optimum vždy přeskočit a algoritmus nemusí konvergovat α můžeme postupně snižovat Pavel Kordík, Josef Borkovec (ČVUT FIT) Vytěžování znalostí z dat BI-VZD, 2012, Přednáška 8 19/26
Pavel Kordík, Josef Borkovec (ČVUT FIT) Vytěžování znalostí z dat BI-VZD, 2012, Přednáška 8 20/26 Perceptron učící algoritmus perceptronufunguje pouze pro lineárně separovatelná data (= lze je bez chyby klasifikovat nadrovinou) pro lineárně neseparovatelná data algoritmus nekonverguje např. XOR: viz applet: http://lcn.epfl.ch/tutorial/english/perceptron/html/index.html
Pavel Kordík, Josef Borkovec (ČVUT FIT) Vytěžování znalostí z dat BI-VZD, 2012, Přednáška 8 21/26 ANN -MLP MLP = Multi-layer perceptron(vícevrstvý perceptron) vícevrstvá dopředná neuronová síť počet vrstev 3, skrytých vrstev může být více vstupní vrstva aktivační funkce sigmoida: např logistická fce F = skrytá vrstva výstupní vrstva
MLP rozhodovací hranice je nelineární čím více neuronů ve skrytých vrstvách, tím složitější tvar může mít díky použití sigmoidnífunkce už výstup není pouze binární, ale v intervalu <0,1> pro klasifikaci to odpovídá míře příslušnosti do dané třídy kromě třídy, do které instance patří, také víme jak moc jsme si tím jisti Pavel Kordík, Josef Borkovec (ČVUT FIT) Vytěžování znalostí z dat BI-VZD, 2012, Přednáška 8 22/26
Pavel Kordík, Josef Borkovec (ČVUT FIT) Vytěžování znalostí z dat BI-VZD, 2012, Přednáška 8 23/26 MLP -XOR řešení úlohy XOR pomocí MLP:
MLP učení Backpropagation(zpětné šíření chyby) minimalizace chyby =, kde jjsou neurony výstupní vrstvy 2 fáze spočítání výstupu neuronů ve všech vrstvách zpětná propagace chyby úprava vah od výstupní vrstvy směrem ke vstupní Pavel Kordík, Josef Borkovec (ČVUT FIT) Vytěžování znalostí z dat BI-VZD, 2012, Přednáška 8 24/26
Backpropagation-pseudokód 1. Inicializuj váhy na malé náhodné hodnoty obvykle v intervalu(-0.3,0.3) 2. dokud není splněno kritérium pro zastavení pro všechna trénovací data (epocha) 1. Vezmi příklad [X,y] z trénovacích dat 1. Spočítej výstup out u pro každý neuron 2. Pro každý neuron vve výstupní vrstvě spočítej chybu = 1 3. Pro každý neuron sve skryté vrstvě spočítej chybu = 1, ) ý 4. pro každou vazbu z neuronu jdo kuprav váhu, =, +,, kde, = η, Pavel Kordík, Josef Borkovec (ČVUT FIT) Vytěžování znalostí z dat BI-VZD, 2012, Přednáška 8 25/26
perceptron: Applety na vyzkoušení http://lcn.epfl.ch/tutorial/english/perceptron/html/index.htm l http://lcn.epfl.ch/tutorial/english/apb/html/index.html MLP http://neuron.felk.cvut.cz/~kordikp/mlp/start.html Pavel Kordík, Josef Borkovec (ČVUT FIT) Vytěžování znalostí z dat BI-VZD, 2012, Přednáška 8 26/26