Neuronové sítě AIL002 Iveta Mrázová 1 František Mráz 2 1 Katedra softwarového inženýrství 2 Kabinet software a výuky informatiky Do LATEXu přepsal: Tomáš Caithaml
Učení s učitelem Rozpoznávání Použití: Optimalizační úlohy Asociativní paměť
Příklady Rozpoznávání a resturace automobilových firemních značek I Hopfieldova síť (se simulovaným žíháním) asociativní paměť (část obsahu použit jako klíč) Vzory: matice(17,7) Síť: 119 neuronů, 140 42 vah Simulované žíhání Teplota žíhání (4,5) x Míra žíhání (0,99) Příklad: BMW x Mercedes
Příklady Rozpoznávání osob Hopfieldova síť se simulovaným žíháním (127 neuronů) Klíč: Zašuměná část obličeje (partie kolem očí) 4 různé portréty Kódování pro vstupy sítě (zde hrubé rastrování) Pomalé žíhání: lepší výsledky
Hopfieldův model (bipolární) Hopfieldův model (bipolární) I n neuronů se skokovou přenosovou funkcí binární vstupy i výstupy {+1,-1} synaptické váhy w ij (mezi všemi neurony navzájem) m trénovacích vzorů (tříd) Skoková přenosová funkce: t h
Hopfieldův model (bipolární) Algoritmus výpočtu I 1 Nastavte hodnoty synaptických vah. w ij = j P m s=1 x i s xj s pro i j 0 pro i = j 1 i, j n w ij... váha synapse mezi neurony i a j xi s { 1, +1}... i-tá složka s-tého vzoru 2 Předložte neznámý vstupní vzor inicializace y i(0) = x i 1 i n y i(t)... výstup neuronu i v čase t x i { 1, +1}... i-tá souřadnice predloženého vzoru
Hopfieldův model (bipolární) Algoritmus výpočtu II 3 Iterace y j(t + 1) = f h " w ijy i(t) # 1 j n f h skoková přenosová funkce Proces se opakuje dokud se výstupy neuronů neustálí. Výstupy neuronů pak reprezentují ten trénovací vzor, který nejlépe odpovídá předloženému (neznámému) vzoru. 4 Přejděte ke kroku 3. Konvergence(Hopfield): Symetrické váhy: w ij = w ji Asynchronní aktualizace výstupu jednotlivých neuronů Nevýhody: Kapacita (m < 0.18n) n 2 log n Stabilita (ortogonalizace)
Rozpoznávání Rozpoznávání I Po předložen vzoru x 1 bude vektor potenciálů sítě ξ = x 1W = x 1 x T 1 x 1 +... + x T m x m mi n = x 1 x 1 T x 1 + x 2 x 2 T x 2 +... + x m x m x m m x 1I {z } {z } {z } n α 12 α 1m mx = (n m) x 1 + α 1j x j j=2 {z } PERTURBACE α 12,..., α 1m skalární součin x 1 s každým dalším vektorem x 2,..., x m Stav x 1 je stabilní jestliže m < n a perturbace P m j=2 α1j x j je malá (sgn( ξ) = sgn( x 1)) Malý počet ortogonálních vzorů. T
Rozpoznávání Příklad I Učení: Vzory: [ 1, 1, 1, 1], [1, 1, 1, 1] Nastavení vah: w ij = P M m=1 x(m) i x (m) j... i j w ij = 0... i = j 2 3 0 0 0 2 6 0 0 2 0 7 W = 4 0 2 0 0 5 2 0 0 0 Rozpoznávání: Vzor: [ 1, 1, 1, 1] Výsledky: [1, 1, 1, 1] [ 1, 1, 1, 1]
Hopfieldův model Hopfieldův model I Stav neuronu zachován, dokud nejsou vybrány k aktualizaci Výběr pro aktualizaci se provádí náhodně Neurony jsuo navzájem plně propojeny Symetrické váhy: w ij = w ji w ii = 0 Nutná podmínka: Symetrická váhová matice s nulovou diagonálou a asynchronní dynamikou 0 0... 1 w ij B W = @....... C A w ji... 0 Konvergence ke stabilnímu řešení při rozpoznávání
Hopfieldův model Příklady Váhová matice s nenulovou diagonálou nemusí vést ke stabilním stavům 0 1 0 1 0 W = @ 0 1 0 A 0 0 1 Synchronní dynamika:( 1, 1, 1) (1, 1, 1) Asynchronní dynamika: Náhodný výběr 1 z 8 možných vzorů «0 1 Nesymetrická matice: W = 1 0 Asynchronni dynamika cyklické změny.
Energetická funkce E( x) Energetická funkce E( x) I Vyjadřuje energii sítě ve stavu x (pro Hopfieldovu sít s n neurony a váhovou maticí W ): E( x) = 1 2 x W x T = 1 2 j=1 w ijx ix j Hopfieldova síť s asynchronní dynamikou dosáhne z libovolného počátečního stavu sítě stabilního stavu v lokálním minimu energetické funkce. (obdobně i pro sítě s prahovými neurony a energií: 1 x W x T + Θ x T P = 1 n P n 2 2 j=1 wijxixj + P n δixi Počáteční stav x = (x 1,..., x k,..., x n) (předložený vzor) E( x) = 1 2 j=1 w ijx ix j K aktualizaci vybrán neuron k k nezmění svůj stav E( x) se nezmění k změní svůj stav x = (x 1,..., x k,..., xn)
Energetická funkce E( x) Energetická funkce E( x) II E( x ) = 1 2 Rozdíl energií: j=1 j k i k E( x) E( x ) = w ijx ix j w ik x ix k j=1 w ik x ix k = (x k x k) w kk =0 =! w ik x ix k w ik x i > 0 ( 1 2 P n j=1 w kjx kx j 1 2 P n w ikx ix k Vždy, když dojde ke změně stavu neuronu, sníží se celková energie sítě. Konečný počet možných stavů. Stabilní stav, kdy energii sítě už nelze snižovat.
Ekvivalence Hebbovského a perceptronového učení pro Hopfieldův model Ekvivalence Hebbovského a perceptronového učení pro Hopfieldův model I V některých případech nelze nalézt pomocí hebbovského učení váhovou matici tak, aby m daných vektorů odpovídalo stabilním stavům sítě (i když taková matice existuje). Pokud leží vektory, které mají být do sítě uloženy, hodně blízko, může být crosstalk příliš velký. Horší výsledky hebbovského učení. Alternativa: Perceptronové učení pro. Hopfieldova síť s neurony, které mají nenulový práh a skokovou přenosovou funkci. Neuron má stav 1, je-li potenciál větší než 0. Neuron má stav -1, je-li potenciál menší nebo roven 0. Uvažujme Hopfieldovu síť n... počet neuronů W = {w ij}... n nmatice vah δ i... práh neuronu i
Ekvivalence Hebbovského a perceptronového učení pro Hopfieldův model Ekvivalence Hebbovského a perceptronového učení pro Hopfieldův model II Má-li si síť zapamatovat vektor x = (x 1,..., x n), bude tento vektor odpovídat stabilnímu stavu sítě tehdy, jestliže se po jeho předložení stav sítě nezmění. Potenciál neuronu by měl mít stejné znaménko jako jeho předchozí stav. Nulovým hodnotám bude odpovídat záporné znaménko. Měly by platit následující nerovnosti: Neuron 1: sgn(x 1)( 0 + x 2w 12 +... + x nw 1n ϑ 1) > 0 Neuron 2: sgn(x 2)( x 1w 21 + 0 +... + x nw 2n ϑ 2) > 0....................................................... Neuron n: sgn(x n)( x 1w n1 + x 2w n2 +... + 0 ϑ n) > 0 w ij = w ji n(n 1)/2 nenulových prvků váhové matice + n prahů. Nechť v je vektor dimenze n(n 1)/2 (složky v odpovídají prvkům w ij nad diagonálou matice W a n prahům se záporným znaménkem) v = (w 12, w 13,..., w 1n, w 23, w 24,..., w 2n,..., w n 1,n, ϑ 1,..., ϑ n ) {z } {z } {z } {z } n 1 n 2 1 n
Ekvivalence Hebbovského a perceptronového učení pro Hopfieldův model Ekvivalence Hebbovského a perceptronového učení pro Hopfieldův model III Transformace vektoru x do n pomocných vektorů z 1,..., z n dimenze n + n(n 1)/2: z 1 = (x 2, x 3,..., x n, 0, 0,.... 1, 0,..., 0) {z } {z } n 1 n z 2 = (x 1, 0,..., 0, x 3,..., x n, 0, 0,..., 0, 1,..., 0) {z } {z } {z } n 1 n 2 n.............................................. z n = (0, 0,..., x 1, 0, 0,..., x 2, 0, 0...., 0, 0,..., 1) {z } {z } {z } n 1 n 2 n Složky vektorů z 1,..., z n umožňují ekvivalentní zápis předchozích nerovností: Neuron 1: sgn(x 1) z 1 v > 0 Neuron 2: sgn(x 2) z 2 v > 0......................... > 0 Neuron n: sgn(x n) z n v > 0
Ekvivalence Hebbovského a perceptronového učení pro Hopfieldův model Ekvivalence Hebbovského a perceptronového učení pro Hopfieldův model IV K lineární separaci vektorů z 1,..., z n (podle sgn(x i)) lze použít perceptronové učení. Spočítat vektor vah v nutný pro lineární separaci z 1,..., z n a nastavit váhovou matici W. Pokud si má hopfieldova síť zapamatovat m vektorů x 1,..., x m, je třeba použít popsanou transformaci pro každý vektor. m n pomocných vektorů, které je třeba lineárně odseparovat. Pokud jsou vektory lineárně separabilní, najde perceptronové učení řešení zakódované ve formě v Učení hopf. sítě s n neurony učení perceptronu s dim. vst. prostoru n + n(n 1)/2
Optimalizační úlohy Multiflop Binární kódování - 0/1 x 1,..., x n binární stavy jednotlivých neuronů hopfieldovy sítě. Síť by se měla dostat do stavu, kdy bude právě jeden neuron aktivní; stav všech ostatních neuronů by měl být 0. Cíl: Nalézt minimum funkce: E(x 1,..., x n) = 2 x i 1! = x 2 i + x ix j 2 i j x i + 1 ( Porovnání s energetickou fcí hopf.mod. = 1/2 P n = P n i j xixj P n xi + 1 i j ( 2) xixj + P n ( 1) xi + 1
Optimalizační úlohy Problém n věží I Umístit na šachovnici n n, n věží tak, aby se navzájem neohrožovaly. Každá věž by měla být v jiném řádku i sloupku než ostatní. x P ij... stav neuronu na pozici ij šachovnice. n xij... počet stavů 1 ve sloupci j. V každém sloupci by měla být jen jedna jednička. minimalizace: E 1(x 11,..., x nn) = P n j=1 Podobně pro řádky: E 2(x 11,..., x nn) = P n `P n xi 1 2 Pn j=1 xi 1 2 Minimalizujeme E = E 1 + E 2 nastavení vah a prahů sítě:
Optimalizační úlohy Problém obchodního cestujícího (NP-úplný problém) I Cíl: Nalézt cestu přes n měst M 1,..., M n tak, aby bylo každé město navštíveno alespoň jednou a délka okružní jízdy byla minimální. Reprezentace pomocí matice 1 2 3 4 M 1 1 0 0 0 M 2 0 1 0 0 M 3 0 0 1 0 M 4 0 0 0 1 x ij... stav neuronu odpovídá údaji z matice d ij... vzdálenost mezi městy M i a M j Konvence: (n + 1)-ní sloupec je stejný jako první (kružnice) x ik = x jk+1 = 1 město M i je navštíveno k k-tém kroku a město M j je navštíveno v (k+1)-ním kroku. přičíst d ij k celkové délce cesty.
Optimalizační úlohy Problém obchodního cestujícího (NP-úplný problém) II Minimalizace délky cesty: L = 1/2 d ijx ik x j,k+1 i,j,k Povolena jediná návštěva vždy jen jednoho města. Požadavky na přípustnou cestu minimalizace E: E = 1 d ijx ik x j,k+1 + γ/2 2 i,j,k 2 x ij 1! + j=1! 2! x ij 1 j=1 Nastavení vah a prahů sítě: w ik,jk+1 = d ij + t ik,jk+1, kde ( γ pro neurony ve stejné řádce či sloupci t ik,jk+1 = 0 jinak δ ij = γ 2
Optimalizační úlohy Další varianty Hopfieldova modelu I Spojitý model Zvětšit počet možných cest k řešení Sigmoidální přenosová funkce Stochastické modely Omezení lokálních minim energetické funkce Možnost aktualizovat stav sítě i za cenu dočasného zvýšení její energie. Simulované žíhání
Stochastické modely neuronových sítí Stochastické modely neuronových sítí Hopfieldův model se používá k řešení optimalizačních prolémů, které lze vyjádřit ve formě minimalizované energetické funkce (i když není zaručeno nalezení globálního optima) Problém: Zabránit uvíznutí v lokálním minimu energetické funkce. Modifikace Hopfieldova modelu: 1 Strategie: zvětšení počtu možných cest k řešení ve stavovém prostoru dovolit i stavy ve fromě reálných hodnot spojitý model 2 Strategie: omezení lokálních minim energetické funkce pomocí zašuměné dynamiky sítě dočasné povolení aktualizace stavu sítě i za cenu přecodného zvýšení energetické hladiny Simulované žíhání, Boltzmannův stroj.
Spojitý model Spojitý model I Aktivace neuronu i vybraného pro aktualizaci podle: x i = s(u i) = 1, kde u i označuje excitaci neuronu i. 1 + e u i Dodatečný předpoklad pomalé změny excitace neuronu v čase podle:!! du i dt = γ ui + w ijx j = γ u i + w ijs(u j) j=1 j=1 γ > 0... adaptační parametr w ij... váha mezi neuronem i a j Při simulacích spočítat diskrétní aproximaci du i a přičíst ji k aktuální hodnotě u i. Výsledkem bude nový stav x i = s(u i) Asynchronní dynamika vede k dosažení rovnovážného stavu
Spojitý model Spojitý model II Energetická funkce pro spojitý model E = 1 2 j=1 w ijx ix j + Z xi 0 s 1 (x)dx Po každé aktualizaci stavu neuronu se hodnota energetické funkce snižuje: de dt = j=1 w ij dx i dt xj + s 1 (x i) dxi dt Protože síť je symetrická: w ij = w ji a zároveň u i = s 1 (x i)! de dt = dx i w ijx j u i dt j=1
Spojitý model Spojitý model III Přitom: du i dt Pn = γ j=1 wijxj ui de dt = 1 γ «2 s 1 dui (u i) dt Navíc platí s 1 (u i) > 0 (sigmoida je monotonně rostoucí funkce) γ > 0. Proto de dt 0. Stabilního stavu síť dosáhne, pokud de/dt vymizí. Taková situace nastane, pokud du i/dt dosáhne saturační oblasti sigmoidy, kde bude du i/dt 0 Pro kombinatorické problémy může spojitý model nalézt lepší řešení než model diskrétní. Pro velmi složité problémy (typu TSP) ovšem spojitý model obecně nenachází výrazně lepší řešení.
Simulované žíhání Simulované žíhání I Při minimalizaci energetické funkce E se tento jev simuluje následujícím způsobem: Hodnota proměnné x se změní vždy, když může aktualizace x zmenšit hodnotu energetické funkce E Pokud by se při aktualizaci x naopak hodnota E zvýšila o x, bude nová hodnota x (tj. x + x) přijata s pravděpodobností p E p E = 1, kde T je tzv. teplotní konstanta. 1 + e E/T Pro velké hodnoty T bude p E 1/2 a aktualizace stavu nastane zhruba v polovině těchto případů. Pro T = 0 bude docházet pouze k takovým aktualizacím, kdy se hodnota E sníží.
Simulované žíhání Simulované žíhání II Postupná změna hodnot T z velmi vysokých hodnost směrem k nule odpovídá zahřátí a postupnému ochlazování v procesu žíhání. Navíc lze ukázat, že touto strategií lze dosáhnout (asymptoticky) globálního minima energetické funkce. Sigmoida nejlépe opodvídá funkcím používaným v termodynamice (pro analýzu teplotní rovnováhy).
Boltzmannův stroj Boltzmannův stroj I Definice Boltzmanův stroj je Hopfieldova síť, která se skládá z n neuronů se stavy x 1,..., x n. Stav neuronu i se aktualizuje asynchronně podle pravidla: ( 1 s pravděpodobností p i 1 x i =, kde p i = 0 s pravděpodobností 1 p i 1 + e (P n j=1 w ij x j δ i)/t T... kladná teplotní konstanta w ij... označují váhy sítě δ i... označují prahy neuronů Binární stavy neuronů Energetická funkce Boltzmannova stroje E = 1 2 w ijx ix j + δ ix i j=1
Boltzmannův stroj Boltzmannův stroj II Rozdíl mezi Boltzmannovým strojem a Hopfieldovým modelem spočívá ve stochastické aktivaci neuronů. Pokud je T velmi malé, bude p i 1, jestliže je P n wijxj δi > 0 Pokud je excitace neuronu záporná bude p i 0 Dynamika Boltzmannova stroje aproximuje dynamiku diskrétní Hopfieldovy sítě a Boltzmannův stroj najde lokální minimum energetické funkce. Pro T > 0 je pravděpodobnost změny anebo posloupnosti změn ze stavu x 1,..., x n do jiného stavu vždy nenulová. Boltzmanův stroj nezůstane v jediném stavu snižování a zároveň možnost zvyšování energie systému Pro velké hodnoty T projde síť téměř celý stavový prostor V ochlazovací fázi má síť tendenci zůstávat déle v oblastech blízkých atraktorům lokálních minim Pokud se teplota snižuje správným způsobem, můžeme očekávat, že systém dosáhne globálního minima s pravděpodobností 1.