Neuronov‡é s‡ít‡ě
Transkript
Neuronov‡é s‡ít‡ě
Neuronové sítě Neuronové sítě AIL002 Iveta Mrázová1 1 2 František Mráz2 Katedra softwarového inženýrství Kabinet software a výuky informatiky Do LATEXu přepsal: Tomáš Caithaml Neuronové sítě Asociativní sítě, asociativní paměti Úvod Asociativní sítě, asociativní paměti I Cíl učení: asociace známého vstupního vzoru s daným výstupním vektorem. Okolí znamého vstupního vzoru ~x by se mělo také zobrazit na výstup ~y odpovídající ~x správný výstup pak lze přiřadit i „zašuměnýmÿ vzorům. BP-síť: ~x ~y Asociativní síť: ~x ~y Neuronové sítě Asociativní sítě, asociativní paměti Úvod Asociativní sítě, asociativní paměti II Asociativní paměti lze implementovat pomocí sítí se zpětnou vazbou (ale i bez ní) nejjednodušší zpětná vazba: Výstup sítě se používá opakovaně jako její nový vstup, dokud síť nezkonverguje do stabilního stavu. Ne všechny sítě zkonvergují po předložení nového vzoru do stabilního stavu nutná dodatečná omezení na architekturu sítě. Funkce asociativní paměti Rozpoznat předem naučené vstupní vzory i v případě, že jsou „mírně zašuměnéÿ. Odezva každého neuronu je dána výhradně informacemi procházejícími jeho vahami (Hebbovské učení). Neuronové sítě Asociativní sítě, asociativní paměti Typy asociativních pamětí Typy asociativních sítí I 1 Heteroasociativní sítě y1i x1i Heteroasociativní síť yni xni Zobrazují m vstupních vzorů ~x 1 , . . . , ~x m z n-rozměrného prostoru na m výstupních vektorů ~y 1 , . . . , ~y m v k-rozměrném prostoru tak, že ~x i 7→ ~y i . Jestliže k ~e x − ~x i k2 < ε, potom ~e x 7→ ~x i (ε > 0). 2 Autoasociativní sítě x1i x1i Heteroasociativní síť xni xni Podmnožina heteroasociativních sítí (každý vektor je zobrazen sám na sebe: ~y i = ~x i pro i = 1, . . . , m). Funkcí autoasociativních sítí je „oprava zašuměných vzorůÿ. Neuronové sítě Asociativní sítě, asociativní paměti Typy asociativních pamětí Typy asociativních sítí II 3 Sítě pro rozpoznávání vzorů x1i Heteroasociativní síť i xni Speciální typ heteroasociativních sítí (každému vektoru ~x i je přiřazena skalární hodnota i). Cílem těchto sítí je identifikace třídy vstupního vzoru. Neuronové sítě Asociativní sítě, asociativní paměti Struktura asociativní paměti Struktura asociativní paměti I Asociativní paměť lze implementovat pomocí jedné vrstvy neuronů Nechť: wij W ... ... váha mezi vstupem i a neuronem j matice vah vektor ~x = (x1 , . . . , xn ) dává excitační vektor ~e : ~e = ~x W Potom se pro každý neuron spočítá hodnota přenosové funkce. Pro identitu dostáváme lineární asociátor a výstupem ~y bude právě ~x W . Obecně je třeba přiřadit m různým n-rozměrým vektorům ~x 1 , . . . , ~x m m k-rozměrných vektorů ~y 1 , . . . , ~y m Neuronové sítě Asociativní sítě, asociativní paměti Struktura asociativní paměti Struktura asociativní paměti II Nechť: X Y ... ... matice m × n (řádky odpovídají jednotlivým vstupním vektorům) matice m × k (řádky odpovídají příslušným výstupním vektorům) Hledáme takovou matici vah W , aby XW = Y (v případě autoasociativní paměti XW = X ). Poznámka: Pro m = n je X čtvercová matice. Pokud k ní existuje inverzní matice, bude řešením W = X −1 Y . Neuronové sítě Asociativní sítě, asociativní paměti Struktura asociativní paměti Rekurentní asociativní sítě Výstup sítě představuje její nový vstup. Předpoklad: Všechny neurony počítají svůj výstup současně síť dostává v každém kroku na vstup vektor ~x (i) a dává nový výstup ~x (i + 1). Otázka: Existuje pevný bod ξ~ takový, že ξ~ W = ξ~ ? Vektor ξ~ je vlastním vektorem matice W s vlastním číslem 1. Síť se chová jako dynamický systém prvního řádu, protože každý nový stav ~x (i + 1) je plně určen nejbližším předchůdcem. Neuronové sítě Asociativní sítě, asociativní paměti Vlastní automaty Vlastní automaty (eigenvector automaton) I Nechť: W je váhová matice autoasociativní sítě. Jednotlivé neurony jsou lineární asociátory. Hledáme pevné body dynamického systému. Poznámka: Ne všechny matice vah vedou ke stabilnímu stavu. Příklad: Rotace o 90◦ v rovině. „ « 0 1 W = cykly délky 4 −1 0 Pro paměti jsou vhodnější čtvercové matice s úplnou množinou vlastních vektorů. W (matice n × n) může mít až n lineárně nezávislých vlastních vektorů a n vlastních čísel vlastní vektory ~x 1 , . . . , ~x n pak splňují ~x i W = λi ~x i pro i = 1, . . . , n a λ1 , . . . , λn vlastní čísla W . Každá váhová matice s plnou množinou vlastních vektorů definuje jistý typ „vlastního automatuÿ. Po předložení vstupního vektoru bude nalezen vlastní vektor s největším vlastním číslem (pokud takový existuje). Neuronové sítě Asociativní sítě, asociativní paměti Vlastní automaty Vlastní automaty (eigenvector automaton) II Předpokládejme, BÚNO, že λ1 je vlastní číslo matice W takové, že |λi | > |λi | ∀i = 2, . . . , n Nechť λ1 > 0 a ~a0 je náhodně zvolený nenulový n-rozměrný vektor. ~a0 lze vyjádřit jako lineární kombinaci n vlastních vektorů matice W ~a0 = α1~x 1 + α2~x 2 + . . . + αn~x n Předpoklad: Všechny konstanty α jsou nenulové. Po první iteraci s W dostáváme: ~a1 = ~a0 W = (α1~x 1 + α2~x 2 + . . . + αn~x m )W = α1 λ1~x 1 + α2 λ2~x 2 + . . . + αn λn~x n Po t iteracích dostaneme: ~at = α1 λt1~x 1 + α2 λ2t ~x 2 + . . . + αn λtn~x n Po dostatečně velkém počtu iterací bude dominovat největší vlastní číslo λ1 . Neuronové sítě Asociativní sítě, asociativní paměti Vlastní automaty Vlastní automaty (eigenvector automaton) III ~t se pak může přiblížit libovolně blízko vlastnímu vektoru ~x 1 (týká Vektor w se směru, ne nutně délky). V každé iteraci tak vektor ~x 1 přitahuje libovolný jiný vektor ω ~0 s nenulovým členem pro α1 ~x 1 je atraktor. Příklad: „ « 2 0 0 1 má 2 vlastní vektory (1, 0) a (0, 1) s vlastními čísly 2 a 1. Po t iteracích počátečního vzoru (x1 , x2 ), x1 6= 0 dostaneme (2t x1 , x2 ). Pro dostatečně velké t se přiblíží libovolně blízko (1, 0) Matice W = Neuronové sítě Asociativní sítě, asociativní paměti Asociativní učení Asociativní učení Cíl: Použití asociativních sítí jako dynamických systémů, jejichž atraktory by odpovídaly těm vektorům, které chceme do paměti uložit. Při návrhu sítě chceme rozmístit ve vstupním prostoru co možná nejvíce atraktorů. Každý z nich by měl mít přesně danou a omezenou oblast vlivu. V případě vlastních automatů zahrnovala oblast vlivu jediného vektoru téměř celý vstupní prostor. Nelinární dynamické systémy, nelinární aktivace neuronů. Skoková přenosová funkce: ( 1 pokud x ≥ 0 sgn(x) = −1 pokud x < 0 Bipolární kódování je vhodnější než binární (větší pravděpodobnost ortogonality u bipolárních vektorů). Neuronové sítě Asociativní sítě, asociativní paměti Asociativní učení Hebbovské učení I Předpokládáme Jednovrstvá síť s k neurony a skokovou přenosovou funkcí sgn. Cíl Nalézt odpovídající váhy pro zobrazení n-rozměrného vstupního vektoru ~x na k-rozměrný výstupní vektor ~y Idea (Donald Hebb, 1949) Dva neurony, které jsou současně aktivní, by měly mít „vyšší stupeň vzájemné interakceÿ než neurony, jejichž aktivita je nekorelovaná – v takovém případě by měla být vzájemná interakce hodně malá nebo nulová. wij xi yj ∆wij = γxi yj γ . . . parametr učení W . . . váhová matice (na začátku učení nulová) Adaptační pravidlo se použije pro všechny váhy. Na vstupu je n-rozměrný vektor ~x 1 , na výstupu je k-rozměrný vektor ~y 1 . Neuronové sítě Asociativní sítě, asociativní paměti Asociativní učení Hebbovské učení II Adaptovaná váhová matice W je korelační maticí pro tyto dva vektory: W = [wij ]n×k = [xi1 yi1 ]n×k Matice W zobrazí nenulový vektor ~x 1 právě na vektor ~y 1 : n n n X X ` X ´ ~x 1 · W = y11 xi1 xi1 , y21 xi1 xi1 , . . . , yk1 xi1 xi1 = ~y 1 (~x 1 · ~x 1 ) i=1 i=1 i=1 Pro ~x 1 6= 0 platí, že ~x 1 · ~x 1 > 0 a výstup sítě je: sgn(~x 1 · W ) = (y 1 1 , . . . , y 1 k ) = ~y 1 Pro −~x 1 je výstup sítě: sgn(−~x 1 · W ) = − sgn(~x 1 · W ) = −~y 1 Obecně: Chceme-li přiřadit m n-rozměrným nenulovým vektorům ~x 1 , . . . , ~x m m k-rozměrných vektorů ~y 1 , . . . , ~y m, použijeme Hebbovské učení pro každou dvojici vstup/výstup. Neuronové sítě Asociativní sítě, asociativní paměti Asociativní učení Hebbovské učení III Výsledná matice vah W bude mít tvar: W = W1 + W2 + ··· + Wm kde každá matice W l je n × k korelační matice vektorů ~x l a ~y l : W l = [xil yjl ]n×k Jestliže pak bude na vstupu sítě vektor ~x p bude excitační vektor sítě roven: m ” “ X ~x p · W l = ~x p · W =~x p W 1 + W 2 + · · · + W m = ~x p · W p + l6=p 0 ~y p @~x p · ~x p + m X 1 ~y l (~x l · ~x p )A l6=p Excitační vektor tedy P odpovídá ~y p (vynásobenému kladnou konstantou) s perturbačním členem m y l (~x l ~x p ), který se označuje jako crosstalk. l6=p ~ Síť dává na výstupu požadovaný vektor ~y p v případě, že je crosstalk nulový. Pokud jsou vstupní vzory ~x 1 , . . . , ~x m navzájem ortogonální. Neuronové sítě Asociativní sítě, asociativní paměti Asociativní učení Hebbovské učení IV Síť může dávat poměrně dobré výsledky i pro nenulový crosstalk. Crosstalk by měl být menší než ~y p (~x p ~x p ) Výstup sítě bude roven: sgn(~x p · W ) = sgn(~y p (~x p · ~x p ) + m X ~y l (~x l · ~x p )) l6=p p p protože ~x · ~x je kladná konstanta: 1 0 m l p X (~ x .~ x ) l p p ~y p p A sgn(~x · W ) = sgn @~y + ~x · ~x l6=p p aby byl výstup sítě roven ~y , musí platit 0 1 m l p X ~ (~ x · x ) p p l ~y = sgn @~y + ~y p p A ~x · ~x l6=p Tato podmínka bude splněna, pokud bude absolutní hodnota všech složek l p P x ) perturbačního členu m y l (~~xxp.~ menší než 1. l6=p ~ .~ xp Neuronové sítě Asociativní sítě, asociativní paměti Asociativní učení Problém kapacity sítě „Sféry vlivuÿ uložených vzorů se zmenšují s každým novým ukládaným vzorem. Pokud bude crosstalk příliš velký, může být dříve uložený vzor i „zapomenutÿ! Pravděpodobnost výskytu takových problémů by měla být co možná nejmenší. Odhad počtu vzorů m, které lze bezpečně uložit do autoasociativní paměti s váhovou maticí W (n × n). Maximální kapacita sítě: m ≈ 0, 18n Počet uložených vzorů by měl být menší než 0.18n, kde n je dimenze vstupního vektoru. Pokud jsou ale vzory korelované, může dojít k prolémům i pro m < 0.18n. Neuronové sítě Asociativní sítě, asociativní paměti Asociativní učení Analýza chování asociativních sítí I Identifikace atraktorů (pevných bodů systémů). Míra vlivu jednotlivých atraktorů. Hammingovská vzdálenost (= počet různých složek dvou bipolárních vektorů). Příklad: 1 −1 1 1 2 1 1 −1 1 S rostoucím počtem ukládaných vzorů se „sféry vlivuÿ jednotlivých atraktorů zmenšují. Nepravé stabilní stavy. Velký crosstalk. Inverzní vzory k uloženým: sgn(−~ x W ) = − sgn(~ x W ) = −~ x Rekurentní síť (se zpětnou vazbou) Lepší konvergence oproti asoc. paměti bez zpětné vazby. Větší „sféry vlivuÿ jednotlivých atraktorů x nesmí být uloženo příliš mnoho vzorů Problém: Kapacita matice vah. Pn/2 porovnání velikosti sfér vlivu pomcí indexu I = k=0 hph ph – procento vektorů s hammingovskou vzdáleností h od uloženého vzoru, které k němu zkonvergovaly. Neuronové sítě Asociativní sítě, asociativní paměti Asociativní učení Geometrická interpretace hebbovského učení I Pro matice W i ze vztahu W = W 1 + W 2 + · · · + W n v případě autoasocitativních sítí platí: W i = (~x i )T ~x i Tedy pro W 1 = (~x 1 )T ~x 1 bude vstupní vektor ~z zobrazen do lin. podprostoru L1 určeného vektorem ~x 1 , protože ~x W 1 = ~z (~x 1 )T ~x 1 = (~z (~x 1 )T )~x 1 = c1~x 1 Obecně neortogonální projekce vektoru ~z do L1 . Podobně i pro další matice vah W 2 , . . . , W m . Neuronové sítě Asociativní sítě, asociativní paměti Asociativní učení Geometrická interpretace hebbovského učení II P i Matice W = m z do lineárního podprostoru i=1 W zobrazí vektor ~ 1 určeného vektory ~x , . . . , ~x n , protože, ~z W = ~z W 1 + ~z W 2 + . . . + ~z W m = c1~x 1 + c2~x 2 + · · · + cm~x m Obecně neortogonální projekce (tzn. pro bipolární vektory: Skal. součin ~x l .~x p musí být menší než druhá mocnina délky ~x p ) Neuronové sítě Asociativní sítě, asociativní paměti Asociativní učení Geometrická interpretace hebbovského učení III Pokud jsou náhodně zvoleným bipolárním vektorům přiřazeny (jiné) náhodně zvolené bipolární vektory, je pravděpodobnost, že budou navzájem ortogonální poměrně vysoká (pokud jich ovšem nebylo zvoleno příliš mnoho) V takovém případě bude crosstalk malý a hebbovské učení povede k volbě vhodných vah pro asociativní síť. Neuronové sítě Asociativní sítě, asociativní paměti Asociativní učení Odvození kapacity sítě – idea I (pro W i = 1 n ` i ´T i ~x ~x ) Crosstalk pro n-rozměrné bipolární vektory a m vzorů autoasociativní sítě: m 1 X l “ l p” ~x ~x .~x m l6=p Pokud je tento člen větší než 1 a má opačné znaménko přislušné složky, může „překlopitÿ odpovídající bit již uloženého vzoru. Předpokládejme, že uložené vzory byly zvoleny náhodně P l xl · ~ Crosstalk pro bit i vstupního vektoru je určen jako n1 m x p ) (*) l6=p xi (~ Protože byly složky všech vzorů zvoleny náhodně, dostáváme řádově m · n náhodných hodnot. Očekávaná hodnota tohoto součtu je 0 Součet (*) má binomické rozdělení a pro velké hodnoty mn ho lze p aproximovat normálním rozdělením se směrodatnou odchylkou σ = m/n Neuronové sítě Asociativní sítě, asociativní paměti Asociativní učení Odvození kapacity sítě – idea II Pravděpodobnost chyby P, že součet (*) bude větší než 1 (anebo menší než −1), je dána dle 1 P= √ 2πσ " Z∞ e −x 2 /(2σ 2 ) dx tedy: 1 P(|(∗) > 1|) = 2 1 − Φ 1 p m/n !# 1 , kde Φ(x) = √ 2π Zx e −t 2 /2 dt −∞ Pro horní mez chyby na 1 bitu 0,01 dostaneme: „ « 0, 01 = 2[1 − Φ √ 1 ] m/n m ≈ 0, 18n Neuronové sítě Asociativní sítě, asociativní paměti Asociativní paměti – pseudoinverzní matice Asociativní paměti – pseudoinverzní matice Hebbovské učení dává dobré výsledky, pokud jsou uložené vzory téměř ortogonální (pokud bylo m bipolárních vektorů zvoleno náhodně z n-rozměrného prostoru, n je „dostatečně velkéÿ a m je „dostatečně menšíÿ než n) V reálných aplikacích jsou vzory téměř vždy korelované a perturbační člen ve výrazu m “ ” X ~x p W = ~x r (~x p · ~x p ) + ~y l ~x l · ~x p l6=p může ovlivnit kvalitu rozpoznávání, protože skalární součiny ~x l · ~x p nejsou pro l 6= p dostatečně malé. To má za následek snížení kapacity asociativní paměti (počet vzorů, které lze uložit a rozpoznávat). Ukládané vzory pak nepokrývají rovnoměrně celý příznakový prostor, ale soustředí se do menší oblasti. Je třeba hledat alternativní metody učení schopné minimalizovat perturbaci mezi ukládanými vzory. Použití pseudoinverzní matice namísto korelační. Neuronové sítě Asociativní sítě, asociativní paměti Asociativní paměti – pseudoinverzní matice Použití pesudoinverzní matice v asociativní paměti I Hebbovské učení dává dobré výsledky, pokud jsou ukládané vzory (téměř) ortogonální. V praxi jsou vzory (téměř vždy) korelované. Crosstalk ovlivňuje proces vybavování ~x p W = ~y p (~x p · ~x p ) + m X “ ” ~y l ~x l · ~x p l6=p (pro l 6= p nemusí být skalární součin ~x l · ~x p dost malý) Zmenšení kapacity sítě. Potřeba hledat alternativní metody učení, které by umožnily minimalizovat crosstalk mezi uloženými vzory. Řešení: Použít pseudoinverzní matici namísto korelační. Definice: Pseudoinverzní maticí k matici m × n reálných čísel je matice reálných čísel X̃ s následujícími vlastnostmi: 1 2 3 eX = X XX e X X̃ = X e X eX a XX e jsou symetrické X Pseudoinverzní matice vždy existuje a je jednoznačně určena. Neuronové sítě Asociativní sítě, asociativní paměti Asociativní paměti – pseudoinverzní matice Použití pseudoinverzní matice I Nechť ~x 1 , . . . , ~x m jsou n-rozměrné vektory, kterým má být přiřazeno m k-rozměrných vektorů ~y 1 , . . . , ~y m . Maticový zápis: X Y ... ... matice m × n, řádky matice tvoří vektory ~x 1 , . . . , ~x m matice m × k, řádky matice tvoří vektory ~y 1 , . . . , ~y m Hledáme matici vah W, XW = Y Protože obecně m 6= n a vektory ~x 1 , . . . , ~x m nemusí být navzájem lineárně nezávislé, nemusí existovat k matici X matice inverzní. Hledáma matici, která by minimalizovala kXW − Y k2 (součet druhých mocni jednotlivých prvků). e Y (X e je pseudoinverzní matice k X ) Minimalizace pomocí W = X Je to nejlepší aproximace inverzní matice k X a pokud X −1 existuje, bude e. navíc X −1 = X Věta: Nechť X je matice reálných čísel m × n a Y je matice reálných čísel e Y minimalizuje kXW − Y k2 (zároveň X e m × n. Matice n × k W = X 2 e − I k ). minimalizuje kX X Neuronové sítě Asociativní sítě, asociativní paměti Asociativní paměti – pseudoinverzní matice Použití pseudoinverzní matice II Důkaz: Nechť E = kXW − Y k2 . E lze vyjádřit jako E = tr (S), kde S = (XW − Y )T (XW − Y ) (E je součet prvků na diagonále S). S lze vyjádřit jako e Y − W )T X T X (X e Y − W ) + Y T (I − X X e )Y S = (X protože: e Y − W )T (X T X X e Y − X T XW ) + Y T (I − X X e )Y S = (X e je symetrická (def.) a tedy Matice X X e Y − W )T ((X X e X )T Y − X T XW ) + Y T (I − X X e )Y S = (X Neuronové sítě Asociativní sítě, asociativní paměti Asociativní paměti – pseudoinverzní matice Použití pseudoinverzní matice III Proto: e Y − W )T (X T Y − X T XW ) + Y T (I − X X e )Y S = (X e Y − W )T X T (Y − XW ) + Y T (I − X X e )Y = (X e Y − XW )T X T (Y − XW ) + Y T (I − X X e )Y = (X X e (Y − XW ) + Y T (I − X X e )Y = (−XW )T (Y − XW ) + Y T X X = (−XW )T (Y − XW ) + Y T (−XW ) + Y T Y = (Y − XW )T (Y − XW ) E lze tedy vyjádřit jako e Y − W )T X T X (X e Y − W )) + tr (Y T (I − X X e )) E = tr ((X eY . Mininimum E nastává pro W = X Neuronové sítě Asociativní sítě, asociativní paměti Asociativní paměti – pseudoinverzní matice Pseudoinverzní matice – definice a vlastnosti I Definice Pseudoinverzní maticí k matici m × n reálných čísel je matice reálných čísel X̃ s následujícími vlastnostmi: eX = X 1 XX 2 3 e X X̃ = X e X e e X X a X X jsou symetrické Motivace a použití Ne ke všem maticím existuje matice inverzní. Alternativou je použití pseudoinverzní matice (minimalizace střední kvadratické odchylky) (např. vrstevnaté neuronové sítě) Trénovací množina {(x~p , d~p ); p = 1, . . . , P} x~p d~p y~p ... ... ... Odchylka: E = vstupní vzor (n-rozměrný) požadovaný výstup (m-rozměrný) skutečný výstup( m-rozměrný) PP p=1 Ep = PP p=1 Pm j=1 (dj,p − yj,p )2 Neuronové sítě Asociativní sítě, asociativní paměti Asociativní paměti – pseudoinverzní matice Pseudoinverzní matice – definice a vlastnosti II y~p : yj,p = Pn i=1 wij xi,p Minimalizace odchylky E vzhledem k vahám ⇒ parciální derivace E podle vah by měly být nulové: !2 ! P X m n X X ∂ ∂E /∂wij = dj,p − wij xi,p ∂wij p=1 j=1 i=1 ! P m X X = −2 dj,p − wij xi,p xi,p = 0 p=1 j=1 Maticový zápis: WXX T = DX T W X D ... ... ... Matice m × n se složkami wij Matice m × n se složkami xi,p Matice m × n se složkami di,p K matici XX T nemusí existovat inverzní matice. Rovnici nemusí být možné vyřešit přímo a najít matici vah W (v případě, že XX T nemá m lineárně nezávislých řádků) Neuronové sítě Asociativní sítě, asociativní paměti Asociativní paměti – pseudoinverzní matice Pseudoinverzní matice – definice a vlastnosti III Řešení může bý víc E +λ n X m X wij2 , dodatečná podmínka na omezení velikosti vah: λ > 0, λ = konst. i=1 j=1 Minimalizace pomocí parciálních derivací W (XX T + λI ) = DX T (λ > 0 ⇒ k matici XX T + λI existuje matice inverzní) W (XX T + λI )(XX T + λI )−1 = DX T (XX T + λI )−1 Limitně pro λ → 0: e W = lim [DX T (XX T + λI )−1 ] = D X λ→0 e . . . pseudoinverzní matice k matici X X e nejmenší hodnoty P P wij2 Pokud existuje řešení více, bude mít X i j e = X −1 Pokud existuje k X inverzní matice, bude X Neuronové sítě Asociativní sítě, asociativní paměti Asociativní paměti – pseudoinverzní matice Výpočet pseudoinverzní matice I Aproximace pomocí vrstevnatých neuronových sítí typu zpětného šíření. Cíl: Nalézt takovou matici vah W se složkami wij , která by nejlépe zobrazila vektory ~x 1 , . . . , ~x m na vektory ~y 1 , . . . , ~y m Pro i-tý vstupní vektor se porovná výstup sítě s vektorem ~y i a vypočítá se Ei P 2 Celková kvadratická odchylka E = m i=1 Ei pak odpovídá kXW − Y k Algoritmus zpětného šíření najde matici W , která by měla minimalizovat kXW − Y k2 . Neuronové sítě Asociativní sítě, asociativní paměti Bidirektivní asociativní paměť Bidirektivní asociativní paměť I BAM – synchronní asociativní model s „obousměrnýmiÿ synapsemi Rekurentní asociativní paměť Skládá se ze dvou vrstev neuronů, které si mezi sebou rekurzivně posílají informace. Vstupní vrstva posílá výsledky svého vzpočtu výstupní vrstvě – prostřednictvím vah sítě. Výstupní vrstva vrací výsledky svých výpočtů zpět vstupní vrstvě – prostřednictvím stejných vah. Otázka: Dosáhne síť stabilního stavu, kdy se po několika iteracích už nebude měnit informace posílaná sem a tam? Neuronové sítě Asociativní sítě, asociativní paměti BAM – Bidirectional associative memory BAM – Bidirectional associative memory I Rezonanční síť Aktivační (přenosovou) funkcí je sgn Informace je kódována pomocí bipolárních hodnot Síť zobrazí n-rozměrný vektor ~x0 na k-rozměrný vektor ~y0 Váhová matice sítě je n × k matice W . Po pvním průchodu sítí dostáváme: ~y0 = sgn(~x0 W ) Vstup po zpětném průchodu sítí bude: ~x1 = sgn(W ~y0T ) Výstup po dalším průchodu: ~y1 = sgn(~x1 W ) Po m iteracích dostáváme m + 1 dvojic vektorů (~x0 , ~y0 , ), . . . , (~xm , ~ym ), které splňují podmínku: ~yi = sgn(~xi W ) a ~xi+1 = sgn(W ~yiT ) Otázka: Nalezna systém po několika iteracích pevný bod (~x , ~y )? Neuronové sítě Asociativní sítě, asociativní paměti BAM – Bidirectional associative memory BAM – Bidirectional associative memory II Máme-li dvojici vektorů (~x , ~y ) a chceme nastavit váhy BAM tak, aby tato uspořádaná dvojice představovala pevný bod systému, lze k výpočtu odpovídající matice vah použít Hebbovské učení: W = ~x T ~y ~y = sgn(~x W ) = sgn(~x ~x T ~y ) = sgn(k~x k2~y ) = ~y a zároveň ~x T = sgn(W ~y T ) = sgn(~x T ~y ~y T ) = sgn(~x T k~y k2 ) = ~x T Chceme-li uložit do paměti více vzorů: (x~0 , y~0 ), . . . , (x~m , y~m ), bude hebbovské učení efektivnější, pokud jsou vektory ~x1 , . . . , ~xm a ~y1 , . . . , ~ym navzájem ortogonální (menší crosstalk) Pro m dvojic vektorů bude matice W : W = ~x1T ~y1 + ~x2T ~y2 + . . . + ~xmT ~ym Navíc lze BAM použít i při konstrukci autoasociativních sítí, protože matice vah vzniklé při hebbovském učení (anebo při výpočtu pseudoinverzní matice) jsou symetrické. (X = XW a X T = WX T ) Neuronové sítě Asociativní sítě, asociativní paměti Energetická funkce pro BAM Energetická funkce pro BAM I Nechť pro danou síť BAM představuje dvojice (~x , ~y ) stabilní stav Při inicializaci je síti (zleva) předložen vstupní vektor ~x0 (časem by síť měla dokonvergovat k (~x , ~y ) Výpočet vektoru ~y0 podle ~y0 = sgn(~x0 W ) Výstupní vektor ~y0 bude použit pro novou iteraci (zprava) Excitace neuronů vlevo určit podle excitačního vektoru ~e : ~e T = W ~y0 (~x0 , ~y0 ) by odpovídalo stabilnímu stavu sítě, pokud sgn(~e = ~x0 ), tj. pokud je ~e dostatečně blízko. (Skalární součin ~x0~e T by měl být větší než skal. součin jiných excitačních vektorů a ~x0 , i když jsou stejně dlouhé). Součin E = −~x0~e T = −~x0 W ~y0T tedy bude menší, pokud leží vektor W ~y0T blíže k ~x0 Možnost sledování konvergence systému ke stabilnímu stavu E – energetická funkce Definice: Nechť W je váhová matice sítě BAM a nechť výstup y~i pravé vrstvy ~ levé neuronů se v i-té iteraci spočítá podle y~i = sgn(~ xi W ) a výstup xi+1 T = sgn(W ~ vrstvy neuronů nechť se počítá podle ~xi+1 yiT ) Neuronové sítě Asociativní sítě, asociativní paměti Energetická funkce pro BAM Energetická funkce pro BAM II Energetická funkce sítě BAM je pak určena pomocí: 1 E (~xi , ~yi ) = − ~xi W ~yiT 2 Lokální minima energetické funkce odpovídají stabilním stavům. Neuronové sítě Asociativní sítě, asociativní paměti Zobecnění energetické funkce Zobecnění energetické funkce I Uvažujeme práh a skokovou přenosovou funkci. Každý n-rozměrný vektor ~x bude transformován na vektor (x1 , . . . , xn , 1) Každý k-rozměrný vektor ~y bude transformován na vektor (y1 , . . . , yk , 1) Váhová matice W bude rozšířena na matici W 0 , která má oproti W řádek a sloupec navíc. záporné prahy neuronů z pravé vrstvy sítě BAM tvoří (n+1)-ní řádku W 0 Záporné prahy neuronů z levé vrstvy sítě tvoří (k+1)-ní sloupec W 0 Prvek (n + 1, k + 1) matice W 0 bude 0 Tato transformace odpovídá zavedení dalšího neuronu s konstantním výstupem 1 do obou vrstev. Váhy vedoucí z těchto přidaných neuronů odpovídají záporné hodnotě prahu neuronů, do nichž vedou. Neuronové sítě Asociativní sítě, asociativní paměti Zobecnění energetické funkce Zobecnění energetické funkce II Energetická funkce modifikované sítě BAM 1 1~ T 1 ~T E (~xi , ~yi ) = − ~xi W ~yiT + Θ yi + ~xi Θ r~ l 2 2 2 ~l Θ ~r Θ ... ... vektor prahů k neuronů (v levé vrstvě sítě) vektor prahů n neuronů (v pravé vrstvě sítě) Neuronové sítě Asociativní sítě, asociativní paměti Asynchronní sítě BAM Asynchronní sítě BAM I Každý neuron náhodně spočítá svou excitaci a změní svůj stav na 1 nebo −1 nezávisle na ostatních (ale podle znaménka své excitace) Pravděpodobnost, že budou dva neurony současně měnit svůj stav, je nulová Předpokládáme: Stav neuronu se nemění, je-li celková excitace nulová BAM nalezne stabilní stav v konečným počtu iterací (sekv. procházení neuronů sítě) Stabilní stav – dvojice vektorů (~x , ~y ), ~y = sgn(~x W ) a ~x T = sgn(W ~y T ) Věta: Bidirektivní asociativní paměť s libovolnou maticí vah W dosáhne stabilního stavu v konečném počtu iterací a to jak pomocí synchronní, tak také pomocí asychronní aktualizace. Neuronové sítě Asociativní sítě, asociativní paměti Asynchronní sítě BAM Asynchronní sítě BAM II Důkaz: Pro vektory ~x = (x1 , . . . , xn ) a ~y = (y1 , . . . , yk ) a váhovou matici n × k W = {wij } je energetická funkce E (~x , ~y ) rovna: 1 0 10 y1 w11 w12 . . . w1k B w21 w22 . . . w2k C B y2 C C B CB E (~x , ~y ) = −1/2(x1 , . . . , xn ) B . .. .. C B .. C .. @ .. . . . A@ . A yk wn1 wn2 . . . wnk Neuronové sítě Asociativní sítě, asociativní paměti Asynchronní sítě BAM Asynchronní sítě BAM III součin i-té řádky W a ~y T udává míru excitace i-tého neuronu z levé vrstvy gi . Pro excitační vektor levé vrstvy (g1 , . . . , gn ) pak platí: 0 1 g1 B g2 C B C E (~x , ~y ) = −1/2(x1 , . . . , xn ) B . C @ .. A gn Podobně pro pravou vrstvu a její excitační vektor (e1 , . . . , ek ) platí: 1 0 y1 B y2 C C B E (~x , ~y ) = −1/2(e1 , . . . , ek ) B . C @ .. A yk Neuronové sítě Asociativní sítě, asociativní paměti Asynchronní sítě BAM Asynchronní sítě BAM IV Energetickou funkci lze vyjádřit dvěma navzájem ekvivalentními způsoby: E (~x , ~y ) = −1/2 k X ei yi a E (~x , ~y ) = −1/2 i=1 n X gi xi i=1 V případě asynchronních sítí se v každém kroku vybere náhodně jeden neuron z levé či pravé vrstvy. Spočítá se excitace a nový stav neuronu. Pokud se stav neuronu nezmění, zůstane beze změny i energie sítě. Stav neuronu i z levé vrstvy sítě se změní pouze v případě, že má excitace gi různé znaménko než jeho aktuální stav xi . Protože ostatní neurony nemění svůj stav (asynchronní dynamika), bude rozdíl mezi předchozí energií E (~x , ~y ) a novou energií E (~x 0 , ~y ) odpovídat: E (~x , ~y ) − E (~x 0 , ~y ) = −1/2gi (xi − xi0 ) Protože xi − xi0 má různé znaménko od gi bude E (~x , ~y ) − E (~x 0 , ~y ) > 0 (Pokud by xi − xi0 mělo stejné znaménko jako gi , nenastala by změna stavu neuronu) Neuronové sítě Asociativní sítě, asociativní paměti Asynchronní sítě BAM Asynchronní sítě BAM V Nový stav sítě (~x 0 , ~y ) má tedy nižší energii než původní stav (~x , ~y ) Analogicky pro neurony z pravé vrstvy sítě: E (~x , ~y ) − E (~x , ~y 0 ) > 0. Pokud došlo ke změně stavu neuronu. Každá aktualizace stavu sítě vede ke zmenšení její celkové energie Protože existuje konečně mnoho kombinací bipolárních hodnot stavů, musí proces skončit v nějakém stavu (~a, ~b), kdy už nelze energii sítě dále snižovat Síť nalezla lokální minimum energetické funkce a stav (~a, ~b) je atraktorem systému QED Poznámka: Věta platí i pro sítě se synchronní dynamikou. ⇒ Libovolná reálná matice vah W má bidirektivní stabilní bipolární stavy.