: Intelligens Rendszerek Gyakorlata Neurális hálózatok I. dr. Kutor László http://mobil.nik.bmf.hu/tantargyak/ir2.html IRG 3/1
Trend osztályozás Pnndemo.exe IRG 3/2
Hangulat azonosítás Happy.exe IRG 3/3
Idősor közelítés Grnndemo.exe IRG 3/4
Pontsor közelítése függvénnyel Grnndemo.exe IRG 3/5
A neurális hálózat tervezésének lépései Reprezentatív tapasztalati adat gyűjtése (bemeneti adatok és elvárt válaszok) Megfelelő neurális paradigma kiválasztása Rendszer paraméterek kiválasztása Teljesítmény mérő módszer kiválasztása A rendszer tanítása és tesztelése (amíg az elvárt eredményhez nem jutunk) IRG 3/6
Eldöntendő jellemzők a neurális hálózatok tervezésénél Processzor szinten: - a processzor átviteli függvénye - a bemenő jelek típusa Hálózat szinten: - a hálózat topológiája - rétegelt struktúránál a rétegek száma - processzorok száma a különböző rétegekben - processzorok típusa a különböző rétegekben Tanítási szinten - tanító algoritmus - tanítási paraméterek (pl.: α, β,.) - a tanítás megállásának feltételei IRG 3/7
Az alap neuron (processzor) felépítése i O i I 1 I 2 I i I n-1 w j1 w j2 wji w jn S j j T O j i S j = W ji n i= 1 w ji j I i I n I B I bemenet), w ji súlytényezők, T Átviteli (Transzfer) függvény IRG 3/8
Leggyakrabban használt átviteli függvények 1. Ugrás függvény: O j = 0 vagy -1, ha S <= 0, O j = 1 ha S > 0 2. Korlátozott lineáris függvény O j = 0, ha S <= 0, O j = S ha 0 <= S < 1 O j = 1 ha S > 1 3. Szimoid függvény O j = 1/(1+e -Sj ) 1 1 1 S S 0 1 O j = 1-1/(1+S) ha S >= 0 O j = -1 + 1/(1-S) ha S < 0 1 IRG 3/9 1-1 -1 S S
Tipikus neurális hálózat összeköttetések 1. Előrecsatolt (rétegelt) neurális hálózat (topológia) Bemenetek bemeneti réteg rejtett réteg kimeneti réteg Kimenetek súlytényező IRG 3/10
Az előrecsatolt hálóztok ábrázolása I 1 I 2 I i I n-1 I n O 1 Súlymátrix w 11 w 12 w 1i -- w 1n w 21 w 22 w 2i -- w 2n w j1 w j2 w ji -- w jn w m1 w m2 w mi -- w mn súlytényező IRG 3/11 O 2 O j O m O = f (S) S = I * W Mátrix műveletek!
Visszacsatolt neurális hálózat Rétegelt Teljesen összekötött I 1 I 2 I 3 1 2 3 i j k IRG 3/12 O i O j O k O = I x W1+ O x W2
A hálózat hibája felügyelt tanítás esetén Egy tanító mintánál: E = ½ (T k -O k ) 2 A teljes tanító mintára: E = ½ (T k -O k ) 2 IRE 8/13 k p k A tanítás (súlytényező változtatás) mottója: hiba visszaterjesztés = Back error Propagation A hálózat súlytényezőit a hiba létrehozásában játszott szerepükkel arányosan változtatjuk. = A súlytényezőket a hibafüggvény parciális deriváltja szerint változtatjuk
Tanítási szabályok Tanítás = súlytényezők (kis lépésekkel (?) való) beállítása Tanítási típusok: 1. Felügyelt (felügyeletes) tanítás 2. Felügyelet nélküli (önszerveződő) tanítás Alap tanítási szabályok: i j O i w ji O j i j O i w ji O j C j Hebb szabály (Donald O. Hebb) w ji (t+1) = w ji (t) + α* O i * O j ahol α = tanítási tényező, 0 <= α <= 1 Delta szabály (Widrow- Hoff) w ji (t+1) = w ji (t) + α * O i * (C j O j ) ahol C j O j = Δ j IRG 3/14
A felügyeletes tanítás lényege, algoritmusa Mottó: Addig hangoljuk a súlytényezőket, amíg a bemenetre a hálózat megfelelő-, előre kiszámított választ nem ad. Algoritmusa: 1. Kezdeti súlytényezők beállítása 2. A tanítóminta bemeneti értéke alapján a hálózat kimeneti értékének kiszámítása. 3. A tanítóminta célértékének összehasonlítása a hálózat célértékével. 4. Szükség esetén a hálózat súlytényezőinek módosítása. 5. A tanítás folytatása mindaddig, amíg a hálózat az összes tanítómintára egy előre rögzített hibahatárnál kisebb hibával a célértéknek megfelelő kimeneti értéket nem tudja előállítani. IRE 8/15
A perceptron tanító algoritmus (delta szabállyal) Kezdeti súlytényezők beállítása (random!?) Tanítás iter amíg a hiba el nem éri a hibahatárt (Hi <= Hh) k= 0, Hi= 0 Minták iter amíg k = p nem teljesül (ahol p = tanító minták száma) A k.-ik tanítóminta bemeneti vektora alapján processzoronként az aktiváció kiszámítása S jk = I k j * Wji A köszöb átviteli függvény alapján processzoronként a kimeneti értékek kiszámítása. (O j ) A hálózat súlytényezőinek módosítása. w ji (t+1) = w ji (t) + α * O i * (C j O j ) ahol C j O j = az eltérés (Δ j ) A hálózat hibájának kiszámítása H k j =Cj k -Oj k A hibák összesítése H i =H i +H j K:=K+1 Minták end Tanítás end IRE 8/16
I 1 I 2 I i I n A delta szabály matematikai értelmezése S j S j = w ji * I i ; O j = S j ; i O j T j Lineáris átviteli függvény esetén W ji (t+1)=w ji (t)- α*oj*δe/δw ji δe/δw ji = δe/δo j * δo j /δs j * δs j /δw j δe/δo j = ½ * 2 * (Tj-Oj) * -1= -(Tj-Oj) E = ½ * ( T j O j ) 2 E j w i W i+1 Δw δo j /δs j =1 δs j /δw j = δ(w j1 *I 1 + w ji *I i + w jn *I n )= I i i j O i w ji O j T j Delta szabály w ji (t+1) = w ji (t) + α * I i * Δ j ahol α = tanítási tényező, 0 <= α <= 1, Δ j = T j O j IRE 8/17
Többrétegű neurális hálózatok tanítása (Általánosított delta szabállyal) Hálózat topológia i j N Processzor: H M k i O i w ji O j w kj O k T k j k Oi Sj f(s) j O j S = w O O j =f(s)= 1/(1+e -S ) j IRE 8/18 N i= 1 ji i
A hiba visszavezetése (Általánosított delta szabállyal) Δ 1 Hálózat topológia i j M N H k Δ j w 1j w 2j O i w ji O j w kj O k T k i j k Δ 2 Δ M-1 Átviteli függvények w Mj O k = f(s k ) O j =f(s)= 1/(1+e -S ) Δ M IRE 8/19
Tanítást leíró összefüggések a többrétegű hálózatoknál Általánosított delta szabály: (deriválás a lánc szabály alapján) δe/δw kj = δe/δok * δo k /δs k * δs k /δw kj Súlytényező változtatás a kimeneti rétegben W kj (t+1) = W kj (t) + αδ k Oj = Δk W kj (t+1) =W kj (t) + α*(t k -O k )*f(s k )*(1-f(S k ))*O j Súlytényező változtatás a rejtett rétegben Δj W ji (t+1) = W ji (t) + α*f(s j )*(1-f(S j ) * (Δk*W kj ))*O i (A levezetés a javasolt olvasmányok között található) IRE 8/20 M k=1
Versengéses (competitive) tanulás Carpenter, Grossberg 1988 Processzor I 1 I i S j f O j = f (S j ) 1 f (S j ) I N S j = I i * w ji S j Topológia: egy rétegű előrecsatolt, teljesen összekötött Megkötések: 1.) w ji = 1 2.) Súly értékek: 0<Wj<1 3.) A bemenő vektor bináris IRE 8/21
A versengéses tanító algoritmus (Grossberg) Mottó: A győztes visz mindent 1. Kezdeti súlytényezők beállítása (inicializálás, véletlenszerű) 0<Wj<1 2. A tanítóminta i-ik értéke (vektora) alapján, a processzorok kimeneti S j = O i * w ji, O j = f (S j ) értékeinek kiszámítása. 3. A legnagyobb kimeneti értékű processzor kiválasztása. A győztes visz mindent elv alapján, a győztes kimeneti értéket 1-re, az összes többi kimeneti értéket 0-ra változtatjuk 3. A győztes elem súlytényezőit megváltoztatjuk (csak azokat!) Δ W ji (t+1) = W ji (t) + Δ w ji, Δw ji = α (O i /m-w ji (t)) ahol α = tanulási együttható, 0 < α << 1 (tipikusan 0.01-0.3) m = az aktív bemenetek száma 5. A 2. 3. 4. pont ismétlése amíg a kimenetek két egymást követő tanítási ciklus során nem változnak. IRE 8/22
Teljesítmény mérési lehetőségek 1. Az összes tanító mintát figyelembe véve, mekkora az eltérés RMS (Root-Mean-Square) Egy tanító mintánál: E = ½ (T k -O k ) 2 A teljes tanító mintára: E = ½ (T k -O k ) 2 M k RMS= E/(M*K) M= tanító minták száma K= kimenetek száma 2. A helyes és hibás eredmények aránya IRE 8/23
Logikai függvények tanítása logikai ÉS Kizáró VAGY I 1 * I 2 O 0 0 1 0 0 1 1 1 I 1 +I 2 O 0 0 0 1 0 1 1 1 I 1 logikai VAGY 1 I 1 1 1 1 I 2 I 2 I 1 + I 2 O 0 0 0 1 0 1 1 1 0 IRE 8/24 I 1 1 1 I 2
A négy kvadráns 1 1 0 1 0.5 0.5 0 0 1 0 0.5 1 0 0 0.5 1 IRE 8/25
Neurális hálózat szimulátorok NWDemo http://mobil.nik.bmf.hu/tantargyak/ir2.html C++ Neural Network Simulation Software http://www.bedaux.net/nnet/ Stuttgart Neural Network Simulator http://www.ra.cs.uni-tuebingen.de/snns/ Emergent Neural Network Simulation System http://grey.colorado.edu/emergent/index.php/main_page IRE 8/26
Neurális hálózat szimulátorok IRE 8/27
Az első mesterséges neurális hálózat: a Perceptron Frank Rosenblatt (1957) (amit a következő órán meg kell valósítani) Vetített nyomtatott betűk felismerése tanítás alapján 20 x 20 fotóérzékelő Mc. Culloch-Pitts neuronok Előrecsatolt egyrétegű hálózat I 1 O 1 I 400 O 36 IRE 8/28