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.