modelowanie oscylacyjnych sieci neuronowych w środowisku

Transkrypt

modelowanie oscylacyjnych sieci neuronowych w środowisku
Wiesław Citko
Akademia Morska w Gdyni
MODELOWANIE OSCYLACYJNYCH SIECI NEURONOWYCH
W ŚRODOWISKU PROGRAMISTYCZNYM MATLAB
W pracy poruszono zagadnienia związane z inteligencją obliczeniową, w szczególności zaś przedstawiono realizację bezstratnej, hamiltonowskiej sieci neuronowej w formie sprzężonych oscylatorów
fazowych. Zaproponowano model takiej sieci w środowisku programistycznym Matlab-Simulink oraz
omówiono wyniki badań symulacyjnych.
Słowa kluczowe: przetwarzanie sygnałów, hamiltonowskie sieci neuronowe, modelowanie procesów
dynamicznych.
WSTĘP
W ostatnich dekadach nastąpił znaczący rozwój metod inteligencji obliczeniowej, podyktowany wzrostem zapotrzebowania na alternatywne do klasycznych
algorytmów metody rozwiązywania różnych, często bardzo złożonych problemów
numerycznych. Do metod inteligencji obliczeniowej w zależności od przyjętej
klasyfikacji zalicza się: metody wykorzystujące logikę rozmytą, algorytmy genetyczne oraz metody bazujące na zastosowaniu sztucznych sieci neuronowych.
Sztuczne sieci neuronowe, które mają naśladować sieci biologiczne, mogą mieć
różne struktury, mogą także być dedykowane do realizacji pewnych ściśle
określonych zadań.
W prezentowanym artykule przedstawiono wyniki modelowania autorskiej
oscylacyjnej sieci neuronowej w środowisku obliczeniowym Matlab-Simulink.
Koncepcja analizowanej sieci neuronowej wywodzi się bezpośrednio z koncepcji
bezstratnych sieci neuronowych, które w literaturze przedmiotu określa się także
jako hamiltonowskie sieci neuronowe (Hamiltonian Neural Networks) [9, 11, 12].
Badane struktury mają charakter sieci oscylacyjnych, ale istnieją proste transformacje pozwalające na przekształcenie ich w sieci stałoprądowe, których są twórczym rozwinięciem [3]. Oscylacyjne sieci neuronowe analizowanego typu składają
się ze struktur połączonych pętli fazowych (Phase Locked Loop). Na podkreślenie
zasługuje fakt, że informacje wejściowe w takim przypadku mogą być zakodowane
zarówno w wektorze dewiacji częstotliwości generatorów wejściowych, jak
i wektorze napięć stałych, które po dodaniu do przefiltrowanego sygnału wyjściowego przestrajają generatory sterowane napięciem, występujące w pętlach fazowych (Voltage Controlled Oscillator).
W. Citko, Modelowanie oscylacyjnych sieci neuronowych w środowisku programistycznym Matlab
71
1. KONCEPCJA OSCYLACYJNEJ SIECI NEURONOWEJ
Architektura sieci neuronowych z wykorzystaniem sprzężonych pętli fazowych (PLL) na podstawie modelu Kuramoto [8], została zaproponowana w pracach Hoppensteadta [4, 5]. Śledząc doniesienia literaturowe można zaobserwować,
że badania nad tego typu strukturami są w dalszym ciągu kontynuowane [1, 6, 13].
Także autor prezentowanej pracy prowadzi niezależnie badania nad możliwością
implementacji procesorów sygnałowych, opartych na hamiltonowskich sieciach
sprzężonych pętli fazowych [2, 10]. Jedną z głównych przesłanek uzasadniających
badania nad oscylacyjnymi implementacjami sieci neuronowych jest ich
uniwersalność w modelowaniu biologicznych, fizycznych i technicznych systemów
dynamicznych. Sieci te wykazują także pewną analogię ze strukturami biologicznymi, które z natury są oscylacyjne. Podstawowym elementem hamiltonowskiej oscylacyjnej sieci neuronowej jest bezstratny neuron, którego struktura
zawiera dwie pętle fazowe. Model takiego neuronu zaprezentowano na rysunku 1.
s1(t)
e1(t)
v1(t)
v2(t)
y1(t)
H1(s)
LPF
Γ1
V.C.O.1
1
V.C.O.2
-1
s2(t)
e2(t)
Γ2
H2(s)
LPF
y2(t)
si(t) = ACi sin(ωCit + φi1)
vi(t) = Avi cos(ωCit + φi2), i = 1,2
Γ1, Γ2 – wejścia stałoprądowe
Rys. 1. Oscylacyjny (PLL) model bezstratnego neuronu (Hi(s) ≡ 1, i = 1, 2)
Fig. 1. The oscillating ( PLL) model of the lossless neuron (Hi(s) ≡ 1, i =1, 2)
Dynamika nawet pojedynczej pętli fazowej jest bardzo złożona, z tego
względu wygodnie jest czasami posługiwać się w analizach teoretycznych
pewnymi przybliżeniami [7]. Takim przybliżeniem jest uśrednione równanie
72
ZESZYTY NAUKOWE AKADEMII MORSKIEJ W GDYNI, nr 90, grudzień 2015
fazowe, które dla bezstratnego neuronu z rysunku 1, przy założeniu braku filtrów
pętlowych, tzn. Hi(s) ≡ 1, dane jest wyrażeniem:
⎡• ⎤
⎡• ⎤
0
k
k
A
A
±
sin
x
x
⎡
⎤
⎡
⎤
1
v1 m 2 C 2 v 2
1 + ⎢φ 11 ⎥ − 2π ⎡ k v1Γ1 ⎤
⎢ ⎥ = 2π
•
⎢⎣kv 2Γ2 ⎥⎦
⎢
⎥
⎢
⎥ ⎢• ⎥
sin
∓
k
k
A
A
0
x
⎢ ⎥
2⎦
⎣ v 2 m1 C1 v1
⎦⎣
x
2
⎣ ⎦
⎣φ 21 ⎦
(1)
gdzie:
kvi, kmi (i = 1, 2) – czułości oscylatorów VCO i detektorów fazy,
x1 = φ11 − φ12 , x2 = φ21 − φ22 .
Strukturę pojedynczego neuronu z rysunku 1 można rozszerzać, tworząc w ten
sposób oscylacyjny model n-neuronowej sieci o dynamicznie zmiennych wagach
połączeń. Model ten zaprezentowano na rysunku 2. Wagi połączeń zależą od
iloczynów wzmocnień pętli fazowych. Należy zwrócić uwagę na fakt, że sieć traci
swoje cechy funkcjonalne przy braku sygnałów wejściowych s.
Γ1
s1(t)
H1(s)
y1(t)
v1(t)
VCO1
Γ2
s2(t)
H2(s)
y2(t)
VCO2
Matryca
połączeń
pętli
fazowych
yn(t)
sn(t)
Γn
Hn(s)
v2(t)
vn(t)
VCOn
Rys. 2. Struktura sieci neuronowej (PLL)
Fig. 2. The structure of the neural network (PLL)
Uśrednione równanie fazowe sieci z rysunku 2, bez uwzględnienia filtrów pętlowych, dane jest wyrażeniem:
⎡ − kv1k m1 AC1 Av1 ± kv1k m 2 AC 2 Av 2
⎡Ψs1 − Ψ1 ⎤
⎢
⎢
⎥
d Ψs 2 − Ψ2 = 2π ⎢ ∓ kv 2 k m1 AC1 Av1
⎢
⎥
dt
⎢
⎢Ψ − Ψ ⎥
⎢
n⎦
⎣ sn
∓
k
k
A
A
∓
k
k
vk m 2 AC 2 Av 2
⎣ vk mk C1 v1
± kv1k mk ACk Avk ⎤
⎡kV 1Γ1 ⎤
⎡sin( Ψs1 − Ψ1 ) ⎤ ⎡Δω1 ⎤
± kv 2 k mk ACk Avk ⎥⎥ ⎢sin( Ψs 2 − Ψ2 )⎥ ⎢Δω2 ⎥
⎢kV 2Γ2 ⎥
⎥ + ⎢ ⎥ − 2π ⎢ ⎥
⎥⎢
⎢k Γ ⎥
⎥ ⎢sin( Ψsn − Ψn ) ⎥⎦ ⎢⎣Δωn ⎥⎦
⎣ Vn n ⎦
− kvk k mk ACk Avk ⎦ ⎣
(2)
gdzie:
si(t) = ACi sin(Ωit + Ψsi),
vi(t) = AVi sin(Ωit + Ψi),
Δωi – dewiacja częstotliwości sygnału si(t), i = 1, … , n.
W. Citko, Modelowanie oscylacyjnych sieci neuronowych w środowisku programistycznym Matlab
73
Sieć pętli fazowych w stanie synchronizacji stanowi oscylacyjny model sieci
neuronowej, na podstawie którego można konstruować uniwersalne procesory
sygnałowe (analizatory widma Haara-Walsha, klasyfikatory, filtry ortogonalne,
modele odwzorowań nieliniowych, pamięci asocjacyjne).
2. MODEL OSCYLACYJNEJ SIECI NEURONOWEJ
W ŚRODOWISKU MATLAB
Środowisko obliczeniowe MATLAB (Matrix Laboratory) jest uniwersalnym
narzędziem programistycznym, znajdującym szerokie zastosowanie w wielu
dziedzinach nauki i techniki. Pozwala ono m.in. na modelowanie złożonych procesów dynamicznych, sprawdzanie poprawności modeli matematycznych, wykonywanie skomplikowanych obliczeń numerycznych oraz wizualizację otrzymanych
wyników. Znakomicie nadaje się także do modelowania sztucznych sieci neuronowych, a w szczególności oscylacyjnych sieci neuronowych, które są przedmiotem
niniejszej pracy.
Podstawowym elementem struktury oscylacyjnych sieci neuronowych jest
pojedynczy neuron, którego realizację w środowisku Matlab-Simulink zaprezentowano na rysunku 3. Zasadnicze elementy składowe takiego neuronu stanowią pary
detektorów fazy, generatorów VCO oraz dolnoprzepustowych filtrów pętlowych.
Sygnałami wejściowymi w przypadku zastosowania takiej realizacji neuronu mogą
być zarówno dewiacje częstotliwości generatorów Sin_Wave_1 i Sin_Wave_2, jak
i stałe napięcia Constant_1 i Constant_2.
Rys. 3. Model bezstratnego neuronu w środowisku programistycznym Matlab-Simulink
Fig. 3. The lossless neuron model development in Matlab-Simulink environment
74
ZESZYTY NAUKOWE AKADEMII MORSKIEJ W GDYNI, nr 90, grudzień 2015
Posiadając zdefiniowany model pojedynczego neuronu, stosunkowo łatwo
można dokonać syntezy bardziej złożonej struktury przez kompatybilne połączenie
pojedynczych neuronów. Propozycję modelu 8-wymiarowej oscylacyjnej sieci
neuronowej zaprezentowano na rysunku 4. W przedstawionym modelu wyróżnić
można dwa zasadnicze bloki funkcyjne: blok generatorów sterowanych napięciem
Blok_VCO oraz blok dolnoprzepustowych filtrów pętlowych Filtry.
In1
In2
In3
Sine Wave1
In4
In5
Sine Wave2
In6
In7
Sine Wave3
In8
In9
Sine Wave4
In10
In11
Sine Wave5
In12
In13
Sine Wave6
In14
In15
Sine Wave7
In16
Out1
In1
Out1
Out2
In2
Out2
Out3
In3
Out3
Out4
In4
Out4
Out5
In5
Out5
Out6
In6
Out6
Out7
In7
Out7
Out8
In8
W2* u
Blok VCO
Sine Wave8
c(1) C1
c(2) C2
c(3) C3
Demux
Gain
Out8
Filtry
c(3) C4
c(5) C5
c(6) C6
c(7) C7
c(8) C8
Rys. 4. Model 8-neuronowej oscylacyjnej sieci w środowisku programistycznym
Matlab-Simulink
Fig. 4. The model of the 8 neurons – oscillatory neural network
in Matlab-Simulink environment
Strukturę połączeń pomiędzy neuronami zrealizowano za pomocą wzmacniacza Gain, realizującego operację mnożenia W2u, gdzie W2 to macierz połączeń
między neuronami, a u – wektor sygnałów po filtracji dolnoprzepustowej.
Pojedynczy element struktury Blok_VCO zaprezentowano na rysunku 5, a realizację filtru pętlowego będącego częścią bloku Filtry – na rysunku 6.
VCO 1
In1
1
Continuous-Time
VCO
1
Out1
2
In2
Product
Rys. 5. Pojedyncza pętla fazowa (element bloku Blok_VCO)
Fig. 5. The single phase loop (block element Blok_VCO)
W. Citko, Modelowanie oscylacyjnych sieci neuronowych w środowisku programistycznym Matlab
75
Rys. 6. Pojedynczy filtr pętlowy (element bloku Filtr)
Fig. 6. The single loop filter (block element Filtr)
Należy podkreślić, że zastosowanie nawet bardzo prostego filtru pętlowego
o transmitancji operatorowej widocznej na rysunku 6 pozwoliło na uzyskanie
zadowalających wyników obliczeń.
3. PRZYKŁAD OBLICZENIOWY
W celu sprawdzenia poprawności opracowanego modelu oscylacyjnej sieci
neuronowej zrealizowano analizator widma Haara-Walsha, bazujący na strukturze
z rysunku 4. Sygnały wejściowe w doświadczeniach numerycznych zostały wprowadzone na dwa sposoby jako wektor dewiacji częstotliwości (przykład 1) i wektor
napięć stałych (przykład 2). Macierz połączeń pomiędzy neuronami W2 w przypadku realizacji funkcji analizatora widma Haara-Walsha dana jest wyrażeniem:
W2 = W − w0 1
(3)
gdzie macierz W należy do rodziny macierzy Radona-Hurwitza:
⎡ 0
⎢− w
⎢ 1
⎢− w2
⎢
−w
W=⎢ 3
⎢− w4
⎢
⎢ − w5
⎢− w
⎢ 6
⎢⎣− w7
w1
w2
w3
w4
w5
w6
0
w3
− w2
w5
− w4
− w7
− w3
0
w6
w7
− w4
− w6
w5
w7
− w3
0
w2
− w1
w1
0
− w5
− w6
− w7
w7
0
w4
− w7
w6
− w1
w1
0
w7
w4
− w5
− w2
w3
− w6
w5
w4
− w3
− w2
Wartości parametrów macierzy połączeń W2:
• | wi | = 0.2; dla i = 0, 1, ... , 7,
• mnożnik macierzy jednostkowej 1 w0 = 0.2.
Parametry generatorów pętlowych (VCO):
• czułość kv,= 1 V/Hz,
• częstotliwość spoczynkowa fV0 = 100 Hz,
• ampituda AV = 1 V.
w1
w7 ⎤
w6 ⎥⎥
− w5 ⎥
⎥
− w4 ⎥
w3 ⎥
⎥
w2 ⎥
− w1 ⎥
⎥
0 ⎥⎦
(4)
76
ZESZYTY NAUKOWE AKADEMII MORSKIEJ W GDYNI, nr 90, grudzień 2015
Parametry generatorów sygnałowych (informacyjnych):
• amptlituda AC = 1 V,
• częstotliwość podstawowa fC0 = 100 Hz.
Przykład 1
Informacja wejściowa podana w formie wektora dewiacji częstotliwości:
Δω = [-0.1, -0.1, -0.1, 0.1, -0,1, 0.1, -0.1, 0,1]T.
W wyniku symulacji uzyskano odpowiedź sieci:
ys1 = [0.00, 0.74, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00]T.
Przykład 2
Informacja wejściowa podana w formie wektora napięć stałych:
Γ = [-0.1, -0.1, -0.1, 0.1, -0,1, 0.1, -0.1, 0,1]T.
W wyniku symulacji uzyskano odpowiedź sieci:
ys2 = [0.00, 0.74, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00]T.
Zarówno w przypadku pobudzenia wektorem dewiacji częstotliwości, jak i wektorem napięć stałych uzyskano zgodność wyników symulacji z przewidywaniami
teoretycznymi:
ya = [0.00, 0.32, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00]T.
Sieć dokonała prawidłowej analizy sygnału wejściowego, w wyniku czego
uzyskano jego widmo Haara, przemnożone przez pewien stały czynnik wynikający
z doboru konkretnych wzmocnień pętli fazowych. Przedstawiono wyniki po czasie
100 sekund. Na przebiegach wyjściowych można się jednak było dopatrzyć
pewnych oscylacji wokół wartości nominalnej. Oscylacje te są wynikiem zastosowania bardzo prostych fitrów pętlowych i można się ich stosunkowo łatwo pozbyć
poprzez zastosowanie bardziej złożonych filtrów pętlowych. Wiązałoby się to
jednak ze znacznym wzrostem nakładu obliczeniowego, co w sposób wydatny
wydłużyłoby czasy symulacji.
PODSUMOWANIE
W pracy wykazano, że możliwe jest zbudowanie efektywnego modelu
oscylacyjnej sieci neuronowej w środowisku programistycznym Matlab-Simulink.
Pokazano także strukturę procesora neuromorficznego realizującego funkcję analizatora widma Haara-Walsha. Sygnałami wejściowymi w analizowanym modelu
sieci neuronowej mogą być zarówno napięcia stałe, jak i dewiacje częstotliwości
generatorów sterujących. W obu przypadkach uzyskano te same wyniki zgodne
z przewidywaniami teoretycznymi. Należy podkreślić, że dynamika połączonych
pętli fazowych jest bardzo złożona, dlatego wymagana jest duża staranność przy
W. Citko, Modelowanie oscylacyjnych sieci neuronowych w środowisku programistycznym Matlab
77
doborze parametrów modeli i algorytmów obliczeniowych, gdyż niewłaściwy ich
dobór może nie zapewnić zbieżności algorytmów numerycznych lub prowadzić do
błędnych wyników.
LITERATURA
1. Acebron J., Bonilla L., Vincente C., Ritort F., Spigler R., The Kuramoto model: a simple
paradigm for synchronization phenomena, Reviews of Modern Physics, 77, 2005, s. 137–186.
2. Citko W., Sieńko W., Badania symulacyjne i modelowanie sieci neuronowych jako sieci pętli
fazowych, IV Krajowa Konferencja Elektroniki, Kołobrzeg 2005, s. 91–96.
3. Citko W., Sieńko W., Oscylacyjne czy stałoprądowe implementacje sztucznych sieci neuronowych, V Krajowa Konferencja Elektroniki, Kołobrzeg 2006, s. 509–514.
4. Hoppensteadt F.C., Izhikevich E.M., Pattern Recognition Via Synchronization in Phase-Locked
Loop, Neural Networks, IEEE Transactions on Neural Networks, May 2000, vol. 11, no. 2.
5. Hoppenstead F., Izhikevich E., Weakly Connected Neural Network, New York Springer, 1997.
6. Izhikevich E., Dynamical Systems in Neuroscience: The Geometry of Excitability and Bursting,
The MIT Press, Cambridge, MA, 2006.
7. Kudrewicz J., Dynamika pętli fazowej, Wydawnictwo Naukowo-Techniczne, Warszawa 1991.
8. Kuramoto Y., Chemical Oscillations, Waves and Turbulence, Springer-Verlag, Berlin 1984.
9. Sieńko W., Citko W., Hamiltonian Neural Networks Based Networks for Learning [w:] Machine
Learning, red. A. Mellouk, A. Chebira, I-Tech, Vienna, January 2009, s. 75–92.
10. Sieńko W., Citko W., Realizacja sieci neuronowych z zastosowaniem pętli fazowych, III Krajowa
Konferencja Elektroniki, KKE'04, Kołobrzeg 2004, s. 121–126.
11. Sieńko W., Citko W., Quantum Signal Processing via Hamiltonian Neural Networks, International
Journal of Computing Anticipatory Systems, 2004, vol. 14, s. 224–240.
12. Sieńko W., Citko W., Jakóbczak D., Learning and System Modeling via Hamiltonian Neural
Networks, Artificial Intelligence and Soft Computing 7th International Conference, Zakopane,
Lecture Notes in Artificial Intelligence 3070, Springer-Verlag, Heidelberg 2004, s. 266–271.
13. Strogatz S., From Kuramoto to Crawford exploring the onset of synchronization in populations
of coupled oscillators, Physica D, 2000, vol. 143, s. 1–20.
OSCILLATORY NEURAL NETWORK MODELLING IN MATLAB-SIMULINK
PROGRAMMING ENVIRONMENT
Summary
Computational intelligence methods have recently been widely used to solve many technical
problems. Artificial neural networks are also computational intelligence methods. Oscillatory neural
networks composed of connected phases loop have been researched in this study.Models of such
networks and the results of computer simulation are presented in this paper.
Keywords: signal processing, Hamiltonian neural networks, modelling of dynamical systems.