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.

Podobné dokumenty