Podręcznik
Strona: | SEZAM - System Edukacyjnych Zasobów Akademickich i Multimedialnych |
Kurs: | 3. Sieci samoorganizacji |
Książka: | Podręcznik |
Wydrukowane przez użytkownika: | Gość |
Data: | poniedziałek, 14 lipca 2025, 04:09 |
Spis treści
- 1. Sieci samoorganizujące poprzez współzawodnictwo
- 1.1. Podstawy matematyczne działania sieci
- 1.2. Algorytmy uczące sieci samoorganizujących się przez współzawodnictwo
- 1.3. Odwzorowanie Sammona
- 1.4. Program Kohon
- 1.5. Porównanie algorytmów samoorganizacji
- 1.6. Sieć odwzorowań jedno- i dwuwymiarowych
- 1.7. Przykłady zastosowań sieci samoorganizujących w kompresji danych
- 1.8. Zadania i problemy
- 1.9. Słownik
- 2. Transformacja i sieci neuronowe PCA
- 3. Ślepa separacja sygnałów
- 3.1. Wprowadzenie
- 3.2. Niezależność statystyczna sygnałów
- 3.3. Struktura rekurencyjna sieci separującej
- 3.4. Algorytmy uczące sieci rekurencyjnej
- 3.5. Sieć jednokierunkowa do separacji sygnałów
- 3.6. Toolbox ICALAB
- 3.7. Przykład zastosowania ICALAB do separacji sygnałów mowy
- 3.8. Zadania i problemy
- 3.9. Słownik
- 4. Literatura
1. Sieci samoorganizujące poprzez współzawodnictwo
Podstawę samoorganizacji sieci neuronowych stanowi zaobserwowana prawidłowość, że globalne uporządkowanie sieci jest możliwe przez działania samoorganizujące prowadzone lokalnie w różnych punktach sieci, niezależnie od siebie. W wyniku przyłożonych sygnałów wejściowych następuje w różnym stopniu aktywacja neuronów, dostosowująca się poprzez zmiany wartości wag synaptycznych do zmian wzorców uczących. W procesie uczenia istnieje tendencja do wzrostu wartości wag, dzięki której tworzy się rodzaj dodatniego sprzężenia zwrotnego: większe sygnały pobudzające, większe wartości wag, większa aktywność neuronów. Następuje przy tym naturalne zróżnicowanie wśród grup neuronów. Pewne neurony lub grupy neuronów współpracujące ze sobą uaktywniają się w odpowiedzi na pobudzenie w postaci określonych wzorców, przewyższając inne swoją aktywnością. Można tu mówić zarówno o współpracy między neuronami tej samej grupy, jak i o konkurencji występującej wewnątrz grupy i między grupami. Spośród mechanizmów samoorganizacji można wyróżnić dwie podstawowe klasy: mechanizm samoorganizacji oparty na regule korelacyjnej Hebba oraz mechanizm współzawodnictwa między neuronami opierający się na ogólnie pojętej regule współzawodnictwa Kohonena.
Wykład ten poświęcony będzie sieciom samoorganizującym się poprzez współzawodnictwo, zwanym powszechnie sieciami Kohonena. Przedstawimy podstawowe zależności, algorytmy uczące tych sieci oraz ich implementację komputerową w postaci programu Kohon i jego zastosowanie w różnych zadaniach grupowania danych.
1.1. Podstawy matematyczne działania sieci
Sieci samoorganizujące, dla których podstawą uczenia jest konkurencja między neuronami stanowią zwykle sieci jednowarstwowe, w których każdy neuron połączony jest ze wszystkimi składowymi -wymiarowego wektora wejściowego
, jak to przedstawiono schematycznie dla
na rys. 7.1 [46].

Wagi połączeń synaptycznych połączeń-tego neuronu tworzą wektor
. Przy założeniu normalizacji wektorów wejściowych po pobudzeniu sieci wektorem
zwycięża we współzawodnictwie neuron, którego wagi najmniej różnią się od odpowiednich składowych tego wektora. Zwycięzca, neuron
-ty, spełnia relację
![]() |
(7.1) |
gdzie oznacza odległość w sensie wybranej metryki między wektorem x i wektorem wi, a n jest liczbą neuronów. W uczeniu (adaptacji wag) stosuje się bądź strategię typu Winner Takes All (WTA) lub Winner Takes Most (WTM).
W strategii WTM wokół neuronu zwycięzcy przyjmuje się topologiczne sąsiedztwo Sw(k) o określonym promieniu malejącym w czasie. Neuron zwycięzca i wszystkie neurony położone w obszarze sąsiedztwa podlegają adaptacji, zmieniając swoje wektory wag w kierunku wektora x, zgodnie z regułą Kohonena [46].
![]() |
(7.2) |
w której jest współczynnikiem uczenia i-tego neuronu z sąsiedztwa Sw(k) w k-tej chwili. W regule Kohonena wartość
może być taka sama lub różna dla wszystkich neuronów z sąsiedztwa. Wagi neuronów spoza sąsiedztwa Sw(k) nie podlegają zmianom. Rozmiar sąsiedztwa oraz wartości współczynników uczenia poszczególnych neuronów są funkcjami malejącymi w czasie. Zostało wykazane, że przy takim sposobie uczenia funkcja gęstości rozkładu wektorów wi poszczególnych neuronów jest zbliżona do zdyskretyzowanego rozkładu gęstości wektorów wymuszeń. Po przyłożeniu dwóch różnych wektorów x, np. x1 i x2, uaktywnią się dwa neurony sieci, każdy reprezentujący wagi najbliższe współrzędnym wektorów odpowiednio x1 i x2. Wagi te oznaczone w postaci wektorowej w1 i w2 mogą być zilustrowane w przestrzeni jako dwa punkty. Zbliżenie do siebie wektorów x1 i x2 powoduje podobne zmiany położeń wektorów w1 i w2. W granicy w1=w2 wtedy i tylko wtedy, gdy x1 i x2 są sobie równe lub zbliżone do siebie. Sieć spełniająca te warunki nazywa się mapą topograficzną (mapą Kohonena).
Inny sposób uczenia sieci reprezentuje strategia WTA. Zmiana wag zachodzi tu również według zależności (7.2), ale adaptacja dotyczy jedynie neuronu zwycięzcy. Neurony przegrywające konkurencję nie zmieniają swoich wag.
7.1.1 Miary odległości między wektorami
Proces samoorganizacji wymaga na każdym etapie wyłonienia zwycięzcy, czyli neuronu, którego wektor wagowy różni się najmniej od przyłożonego na wejściu sieci wektora x. Istotnym problemem staje się w tej sytuacji wybór metryki, w jakiej mierzona będzie odległość między wektorem x i wektorem wi. Najczęściej używanymi miarami odległości są [10,16]:
-
miara euklidesowa
![]() |
(7.3a) |
-
miara Mahalanobisa
![]() |
(7.3b) |
gdzie S oznacza macierz kowariancji obu wektorów. W tej definicji wielkości nieskorelowane mają większy wpływ na końcowy wynik niż te, które są mocno lub średnio skorelowane.
-
iloczyn skalarny
![]() |
(7.4) |
![]() |
(7.5) |
![]() |
(7.6) |
![]() |
(7.7) |
Przy użyciu miary euklidesowej podział przestrzeni na regiony dominacji neuronów jest równoważny mozaice Voronoia, w której przestrzeń wokół punktów centralnych stanowi strefę dominacji danego neuronu. Zastosowanie innej miary przy samoorganizacji kształtuje podział stref wpływów poszczególnych neuronów nieco inaczej. Szczególnie zastosowanie iloczynu skalarnego bez normalizacji wektorów może prowadzić do niespójnego podziału przestrzeni, przy którym występuje kilka neuronów w jednym regionie, a w innym nie ma żadnego.
Wykazano, że proces samoorganizacji prowadzi zawsze do spójnego podziału przestrzeni danych, jeśli wektory podlegają normalizacji. Przy znormalizowanych wektorach uczących
, wektory wag, nadążając za nimi, stają się automatycznie znormalizowane (norma wektora równa 1). Jednakże normalizacja wektora wagowego powoduje, że jeśli
, wtedy dla wszystkich neuronów iloczyn
jest także stały przy określonej wartości
. O zwycięstwie neuronu decyduje więc wartość kąta między wektorami
i
zgodnie z zależnością
.
Badania eksperymentalne potwierdziły potrzebę stosowania normalizacji wektorów przy małych wymiarach przestrzeni, np. ,
, natomiast nie jest już tak istotna dla przestrzeni o bardzo dużych wymiarach. Normalizacja wektorów może być dokonana w dwojaki sposób [45]:
-
redefinicja składowych wektora według wzoru
![]() |
(7.8) |
![]() |
(7.9) |
Przy wyborze tego sposobu normalizacji zachodzi zwykle konieczność wcześniejszego przeskalowania składowych wektora w przestrzeni
w taki sposób, aby możliwe było spełnienie równości (7.9). Przy zwiększaniu wymiaru wektora wejściowego efekt normalizacji staje się coraz mniej widoczny i przy dużych wymiarach sieci,
, normalizacja nie odgrywa większej roli w procesie samoorganizacji.
7.1.3 Problem neuronów martwych
Przy losowej inicjalizacji wag sieci i ograniczeniu wielkości sąsiedztwa neuronów podlegających adaptacji może się zdarzyć, że część neuronów znajdzie się w strefie, w której nie ma danych lub ich liczba jest znikoma. Neurony takie mają niewielkie szanse na zwycięstwo i adaptację swoich wad, pozostając martwymi. W ten sposób dane wejściowe reprezentowane będą przez mniejszą liczbę neuronów (część neuronów martwa), a błąd reprezentacji danych, zwany również błędem kwantyzacji
![]() |
(7.10) |
(\ \mathbf{w}(\mathbf{x}_i) \) oznacza wektor wagowy neuronu zwycięzcy dla wektora wejściowego , natomiast
jest liczbą danych) staje się większy. Istotnym problemem jest zatem uaktywnienie wszystkich neuronów sieci.
Można to osiągnąć, jeśli w algorytmie uczącym będzie uwzględniona liczba zwycięstw poszczególnych neuronów, a proces uczenia zostanie zorganizowany w taki sposób, aby dać szansę zwycięstwa neuronom mniej aktywnym. Sugestia takiej organizacji uczenia bierze się z obserwacji zachowania neuronów biologicznych, gdzie neuron wygrywający tuż po zwycięstwie pauzuje przez określony czas „odpoczywając” przed następnym współzawodnictwem [46]. Taki sposób uwzględniania aktywności neuronów nazywany jest mechanizmem zmęczenia. Oryginalna nazwa conscience mechanism jest w języku polskim określana również mianem mechanizmu świadomości.
Istnieje wiele mechanizmów uwzględniających aktywność neuronów w procesie uczenia. Jednym ze sposobów uaktywnienia wszystkich neuronów jest uwzględnienie liczby zwycięstw neuronu przy obliczaniu efektywnej odległości wag od wzorca uczącego , modyfikując ją proporcjonalnie do liczby zwycięstw danego neuronu w przeszłości (na początku wszystkim przypisuje się liczbę zwycięstw równą 1). Jeśli oznaczy się liczbę zwycięstw
-tego neuronu przez
, modyfikację taką można przyjąć w postaci
![]() |
(7.11) |
Neurony aktywne o dużej wartości są karane sztucznym zawyżeniem tej odległości. Należy zaznaczyć, że modyfikację odległości stosuje się jedynie przy wyłanianiu zwycięzcy. W momencie uaktualniania wagi bierze się pod uwagę odległość rzeczywistą. Modyfikacja odległości ma za zadanie uaktywnić wszystkie neurony przez wprowadzenie ich w obszar o dużej liczbie danych. Po wykonaniu zadania (zwykle po dwóch lub trzech cyklach uczących) wyłącza się ją, pozwalając na niezakłóconą konkurencję neuronów [46].
1.2. Algorytmy uczące sieci samoorganizujących się przez współzawodnictwo
Celem uczenia sieci samoorganizujących się poprzez współzawodnictwo jest takie uporządkowanie neuronów (dobór wartości ich wag), które zminimalizuje wartość oczekiwaną zniekształcenia (błędu kwantyzacji), określaną jako błąd popełniany przy aproksymacji wektora wejściowego wartościami wag neuronu zwyciężającego w konkurencji. Przy
wektorach wejściowych
i zastosowaniu normy euklidesowej błąd kwantyzacji może być wyrażony w postaci zależności (7.10). Zadanie to zwane jest również kwantyzacją wektorową (ang. Vector Quantization - VQ). Numery neuronów zwyciężających przy kolejnych prezentacjach wektorów x tworzą tak zwaną książkę kodową.
W klasycznym rozwiązaniu kodowania stosuje sią algorytm K-uśrednień (ang. K-means) określany również jako uogólniony algorytm Lloyda [65]. W przypadku sieci neuronowych odpowiednikiem algorytmu Lloyda jest algorytm WTA (ang. Winner Takes All). W algorytmie tym po prezentacji wektora określana jest jego odległość od wektorów wagowych wszystkich neuronów. Zwycięzcą staje się neuron o najmniejszej odległości. Zwycięzca (
-ty neuron) ma przywilej adaptacji swoich wag w kierunku wektora
według reguły [46]
![]() |
(7.12) |
Pozostałe neurony nie podlegają adaptacji, czyli
![]() |
(7.13) |
Algorytm umożliwia uwzględnienie zmęczenia neuronów poprzez uwzględnienie liczby zwycięstw neuronu i faworyzowanie jednostek o najmniejszej aktywności, dla wyrównania ich szans na zwycięstwo. Modyfikację taką, jak zaznaczono uprzednio, stosuje się głównie w początkowych fazach algorytmu, wyłączając ją po uaktywnieniu wszystkich neuronów. Ostatni sposób uczenia jest zaimplementowany w programie Kohon w postaci opcji CWTA. CWTA pochodzi od angielskiej nazwy algorytmu Conscience Winner Takes All i jest jednym z najlepszych i najszybciej działających algorytmów samoorganizacji.
Oprócz algorytmów WTA, w których tylko jeden neuron może podlegać adaptacji w każdej iteracji, w uczeniu sieci samoorganizujących stosuje się powszechnie algorytmy typu WTM (ang. Winner Takes Most), w których oprócz zwycięzcy uaktualniają swoje wagi również neurony z jego sąsiedztwa, przy czym im dalsza jest odległość neuronu od zwycięzcy, tym mniejsza jest zwykle zmiana wartości wag tego neuronu. Proces adaptacji wektora wagowego może być opisany uogólnioną zależnością [46] z funkcją sąsiedztwa
-tego neuronu względem wektora wejściowego
![]() |
(7.14) |
dla wszystkich neuronów należących do sąsiedztwa zwycięzcy
. We wzorze tym oddzielono współczynnik uczenia
każdego neuronu od jego odległości względem neuronu zwycięzcy lub od prezentowanego wektora x, mającej wpływ na funkcję sąsiedztwa
. Definiując tę funkcję w postaci
![]() |
(7.15) |
gdzie w oznacza numer zwycięzcy, otrzymuje się klasyczny algorytm WTA. Istnieje wiele różnych odmian algorytmów WTM, różniących się przede wszystkim postacią funkcji . Przedstawimy tu dwa rozwiązania: algorytm gazu neuronowego oraz algorytm klasyczny Kohonena dostosowany do tworzenia mapy.
7.2.2 Algorytm gazu neuronowego
Znaczącą poprawę samoorganizacji sieci w sensie mniejszego błędu kwantyzacji można uzyskać, stosując metodę zwaną przez autorów algorytmem gazu neuronowego ze względu na podobieństwo dynamiki zmian położenia neuronów do ruchu cząsteczek gazu.
W algorytmie tym wszystkie neurony podlegają sortowaniu w każdej iteracji w zależności od ich odległości ich wektorów wagowych względem wektora x. Neurony są ustawiane w kolejności odpowiadającej narastającej odległości , gdzie
oznacza odległość neuronu zajmującego w wyniku sortowania


![]() |
(7.16) |
w której zmienna oznacza kolejność uzyskaną w wyniku sortowania
, gdzie 0 oznacza neuron zwycięzcę, a
jest parametrem (analogicznie do promienia sąsiedztwa w algorytmie Kohonena), malejącym w czasie. Przy
tylko neuron zwycięzca podlega adaptacji i algorytm WTM przekształca się w zwykły algorytm WTA, natomiast przy
adaptacji podlegają wagi wielu neuronów w stopniu uzależnionym od wartości funkcji
.
Algorytm gazu neuronowego przypomina strategię zbiorów rozmytych, w której każdemu neuronowi przypisuje się wartość funkcji przynależności do sąsiedztwa, określoną zależnością (7.18). W celu uzyskania dobrych rezultatów samoorganizacji proces uczenia powinien rozpoczynać się z dużą wartością , po czym powinna ona maleć wraz z upływem czasu do wartości minimalnej (najczęściej zerowej). Zmiana
może być liniowa bądź wykładnicza. Współczynnik uczenia i-tego neuronu
może również zmieniać się bądź liniowo bądź wykładniczo. W praktyce lepsze wyniki organizacji uzyskuje się zwykle przy liniowej zmienności
.
Algorytm gazu neuronowego, obok CWTA uwzględniającego aktywność neuronów jest w praktyce najskuteczniejszym narzędziem samoorganizacji neuronów w sieci ze współzawodnictwem. Dobierając odpowiednio parametry sterujące procesem można uzyskać bardzo dobrą organizację sieci przy szybkości działania znacznie przewyższającej klasyczny algorytm Kohonena. Tym nie mniej należy zauważyć, że algorytm ten nie ma zastosowania przy tworzeniu mapy Kohonena, gdyż nie przenosi adaptacji wag na neurony położone w obszarze bliskiego sąsiedztwa (nie zachowuje spójności obszaru aktywności neuronów przy adaptacji).
7.2.3 Algorytmy uczące mapy Kohonena
Algorytm Kohonena należy do najstarszych metod uczenia WTM generujących mapę i w chwili obecnej istnieje wiele jego odmian. W klasycznym algorytmie Kohonena dostosowanym do tworzenia mapy inicjalizuje się sieć, przyporządkowując neuronom określone miejsce w przestrzeni i stowarzyszając je (łącząc) z sąsiadami. Stowarzyszenie to może być interpretowane na siatce prostokątnej (sąsiedztwo prostokątne) lub heksagonalnej (sąsiedztwo heksagonalne). Interpretacja obu rodzajów sąsiedztwa przedstawiona jest na rys. 7.2. Kontury wewnętrzne o kształcie prostokąta lub sześciokąta odpowiadają granicom sąsiedztwa o promieniu odpowiednio zerowym (jedynie zwycięzca – brak sąsiadów), pierwszym, drugim lub trzecim.

W momencie wyłonienia zwycięzcy uaktualnieniu podlegają nie tylko jego wagi, ale również wagi jego sąsiadów, pozostających w najbliższym sąsiedztwie. W ten sposób adaptacji podlega cała grupa neuronów wokół zwycięzcy zbliżając swoje wagi do prezentowanego wektora x, jak to pokazano w sposób graficzny na rys. 7.3.

Funkcja sąsiedztwa w mapie Kohonena może zmieniać się w sposób skokowy (sąsiedztwo prostokątne) lub ciągły. W pierwszym sposobie zwanym przez Kohonena funkcją „bubble” jest ona definiowana w postaci
![]() |
(7.17) |
We wzorze tym może oznaczać bądź odległość euklidesową między wektorami wag zwycięzcy (neuron
-ty) oraz neuronu
-tego, bądź odległość mierzoną w liczbie neuronów. Współczynnik
jest promieniem sąsiedztwa o wartości malejącej, poczynając od zadanej na wstępie wartości maksymalnej aż do zera, przy czym wielkość ta zmienia się w sposób skokowy, wyłączając z sąsiedztwa w kolejnych iteracjach neurony znajdujące się na krańcach obszaru sąsiedztwa. Zauważmy, że tak zdefiniowana funkcja sąsiedztwa
przyjmuje identyczne wartości dla wszystkich neuronów znajdujących się aktualnie w obszarze sąsiedztwa podlegającym adaptacji.
Drugim powszechnie stosowanym typem funkcji sąsiedztwa w mapach Kohonena jest sąsiedztwo typu gaussowskiego, w którym funkcja określona jest wzorem [46]
![]() |
(7.18) |
O stopniu adaptacji neuronów z sąsiedztwa zwycięzcy decyduje nie tylko odległość euklidesowa neuronu
-tego od zwycięzcy (neuronu w-tego), ale również promień sąsiedztwa
. W odróżnieniu od sąsiedztwa typu prostokątnego, gdzie każdy neuron należący do sąsiedztwa zwycięzcy podlegał adaptacji w jednakowym stopniu, przy sąsiedztwie typu gaussowskiego stopień adaptacji jest zróżnicowany i zależy od wartości funkcji Gaussa. Dla zwycięzcy obowiązuje
, dla pozostałych neuronów
. Sąsiedztwo gaussowskie prowadzi zwykle do lepszych rezultatów uczenia i lepszej organizacji sieci niż sąsiedztwo prostokątne.
Istotny wpływ na uczenie sieci Kohonena wywiera dobór wartości współczynnika uczenia w poszczególnych iteracjach. W ogólności wartość ta powinna maleć w miarę czasu uczenia. Na rys. 7.4 przedstawiono typowe sposoby zmian tego współczynnika.






W praktyce najlepsze wyniki samoorganizacji uzyskuje się przy zastosowaniu liniowej formy zmienności współczynnika uczenia.
W mapie Kohonena definiuje się z góry siatkę dwuwymiarową która będzie odzwierciedlała rzut położenia danych wielowymiarowych na płaszczyźnie. Należy z góry określić liczbę neuronów rozmieszczonych w osi poziomej i pionowej. Ogólna liczba neuronów w sieci będzie wówczas równa ich iloczynowi. Neurony te zajmują odpowiednie miejsce w przestrzeni dwuwymiarowej, zachowując powiązanie ze swoimi sąsiadami w procesie uczenia. W efekcie po zakończenia uczenia na etapie testowania zwycięstwo określonego neuronu jest przenoszone na pozycję tego neuronu w siatce dwuwymiarowej (mapie) odzwierciedlając w ten sposób jego rzut na mapę topograficzną. Mapa Kohonena stanowi więc sposób przedstawienia rozkładu danych wielowymiarowych na płaszczyźnie.
Rozkład ten może być przedstawiony na kilka sposobów. Rys. 7.5 przedstawia trzy najczęściej stosowane kształty: mapa płaska, cylindryczna oraz toroidalna. W mapie cylindrycznej dane na dwu przeciwległych krańcach zbliżone są do siebie. W mapie toroidalnej zbliżenie dotyczy dwu przeciwległych krańców w osi x i y.

Dane które w przestrzeni wielowymiarowej są odległe od siebie zajmują również odległe pozycje na mapie. Dane bliskie sobie w przestrzeni wielowymiarowej są również bliskie na mapie.
7.2.4 Przykład mapy Kohonena w analizie obciążeń elektroenergetycznych
Na rys. 7.6 przedstawiono mapę Kohonena o wymiarze 7×7 dla danych dotyczących obciążeń elektroenergetycznych w Polskim Systemie Elektroenergetycznym (PSE). Uwzględniono 12 rodzajów obciążeń odpowiadających 12 miesiącom roku (Jan – styczeń, Feb – luty, Mar – marzec, Apr – kwiecień, May – May, June – czerwiec, July – lipiec, Aug – sierpień, Sep – wrzesień, Oct – październik, Nov – listopad oraz Dec - grudzień). Dane rzeczywiste obciążeń dotyczą wektorów 24-wymiarowych (obciążenia 24 godzin doby). Dzięki mapie Kohonena zostały one zrzutowane na płaszczyznę reprezentując mapę obciążeń odpowiadających poszczególnym miesiącom roku [46].

Zauważmy, że dane dotyczące miesięcy letnich i zimowych są odległe od siebie, podczas gdy te związane z wiosną i jesienią są podobne i położone na mapie w bliskim sąsiedztwie. Podobnie można zrzutować obciążenia 24-godzinne na mapę odzwierciedlającą podział na dni tygodnia ( Mon – poniedziałki, Tue – wtorki, Wed – środy, Thu – czwartki, Fri – piątki, Sat – soboty, Sun – niedziele), jak to przedstawiono na rys. 7.7.

Wyraźnie widoczne są skupienia neuronów reprezentujących dni robocze (od poniedziałku do piątku) oraz oddzielnie świąteczne (Sun). Pomiędzy nimi znajdują się soboty (Sat).
Interesująca jest również mapa profili obciążenia reprezentowana przez wagi neuronów zwycięzców dla poszczególnych rejonów (rys. 7.8). Można zauważyć znaczne podobieństwo miedzy najbliższymi sąsiadami, zarówno w pionie jak i poziomie. Ponadto jest ewidentne, że wagi neuronów odległych od siebie na mapie (np. neurony górne i dolne lub neurony z prawej i lewej strony w tym samym wierszu mapy) są znacznie różniące się.

1.3. Odwzorowanie Sammona
Rozkład danych wielowymiarowych uzyskanych w sieci samoorganizującej może być przedstawiony na płaszczyźnie lub w przestrzeni trójwymiarowej przy zastosowaniu rzutowań innych niż mapa Kohonena. Jednym ze znanych jest nieliniowe odwzorowanie Sammona [57]. Odwzorowanie to pozwala na rzutowanie danych z dowolnej przestrzeni N-wymiarowej w przestrzeń M-wymiarową (np. M=2 lub M=3) zachowując podstawowe cechy rozkładu danych z oryginalnej przestrzeni wielowymiarowej.
Niech będzie danych n wektorów N-wymiarowych xi (i=1, 2, …n). Odpowiednio do nich definiuje się n wektorów w przestrzeni M-wymiarowej oznaczonych przez yi. Odległości między poszczególnymi wektorami w przestrzeni N-wymiarowej oznaczane będą przez a w przestrzeni M-wymiarowej przez
. W określeniu odległości między wektorami można zastosować dowolną metrykę, w szczególności euklidesową. Zadanie odwzorowania nieliniowego Sammona polega na takim doborze wektorów y, aby zminimalizować funkcję błędu E zdefiniowaną wzorem [57]
![]() |
(7.19) |
gdzie
![]() |
(7.20) |
![]() |
(7.21) |
W zależnościach tych yij oznacza j-tą składową wektora yi. W minimalizacji funkcji błędu (7.19) Sammon zastosował uproszczoną metodę optymalizacyjną Newtona, która pozwala wyrazić rozwiązanie z kroku na krok w sposób rekurencyjny w postaci
![]() |
(7.22) |
![]() |
(7.23) |
Wzór wyrażający poprawkę reprezentuje iloraz odpowiedniej składowej gradientu przez diagonalny składnik hesjanu, określony w k-tej iteracji. Współczynnik
jest odpowiednikiem stałej uczenia i przyjmowany jest z zakresu [0,3, 0,4]. Przy definicji funkcji błędu w postaci (7.19) odpowiednie składowe gradientu i hesjanu opisane są wzorami [57]
![]() |
(7.24) |
![]() |
(7.25) |
W wyniku wielu iteracji składowe wektorów yi przyjmują wartości ostateczne minimalizujące wartość zdefiniowanej na wstępie funkcji błędu.
Na rys. 7.9 przedstawiono rzutowanie Sammona dla tych samych danych dotyczących obciążeń elektroenergetycznych w Polskim Systemie Elektroenergetycznym (PSE) przedstawionych na mapie Kohonena. Uwzględniono rodzaje obciążeń odpowiadających czterem porom roku (kolor zielony – wiosna, czerwony – lato, magenta – jesień oraz niebieski – zima). Dane rzeczywiste obciążeń dotyczą wektorów 24-wymiarowych (obciążenia 24 godzin doby).

Zauważmy, że również przy tym rzutowaniu dane dotyczące lata i zimy są odległe od siebie, podczas gdy te związane z wiosną i jesienią są bliskie sobie i położone na mapie w bliskim sąsiedztwie. Ponadto charakterystyczne jest, że dane dotyczące zimy są stosunkowo mało rozproszone w stosunku do innych pór roku, natomiast dane wiosenne charakteryzują się rozproszeniem największym (duże różnice między najwyższą i najniższą temperatura powodują duże zróżnicowanie w poborze energii elektrycznej).
1.4. Program Kohon
Pakiet programów KOHON, napisany w języku Matlab wywoływany jest poleceniem kohon [46]. Umożliwia zarówno uczenie jak i testowanie sieci Kohonena. Może służyć do rozwiązywania różnorodnych problemów praktycznych. Oprócz programów uczących i testujących, pakiet zawiera szereg programów niezbędnych do wygenerowania danych uczących, konwersji obrazów graficznych i plików dźwiękowych na dane numeryczne, jak również programy do graficznego odzwierciedlenia danych uczących, mapy oraz wyników uczenia. Obsługa tego programu jest intuicyjnie prosta.

Na rys. 7.10. przedstawiono wygląd okna menu głównego programu. Pola Learning data, Testing data oraz Network z lewej strony menu służą do zadawania odpowiednio danych uczących, testujących oraz zapamiętywania i wczytywania zapamiętanej sieci Kohonena. Format danych powinien zawierać w pierwszej linii wymiar wektora x. Następne linie zawierają kolejne wektory x stanowiące zasadniczą treść danych.
Środkowa cześć menu (Network parameters) zawiera podstawowe informacje dotyczące definicji struktury sieci i sposobu tworzenia mapy odwzorowań. Są to:
-
Network dimension – określa ilość neuronów umieszczonych w osi poziomej i pionowej. Należy podać dwie liczby, np. 5 7, z których pierwsza określa rozmiar mapy w osi x (równy 5) a druga w osi y (rozmiar 7). Liczba neuronów jest równa wówczas iloczynowi obu liczb (w przykładzie n=35).
-
Neighborhood function – określa rodzaj zastosowanej funkcji sąsiedztwa. Dostępne są następujące typy: bubble –prostokątne, gaussian – gaussowskie, cutgaussian – zmodyfikowane gaussowskie z obciętą i podwyższoną podstawą oraz ep=max(0, 1-x2).

-
Topology – rodzaj siatki określającej topologię sąsiedztwa. Dostępna jest siatka prostokątna (rect) oraz heksagonalna (hexa).
-
Shape – określa sposób rysowania mapy Kohonena. Możliwe są 3 typy przedstawień mapy: sheet (struktura płaska mapy), cylinder (struktura cylindryczna) i toroid (struktura toroidalna).
-
Initialization type - sposób inicjalizacji wartości wag początkowych sieci. Są możliwe dwie metody: randinit (przypisanie losowych wartości wag) oraz lininit – przypisanie wag według specjalnej procedury korzystającej z zależności liniowych odpowiadających danym uczącym.
-
Initialize – przycisk do faktycznej inicjalizacji wag sieci według wybranej wcześniej procedury inicjalizacji.
Z prawej strony menu występują parametry definiujące sposób uczenia sieci (pole Learning). Na pole to składa się:
-
Wybór algorytmu uczenia (Learning algorithm) w ramach którego można wybrać spośród następujących metod uczenia: WTA (metoda Winner Takes All), CWTA (metoda WTA z mechanizmem zmęczenia), WTM batch (algorytm Kohonena aktualizujący wagi po prezentacji wszystkich danych z pliku uczącego), WTM seq (algorytm Kohonena aktualizujący wagi sieci w sposób on-line) oraz Neural gas (algorytm gazu neuronowego).
-
Training length – ustala liczbę cykli (epok) uczących
-
Radius initial – podaje początkową wielkość sąsiedztwa (w liczbie neuronów) przy zastosowaniu algorytmu Kohonena)
Po ustawieniu tych wielkości należy przycisnąć przycisk Learn, uruchamiający proces uczenia. Testowanie wytrenowanej sieci odbywa się na danych testujących po przyciśnięciu przycisku Test w polu Testing. Program umożliwia różny sposób wizualizacji wyników. Dostępne są następujące opcje (po wybraniu odpowiedniego przycisku):
-
Graph – ilustracja położeń danych 2D na tle danych uczących.
-
Map – przedstawienie położenia danych wielowymiarowych jako mapy Kohonena. Aby to uzyskać należy przeprowadzić uczenie sieci przy użyciu algorytmu Kohonena (możliwe jest krótkie douczenie przy zastosowaniu innych algorytmów).
-
Sammon 2D i Sammon 3D – ilustracja położenia danych uczących odpowiednio w przestrzeni 2-wymiarowej (2D) lub trójwymiarowej (3D) przy zastosowaniu algorytmu Sammona.
-
Voronoi – ilustracja położenia danych 2D i neuronów jak mozaiki Voronia.
W skład pakietu Kohon wchodzą również programy konwertujące dane obrazów graficznych zapisane w formacie PCX (pcxkoh.exe) na format plików pakietu Kohon i koh2pcx.exe dokonujące konwersji w drugą stronę. Program koherror.bat umożliwia natomiast obliczenie błędu PSNR (w dB) wyrażającego różnicę pomiędzy obrazem oryginalnym, a odtworzonym.
1.5. Porównanie algorytmów samoorganizacji
Porównania przedstawionych wcześniej algorytmów dokonano na przykładzie odwzorowania danych uczących dwuwymiarowych tworzących złożony kształt, przedstawiony na rys. 7.12.

Do odwzorowania użyto 200 neuronów. Dobre odwzorowanie danych przez sieć neuronową wymaga, aby neurony plasowały się w rejonach o dużym zagęszczeniu danych, a nie tam, gdzie jest ich brak. Na rys. 7.13 podano uzyskany wynik samoorganizacji 200 neuronów przy zastosowaniu trzech omówionych w tym rozdziale algorytmów: CWTA (rys. 7.13a), gazu neuronowego (rys. 7.13b) oraz algorytmu Kohonena (rys. 7.13c).



Najlepsze wyniki organizacji otrzymuje się za pomocą algorytmu CWTA oraz gazu neuronowego, przy czym ten ostatni ze względu na sortowanie jest zdecydowanie wolniejszy od CWTA. Oryginalny algorytm Kohonena okazał się najmniej efektywny, nie pozwalając na dobre odwzorowanie danych (pewna liczba neuronów jest uplasowana w obszarze pozbawionym danych).
Dobre porównanie ilościowe wyników samoorganizacji otrzymuje się, zestawiając uzyskane błędy kwantyzacji ε (wzór (7.9)) dla każdego przypadku. Przy 200 neuronach uzyskano: ε= 0,007139 - dla CWTA, ε = 0,007050 - dla gazu neuronowego oraz ε= 0,010763 - dla algorytmu Kohonena. Wyniki liczbowe potwierdzają wzrokową ocenę odwzorowania danych, że algorytmy CWTA i gazu neuronowego dają podobne (najlepsze) wyniki, a algorytm Kohonena jest najmniej efektywny.

Na rys. 7.14 przedstawiono wynik odwzorowania danych o rozkładzie nierównomiernym przy zagęszczeniu danych w środku obszaru. Uzyskany rozkład neuronów bardzo dobrze odzwierciedla rozkład punktów danych, tworząc gęstsze skupiska w rejonach środkowych, gdzie jest największe zagęszczenie danych.
1.6. Sieć odwzorowań jedno- i dwuwymiarowych
Przy ocenie jakości sieci neuronowej samoorganizującej ważną rolę odgrywa odwzorowanie danych jedno- i dwuwymiarowych, ze względu na czytelny i przejrzysty sposób interpretacji wyników na płaszczyźnie . Biorąc pod uwagę, że wagi neuronów są odpowiednikiem współrzędnych punktów centralnych klastrów, na jakie dzielony jest zbiór danych, można każdemu wektorowi wagowemu przypisać odpowiedni punkt na płaszczyźnie. Łącząc te punkty z najbliższymi sąsiadami otrzymuje się regularną siatkę, odwzorowującą topograficzny rozkład danych (siatka prostokątna lub heksagonalna). Przy równomiernym rozkładzie wektorów uczących
na płaszczyźnie spodziewane odwzorowanie wagowe poszczególnych neuronów przedstawione na płaszczyźnie powinno być równomierne. Jeśli rozkład danych jest nierównomierny, zagęszczenie wystąpi tam, gdzie prawdopodobieństwo wystąpienia wektorów uczących jest większe (patrz rys. 7.14).




Dobrym testem algorytmów uczących sieci jest odwzorowanie kształtu danych jednowymiarowych za pomocą sieci samoorganizującej. Przykładowo na rys. 7.15 zilustrowano proces samoorganizacji 40 neuronów odwzorowujących układ danych tworzących kształt eliptyczny (pozycje neuronów zaznaczone kółkami). Rys. 7.15a przedstawia stan wyjściowy wag neuronów (rozkład losowy), rys. 7.15b – stan po dwóch cyklach uczących, rys. 7.15c – stan po pięciu cyklach uczących, a rys. 7.15d – stan końcowy (po dziesięciu cyklach) na tle danych uczących tworzących kształt eliptyczny. Uczenie było przeprowadzone przy użyciu programu Kohon i algorytmu gazu neuronowego.




Na rys. 7.16 podano wyniki końcowe uporządkowania neuronów przy odwzorowaniu różnego rodzaju kształtów utworzonych przez dane na płaszczyźnie (x,y). W każdym przypadku wagi neuronów plasują się w strefach występowania danych w taki sposób, aby zminimalizować błąd kwantyzacji. Należy nadmienić, że podstawowa zaleta sieci samoorganizujących się jest widoczna w całej pełni dopiero przy danych wielowymiarowych, gdzie zawodzi zdolność człowieka do wyobrażenia sobie ich rozkładu przestrzennego.
Mechanizmy samoorganizacji wbudowane w algorytmy uczące takich sieci działają niezależnie od wymiarowości problemu. Istotną funkcją pełnioną przez sieć jest tutaj kwantowanie wektorowe, polegające na tym, że ogromna liczba danych tworzących klaster jest odwzorowana przez wektor wagowy jednego neuronu reprezentującego każdy punkt w przestrzeni. Rozkład przestrzenny neuronów pozwala więc określić rozkład skupień danych w przestrzeni wielowymiarowej oraz zasadnicze cechy statystyczne rozkładu danych, przydatne z punktu widzenia użytkownika (centra grup, rozproszenie mierzone wariancją danych w grupie, odległości między centrami różnych grup, itp.)
1.7. Przykłady zastosowań sieci samoorganizujących w kompresji danych
Podstawową cechą sieci samoorganizujących się jest kompresja danych, polegająca na tym, że duże grupy danych tworzących klaster reprezentowane są przez pojedynczy wektor wagowy neuronu zwycięzcy. Przy p danych podzielonych na P klastrów i reprezentacji każdego klastra przez jeden z n neuronów uzyskuje się znaczne zmniejszenie ilości informacji, zwane kompresją. Jest to kompresja typu stratnego, której towarzyszy pewien błąd kwantowania określony zależnością (7.10).
Przykładem wykorzystania kompresyjnych własności sieci Kohonena jest kompresja stratna obrazów, mająca za zadanie zmniejszenie ilości informacji reprezentującej dany obraz, przy zachowaniu błędu odwzorowania na określonym poziomie (zapewnienie odpowiednio dużej wartości współczynnika PSNR mierzącego stosunek sygnału do szumu). Zakłada się, że obraz o wymiarach pikseli podzielony jest na równomierne ramki zawierające
pikseli. Piksele każdej ramki stanowią składowe wektorów wejściowych
. Każdy zawiera
składników, reprezentujących stopień szarości poszczególnych pikseli w ramce. Przyporządkowanie pikselom wektora może się odbywać przez złączenie poszczególnych wierszy ramki w jeden ciąg bądź przez zastosowanie przyporządkowania typu zygzakowego, stosowanego między innymi w standardzie JPEG.
Sieć samoorganizująca zawiera n neuronów, każdy połączony wagami synaptycznymi ze wszystkimi składnikami wektora wejściowego . Uczenie sieci przy zastosowaniu jednego z algorytmów samoorganizacji polega na takim doborze wag poszczególnych neuronów, aby zminimalizować błąd kwantyzycji (7.10). W wyniku procesu uczenia następuje taka organizacja sieci, przy której wektorowi
każdej ramki odpowiada wektor wagowy neuronu zwycięzcy minimalizujący błąd kwantyzacji. Przy podobnym ukształtowaniu składników wektora
różnych ramek zwyciężać będzie ten sam neuron albo grupa neuronów o podobnych wektorach wagowych. Podczas kolejnej prezentacji ramek ustala się numery neuronu zwycięzcy dla poszczególnych ramek np. 1, 1, 3, 80 itd. Numery neuronów zwycięzców tworzą książkę kodową, a wagi tych neuronów reprezentują uśrednioną wartość odpowiadającą poszczególnym składowym wektora
(stopień szarości pikseli tworzących ramkę). Wektory te będą przy odtwarzaniu obrazu reprezentować poszczególne ramki. Biorąc pod uwagę, że liczba neuronów
jest zwykle dużo mniejsza od liczby ramek
, otrzymuje się zmniejszenie ilości informacji przypisanej danemu obrazowi (kompresja).
Przy określaniu stopnia kompresji należy uwzględnić również określoną liczbę bitów użytych do zakodowania numerów neuronów zwycięzców dla poszczególnych ramek. Ostatecznie współczynnik kompresji obrazu definiuje się w postaci [46].
![]() |
(1.1) |
- liczbę ramek,



![]() |
(1.1) |
gdzie oznacza wartość błędu średniokwadratowego obrazu odtworzonego względem obrazu oryginalnego. Zastosowanie sieci samoorganizującej do kompresji umożliwia uzyskanie współczynnika kompresji obrazów rzędu nawet 16 przy współczynniku
około 25-28 dB.
Na rys. 7.17a przedstawiono wyniki uczenia sieci Kohonena dla obrazu Barbara o wymiarach pikseli, podzielonego na ramki 16-elementowe (podobrazy o wymiarach
) [43]. Sieć Kohonena zawierała 512 neuronów. Przy 8-bitowej reprezentacji danych uzyskano stopień kompresji równy:
. Na rys. 7.17b pokazano obraz odtworzony na podstawie wag neuronów zwyciężających przy prezentacji kolejnych ramek. Współczynnik
dla obrazu odtworzonego wynosił 26,2dB. Różnice w jakości obrazu oryginalnego (rys. 7.17a) i odtworzonego (rys. 7.17b) są stosunkowo małe. Widoczne jest to na rys. 7.17c, oddającym obraz błędu, który jest różnicą między obrazem oryginalnym a odtworzonym po kompresji.



Ważną zaletą sieci neuronowych, z całą wyrazistością uwidaczniającą się przy kompresji obrazów, jest zdolność generalizacji, a więc możliwość skompresowania (przyporządkowania poszczególnym ramkom nowego obrazu numerów neuronów zwycięzców wytrenowanej wcześniej sieci) i zdekompresowania (przypisania odpowiednich wektorów wagowych zwycięzców poszczególnym ramkom). Jakość odtworzonego obrazu, który nie podlegał wcześniej procesowi uczenia, nie odbiega daleko od jakości obrazu poddanego uczeniu, pod warunkiem, że stopnie zróżnicowania obu obrazów są podobne.
Na rys. 7.18 przedstawiono przykładowy obraz linii papilarnych, poddany procesowi kompresji i dekompresji za pomocą sieci Kohonena, wytrenowanej przy zastosowaniu obrazu z rys. 7.17 [43]. Rysunek 9.18a jest obrazem oryginalnym, rys. 7.18b - obrazem zrekonstruowanym po kompresji, a rys. 7.18c obrazem różnicowym ilustrującym błąd kompresji. Stopień zniekształcenia obrazu odtworzonego jest porównywalny z obrazem poddanym uczeniu, a współczynnik zniekształcenia .



1.8. Zadania i problemy
1. Określić i porównać ze sobą odległości między dwoma wektorami
stosując różne normy: euklidesową, oraz w postaci iloczynu skalarnego.
2. Dwa neurony o wagach ,
otrzymały pobudzenia
,
. Wyłonić zwycięzców dla każdego pobudzenia.
3. Trzy neurony o wagach ,
,
otrzymały pobudzenie w postaci wektora
. Określić kolejność neuronów konkurujących ze sobą w algorytmie gazu neuronowego. Wyznaczyć wartość funkcji sąsiedztwa w metodzie gazu neuronowego przy założeniu
.
4. Dokonać normalizacji wektorów danych w postaci
,
stosując rozszerzenie wektora i bez rozszerzania.
5. Korzystając z programu KOHON dokonać odwzorowania liniowego (jeden z wymiarów w osi lub
równy
) danych jednowymiarowych tworzących różne kształty (spirala, koło, wielobok) stosując odwzorowanie Kohonena z uwzględnieniem dwu sąsiadów.
6. Korzystając z programu KOHON określić położenia wektorów wag neuronów mapy Kohonena odwzorowujących różne rozkłady danych na płaszczyźnie: rozkład równomierny w założonym kształcie maski, rozkład gaussowski, maski nieregularne. Zastosować odwzorowanie Kohonena z uwzględnieniem czterech sąsiadów.
7. Korzystając z programu KOHON określić położenia wektorów wag neuronów mapy Kohonena odwzorowujących rozkład danych na płaszczyźnie przy zadanym kształcie maski (koło, prostokąt trójkąt). Zastosować odwzorowanie jednowymiarowe Kohonena z uwzględnieniem tylko dwu sąsiadów (jeden z wymiarów lub
równy
).
1.9. Słownik
Wykład 7
Sieci Kohonena – sieci samoorganizujące poprzez współzawodnictwo i służące do grupowania danych wielowymiarowych w klastry reprezentowane przez centra.
WTA – strategia uczenia sieci samoorganizujących się przez konkurencję, gdzie tylko neuron zwycięzca adaptuje swoje wagi.
CWTA – zmodyfikowana strategia wyłaniania zwycięzcy w uczeniu WTA sieci samoorganizujących przez konkurencję, gdzie tylko neuron zwycięzca adaptuje swoje wagi.
WTM – strategia uczenia sieci samoorganizujących się przez konkurencję, gdzie neuron zwycięzca i jego najbliższe otoczenie adaptują swoje wagi.
Mapa Kohonena – sposób graficznego przedstawienia rozkładu danych wielowymiarowych w przestrzeni dwu-wymiarowej.
Normalizacja wektorów – przeskalowanie wektorów do określonego zakresu zmian wartości ich elementów.
Neuron martwy – neuron, który nigdy nie zwyciężył w konkurencji.
Kwantyzacja wektorowa – zastąpienie wartości wektorów w klastrze danych przez centrum danego klastra.
Błąd kwantyzacji – sumaryczny błąd popełniany przy reprezentacji danych tworzących klaster przez centrum tego klastra.
Algorytm gazu neuronowego – jedna z implementacji strategii WTM w uczeniu sieci samoorganizujących poprzez konkurencję.
Odwzorowanie Sammona – nieliniowe rzutowanie danych z dowolnej przestrzeni N-wymiarowej w przestrzeń M-wymiarową
Program Kohon – graficzny interfejs użytkownika w Matlabie do eksperymentów z siecią Kohonena.
PSNR – miara jakości obrazu zrekonstruowanego w stosunku do obrazu oryginalnego.
2. Transformacja i sieci neuronowe PCA
Ważnym typem sieci samoorganizujących są sieci, dla których w procesie uczenia wykorzystuje się współzależności między sygnałami. Sieci takie należą do klasy sieci korelacyjnych, zwanych również hebbowskimi. W trakcie uczenia wykrywają one istotne cechy powiązań korelacyjnych między sygnałami, ucząc się ich i dostosowując do nich wartości swoich wag synaptycznych. W tym rozdziale zostaną omówione aspekty samoorganizacji przy zastosowaniu transformacji PCA (ang. Principal Component Analysis). Transformacja ta jest z natury liniowa (neurony liniowe, powiązania międzyneuronowe liniowe) pozwalając na redukcję wymiarowości wektora wejściowego przy zachowaniu maksimum informacji w nim zawartej.
2.1. Transformacja PCA
Analiza składników głównych PCA jest metodą statystyczną określającą przekształcenie liniowe transformujące opis stacjonarnego procesu stochastycznego dany w postaci zbioru N-wymiarowych wektorów
w zbiór wektorów



Dla zachowania maksimum informacji oryginalnej w zbiorze wektorów o zredukowanym wymiarze macierz transformacji
powinna być dobrana w taki sposób, aby zmaksymalizować wartość wyznacznika
[49]
![]() |
(8.1) |
W wyrażeniu tym oznacza macierz kowariancji wektorów
(przy zerowych wartościach średnich zbioru
macierz kowariancji jest równa macierzy korelacji). W praktyce centrowanie wektorów nie jest konieczne i można posługiwać się macierzą korelacji, niezależnie od zerowania się wartości średnich. Rozwiązanie powyższego problemu optymalizacyjnego uzyskuje się na podstawie rozkładu macierzy kowariancji zbioru wektorów
według wartości własnych.
Przyjmijmy, że oznacza wektor losowy o zerowej wartości średniej, a
oznacza wartość oczekiwaną (średnią) macierzy autokorelacji (autokowariancji) po wszystkich wektorach
. Macierz tę, przy skończonej liczbie
wektorów
, można estymować przy pomocy zależności
![]() |
(8.2) |
gdzie macierz danych tworzą kolejne wektory uczące
. Oznaczmy przez
wartości własne macierzy autokorelacji
, a przez
ortogonalne wektory wartości własnych, skojarzone z nimi, przy czym
. Wartości własne oraz wektory własne macierzy
powiązane są zależnością
![]() |
(8.3) |
dla . Wartości własne symetrycznej, nieujemnie określonej macierzy korelacji
są rzeczywiste i nieujemne. Uporządkujmy je w kolejności malejącej poczynając od wartości największej
. W identycznej kolejności ustawimy wektory własne
skojarzone z odpowiednimi wartościami własnymi
. Przy ograniczeniu się do
największych wartości własnych macierz
przekształcenia PCA definiuje się w postaci
![]() |
(8.4) |
Macierz ta określa transformację PCA jako przekształcenie liniowe
![]() |
(8.5) |
Wektor y =[y1, y2,…, yK]T stanowi wektor składników głównych PCA, mających największy wpływ na rekonstrukcję oryginalnego wektora danych x =[x1, x2,…, xN]T. Transformacja PCA jest więc ściśle związana z rozkładem macierzy korelacji według wartości własnych. Uwzględnia zatem jedynie powiązania liniowe między wektorami danych.
Oznaczmy przez macierz diagonalną utworzoną z wartości własnych
uwzględnionych w odwzorowaniu, to jest
. Przy takich oznaczeniach macierz korelacji można przedstawić w postaci zdekomponowanej
![]() |
(8.6) |
gdzie znak przybliżenia wynika z uwzględnienia skończonej liczby (mniejszej niż wymiar macierzy korelacji) składników głównych. Przy zależność (8.6) będzie spełniona ze znakiem równości. Uwzględniając symetrię macierzy korelacji zależność tę można jednocześnie przedstawić w postaci
![]() |
(8.7) |
Z punktu widzenia statystycznego transformacja PCA określa zbiór wektorów ortogonalnych (kolejne wiersze macierzy
), mających największy wkład w wariancję danych wejściowych. Pierwszy składnik główny odpowiadający wektorowi
jest równy iloczynowi skalarnemu wektora własnego
i wektora wejściowego
![]() |
(8.8) |
Wektor własny określa zatem kierunek w przestrzeni wielowymiarowej w którym występuje największa wariancja (zmienność wartości) danych wejściowych zawartych w wektorach
. Wariancja ta jest równa wartości własnej
![]() |
(8.9) |
Celem transformacji PCA jest określenie kierunków (zwanych kierunkami głównymi) w taki sposób, aby zmaksymalizować wielkość iloczynu skalarnego
dla kolejnych wartości
przy spełnieniu warunku ortogonalności kolejnych wektorów
ze sobą, to jest
oraz
.
Rekonstrukcja wektora na podstawie znajomości wektora składników głównych
oraz macierzy ortogonalnej
przekształcenia PCA odbywa się zgodnie z zależnością [46]
![]() |
(8.10) |
Macierz dekompozycji PCA i macierz rekonstrukcji (
) stanowią wzajemne transpozycje. PCA minimalizuje wartość oczekiwaną błędu rekonstrukcji danych, przy czym błąd ten określony jest wzorem ogólnym
![]() |
(8.11) |
Przy ograniczeniu się do największych wartości własnych (
składników głównych), błąd ten jest proporcjonalny do sumy odrzuconych wartości własnych
.
Ze wzoru tego wynika, że minimalizacja błędu rekonstrukcji danych przy uwzględnieniu składników jest równoważna maksymalizacji wariancji rzutowania
na etapie rozkładu PCA
![]() |
(8.12) |
Zarówno , jak i
są nieujemne, gdyż wszystkie wartości własne macierzy korelacji, jako macierzy symetrycznej i nieujemnie określonej, są dodatnie bądź zerowe. Wnosimy stąd, że reprezentacja wektora danych
przez największe składniki główne
tworzące wektor
jest równoważna zachowaniu informacji o największej porcji energii zawartej w zbiorze danych.
Pierwszy (największy) składnik główny powiązany z przez swój wektor własny
określa kierunek w przestrzeni wielowymiarowej, w którym wariancja danych jest maksymalna. Ostatni najmniejszy składnik główny (ang. Minor Principal Component) wskazuje kierunek, w którym wariancja jest najmniejsza. Na rys. 8.1 przedstawiono interpretację geometryczną najbardziej znaczącego i najmniej znaczącego składnika głównego transformacji PCA dla danych 2-wymiarowych. Pierwszy składnik główny odpowiada kierunkowi największej zmienności mierzonej poprzez wariancję (energię) sygnałów. Dokonując reprezentacji danych tylko za pomocą jednego składnika głównego oraz skojarzonego z nim wektora własnego i wybierając jako reprezentanta największy ze składników głównych (
), popełnia się najmniejszy błąd rekonstrukcji, maksymalizując jednocześnie wariancję transformacji. Najmniej znaczący składnik główny ma najmniejszy wpływ na dokładność odtworzenia danych. Stąd kompresja danych (zmniejszenie ilości informacji z najmniejszą stratą dla rekonstrukcji) wymaga reprezentowania tych danych przez zbiór największych składników głównych. Pominięcie składników najmniejszych ma najmniej znaczący wpływ na dokładność rekonstrukcji danych.

Transformacja PCA jest ściśle związana z korelacją zachodzącą między wieloma zmiennymi w zbiorze danych. Jeśli te zmienne są skorelowane ze sobą, to znajomość jedynie części z nich wystarczy do określenia pozostałych. Stąd taki zbiór danych może być reprezentowany przez mniejszą liczbę zmiennych. W przypadku gdy nie występuje korelacja między zmiennymi tworzącymi wektor x, predykcja części z nich na podstawie pozostałych jest niemożliwa.
8.1.2 Przykład zastosowania PCA w ekonomii
Jako przykład ilustrujący właściwości rozkładu danych na składniki główne rozpatrzone będą dane GUS-u dotyczące wielkości związanych z miesięcznymi wartościami odpowiadającymi wskaźnikowi cen i usług konsumpcyjnych (wcu), stopie bezrobocia (sb), wartości produkcji sprzedanej w przemyśle (wps) oraz średniej płacy miesięcznej (spm) w Polsce. Przykład ten wykorzystuje dane statystyczne GUS z 10.5 lat (126 wartości).
Wektory pomiarowe x tworzą w tym przypadku cztery składowe, kolejno: wcu, sb, wps oraz spm. Stosując definicję macierzy korelacji (wzór 10.2) w wyniku obliczeń otrzymano macierz korelacji Rxx w postaci
Dokonując dekompozycji tej macierzy według wartości własnych uzyskuje się następujące wartości własne (w kolejności malejącej):
oraz skojarzone z nimi wektory własne
Na tej podstawie określa się pełną macierz transformacji PCA, zawierającą wszystkie wektory własne ułożone według największego znaczenia (w zależności od wielkości wartości własnych ):
w postaci
oraz macierz diagonalną złożoną z wartości własnych macierzy
ułożonych według malejących wielkości
. Największa wartość własna
skojarzona jest z pierwszym składnikiem głównym odpowiadającym wektorowi własnemu
, stanowiącemu pierwszy wiersz macierzy
. Składnik ten przy wektorze wejściowym
złożonym z czterech elementów (
) opisany jest relacją
, która w tym przypadku przybiera konkretną postać:
. Jak widać największy wpływ na składnik główny
ma zmienna
. Każda z wartości własnych
odpowiada wariancji jaką reprezentuje dany składnik główny. Względny wkład poszczególnych składników głównych w łączną wariancję danych (energię) można określić wzorem:
Wartości te są następujące: . Jak wynika z rozkładu tych wartości, największy składnik główny ma
udziału w łącznej wariancji danych. Przy odtwarzaniu wszystkich składników (
) na podstawie wektora
można ograniczyć się jedynie do jego największej składowej
, pomijając pozostałe jako nie wnoszące istotnego wkładu informacyjnego. Oznacza to 3-krotną redukcję ilości przetworzonej informacji. Po odtworzeniu w ten sposób danych uzyskano odtworzony zbiór danych, ze średnim błędem względnym równym
(zdefiniowanym jako stosunek normy euklidesowej macierzy błędu do normy euklidesowej danych przyjętych w postaci macierzy
).
2.2. Neuronowe metody wyznaczania rozkładu PCA
Klasyczna transformacja PCA wymaga wyznaczenia na podstawie danego zbioru wektorów najpierw macierzy korelacji
, a następnie rozkładu tej macierzy według wartości własnych. Jest to prosta i łatwa w zastosowaniu metoda (ciąg dekompozycji QR), jeśli problem jest dobrze uwarunkowany (współczynnik uwarunkowania
przyjmuje małe wartości). Wystarczy w tym celu zastosować funkcję eig.m w Matlabie. Przy bardzo dużych wymiarach wektorów x (powyżej kilku tysięcy) problem obliczeniowy wyznaczenia wartości własnych macierzy
staje się zwykle źle uwarunkowany i trudny do przeprowadzenia. W takich przypadkach konkurencyjne może być zastosowanie metod neuronowych adaptacji pozwalających na wyznaczenie macierzy przekształcenia
bez tworzenia macierzy korelacyjnej, a jedynie poprzez bezpośrednie przetwarzanie wektorów wejściowych
. Przetwarzanie sygnałów może być wówczas przedstawione w typowo sieciowy sposób jako liniowa sieć PCA zawierająca jedną warstwę.
8.2.1 Estymacja pierwszego składnika głównego
Wyznaczenie wektorów własnych może przebiegać przy zastosowaniu metod adaptacyjnych, typowych dla sieci neuronowych. Są one oparte na uogólnionej regule Hebba i pozwalają na bezpośrednie przetworzenie wektorów wejściowych
, bez potrzeby jawnego definiowania macierzy
. Metody te są niezastąpione w przypadkach akwizycji danych w trybie on-line, w którym utworzenie jawnej postaci macierzy korelacji byłoby niemożliwe. Powstały różne odmiany algorytmów, a w każdym z nich wykorzystuje się korelację zachodzącą między wektorami reprezentującymi dane wejściowe.
Bezpośrednie zastosowanie uogólnionej reguły Hebba dotyczy wyznaczenia jednego (największego) składnika głównego. Algorytm ten odpowiada zastosowaniu sieci liniowej jednowarstwowej o jednym neuronie wyjściowym przedstawionej na rys. 8.2.

Sygnał wyjściowy takiej sieci określony jest wzorem
![]() |
(8.13) |
Dobór wag wektora odbywa się według uogólnionej (znormalizowanej) reguły Hebba, zwanej regułą Oji, którą zapisać można w formie skalarnej [24,46]
![]() |
(8.14) |
![]() |
(8.15)) |
We wzorach tych oznacza współczynnik uczenia malejący w czasie. W procesie uczenia sieci powtarza się wielokrotnie te same wzorce uczące, aż do ustabilizowania się wag sieci. Pierwszy składnik obu wzorów odpowiada zwykłej regule Hebba, a drugi zapewnia samo-normalizację wektorów wagowych, to jest
. Dobór wartości
ma istotny wpływ na zbieżność algorytmu. Dobre rezultaty uzyskuje się, przyjmując wartości
malejące wraz z upływem czasu uczenia.
Jakkolwiek metoda Oji pozwala wyznaczyć jedynie pierwszy składnik główny może być ona w prosty sposób przystosowana do wyznaczenia pozostałych składników. Przy uwzględnieniu wielu składników i wektorów własnych można sukcesywnie redukować wpływ wyselekcjonowanego składnika pierwszego odkrywając w ten sposób następny, traktowany w przekształconym wektorze jako pierwszy składnik główny, dla którego można powtórzyć poprzednia procedurę. Przyjmując oznaczenie
-tego wektora własnego w postaci
można zauważyć, że składowe wektora
można wyrazić w postaci
![]() |
(8.16) |

![]() |
(8.17) |
Dla nowego wektora największą wartością własną jest teraz
, gdyż wpływ
został wyeliminowany dzięki działaniu wyrażonemu wzorem (8.17). Procedura wyznaczenia tej wartości jest identyczna do omówionej wcześniej. Powtarzając te operacje
razy można wyznaczyć wszystkie wektory własne stowarzyszone z kolejnymi wartościami własnymi.
8.2.2 Algorytm estymacji wielu składników głównych jednocześnie
Wyznaczanie wielu kolejnych składników PCA wymaga zastosowania wielu neuronów w warstwie wyjściowej sieci. Sieć neuronowa zawiera zatem tyle neuronów, ile składników głównych rozkładu ma być uwzględnionych. Są one ułożone w jednej warstwie - stąd sieć PCA jest siecią jednowarstwową o liniowych funkcjach aktywacji neuronów (rys. 8.3).

Istnieje wiele algorytmów uczenia takiej sieci. Tutaj ograniczymy się do reguły Sangera [24,46], będącej regułą lokalną, nie wymagającą w procesie uczenia rozwiązania układu równań. Przy neuronach liniowych w warstwie sygnały wyjściowe
w kolejnych iteracjach
określane są według wzoru
![]() |
(8.18) |
Adaptacja wag sieci w kolejnych iteracjach wykorzystuje aktualnie znane (zaadaptowane) wartości wag i przebiega według następującego wzoru
![]() |
(8.19) |
dla oraz
. Przyjmując oznaczenie
![]() |
(8.20) |
![]() |
(8.21) |
Jest oczywiste, że nawet przy istnieniu neuronów w warstwie wyjściowej reguła uczenia pozostaje nadal lokalną, pod warunkiem zmodyfikowania wartości sygnału wejściowego
. Zauważmy, że modyfikacja tego sygnału odbywa się przy wykorzystaniu wcześniej zaadaptowanych już wartości wag, a więc nie wymaga rozwiązania układu równań. Zależności skalarne (8.20) i (8.21) można zapisać w prostszej formie wektorowej wygodniejszej w działaniach
![]() |
(8.22) |
![]() |
(8.23) |
dla . Zauważmy, że dla neuronu pierwszego (pierwszy składnik główny PCA) mamy
. Dla neuronu drugiego otrzymuje się
- wzór uzależniony od znanych już wag neuronu pierwszego. Podobnie dla trzeciego neuronu
i wszystkich pozostałych, modyfikacja wektora
wyrażona jest przez wielkości wag wcześniej określone, w efekcie czego proces uczenia przebiega identycznie jak w przypadku algorytmu Oji, z samo-normalizującymi się wektorami
, czyli
.
Obecnie istnieje wiele różnych algorytmów neuronowych, pozwalających adaptacyjnie określić parametry transformacji PCA. Do najważniejszych, oprócz algorytmu Sangera, zalicza się algorytm Foldiaka, Rubnera oraz APEX (ang. Adaptive Principal component EXtraction). Szczegóły rozwiązań znaleźć można w opracowaniu książkowym Diamantarosa i Kunga.
2.3. Zastosowania transformacji PCA
Główne zastosowania transformacji PCA związane są z kompresją danych, która jest nieodłącznym składnikiem każdego przekształcenia PCA. Własność ta może być bezpośrednio wykorzystana do kompresji stratnej informacji – mówimy wtedy o kompresji sygnałów (dane jednowymiarowe) bądź obrazów (dane 2-D). Niezastąpionym zastosowaniem PCA jest ilustracja rozkładu danych wielowymiarowych na płaszczyźnie (układ 2-współrzędnych w postaci 2 najważniejszych składników głównych) lub w przestrzeni 3-D (układ 3-współrzędnych w postaci 3 najważniejszych składników głównych). Ponadto transformacja PCA reprezentująca -wymiarowy wektor
przez
-wymiarowy (
) wektor
składników głównych pozwala traktować wektor
jako wektor cech diagnostycznych procesu reprezentowanego przez zbiór wektorów
.
8.3.1 PCA w zastosowaniu do kompresji stratnej danych
Kompresja danych z zastosowaniem PCA polega na przekształceniu







Na rys. 8.4 przedstawiono sieć PCA do kompresji (rys. 8.4a) oraz do rekonstrukcji (dekompresji) danych (rys. 8.4b). W sieci kompresyjnej wektor oryginalny jest transformowany w wektor
o zredukowanym wymiarze
, przy czym
. Wektor
może podlegać bądź to transmisji na odległość bądź zapisaniu na dysku. W każdym przypadku możliwe jest odtworzenie wektora oryginalnego na podstawie jego zredukowanej formy
, korzystając z sieci rekonstrukcyjnej z rys. 8.4b, wykonującej operację odwrotną
. Biorąc pod uwagę pewną utratę informacji spowodowaną obcięciem wymiaru wektora odtworzenie to jest z pewnym przybliżeniem
.
O współczynniku kompresji decyduje liczba składników głównych uwzględnionych w przekształceniu PCA. Przy dużej liczbie wektorów
podlegających przekształceniu można pominąć liczbę bitów do kodowania wag sieci i współczynnik kompresji wyrazić wzorem przybliżonym
![]() |
(8.24) |
Im wyższy współczynnik kompresji tym większa oszczędność pamięci, ale gorsza jakość odtworzonego obrazu (większa porcja informacji utracona bezpowrotnie w wyniku redukcji wymiaru wektora oryginalnego).




Na rys. 8.5 przedstawiono obraz oryginalny (rys. 8.5a) oraz trzy obrazy zrekonstruowane na podstawie odpowiednio 1, 3 i 5 składników głównych PCA (rys. 8.5 b,c,d). Obraz poddany kompresji miał wymiar pikseli i został podzielony na ramki o wymiarach
(wymiar wektora
równy
). Jakość odtworzonego obrazu jest ściśle uzależniona od liczby
składników głównych uwzględnionych w odtwarzaniu. Im więcej jest tych składników, tym lepsza jakość obrazu, ale mniejszy współczynnik kompresji. Przy największym współczynniku kompresji (jeden składnik główny) wyraźnie widoczne są poszczególne ramki w obrazie. Obraz odtworzony na podstawie pięciu składników głównych nie różni się wzrokowo od obrazu oryginalnego. Współczynniki PSNR otrzymane dla poszczególnych obrazów są odpowiednio równe: 18,80 dB, 25,43 dB oraz 27,58 dB, przy czym
określany jest wzorem
![]() |
(8.25) |
gdzie oznacza wartość błędu średniokwadratowego odtworzonego obrazu względem obrazu oryginalnego.
8.3.2 Przykład zastosowania PCA do ilustracji rozkładu danych wielowymiarowych
Oryginalne zastosowanie znalazło PCA w ilustracji graficznej rozkładu danych wielowymiarowych poprzez zrzutowanie ich w przestrzeń 2-D lub 3-D. Wybierając rzutujemy każdy
-wymiarowy wektor
w przestrzeń dwuwymiarową. W ten sposób każdy wektor
jest reprezentowany przez wektor
, którego położenie może być bez problemu zilustrowane na płaszczyźnie, której oś poziomą stanowi teraz składnik główny
, a oś pionową składnik główny
. Wektory
„podobne” do siebie zajmą wówczas bliskie sobie położenia na płaszczyźnie, a wektory „dalekie” – położenia odległe.
Ta unikalna własność znajduje szerokie zastosowania w problemach klasyfikacyjnych, gdzie służy do badania jednorodności rozkładów danych w ramach poszczególnych klas oraz do określania średnich odległości między klasowych
Przykład takiego zastosowania pokażemy w przestrzeni 2-wymiarowej ilustrującej graficznie położenie poszczególnych województw Polski (na płaszczyźnie reprezentowanej przez 2 najważniejsze składniki główne). Wyniki dotyczą przykładowych danych GUS z jednego roku. Rzutowanie dotyczyło 13-wymiarowych elementów informacji GUS dla każdego województwa. Informacje dotyczą następujących elementów:
-
Procent ludności mieszkających w miastach
-
Odsetek zgonu niemowląt
-
Przyrost naturalny ludności
-
Stopa bezrobocia
-
Wynagrodzenie miesięczne brutto
-
Zasoby mieszkaniowe przypadające na 10000 ludności
-
Liczba osób hospitalizowanych w roku przypadających na 10000 ludności
-
Liczba ciągników rolniczych przypadająca na 100 ha gruntów
-
Produkcja sprzedana przemysłu przypadająca na głowę ludności
-
Produkcja sprzedana budownictwa przypadająca na głowę ludności
-
Liczba kilometrów dróg przypadających na 10km2 w przeliczeniu na głowę ludnosci
-
Wartość PKB per capita
-
Liczba firm zarejestrowanych w bazie REGON przypadająca na głowę ludności
Dla uproszczenia opisów przyjęto numeryczne oznaczenia poszczególnych województw w kolejności jak niżej:
-
Dolnośląskie
-
Kujawsko-pomorskie
-
Lubelskie
-
Lubuskie
-
Łódzkie
-
Małopolskie
-
Mazowieckie
-
Opolskie
-
Podkarpackie
-
Podlaskie
-
Pomorskie
-
Śląskie
-
Świętokrzyskie
-
Warmińsko-mazurskie
-
Wielkopolskie
-
Zachodniopomorskie
Tabela 8.1 przedstawia dane oryginalne dotyczące tych zagadnień. Wektor x dla każdego województwa tworzy wybranych 13 elementów informacji dotyczącej ekonomii, dostępności edukacji i opieki medycznej. Użyto następujących skrótów:
Tabela 8.1 Dane liczbowe GUS dotyczące 13 elementów informacji województw w Polsce. Wiersze reprezentują województwa (od 1 do 16), kolumny elementy uwzględnionej informacji (od 1 do 13)
Województwo |
Kolejne 13 elementów informacji |
||||||||||||
1 |
70,6 |
6,9 |
-0,8 |
11,8 |
2861 |
357 |
1860 |
6,5 |
72588 |
7161 |
91,2 |
26620 |
308,3 |
2 |
61,1 |
6,1 |
0,7 |
15,2 |
2443 |
328 |
1638 |
8,5 |
36918 |
3573 |
78,9 |
22474 |
188,5 |
3 |
46,6 |
6,1 |
-0,7 |
13 |
2486 |
328 |
1874 |
11,9 |
23230 |
2851 |
72,7 |
17591 |
151,5 |
4 |
63,9 |
6 |
1,3 |
14,2 |
2430 |
337 |
1615 |
4,2 |
17481 |
1370 |
57,8 |
23241 |
106,5 |
5 |
64,4 |
4,8 |
-3,2 |
11,5 |
2471 |
374 |
2035 |
12,2 |
40644 |
5209 |
92,2 |
23666 |
240,9 |
6 |
49,4 |
6,4 |
1,4 |
8,8 |
2666 |
318 |
1611 |
17,9 |
53890 |
8241 |
145 |
21989 |
293,8 |
7 |
64,7 |
4,9 |
0,4 |
9,2 |
3671 |
371 |
1759 |
10,5 |
176121 |
37752 |
84,5 |
40817 |
627,3 |
8 |
52,5 |
4,4 |
-1,1 |
12 |
2607 |
325 |
1579 |
7,8 |
19312 |
1857 |
88,9 |
21347 |
94,9 |
9 |
40,6 |
6 |
1,5 |
14,4 |
2373 |
291 |
1747 |
16 |
28228 |
3140 |
79,2 |
17789 |
142,1 |
10 |
59,5 |
5 |
-0,5 |
10,7 |
2525 |
340 |
1901 |
9 |
14011 |
2836 |
54,6 |
19075 |
88,7 |
11 |
66,7 |
6,4 |
2,7 |
10,9 |
2883 |
334 |
1553 |
6,3 |
49272 |
5810 |
63,2 |
25308 |
232,8 |
12 |
78,4 |
6,7 |
-0,8 |
9,3 |
2933 |
363 |
1820 |
12,2 |
151323 |
12174 |
164 |
27792 |
427,4 |
13 |
45,4 |
5 |
-1,4 |
15,1 |
2467 |
327 |
1903 |
14,3 |
19516 |
2386 |
104 |
19274 |
106,9 |
14 |
60 |
5,4 |
1,9 |
19 |
2398 |
328 |
1808 |
5 |
19709 |
2514 |
50,6 |
19709 |
113,1 |
15 |
56,6 |
6,7 |
2,1 |
8 |
2611 |
314 |
1869 |
8,8 |
89537 |
12655 |
85,1 |
27553 |
352,2 |
16 |
68,9 |
7,4 |
0,8 |
16,6 |
2616 |
346 |
1789 |
3,4 |
23234 |
3044 |
55,8 |
23924 |
210,8 |
Na rys. 8.6 przedstawiono ilustrację dwuwymiarową położenia względnego 16 województw Polski na podstawie danych statystycznych dotyczących rozwoju ekonomicznego, stanu edukacyjnego i opieki medycznej.

Bliskie położenie na płaszczyźnie oznacza podobieństwo cech charakteryzujących te województwa. Większe odległości miedzy poszczególnymi punktami oznaczają większe różnice w rozwoju tych województw (pod względem uwzględnionych 13 wskaźników ekonomicznych i społecznych). Najbardziej odstającym województwem, wyróżniającym się w grupie analizowanych jednostek okazało się województwo Mazowieckie. Najbardziej odległe od niego są województwa: Lubelskie, Podkarpackie, Podlaskie, Świętokrzyskie i Warmińsko-mazurskie. Najbliższe województwu Mazowieckiemu okazało się województwo Wielkopolskie i Śląskie. Zauważmy, że w tej analizie nie uwzględnia się wartości składników głównych, a jedynie względne odległości między położeniami na płaszczyźnie utworzonej przez dwa najważniejsze składniki główne. Należy dodatkowo zaznaczyć, że powyższy rozkład został uzyskany przy uwzględnieniu jedynie wybranych 13 parametrów, spośród wielu dostępnych w publikacjach GUS i dotyczy danych jednego roku.
2.4. Zadania i problemy
1. Korzystając z oprogramowania Matlaba określić macierz korelacji dla ciągu 20 wektorów 4-wymiarowych
utworzonych dla 20 kolejnych chwil czasowych w przedziale czasu
. Wektor ten opisują zależności
Wyznaczyć wartości i wektory własne tej macierzy.
2. Dany jest ciąg 20 wektorów losowych o wymiarze 10 i rozkładzie a) równomiernym, b) gaussowskim. Określić wartości własne i stowarzyszone z nimi wektory własne dla odpowiadających im macierzy korelacji . Porównać odpowiadające sobie wartości własne i ich rozkład w obu przypadkach przedstawiając je na wspólnym wykresie.
3. Dany jest zbiór wektorów o postaci
Określić macierz korelacji tych wektorów. Wyznaczyć wartości i wektory własne. Określić macierz PCA odwzorowującą te wektory w przestrzeń 2D. Zrekonstruować macierz korelacji na podstawie 2 najważniejszych składników głównych. Zrzutować wektory xi w przestrzeń 2D. Narysować położenia tych rzutów w przestrzeni 2D.
4. Sygnał pomiarowy x tworzą funkcje czasu: ,
,
,
oraz dwie składowe szumowe o rozkładzie równomiernym i gaussowskim. Utworzyć zbiór 20 takich wektorów dla 20 różnych chwil czasowych. Każdy wektor x ma więc wymiar 6. Określić wartości własne macierzy korelacji tego zbioru wektorów. Dokonać przekształcenia PCA odpowiadającego 4 największym wartościom własnym macierzy korelacji. Odtworzyć te wektory i wykreślić je (zależność czasowa) na tle wartości oryginalnych.
5. Dla powyższego zbioru 20 wektorów zilustrować ich położenie na płaszczyźnie utworzonej przez dwa składniki główne: oraz
(
).
6. Dana jest transmitancja operatorowa drugiego rzędu . Założyć określone wartości współczynników
,
dla
(na przykład
,
,
. Wykreślić charakterystykę amplitudową i fazową układu dla 10 wybranych pulsacji (np. wartości zmieniające się od
do
). Utworzyć 20-wymiarowy wektor
zawierający wartość modułu
fazy
dla przyjętych wartości częstotliwości (każdy punkt częstotliwości odpowiada dwu wartościom: amplitudy i fazy). Utworzyć ciąg takich wektorów dla wartości współczynników
,
,
,
zmieniających się od zera do wartości nominalnej (w każdym przypadku zmiana wartości jednego współczynnika). Dokonać przekształcenia PCA dla takiego zbioru wektorów. Narysować wykres zmian położeń tych wektorów na płaszczyźnie utworzonej przez dwa pierwsze składniki główne:
i
.
7. Przedstawić na płaszczyźnie utworzonej przez dwa najważniejsze składniki główne rozkład danych odpowiadających rozwojowi ekonomicznemu województwa wielkopolskiego i podlaskiego w latach 2004-2008 według danych zgromadzonych w pliku pca_zad5.mat.
2.5. Słownik
Słownik opanowanych pojęć
Wykład 8
PCA – transformacja liniowa stosowana do redukcji wymiaru danych (bazuje na transformacji Karhunena-Loewe).
Macierz kowariancji – macierz stanowiąca uogólnienie pojęcia wariancji na przypadek wielowymiarowy
Wartości
własne
– pierwiastki równania
,
gdzie
jest macierzą kowariancji.
Wektory
własne
– wektory stowarzyszone
z wartościami własnymi i macierzą
poprzez relację
.
Składniki
główne
– elementy wektora wyjściowego po transformacji PCA,
.
Reguła Oji – uogólnienie reguły Hebba w implementacji on-line transformacji PCA.
Kompresja stratna danych – reprezentacja przybliżona danych poprzez zredukowaną (w stosunku do oryginału) liczbę elementów.
3. Ślepa separacja sygnałów
Sieci do ślepej separacji sygnałów [8] są sieciami liniowymi samoorganizującymi się przy wykorzystaniu uogólnionej reguły Hebba. Należą do klasy sieci korelacyjnych. Ich koncepcja w odniesieniu do składników niezależnych (ang. Independent Component Analysis – ICA) została opracowana w połowie lat osiemdziesiątych przez profesorów J. Heraulta i C. Juttena. Dzisiaj ta koncepcja została znacznie rozszerzona i obejmuje również rozkład sygnałów na składniki gładkie, rzadkie, ortogonalne itp. stanowiąc dział badawczy zwany BSS (ang. Blind Signal Separation) [8]. Pierwotna struktura sieci ICA miała postać rekurencyjną. W chwili obecnej znacznie częściej używana jest postać jednokierunkowa. Co więcej rezygnuje się zwykle z jawnej definicji struktury sieciowej ograniczając się do algorytmu separacji.
Tym nie mniej algorytmom separacji sygnałów, niezależnie od sposobu ich graficznej prezentacji można przypisać adaptacyjną strukturę liniową, dokonującą przetwarzania sygnałów w czasie rzeczywistym (on-line). Funkcje nieliniowe stosowane w algorytmie uczącym pełnią bardzo ważną rolę w adaptacji wag, nie wpływając na samą strukturę połączeń wagowych.
W wykładzie przedstawimy algorytmy ślepej separacji poczynając od oryginalnego rozwiązania Heraulta-Juttena prezentując aspekty zarówno obliczeniowe jak i strukturalne towarzyszących im sieci. Zaprezentujemy programy ślepej separacji umożliwiające dekompozycję sygnałów na składniki bazowe statystycznie niezależne.
3.1. Wprowadzenie
Oryginalne rozwiązanie Heraulta-Juttena dotyczyło problemu separacji sygnałów zmiennych w czasie na podstawie informacji zawartej w ich liniowej superpozycji. Przyjmiemy za ich twórcami, że danych jest n niezależnych (nieznanych) sygnałów
oraz macierz mieszająca
(również nieznana) o wymiarze
. Dla pomiarów dostępne są jedynie sygnały
będące liniową superpozycją
przy czym [8]
![]() |
(9.1) |



Schemat ogólny włączenia tej sieci w system pomiarowy przedstawiono na rys. 9.1. Istotnym założeniem w ich rozwiązaniu jest statystyczna niezależność sygnałów źródłowych.
3.2. Niezależność statystyczna sygnałów
Niezależność statystyczna sygnałów losowych jest pojęciem ogólniejszym niż dekorelacja. Pojęcie korelacji dotyczy jedynie pojęcia liniowej zależności występującej między sygnałami, natomiast niezależność statystyczna dowolnej zależności, w tym nieliniowej, istniejącej między sygnałami. W ogólnym przypadku dwie zmienne losowe oraz
są statystycznie niezależne, jeśli informacja o jednej zmiennej nie wnosi żadnej wiedzy o zachowaniu drugiej zmiennej. Z matematycznego punktu widzenia niezależność statystyczna oznacza, że dwuwymiarowa łączna gęstość prawdopodobieństwa
jest równa iloczynowi jednowymiarowych funkcji gęstości zmiennej
oraz
![]() |
(9.2) |
Dla sygnałów statystycznie niezależnych uogólniona macierz kowariancji funkcji oraz
(obie funkcje muszą być nieparzyste) tworzy nieosobliwą macierz diagonalną, mającą postać
![]() |
(9.3) |
W równaniu tym symbol E oznacza wartość oczekiwaną. Z warunku niezależności statystycznej wynika, że wszystkie uogólnione kowariancje wzajemne są zerowe, a zatem , natomiast kowariancje własne są niezerowe
. Warunek statystycznej niezależności sygnałów jest utożsamiony z zerowaniem się kumulantów wzajemnych wyższego rzędu [8].
3.3. Struktura rekurencyjna sieci separującej
W rozwiązaniu problemu separacji sygnałów statystycznie niezależnych J. Herault i C. Jutten zaproponowali sieć neuronową liniową ze sprzężeniem zwrotnym, przedstawioną na rys. 9.2.

Sieć zawiera liniowych neuronów, powiązanych ze sobą przez wzajemne sprzężenia zwrotne. Wagi synaptyczne
w rozwiązaniu oryginalnym Heraulta i Juttena są różne od zera tylko przy sprzężeniach wzajemnych (zasada ta została odrzucona przez prof. Cichockiego pozwalając na lepsze działanie systemu). Każdy neuron w sieci generuje sygnał wyjściowy
![]() |
(9.4) |
Przy oznaczeniu przez macierzy mieszającej, przez
macierzy wagowej (obie kwadratowe o tych samych wymiarach)
![]() |
(9.5) |
a przez ,
oraz
wektorów odpowiednio obserwowanych sygnałów
przetworzonych według zależności (9.1), wektora sygnałów źródłowych
oraz wektora sygnałów wyjściowych
sieci, gdzie
![]() ![]() ![]() |
(9.6) |
działanie sieci z rys. 9.2 można opisać równaniem macierzowym
![]() |
(9.7) |
Przy nieznanej macierzy mieszającej i wektorze
oraz założeniu statystycznej niezależności składników wektora
, zadanie sieci sprowadza się do takiego określenia wektora rozwiązania
, które umożliwi odtworzenie sygnałów pierwotnych
tworzących wektor
. Z równania (9.7) wynika, że rozwiązanie takie musi spełniać warunek
![]() |
(9.8) |
Wektor będzie odtwarzał wektor poszukiwanych sygnałów źródłowych
. Odtworzenie to jest możliwe z dokładnością do pewnej, bliżej nieokreślonej skali
, czyli
gdzie
jest macierzą diagonalną,
, przy praktycznie dowolnej kolejności występowania poszczególnych składników
w wektorze
(przy nieznanej postaci składników wektora sygnałów źródłowych nie ma to praktycznie żadnego znaczenia). Stąd podstawowym celem jest rekonstrukcja „kształtu” sygnałów źródłowych. Innymi słowy, poszukiwanym systemem separującym jest taka macierz
, że zachodzi relacja
![]() |
(9.9) |
Można przyjąć, że macierz estymowana jest w rzeczywistości określona jako
oraz
, gdzie
jest macierzą permutacji odpowiedzialnej za przestawienie kolejności składników wynikowych
,
– macierz diagonalna skalująca wartości sygnałów wynikowych,
jest macierzą pseudo-odwrotną do macierzy
.
Rozwiązanie określające wektor spełniający warunek (9.8) jest możliwe do osiągnięcia przy dowolnej liczbie

3.4. Algorytmy uczące sieci rekurencyjnej
Rozwiązanie problemu separacji sygnałów przy zastosowaniu sieci rekurencyjnej zostało zaproponowane przez J. Heraulta i C. Juttena i ulepszone przez Cichockiego [8] sprowadza się do rozwiązania układu równań różniczkowych, opisujących zmiany wag sieci neuronowej dla każdej chwili czasowej
Zgodnie z modyfikacja Cichockiego wprowadza się sprzężenie zwrotne własne neuronu z wagą . Sprzężenie to powoduje samo-normalizację sygnałów wyjściowych, sprowadzając je wszystkie do takiego samego poziomu liczbowego (wartości znormalizowanej) i ułatwiając w ten sposób proces separacji. Wówczas zależności adaptacyjne wag opisane są wzorami (przy założeniu, że
nie zawierają składowej stałej)
![]() |
(9.10) |
dla wag łączących różne neurony , oraz
![]() |
(9.11) |
dla kolejnych wag sprzężenia własnego (wagi diagonalne macierzy ). Obie zależności można zapisać w postaci macierzowej wspólnej dla obu rodzajów wag
![]() |
(9.12) |
w której oznacza macierz wag sieci o wymiarze
, a
i
oznaczają wektory sygnałowe,
,
.
W praktyce stosuje się różne rodzaje funkcji i
, najczęściej przyjmując jedną z nich typu wypukłego, a drugą typu wklęsłego. Przykładowy wybór funkcji to
,
. W przypadku funkcji
dobre rezultaty uzyskuje się przy
,
,
,
, itp. Jak zostało udowodnione w pracy [8] obie funkcje
oraz
odpowiadają momentom statystycznym wyższych rzędów, które przy założeniu statystycznej niezależności sygnałów automatycznie zapewniają wartość średnią
równą zeru, co jest warunkiem zbieżności algorytmu uczącego. Wybór współczynnika uczenia
odgrywa istotną rolę w procesie adaptacji. W przypadku sygnałów stacjonarnych na początku uczenia jest to wartość stała, a następnie maleje do wartości minimalnej w miarę upływu czasu.
Z rozwiązania układu równań różniczkowych opisanych zależnością (9.12) otrzymuje się aktualne wartości wag, służące do określenia sygnałów wyjściowych opisanych wektorem , przy czym przy
.
Głównym źródłem zwiększonej efektywności algorytmu jest samo-normalizacja (do wartości jednostkowej) sygnałów wyjściowych . Mianowicie w stanie ustalonym
, skąd wynika, że
, co oznacza, że niezależnie od aktualnego poziomu sygnałów
następuje automatyczne skalowanie wszystkich sygnałów w sieci do poziomu jednostkowego. Badania symulacyjne sieci o zmodyfikowanym algorytmie uczenia wykazały, że możliwa jest separacja sygnałów o amplitudach różniących się nawet w stosunku
.
Program został przetestowany przy separacji wielu różnorodnych sygnałów, wykazując się bardzo dobrą skutecznością.



Na rys. 9.3 przedstawiono ilustracje procesu separacji czterech sygnałów si(t) o znacznie różniących się amplitudach
Rys. 9.3a przedstawia (u góry) sygnały oryginalne , rys. 9.3b - sygnały zmieszane
, a rys. 9.3c (na dole) - sygnały estymowane przez sieć neuronową w procesie separacji (sygnały niezależne będące repliką sygnałów oryginalnych). Sygnałami wejściowymi sieci neuronowej są sygnały zmieszane (trzy środkowe wykresy czasowe na rys. 9.3b). Ze względu na ogromną różnicę amplitud sygnałów oryginalnych w sygnałach zmieszanych podawanych na sieć widoczne są jedynie największe sygnały szumu, natomiast sygnały o małej amplitudzie są niezauważalne.
Proces separacji przeprowadzony został przy zastosowaniu funkcji nieliniowych i
oraz współczynniku uczenia
zmienianym adaptacyjnie przy wartości startowej równej 2000. Taki dobór parametrów pozwolił na separację wszystkich sygnałów, niezależnie od poziomu amplitud (trzy dolne wykresy czasowe na rys. 9.3c). Odseparowane przez sieć sygnały charakteryzowały się jednakowym poziomem amplitud, uzyskanym dzięki wprowadzeniu sprzężenia własnego neuronów. Ich kolejność występowania jest inna niż kolejność sygnałów oryginalnych.
3.5. Sieć jednokierunkowa do separacji sygnałów
Wadą sieci rekurencyjnej jest potrzeba zapewnienia bezwzględnej stabilności przy separacji sygnałów, szczególnie wtedy, gdy macierz mieszająca jest bardzo źle uwarunkowana, a sygnały źródłowe różnią się znacznie pod względem amplitud. Należy ponadto zauważyć, że w sieci rekurencyjnej w każdym kroku występuje konieczność inwersji macierzy wagowej (wzór 9.8), co wydatnie zwiększa złożoność obliczeniową algorytmu. Zastosowanie sieci jednokierunkowej bez sprzężeń zwrotnych pozwala wyeliminować te problemy. Większość współczesnych rozwiązań ślepej separacji unika tych problemów stosując przekształcenie liniowe
![]() |
(9.13) |
odpowiadające sieci liniowej o jednym kierunku przepływu sygnałów. Macierz występująca w tej zależności jest macierzą pełną (nie występują założenia co do wartości zerowych pewnych wag). Sieć jednokierunkowa odpowiadające tej zależności pełni identyczną funkcję jak sieć sprzężeniem zwrotnym. Przyjmując, że wektor wyjściowy
w obu rodzajach sieci jest równy sobie, można zapisać
![]() |
(9.14) |
W równaniu tym oznacza macierz wag sieci rekurencyjnej, a
macierz sieci jednokierunkowej. Oznacza to, że obie sieci będą sobie równoważne, jeśli
![]() |
(9.15) |
W praktyce odchodzi się od równań różniczkowych na rzecz równania różnicowego, jako powszechnie stosowanej metody rozwiązania równań różniczkowych. Powstało wiele odmian algorytmów uczących implementujących relacje (9.13), charakteryzujących się szczególnie dobrymi własnościami separacji przy złym uwarunkowaniu macierzy mieszającej lub przy dużym zróżnicowaniu amplitud sygnałów źródłowych si(t). Można je w ogólności zaliczyć do algorytmów bazujących na statystykach drugiego rzędu (ang. Second Order Statistics - SOS) oraz na statystykach wyższych rzędów (ang. Higher Order statistics - HOS) [8]. Większość z tych algorytmów rozwinęła się na bazie teorii statystycznego przetwarzania sygnałów i nie wykorzystuje bezpośrednio zależności odnoszących się do sieci neuronowych.
Jednym z najprostszych algorytmów klasy SOS jest AMUSE (ang. Algorithm for Multiple Unknown Source Extraction). Algorytm ten bazuje na diagonalizacji macierzy kowariancji (9.3). Wykorzystuje dwie podstawowe operacje: wybielanie (ang. prewhitening) oraz diagonalizację macierzy kowariancji dla jednego opóźnienia czasowego. Można go traktować jako dwukrotne zastosowanie metody składników głównych PCA [8].
![]() |
(9.16) |
-
Następnie obliczana jej dekompozycja macierzy kowariancji według wartości własnych (ang. Eigen Value Decomposition - EVD),
![]() |
(9.17) |
w której jest macierzą ortogonalną, a
macierzą diagonalną.
![]() |
(9.18) |
Wektor sygnałów obserwowanych w wyniku wybielenia jest transformowany w wektor sygnałów wybielonych
![]() |
(9.19) |
-
Dla sygnałów wybielonych (zdekorelowanych)
obliczana jest nowa macierz kowariancji, tym razem z opóźnieniem czasowym równym jeden, z jednoczesną dekompozycją SVD
![]() |
(9.20) |
gdzie jest macierzą diagonalną wartości osobliwych macierzy
a macierze
,
są ortogonalne.
![]() |
(9.21) |
Nieznana macierz mieszająca może więc być estymowana w postaci odwrotnej do
, czyli (
). Algorytm AMUSE jest zwykle dość wrażliwy na szum zakłócający pomiary. Dla zwiększenia jego odporności można w drugim kroku zamiast macierzy kowariancji dla jednego opóźnienia czasowego użyć liniowej kombinację wielu macierzy kowariancji dla różnych opóźnień czasowych. Można zastosować równoczesną diagonalizację kilkunastu lub nawet kilkudziesięciu macierzy kowariancji. W takim przypadku macierz kowariancji

![]() |
(9.27) |
dla . Taki sposób postępowania został zaimplementowany miedzy innymi w algorytmie SOBI (ang. Second Order Blind Identification).
W przypadku algorytmów bazujących na statystykach wyższych rzędów wykorzystuje się niezależność statystyczną sygnałów (ICA). We współczesnych rozwiązaniach algorytmów uczących macierz otrzymuje się z iteracji na iterację w postaci dyskretnej
![]() |
(9.28) |
unikając w ten sposób potrzeby rozwiązania układu równań różniczkowych. Istnieje wiele różnych rozwiązań ślepej separacji należących do rodziny ICA. Spośród nich można wymienić [8]:
-
algorytm Cichockiego-Amari-Younga
![]() |
(9.29) |
gdzie jest macierzą diagonalną o elementach
(najczęściej
).
-
algorytm opierający się na gradiencie naturalnym prof. Amari
![]() |
(9.30) |
Macierz dobiera się podobnie jak w algorytmie Cichockiego-Amari-Younga.
-
algorytm Cardossa
![]() |
(9.31) |
gdzie i
są współczynnikami liczbowymi z zakresu
.
Podobnie jak w sieciach rekurencyjnych, współczynnik uczenia stanowi funkcję malejącą w czasie do zera. Zwykle jest to funkcja wykładnicza postaci
, o wartości amplitudy
i stałej czasowej
dobieranej indywidualnie dla poszczególnych przypadków.
3.6. Toolbox ICALAB
W chwili obecnej dostępny jest zbiór programów Matlaba do ślepej separacji sygnałów, tworzący oddzielny specjalizowany toolbox, zwany ICALAB [74]. Został opracowany koncepcyjnie przez zespół pracowników RIKEN pod kierownictwem prof. A. Cichockiego i S. I. Amari. Pakiet programów ICALAB umożliwia separację sygnałów zmieszanych przy wykorzystaniu różnych kryteriów, takich jak niezależność statystyczna sygnałów, dekorelacja, predykcja liniowa, gładkość sygnałów, rzadkość macierzy. Szczegóły dotyczące tego programu wykraczają poza zakres podręcznika. Można je znaleźć bądź w książce [8] bądź w pomocy (help) do programu ICALAB. W procesie separacji sygnałów zastosowano trzy podstawowe grupy operacji [8]:
-
wstępne przetwarzanie sygnałów (preprocessing),
-
właściwą ślepą separację sygnałów (ICA/BSS)
-
końcowe przetwarzanie sygnałów (postprocessing)
jak to przedstawiono na rys. 9.4, przy czym preprocessing oraz postprocessing są opcjonalne.

Preprocessing umożliwia wstępną filtrację sygnałów, redukcję danych przy użyciu metody składników głównych PCA, dekompozycję sygnałów szerokopasmowych na wiele sygnałów wąskopasmowych itd. Blok ICA/BSS odpowiada za właściwą separację sygnałów, czyli dekompozycję sygnałów na prostsze składniki (np. składniki niezależne, zdekorelowane, gładkie, itp.).
Właściwa ślepa separacja sygnałów (ICA/BSS, SCA, NMF) odbywa się przy zastosowaniu różnych algorytmów separacji wybieranych przez użytkownika spośród wielu zainstalowanych w programie
Postprocessing umożliwia eliminację niepożądanych składników oraz szumów poprzez tak zwaną deflację. Deflacja polega na odtworzeniu sygnałów oryginalnych xi(t) na podstawie sygnałów odseparowanych yi(t) przy wyzerowaniu wybranych przez użytkownika sygnałów odseparowanych.
Program pozwala też badać wpływ poszczególnych składników i sygnałów źródłowych na sygnały obserwowane oraz ich rozkład, lokalizację i wizualizację. Został również uogólniony na ślepą separację obrazów. Pakiet ICALAB może być użyteczny w takich zastosowaniach jak: estymacja nieznanych sygnałów źródłowych oraz określenie ich liczby, redukcja szumów i eliminacja niepożądanych interferencji, redukcja modelu i eliminacja redundancji, dekompozycja złożonych sygnałów na składniki prostsze lub łatwiej interpretowalne fizycznie.
3.7. Przykład zastosowania ICALAB do separacji sygnałów mowy
Przykład zastosowania programu ICALAB dotyczy separacji wypowiedzi czterech wyrażeń: Politechnika Warszawska, Wojskowa Akademia Techniczna, Sieci neuronowe oraz Ala ma kota. Sygnały te zostały uzupełnione przez sygnał losowy. Wszystkie 5 sygnałów zostały zmieszane przy pomocy macierzy losowej A. W następnym etapie tak zmieszane wektory podlegały ślepej separacji przy użyciu jednego z wybranych algorytmów typu SOS (AMUSE) [74]. Na rys. 9.5 przedstawiono wyniki wygenerowane przez program przedstawiające: sygnały oryginalne przed zmieszaniem, sygnały po zmieszaniu, sygnały odtworzone oraz macierz przedstawiającą iloczyn A*W (przy idealnej separacji powinna to być postać macierzowa o wartości 1 na jednej z 5 pozycji w każdym kanale odtworzonym). Wynik działania jest zbliżony do idealnego (przesłuchy z innych kanałów są minimalne, co odzwierciedlone jest na niediagonalnych pozycjach macierzy w postaci bardzo małych wartości, największa wartość niediagonalna to 0.1130). Odtworzenie słuchowe sygnałów wynikowych potwierdza bardzo dobre działanie systemu separacji.
a) |
b) |
c) |
d) |
3.8. Zadania i problemy
1. Wykorzystując funkcję xcorr Matlaba wyznaczyć funkcje autokorelacji i korelacji wzajemnej dwu losowych wektorów 100 elementowych o rozkładzie gaussowskim (wartości znormalizowane). Narysować przebieg tej funkcji dla różnych opóźnień.
2. Wykorzystując funkcję xcorr Matlaba wyznaczyć funkcje autokorelacji i korelacji wzajemnej dwu wektorów 100 elementowych z których jeden składa się z elementów funkcji sinusoidalnej a drugi funkcji wykładniczej
. Narysować przebieg tej funkcji dla różnych opóźnień.
3. Wykorzystując program ICALAB dokonać separacji dwu sygnałów: prostokątnego (np. oraz sinusoidalnego (np.
dla wybranych wartości
oraz
i zróżnicowanych wartości
i
, np.
,
oraz
,
.
4. Sprawdzić działanie sieci separującej (program ICALAB) dla 5 sygnałów wygenerowanych w sposób dowolny. Rozważyć przypadek sygnałów zależnych i niezależnych oraz sygnałów będących superpozycją sygnału deterministycznego i szumu losowego.
5. Pokazać związek występujący między macierzą wag sieci separującej rekurencyjnej i jednokierunkowej.
6. Korzystając z funkcji audiorecorder Matlaba dokonać nagrania 3 różnych wypowiedzi tworząc 3 wektory o tej samej długości. Utworzyć z nich macierz X dodając czwarty sygnał szumu losowego (funkcja randn Matlaba) o dużej wariancji (amplituda szumu wielokrotnie większa od amplitudy sygnałów mowy). Wykorzystując program ICALAB sygnały te poddać zmieszaniu przy założeniu różnej macierzy mieszającej , a następnie separacji. Odtworzyć dźwiękowo sygnały zmieszane oraz sygnały odseparowane używając funkcji soundsc.
7. Sprawdzić i porównać działanie różnych algorytmów ślepej separacji sygnałów zaimplementowanych w programie ICALAB wykorzystując sygnały wbudowane w bazie danych tego pakietu.
3.9. Słownik
Słownik opanowanych pojęć
Wykład 9
ICA – ślepa separacja sygnałów niezależnych (ang. Independent Component Analysis).
BSS – uogólnienie ICA na inne rodzaje dekompozycji sygnałów (BSS - ang. Blind Signal Separation) .
Niezależność
statystyczna sygnałów – własność sygnałów oznaczająca, że dwuwymiarowa łączna gęstość
prawdopodobieństwa jest równa
iloczynowi jednowymiarowych funkcji gęstości zmiennej
oraz
.
SOS – statystyki drugiego rzędu (ang. Second Order Statistics).
HOS – statystyki wyższych rzędów (ang. Higher Order Statistics).
EVD – dekompozycja macierzy według wartości własnych (ang. Eigen Value Decomposition).
AMUSE – jeden z algorytmów dekompozycji BSS wykorzystujący SOS.
Toolbox ICALAB – program komputerowy z interfejsem graficznym w Matlabie do ślepej separacji sygnałów.
Preprocessing – wstępne przetwarzanie sygnałów.
Postprocessing – końcowe przetwarzanie sygnałów po właściwej operacji.
4. Literatura
1. Bengio Y., LeCun Y., Hinton G., Deep Learning, Nature, 2015, vol. 521, pp. 436–444.
2. Brownlee J., Deep Learning for Natural Language Processing. Develop Deep Learning Models for your Natural Language Problems, Ebook, 2018.
3. Breiman L., Random forests, Machine Learning, 2001, vol. 45, No 11, pp. 5–32.
4. Banerjee S., Linear algebra and matrix analysis for statistics, 2012, London.
5. Brudzewski K., Osowski S., Markiewicz T., Ulaczyk J., Classification of gasoline with supplement of bio-products by means of an electronic nose and SVM neural network, Sensors and Actuators - Chemical, 2006, vol. 113, No 1, pp. 135-141.
6. Chen S., Cowan C.F., Grant P.M., Orthogonal least squares learning algorithm for radial basis function networks, IEEE Trans. Neural Networks, 1991, vol. 2, pp. 302–309.
7. Christensen R., Johnson W. O., Branscum A. J., Hanson T. E., Bayesian ideas and data analysis: an introduction for scientists and statisticians, 2010, Chapman & Hall/CRC Science
8. Cichocki A., Amari S. I., Adaptive blind signal and image processing, 2003, Wiley, New York.
9. Crammer K. , Singer Y., On the learnability and design of output codes for multiclass problems. Computational Learning Theory, 2000, pp. 35-46.
10. Duda, R.O., Hart, P.E., Stork, P., Pattern classification and scene analysis, 2003, Wiley, New York.
11. Fogel, L.J., Intelligence through simulated evolution : forty years of evolutionary programming, 1999, Wiley, New York.
12. Fukushima K.: Neocognitron - a self-organizing neural network model for a mechanism of pattern recognition unaffected by shift in position. Biological Cybernetics 1980, vol.. 36, No 4, pp. 193–202, doi:10.1007/bf00344251.
13. Genc H., Cataltepe Z., Pearson T., A new PCA/ICA based feature selection method, IEEE 15th In Signal Processing and Communications Applications, 2007, pp. 1-4.
14. Gill P., Murray W., Wright M., Practical optimization, 1981, Academic Press, London.
15. Goldberg D., Algorytmy genetyczne i ich zastosowania, 2003, WNT Warszawa.
16. Golub G., Van Loan C., Matrix computations, 1996, John Hopkins University Press, Baltimore.
17. Gao H., Liu Z., Van der Maaten L., Weinberger K., Densely connected convolutional networks, CVPR, vol. 1, no. 2, p. 3. 2017.
18. Goodfellow I., Bengio Y., Courville A.: Deep learning 2016, MIT Press, Massachusetts (tłumaczenie polskie: Deep Learning. Współczesne systemy uczące się, Helion, Gliwice, 2018).
19. Goodfellow I., Pouget-Abadie J., Mirza M, Xu M., Warde-Farley B., Ozair D., Courville A. Bengio Y., Generative Adversarial Nets (PDF). Proceedings of the International Conference on Neural Information Processing Systems (NIPS 2014). pp. 2672–2680.
20. Greff K., Srivastava R. K., Koutník J., Steunebrink B. R., Schmidhuber J., LSTM: A search space odyssey, IEEE Transactions on Neural Networks and Learning Systems, vol. 28, No 10, pp. 2222-2232, 2017.
21. Gunn S., Support vector machines for classification and regression, ISIS Technical report, 1998, University of Southampton.
22. Guyon I., Elisseeff A., An introduction to variable and feature selection, J. Mach. Learn. Res., 2003, vol. 3, pp. 1157-1182.
23. Guyon, I., Weston, J., Barnhill, S., Vapnik, V., Gene selection for cancer classification using Support Vector Machines, Machine Learning, 2002, vol. 46, pp. 389-422.
24. Haykin S., Neural networks, a comprehensive foundation, Macmillan College Publishing Company, 2000, New York.
25. He K., Zhang X, Ren S, Sun J., Deep Residual Learning for Image Recognition, 2015, http://arxiv.org/abs/1512.03385.
26. Hinton G. E., Salakhutdinov R. R., Reducing the dimensionality of data with neural networks, Science, 313:504-507, 2006.
27. Howard A., Zhu M., Chen B., Kalenichenko D., MobileNets: Efficient convolutional neural networks for mobile vision applications, arXiv: 1704.04861v1 [cs.CV], 2017.
28. Hsu, C.W., Lin, C.J., A comparison methods for multi class support vector machines, IEEE Trans. Neural Networks, 2002, vol. 13, pp. 415-425.
29. Huang G., Liu Z., van der Maaten L., Weinberger K., Densely connected convolutional networks, arXiv: 1606.06993v5 [cs.CV] 2018.
30. Iandola F, Han S., Moskevicz M., Ashraf K., Dally W., Keutzer K, Squeezenet: AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size, Conference ICLR, 20017. pp. 1-13.
31. Joachims T., Making large scale SVM learning practical, (in ”Advances in kernel methods - support vector learning”, B. Scholkopf, C. Burges, A. Smola eds). MIT Press, Cambridge, 1998, pp. 41-56.
32. Kecman V., Support vector machines, neural networks and fuzzy logic models, 2001, Cambridge, MA: MIT Press.
33. Kingma P, Welling M., An introduction to variational autoencoders, Foundations and Trends in Machine Learning, 12:307-392, 2019.
34. Krizhevsky A., Sutskever I., Hinton G., Image net classification with deep convolutional neural networks, Advances in Neural Information Processing Systems, vol. 25, pp. 1-9, 2012.
35. Kruk M., Świderski B., Osowski S., Kurek J., Słowińska M., Walecka I., Melanoma recognition using extended set of descriptors and classifiers, Eurasip Journal on Image and Video Processing, 2015, vol. 43, pp. 1-10, DOI 10.1186/s13640-015-0099-9
36. Kuncheva L., Combining pattern classifiers: methods and algorithms, 2015, Wiley, New York.
37. LeCun Y., Bengio Y., Convolutional networks for images, speech, and time-series. 1995, in Arbib M. A. (editor), The Handbook of Brain Theory and Neural Networks. MIT Press, Massachusetts.
38. Lecture CS231n: 2017, Stanford Vision Lab, Stanford University.
39. Lee K.C., Han I., Kwon Y., Hybrid Neural Network models for bankruptcy prediction, Decision Support Systems, 18 (1996) 63-72.
40. Leś T., Osowski S., Kruk M., Automatic recognition of industrial tools using artificial intelligence approach, Expert Systems with Applications, 2013, vol. 40, pp. 4777-4784.
41. Lin C. J., Chang, C. C., LIBSVM: a library for support vector machines. http://www. csie. ntu. edu. tw/cjlin/libsvm
42. Markiewicz T., Sieci neuronowe SVM w zastosowaniu do klasyfikacji obrazów komórek szpiku kostnego, rozprawa doktorska Politechniki Warszawskiej, 2006.
43. Matlab user manual MathWorks, 2021, Natick, USA.
44. Michalewicz Z., Algorytmy genetyczne + struktury danych = programy ewolucyjne, WNT, Warszawa 1996.
45. Osowski S., Cichocki A., Siwek K., Matlab w zastosowaniu do obliczeń obwodowych i przetwarzania sygnałów, 2006, Oficyna Wydawnicza PW.
46. Osowski S., Sieci neuronowe do przetwarzania informacji, 2020, Oficyna Wydawnicza PW.
47. Osowski S., Szmurło R., Siwek K., Ciechulski T., Neural approaches to short-time load forecasting in power systems – a comparative study, Energies, 2022, 15, pp. 3265.
48. Osowski S., Siwek K., R. Szupiluk, Ensemble neural network approach for accurate load forecasting in the power system, Applied Mathematics and Computer Science, 2009, vol.19, No.2, pp. 303-315.
49. Osowski S., Metody i narzędzia eksploracji danych , Wydawnictwo BTC, Warszawa, 2013
50. Patterson J., Gibson A., Deep Learning: A Practitioner's Approach (tłumaczenie polskie : Deep learning. Praktyczne wprowadzenie), Helion, Gliwice, 2018.
51. Platt L., Fast training of SVM using sequential optimization (in Scholkopf, B., Burges, B., Smola, A., Eds. Advances in kernel methods – support vector learning. Cambridge: MIT Press), 1998, 185-208.
52. Redmon J., Divval S., Girshick R., Farhafi A., You Only Look Once: unified. Real time object detection, axXiv: 1506.02640v5 [cs.CV], 2016
53. Ren S., He K., Girshick R., Sun J., Faster R-CNN: toward real time object detection with region proposal networks, IEEE trans. PAMI, vol. 39, pp. 1137-1149, 2017
54. Riedmiller M., Braun H.: RPROP – a fast adaptive learning algorithm. Technical Report, University Karlsruhe, Karlsruhe 1992.
55. Ridgeway G., Generalized Boosted Models: A guide to the gbm package. 2007
56. Ronneberger O., Fischer P., Brox T.: U-Net: Convolutional Networks for Biomedical Image Segmentation. 2015, arXiv:1505.04597.
57. Sammon J. W., A nonlinear mapping for data structure analysis, IEEE Trans. on Computers, 1969, vol. 18, pp. 401-409.
58. Schmidhuber J., Deep learning in neural networks: An overview, Neural Networks, vol. 61, pp. 85-117, 2015.
59. Schölkopf B., Smola A., Learning with kernels, 2002, MIT Press, Cambridge MA.
60. Schurmann J., Pattern classification, a unified view of statistical and neural approaches, 1996, Wiley, New York.
61. Sandler, M., Howard, A., Zhu, M., Zhmoginov, A. and Chen, L.C. "MobileNetV2: Inverted Residuals and Linear Bottlenecks." In 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition (pp. 4510-4520). IEEE.
62. Swiderski B., Kurek J., Osowski S., Multistage classification by using logistic regression and neural networks for assessment of financial condition of company, Decision Support Systems, 2012, vol. 52, No 2, pp. 539-547
63. Szegedy C, Liu W., Jia Y., Sermanet P., Reed S., Anguelov D., Erhan D., Vanhoucke V., Rabinovich A., Going deeper with convolutions, arXiv: 1409.4842v1, 2014.
64. Szegedy C, Ioffe S., Vanhoucke V. Inveption-v4, Inception-ResNet and the impact of residual connections on learning, arXiv:1602.07261v2, 2016.
65. Tan P.N., Steinbach M., Kumar V., Introduction to data mining, 2006, Pearson Education Inc., Boston.
66. Tan M. Le Q., EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks, arXiv:1905.11946 [cs.LG], 2020
67. Van der Maaten L., Hinton G., Visualising data using t-SNE, Journal of Machine Learning Research, 2008, vol. 9, pp. 2579-2602.
68. Vapnik V., Statistical learning theory, 1998, Wiley, New York.
69. Wagner T., Texture analysis (w Jahne, B., Haussecker, H., Geisser, P., Eds. Handbook of computer vision and application. Boston: Academic Press), 1999, ss. 275-309.
70. Zeiler M. D., Fergus R.: Visualizing and Understanding Convolutional Networks. 2013, pp. 1-11, https://arxiv.org/abs/1311.2901.
71. Zhang X., Zhou X., Lin M., Sun J., ShuffleNet: an extremely efficient convolutional neural network for mobile devices, arXiv: 1707.01083v2 [cs.CV], 2017.
72. Zheng G., Liu S., Zeming F. W., Sun L. J., YOLOX: Exceeding YOLO Series in 2021, arXiv:2107.08430v2 [cs.CV]
73. https://www.analyticsvidhya.com/blog/2021/09/adaboost-algorithm-a-complete-guide-for-beginners/
74. http://www.bsp.brain.riken.jp/ICALAB, ICALAB Toolboxes. A. Cichocki, S. Amari, K. Siwek, T. Tanaka et al.
75. https://github.com/BVLC/caffe/tree/master/models/bvlc_googlenet.
76. https://towardsdatascience.com/understanding-variational-autoencoders-vaes-f70510919f73
77. https://www.jeremyjordan.me/variational-autoencoders/
78. Osowski S., Szmurło R., Matematyczne modele uczenia maszynowego w językach matlab i Python, OWPW, 2023, Warszawa.