Rozpoznawanie zakłóconych przebiegów sinus i cosinus

Problem postawiony do rozwiązania to stworzenie takiej sztucznej sieci neuronowej, która będzie potrafiła prawidłowo rozpoznać zakłócone przebiegi sinusoidy i cosinusoidy.

Po analizie problemu przyjęto następujące założenia:
  1. Proces uczenia sieci zostanie przeprowadzony czystymi, niezniekształconymi sygnałami sinusoidy i cosinusoidy
  2. Do uczenia zostanš wykorzystane próbki tych sygnałów z przedziału 0 - 2 Pi
  3. Cały przedział zostanie podzielony na 629 wartości przy czym 315 próbek o numerach parzystych (plus zero) zostanie wykorzystana do nauki a pozostałe 315 próbek o numerach nieparzystych (plus zero) - do weryfikacji, przy czym zostaną utworzone dwa wektory weryfikacyjne o następujących kolejnościach próbek: sinus - cosinus oraz cosinus - sinus.
  4. W celu sprawdzenia czy sieć prawidłowo rozpoznaje sygnały zakłócone, na wejścia nauczonej sieci zostanš podane następujące sygnały zakłócone i zakłócające:

Wybór rodzaju zakłóceń i ich poziomów został dokonany całkowicie przypadkowo.

Wykresy tych sygnałów pokazane sš poniżej :

Ze względu na przyjęte założenia, podstawowy schemat sieci wygląda następująco:

315 - X - 2

Sygnał 1 na wyjściu pierwszym sieci i 0 na drugim będzie wskazywać rozpoznanie sinusoidy, odwrotnie - cosinusoidy. Ilość X neuronów w warstwie ukrytej zostanie ustalona doświadczalnie podczas procesu uczenia.

Jeżeli sieć nauczy się prawidłowo rozpoznawać sygnały, to wyniki przetwarzania winny być zbliżone do następujących:

Przebieg

Wy 1

Wy 2

Ilość

Sinusoidy

1

0

trzy wyniki

Cosinusoidy

0

1

trzy wyniki

Pozostałe

0.5

0.5

1 + 9 wyników

Nie spodziewam się uzyskania na wyjściach dokładnie wartości 1 i 0 gdyż przyjęty błąd obliczeń będzie wynosił 0.1.Wartości powyżej 0.8 zostaną zinterpretowane jako 1 a poniżej 0.2 - jako 0.

Otrzymane wyniki

 

Podczas uczenia ustalono optymalną ilość neuronów w warstwie ukrytej sieci. Wynosi ona 21. Schemat sieci wgląda zatem następująco:

315 - 21 - 2

A oto wartości na wyjściach sieci otrzymane po przetwarzaniu:

Ciąg lub wektor

Rodzaj przebiegu

Wyniki otrzymane na wyjściach sieci

komentarz

Ciąg uczący

Sinusoida

Wy1 = 0.892072

Wy2 = 0.073418

rozpoznana sinusoida

Cosinusoida

Wy1 = 0.122712

Wy2 = 0.930686



rozpoznana cosinusoida

Wektor weryfikujšcy nr 1:

Sinusoida

Wy1 = 0.892882

Wy2 = 0.072856

rozpoznana sinusoida

Cosinusoida

Wy1 = 0.122832

Wy2 = 0.929411



rozpoznana cosinusoida

Wektor weryfikujšcy nr 2:

Cosinusoida

Wy1 = 0.122832

Wy2 = 0.929411



rozpoznana cosinusoida

Sinusoida

Wy1 = 0.892882

Wy2 = 0.072856

rozpoznana sinusoida

Sygnały zakłócone

Sinus + 9harm * 0.25

Wy1 = 0.899628

Wy2 = 0.071504

rozpoznana sinusoida

Sinus - 9harm * 0.3

Wy1 = 0.878691

Wy2 = 0.082762

rozpoznana sinusoida

Sinus + prz.przyp * 0.2

Wy1 = 0.895825

Wy2 = 0.070182

rozpoznana sinusoida

Cosinus + 13harm * 0.15

Wy1 = 0.132212

Wy2 = 0.939120



rozpoznana cosinusoida

Cosinus - 13harm * 0.21

Wy1 = 0.115215

Wy2 = 0.910011



rozpoznana cosinusoida

Cosinus + prz.przyp * 0.17

Wy1 = 0.119841

Wy2 = 0.936379



rozpoznana cosinusoida

Sygnały zakłócające

Przebieg przypadkowy

Wy1 = 0.777438

Wy2 = 0.329340


brak rozpoznania


Ciąg wartości 0.1

 

Ciąg wartości 0.2

 

Ciąg wartości 0.3

 

Ciąg wartoci 0.4

 

Ciąg wartości 0.5

 

Ciąg wartości 0.6

 

Ciąg wartości 0.7

 

Ciąg wartości 0.8

 

Ciąg wartości 0.9

Wy1 = 0.636962

Wy2 = 0.524754

Wy1 = 0.626082

Wy2 = 0.525506

Wy1 = 0.639944

Wy2 = 0.522830

Wy1 = 0.660901

Wy2 = 0.517370

Wy1 = 0.682004

Wy2 = 0.513325

Wy1 = 0.700666

Wy2 = 0.512225

Wy1 = 0.716184

Wy2 = 0.513983

Wy1 = 0.728627

Wy2 = 0.518007

Wy1 = 0.738340

Wy2 = 0.523670


brak rozpoznania

 

brak rozpoznania

 

brak rozpoznania

 

brak rozpoznania

 

brak rozpoznania

 

brak rozpoznania

 

brak rozpoznania

 

brak rozpoznania

 

brak rozpoznania