m5

#K$Sieć neuronowa jako filtr sygnału z zakłóceniami

Kiedy sieć neuronowa ma dokładnie tyle samo neuronów wejściowych co wyjściowych oraz jej proces uczenia oraz pracy zasadza się na stanie przyporządkowania (odtworzenia) sygnałowi wejściowemu dokładnie określonego sygnału wyjściowego mamy wtedy do czynienia z siecią autoasocjacyjną (albo skojarzeniową). Sieci takie w swym zamyśle konstrukcyjnym nie mają za zadanie odtwarzać dokładnie sygnału wejściowego na wyjściu. Idea pracy takiej sieci polega na tym, że sieć po otrzymaniu na wejście sygnału podobnego do sygnału uczestniczącego w procesie uczenia odtworzy (skojarzy) na wyjściu wzorzec odpowiadający sygnałowi z fazy uczenia.

Podstawową zasadą uczenia jest to aby sieć trenowała swe “umiejętności” odtwarzanie wzorca (kilku – kilkunastu wzorców – to zależy od pojemności pamięciowej sieci, w przybliżeniu od ilości neuronów w warstwie ukrytej) podawanego na wejście w różnych odmianach (np. w różny sposób zakłóconego). Jeśli dane mają postać szeregu czasowego, to warianty otrzymuje się dla różnych opóźnień w czasie (kątów przesunięcia fazowego).

Jednym z istotnych zastosowań autoasocjacyjnej sieci neuronowej jest wykrywanie sygnału na tle szumu.


W naszym programie zaprezentujemy uczenie sieci filtrowania zadanego sygnału. Sygnał wprowadzany jest do programu przy pomocy pliku zawierającego trzy kolumny:

W przypadku gdy jesteśmy zadowoleni już z efektów działania naszej wytrenowanej sieci na wejście (zmiana pliku) można podać inaczej zakłócony sygnał wejściowy – dla testowania.


struktury danych dla algorytmu uczenia:

NRob - liczność zbioru uczącego, określana automatycznie na podstawie ilości elementów zapisanych w pliku ciągu uczącego

M - ilość wag w neuronie, w programie ustalona arbitralnie na 5, można to zmodyfikować poprzez ingerencję w dostarczony kod źródłowy programu prezentacyjnego,

WagiSieci - tablica określająca rozmiar sieci, ilość elementów sieci – neuronów o M. wagach wynosi NRob, liczebność tablicy to iloczyn M*NRob

WykArr - tablica z ciągami wzorcowym oraz zaszumionym (liczebność NRob*2)

aynok - stała określająca wektor ciągu uczącego w tablicy WayArr – wzorzec z zakłóceniami

ayok - stała określająca wektor ciągu uczącego w tablicy WayArr – wzorzec bez zakłóceń

Wspolczynnik – parametr określający szybkość uczenia neuronów, przed procesem uczenia użytkownik może


Randomize;

for J := 1 to NRob do

begin

for I := 1 to M do

WagiSieci[J, I] := -0.1 + 0.2 * Random;

if { uczenia ma uwzględniać wagę środkową } then

WagiSieci[J, Krok] := 1.0;

end;


for K := 1 to { ilość prezentacji ciągu uczącego} do

begin

for J := Krok - 1 TO (NRob – Krok) do

begin

Wyjscie := 0.0;

for I := 1 to M do

Wyjscie := Wyjscie+WagiSieci[J,I]*WykArr[J+I-Krok, aynok];

{ obliczenie błędu między wyjściem a wzorcem }

Blad := WykArr[J, ayok] - Wyjscie;

{ korekta wag }

for I := 1 to M do

WagiSieci[J, I] := WagiSieci[J,I]+ Wspolczynnik* Blad*WykArr[J+I-Krok, aynok];

end; {of J := ...}

end; {of K := ...}


Testowanie odbywa się poprzez podanie na wejście sieci sygnału zaszumionego. Uzyskuje się w ten sposób wykresy z nałożonym (opcjonalnie) sygnałem wzorcowym, sygnałem zakłóconym lub/i sygnałem przefiltrowanym.

Opis modułu aplikacji

Przykład ten prezentuje działanie sieci neuronowej stanowiącej autoasocjacyjny filtr sygnałów z zakłóceniami. Okno prezentacyjne posiada dwie zakładki a co za tym idzie dwa ekrany robocze: Ciąg uczący oraz Uczenie sieci – wykresy. Operacje na ekranie Uczenie sieci – wykresy możliwe jest dopiero po określeniu ciągu uczącego: wygenerowaniu nowego lub wczytani wcześniej przygotowanego w pliku tekstowym (istotne jest aby plik posiadał rozszerzenie .cgn)

Po wskazaniu zakładki Ciąg uczący otrzymujemy obrazek jak na poniższym rysunku:

Okno to zawiera listę na której są umieszczone przyciski oraz kontrolki operacyjne. Przycisk Generuj służy do automatycznego wygenerowania ciągu uczącego (zawiera on sygnał sinusoidy jako sygnał wzorcowy oraz jego losowo zakłócony obraz). Przycisk Wczytaj pozwala powtórnie wczytać zawartość wskazanego pliku z ciągiem uczącym. Przycisk otwarcia pliku powoduje wywołanie okna dla wybierania “Plik z ciągami uczącymi”. Znajduje się tu również pole z nazwą pliku, pasek określający postęp przeprowadzanej czynności (wczytywanie pliki, generacja nowego ciągu uczącego) oraz duży edytor zawierający obraz wczytanego lub wygenerowanego ciągu z danymi do uczenia i testowania sieci neuronowej.


Wybrany ciąg może zostać przegenerowany przez użytkownika (na tym etapie użytkownik ma możliwość dowolnej modyfikacji ciągu testowego – np. w edytorze Notepad.exe), a następnie jest wczytywany do

Okno do wyboru pliku z ciągiem uczącym, jeśli wprowadzimy tu nazwę nieistniejącego pliku a następnie wykonamy operację Generuj nastąpi utworzenie nowego pliku z ciągiem uczącym o podanej nazwie.




Następnym etapem jest przystąpienie do uczenia oraz testowania sieci neuronowej co możemy wykonać przełączając okno na ekran skojarzony z zakładką Uczenie sieci – wykresy. Po wybraniu akcji przerysowania wykresu (przycisk Przerysuj) otrzymujemy obraz jak na rysunku poniżej:


Ekran ten zawiera duże pole do prezentacji wykresów oraz standardowo listę z narzędziami dostępnymi w tej części prezentacji. Możliwe operacje to wskazanie parametrów dla akcji Przerysuj (przełączniki: sygnał wzorcowy, sygnał zaszumiony, sygnał przefiltrowany – kolory tych przełączników odpowiadają odpowiednim krzywym i łamanym na wykresie), wykonanie akcji Przerysuj – co można wykonywać po dowolnej ilości kroków uczących przez co łatwym staje się proces podglądania postępu uczenia oraz jego jakości. Następną bardzo istotną częścią listwy operacji jest klasa parametrów i funkcji związanych z procesem uczenia sieci neuronowej filtrowania sygnału zakłóconego. Do tej grupy należą: parametr ile kroków – poprzez ustawienie tego parametru określamy ile pełnych prezentacji ciągu uczącego ma zostać wykonana w danym cyklu treningu, przełącznik waga środkowa – pozwala wprowadzić do procesu zadawania początkowych (losowych) wag neuronów ustaloną wartość na środku wag (w naszym wypadku na wadze numer 3) wartość stałą dla wszystkich neuronów równą 1, parametr współczynnik – jest to wartość określająca szybkość uczenia (im większy typ proces uczenia jest bardziej forsowny – wagi w każdym kroku są mocno modyfikowane).

Listwa narzędziowa sekcji Uczenie sieci – wykresy jest zobrazowana na poniższym rysunku:

Po ustaleniu tych wartość możemy przystąpić do uczenia poprzez wybór przycisku Ucz sieć. zakończenie procesu uczenia obrazowane zatrzymaniem się zmian wartości pola wykonany krok na liczbie ilości kroków do wykonanie pozwala nam wykonać funkcję przerysowania przez co możemy ocenić jakość przeprowadzonego procesu uczenia.

Złożenie wykresów po wykonanym procesie uczenia (parametry: wykonane kroki uczące w ilości 3, współczynnik postępu uczenia równy 0,15, bez wagi środkowej) obrazuje poniższy rysunek:

Ja łatwo zaobserwować dobre efekty przy filtrowaniu zakłóconych (nie za mocno) sygnałów można otrzymać przy użyciu bardzo prostej sieci liniowej – jedna warstwa oraz bardzo krótkim procesie uczenia – 3 iteracje pokazowe. (Uwaga: wszystkie okienka tej prezentacji są wykonywane na tym samym zestawie ciągu uczącego)


# C_M5

K sieć jako filtr, metody uczenia sieci

$ Sieć neuronowa jako filtr sygnału z zakłóceniami


Wyszukiwarka

Podobne podstrony:
ECCC Sylabus IT M5 D
ECCC Sylabus IT M5 C
PANDA M5 2009
M5 p
m5
M5 Modelowanie i symulacja silnika wrzecionowego SM
kotelko 5 6 M5 6 id 248910 Nieznany
1 3 m5 L4
16 M5
m5
m5
[2011] M5, UWM Weterynaria, Biofizyka, Sprawozdania
m5 NP, Studia, Pracownie, I pracownia
fta m5 economic models PRELIMINARY
M5 id 275251 Nieznany
M5 Charakterystyki podstawowych elementów elektronicznych, AGH, MiBM - I rok, Elektrotechnika, Spraw
elektra M5, Studia, SiMR, II ROK, III semestr, Elektrotechnika i Elektronika II, Elektra, Elektronik
M5