Obliczenia inteligentne Zadanie 4
Transkrypt
Obliczenia inteligentne Zadanie 4
Obliczenia inteligentne Zadanie 4 Sieci SOM Poniedziałek, 10:15 Krzysztof Szcześniak 2007/2008 Cel Celem zadania jest zaimplementowanie neuronowej samoorganizującej się mapy wraz z metodą jej nauczania – algorytmem gazu neuronowego. Część badawcza polega na zastosowaniu zaimplementowanej sieci do kompresji obrazów i określenie wpływu normalizacji wektorów, parametrów sieci, rozmiaru ramki i parametrów uczenia na efektywność działania sieci. Wprowadzenie Sieci SOM (ang. Self Organized Map) to sieci neuronowe, które nie wymagają nadzoru na etapie uczenia. Sieci te w trakcie uczenia same wykrywają istotne cechy powiązań między sygnałami. W wyniku przyłożonych sygnałów wejściowych następuje w różnym stopniu aktywacja neuronów, dostosowująca się w skutek zmiany wartości wag synaptycznych do zmian wzorców uczących. Sieci samoorganizując się na zasadzie współzawodnictwa, to zwykle sieci jednowarstwowe, w których każdy neuron połączony jest ze wszystkimi składowymi N-wymiarowego wektora wejściowego . … 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. Metryki zaimplementowane w programie to: miara euklidesowa: iloczyn skalarny mira według normy (Manhattan) mira według normy Zarówno wektory wagowe jak i wejściowe mogą zostać znormalizowane. W przypadku normalizacji wektorów uczących, wektory wagowe nadążając za nimi, stają się automatycznie znormalizowane. Normalizacja odbywa się przy pomocy wzoru: Celem uczenia sieci samoorganizujących się przez konkurencję jest takie uporządkowanie neuronów, które zminimalizuje wartość oczekiwana zniekształcenia (błędu kwantyzacji). Numery neuronów zwyciężających przy kolejnych prezentacjach wektorów x tworzą tak zwaną książkę kodową. Jednym z algorytmów uczenia tego typu sieci jest algorytm gazu neuronowego. Jest to algorytm typu WTM (ang. Winner Take Most), w którym oprócz zwycięzcy uaktualniają swoje wagi także neurony z jego sąsiedztwa. Proces adaptacji wektora wag możemy zapisać zależnością: Wszystkie neurony podlegają sortowaniu w każdej iteracji w zależności od ich odległości od wektora x. Wartość funkcji sąsiedztwa dla i-tego neuronu G(i,x), jest określona zależnością Obliczenia inteligentne Zadanie 4 w której m(i) oznacza kolejność uzyskaną w wyniku sortowania, a jest parametrem, malejącym w funkcji czasu. Przy algorytm przekształca się w zwykły algorytm WTA (ang. Winner Take All), w którym uczeniu podlega tylko zwycięski neuron. W celu uzyskania dobrych rezultatów samoorganizacji proces uczeni powinien zaczynać się dużą wartością , po czym powinna ona maleć wraz z upływem czasu, do wartości minimalnej, zwykle zerowej. Zmiana może być liniowa lub wykładnicza (obie wersje zostały zaimplementowane w programie). Podobnie współczynnik uczenia powinien maleć wraz z upływem czasu. Również obie wersje zostały zaimplementowane w programie. Opis implementacji Obliczenia inteligentne Zadanie 4 Aplikacja jest rozszerzeniem programu z zadania 2. Na diagramie przedstawiono tylko te klasy które są niezbędne do działania samoorganizującej się mapy. W skład programu wchodzą następujące klasy: -INeuralNetwork – interfejs będący abstrakcją sieci neuronowej -NetworkFactory – klasa będąca fabryką sieci neuronowych, wczytuje sieć z pliku i na podstawie zawartych w nim informacji tworzy odpowiedni rodzaj sieci -SomNetwork – klasa implementująca interfejs INeuralNetwork, implementująca samoorganizująca się sieć. -Layer – klasa odpowiadająca warstwie neuronów sieci neuronowej. Neuron – klasa będąca implementacja neuronu. TeacherFactory – klasa będąca fabryka nauczycieli – dobiera nauczyciela na podstawie wskazanej sieci. ITeacher – interfejs będący abstrakcją nauczyciela sieci. AbstractTeacher – wstępna implementacja interfejsu ITeacher – zawiera implementacje metod współdzielonych przez różne implementacje nauczycieli. SomTeacher – klasa realizuje interfejs ITeacher- implementacja algorytmu gazu neuronowego do uczenia sieci SOM. Pattern – wzorzec wykorzystywany do nauki sieci IConnection – interfejs opisujący podstawowe operacje wykonywane na połączeniach sieci NeuronConnection – połaczenie między neuronami InputConnection – połaczenie między wejściem a neuronem IDistanceMeasure – abstrakcja algorytmu wyliczającego odległość między dwoma wektorami. EuclidMeasure – implementacja euklidesowej miary odległości ScalarMultiple – iloczyn skalarny L1Norm – miara odległości według normy LInfNorm – miara odległości według normy Logger – klasa odpowiedzialna za logowanie – wyświetlanie informacji na ekranie oraz ich zapis do pliku Materiały i metody Eksperyment E1 – wpływ współczynnika nauczania na nauczanie sieci: Obraz: lena.bmp, rozmiar: 256x256, Rozmiar ramki: 4x4, liczba wejść sieci: 16, Liczba neuronów: 512 Współczynnik nauczania – początkowy: zmienny, końcowy: 0.1, zmiana liniowa, Współczynnik – początkowy: 20, końcowy: 0.1, zmiana wykładnicza, Wzorce podawane w losowej kolejności, Miara odległości: euklidesowa, Liczba epok: 10 E1.1 Współczynnik nauczania początkowy: 0.2 E1.2 Współczynnik nauczania początkowy: 0.45 E1.3 Współczynnik nauczania początkowy: 0.7 E1.4 Obliczenia inteligentne Zadanie 4 Współczynnik nauczania początkowy: 0.95 Eksperyment E2 – wpływ współczynnika na efektywność nauczania sieci Obraz: lena.bmp, rozmiar: 256x256, Rozmiar ramki: 4x4, liczba wejść sieci: 16, Liczba neuronów: 512 Współczynnik nauczania – początkowy: 0.7, końcowy: 0.1, zmiana liniowa, Współczynnik – początkowy: zmienny, końcowy: 0.1, zmiana wykładnicza, Wzorce podawane w losowej kolejności, Miara odległości: euklidesowa, Liczba epok: 10 E2.1 Współczynnik początkowy: 1.0 E2.2 Współczynnik początkowy: 10.0 E2.3 Współczynnik początkowy: 20.0 E2.4 Współczynnik początkowy: 30.0 E2.5 Współczynnik początkowy: 40.0 E2.6 Współczynnik początkowy: 50.0 E2.7 Współczynnik początkowy: 60.0 E2.8 Współczynnik początkowy: 70.0 Eksperyment E3 – wpływ ilości neuronów na nauczanie sieci Obraz: lena.bmp, rozmiar: 256x256, Rozmiar ramki: 4x4, liczba wejść sieci: 16, Liczba neuronów: zmienna Współczynnik nauczania – początkowy: 0.7, końcowy: 0.1, zmiana liniowa, Współczynnik – początkowy: 40, końcowy: 0.1, zmiana wykładnicza, Wzorce podawane w losowej kolejności, Miara odległości: euklidesowa, Liczba epok: 10 E3.1 Liczba neuronów: 64 E3.2 Liczba neuronów: 128 E3.3 Liczba neuronów: 256 E3.4 Liczba neuronów: 512 E3.5 Liczba neuronów: 1024 E3.6 Obliczenia inteligentne Zadanie 4 Liczba neuronów: 2048 Eksperyment E4 – wpływ doboru miary odległości na nauczanie sieci Obraz: lena.bmp, rozmiar: 256x256, Rozmiar ramki: 4x4, liczba wejść sieci: 16, Liczba neuronów: 512 Współczynnik nauczania – początkowy: 0.7, końcowy: 0.1, zmiana liniowa, Współczynnik – początkowy: 40, końcowy: 0.1, zmiana wykładnicza, Wzorce podawane w losowej kolejności, Miara odległości: zmienna, Liczba epok: 10 E4.1 Miara odległości: euklidesowa E4.2 Miara odległości: iloczyn skalarny E4.3 Miara odległości: E4.4 Miara odległości: Eksperyment E5 – wpływ rozmiaru ramki na nauczanie sieci Obraz: lena.bmp, rozmiar: 256x256, Rozmiar ramki: zmienny, liczba wejść sieci: 16, Liczba neuronów: 512 Współczynnik nauczania – początkowy: 0.7, końcowy: 0.1, zmiana liniowa, Współczynnik – początkowy: 40, końcowy: 0.1, zmiana wykładnicza, Wzorce podawane w losowej kolejności, Miara odległości: euklidesowa, Liczba epok: 10 E5.1 Rozmiar ramki: 2x2 E5.2 Rozmiar ramki: 4x4 E5.3 Rozmiar ramki: 8x8 Eksperyment E6 – wpływ normalizacji wektorów wejściowych Obraz: lena.bmp, rozmiar: 256x256, Rozmiar ramki: 4x4, liczba wejść sieci: 16, Liczba neuronów: 512 Współczynnik nauczania – początkowy: 0.7, końcowy: 0.1, zmiana liniowa, Współczynnik – początkowy: 40, końcowy: 0.1, zmiana wykładnicza, Wzorce podawane w losowej kolejności, Miara odległości: euklidesowa, Liczba epok: 10 E6.1 Wektory nieznormalizowane E6.2 Obliczenia inteligentne Zadanie 4 Wektory znormalizowane Eksperyment E7 – wpływ zmiany parametrów w funkcji czasu na nauczanie sieci Obraz: lena.bmp, rozmiar: 256x256, Rozmiar ramki: 4x4, liczba wejść sieci: 16, Liczba neuronów: 512 Współczynnik nauczania – początkowy: 0.7, końcowy: 0.1, Współczynnik – początkowy: 40, końcowy: 0.1, Wzorce podawane w losowej kolejności, Miara odległości: euklidesowa, Liczba epok: 10 E7.1 Współczynnik nauczania: zmiana liniowa, Współczynnik : zmiana liniowa E7.2 Współczynnik nauczania: zmiana liniowa, Współczynnik : zmiana wykładnicza E7.3 Współczynnik nauczania: zmiana wykładnicza, Współczynnik : zmiana liniowa E7.4 Współczynnik nauczania: zmiana wykładnicza, Współczynnik : zmiana wykładnicza Wyniki Eksperyment E1 - wpływ współczynnika nauczania na nauczanie sieci: Eksperyment: MSE PMSE SNR PSNR MD Niewykorzystane neurony E1.1 41,52 7,52E-4 26,26 31,24 58 35 E1.2 35,53 6,43E-4 26,94 31,92 57 12 E1.3 33,39 6,05E-4 27,21 32,19 54 16 E1.4 33,27 6,02E-4 27,22 32,20 52 28 Tabela 1 Eksperyment E2 – wpływ współczynnika na efektywność nauczania sieci: Eksperyment: MSE PMSE SNR PSNR MD Niewykorzystane neurony E2.1 41,88 7,58E-4 26,22 31,20 57 123 E2.2 34,79 6,30E-4 27,03 32,01 49 50 E2.3 33,74 6,11E-4 27,16 32,14 64 23 E2.4 34,20 6,20E-4 27,10 32,08 45 16 E2.5 34,46 6,23E-4 27,07 32,05 41 18 E2.6 34,76 6,29E-4 27,03 32,01 49 18 E2.7 34,74 6,29E-4 27,03 32,01 54 18 E2.8 35,65 6,46E-4 26,92 31,90 68 20 Tabela 2 Obliczenia inteligentne Zadanie 4 Eksperyment E3 – wpływ ilości neuronów na nauczanie sieci Eksperyment: MSE PMSE SNR PSNR MD Niewykorzystane neurony E3.1 106,95 19,37E-4 22,15 27,13 85 0 E3.2 77,02 13,95E-4 23,58 28,56 83 0 E3.3 53,95 9,78E-4 25,12 30,10 74 0 E3.4 34,54 6,26E-4 27,06 32,38 51 17 E3.5 19,06 3,45E-4 29,64 34,62 37 151 E3.6 9,97 1,81E-4 32,46 37,44 27 735 Tabela 3 Eksperyment E4 – wpływ doboru miary odległości na nauczanie sieci Eksperyment: MSE PMSE SNR PSNR MD Niewykorzystane neurony E4.1 34,19 6,19E-4 27,10 32,08 50 14 E4.2 236.83 42,40E-4 18,70 23,68 90 76 E4.3 37,32 6,76E-4 26,72 31,70 86 15 E4.4 44,47 8,05E-4 25,95 30,94 44 35 Tabela 4 Eksperyment E5 – wpływ rozmiaru ramki na nauczanie sieci Eksperyment: MSE PMSE SNR PSNR MD Niewykorzystane neurony E5.1 11,20 2,03E-4 31,95 36,93 25 1 E5.2 34,16 6,19E-4 27,10 32.09 46 18 E5.3 33,45 6,06E-4 27,20 32,18 57 107 Tabela 5 Eksperyment E6 – wpływ normalizacji wektorów wejściowych Eksperyment: MSE PMSE SNR PSNR MD Niewykorzystane neurony E6.1 34,26 6,20E-4 27,09 32,07 54 17 E6.2 5714,62 1034,79E-4 4,87 9,85 168 209 Tabela 6 Eksperyment E7 – wpływ zmiany parametrów w funkcji czasu na nauczanie sieci Eksperyment: MSE PMSE SNR PSNR MD Niewykorzystane neurony E7.1 37,07 6,72E-4 26,75 31,73 50 20 E7.2 59,48 0,11E-4 24,70 29,68 74 22 E7.3 34,25 6,20E-4 27,09 32,08 56 15 E7.4 56,94 10,3E-4 24,89 29,87 73 26 Tabela 7 Obliczenia inteligentne Ramka 4x4, 512 neuronów, Zadanie 4 (E2.1) obraz różnicowy, MD = 57 Ramka 4x4, 512 neuronów, (E2.4) obraz różnicowy, MD = 45 Ramka 4x4, 512 neuronów, (E2.8) obraz różnicowy, MD = 88 Obliczenia inteligentne Ramka 4x4, 64 neurony (E3.1) Zadanie 4 obraz różnicowy, MD = 85 Ramka 4x4, 256 neuronów (E3.3) obraz różnicowy, MD = 74 Ramka 4x4, 1024 neuronów (E3.5) obraz różnicowy, MD = 37 Obliczenia inteligentne Zadanie 4 Ramka 2x2, 512 neuronów (E5.1) obraz różnicowy, MD = 25 Ramka 4x4, 512 neuronów (E5.2) obraz różnicowy, MD = 46 Ramka 8x8, 512 neuronów (E5.3) obraz różnicowy, MD = 57 Obliczenia inteligentne Zadanie 4 Dyskusja Pierwsze doświadczenie polegało na sprawdzeniu jaki wpływ na nauczanie sieci ma zmiana współczynnika nauczania. W tabeli (1) wyraźnie widać, że zwiększenie współczynnika nauczania poprawia szybkość nauczania się sieci. Niezależnie od wybranej miary błędu, zwiększenie współczynnika doprowadziło do polepszenia jakości skompresowanego obrazu. Zwiększanie współczynnika nauczania powyżej pewnej wartości powoduje, że powstaje coraz więcej martwych neuronów, jednak przy współczynniku 0,95 nie wpłynęło to jeszcze negatywnie na jakość obrazu. Zwiększenie się liczby nieużytecznych neuronów wynika zapewne z faktu, że inne neurony dzięki dużemu współczynnikowi nauki znacznie szybciej „ustawiają” się w docelowym punkcie i w kolejnych epokach wygrywają, nie dając szansy innym. Drugie doświadczenie miało na celu wykazanie wpływu współczynnika na nauczanie sieci. W tabeli (2) wyraźnie widać, że zwiększanie początkowego przedziału sąsiedztwa powoduje że w początkowych cyklach większa liczba neuronów zostaje nauczona, a co za tym idzie wraz ze wzrostem współczynnika (oczywiście do pewnego stopnia) maleje liczba martwych neuronów. Z faktu że większa liczba neuronów opisuje skompresowany obraz wynika bezpośrednio to że może on być lepiej odwzorowany, a zatem zmniejszają się błędy kompresji. Z kolei zbyt duży współczynnik, powoduje że w początkowych cyklach za dużo neuronów uczy się tego samego wzorca, a co za tym idzie oddala się od innych wzorców. Doświadczenie numer trzy pokazuje jak ilość neuronów wpływa na poprawność odwzorowania obrazu. Wyraźnie widać że zwiększanie liczby neuronów w znacznym stopniu polepsza jakość skompresowanego obrazu. Jednak większa liczba neuronów to zarazem gorszy współczynnik kompresji. Dodatkowo przy 2048 neuronach widać, że aż 735 neuronów zostaje zmarnowanych (nie przechowują żadnego przydatnego wzorca). Można by polepszyć stopień kompresji poprzez wyrzucenie bezużytecznych neuronów i przeindeksowanie obrazu, co spowodowało by wzrost współczynnika kompresji, gdyż zamiast informacji o 2048 wzorcach wystarczyło by przechować 1313 wzorców. W doświadczeniu numer cztery wyraźnie widać ze najlepszą zaimplementowaną miara odległości, dającą najlepsze efekty jest miara euklidesowa. Błędny wynik uzyskany przy pomocy iloczynu skalarnego wynika z faktu, że wektory wejściowe nie są znormalizowane. Doświadczenie numer pięć polegało na zbadaniu wpływu rozmiaru ramki na nauczanie sieci. W tabeli (5) widać, że im mniejszy rozmiar ramki tym lepsze odwzorowanie obrazu. Wynika to zapewne z mniejszej liczby możliwości jakie mogą przyjąć 4 piksele w porównaniu z 16. Mniejsza liczba kombinacji, a co za tym idzie lepsze odwzorowanie szczegółów daje w rezultacie lepsze odwzorowanie. Szóste doświadczenie miało na celu zbadanie wpływu normalizacji wektorów wejściowych na poprawność procesu nauczania. W ogólności normalizacja poprawia zbieżność i szybkość działania algorytmu, jednak w tym specyficznym przypadku zastosowanie normalizacji nie jest wskazany. Wynika to z faktu że znormalizowanie wektorów wejściowych spowoduje utratę informacji o jasności danej ramki. Ramka w której tylko jeden piksel ma wartość różną od zera niezależnie od jasności tego piksela zawsze będzie miała wartość 1 w tym pikselu i 0 w pozostałych. Zatem przy dekompresji nie jesteśmy w stanie odczytać informacji o oryginalnej jasności ramki. Wszelkie próby porównania obrazów oryginalnego i zdekompresowanego mijają się z celem, ponieważ standardowe algorytmy będą pokazywać znaczny błąd obrazu jak i niski stosunek sygnału do szumu. Normalizacja miała by zastosowanie gdyby nie obchodziła nas długość wektora (w naszym przypadku jasność) ale sam kierunek. Gdyby zamiast bitmapy była to np. mapa normalnych wówczas normalizacja była by jak najbardziej uzasadniona. Celem siódmego doświadczenia było znalezienie optymalnej metody zmiany parametrów (wsp. nauki i ) w funkcji czasu. W tabeli 7 widać, że najlepszy rezultat został otrzymany gdy współczynnik nauki zmieniał się w sposób liniowy, natomiast zmiana współczynnika następowała w sposób wykładniczy. Współczynnik kompresji uzyskanego obrazu może otrzymać ze wzoru: gdzie i oznaczają wymiary ramki, liczbę ramek, - liczbę neuronów, T – liczbę bitów przyjętych do reprezentacji stopnia szarości i t – liczbę bitów przyjętych do reprezentacji wartości wag. Wnioski - Względnie duża wartość współczynnika nauczania w początkowych iteracjach wpływa korzystnie na szybkość i jakość uczenia się sieci. -Duża wartość współczynnika w początkowych iteracjach powoduje zmniejszenie liczby martwych neuronów. -Zwiększenie liczby neuronów powoduje polepszenie się jakości obrazka, jednak odbywa się to kosztem mniejszego współczynnika kompresji. -Zwiększenie rozmiaru ramki pozwala na zwiększenie współczynnika kompresji, jednak kosztem gorszej jakości obrazu, na którym przy ramce 8x8 widać już artefakty. -W końcowych iteracjach współczynnik powinien dążyć do zera. -Współczynnik nauki powinien malec w sposób liniowy, natomiast współczynnik powinien maleć w sposób wykładniczy. -Normalizacja wektorów wejściowych nie sprawdza się w przypadku przetwarzania obrazów, ponieważ utracona zostaje informacja o jasności piksela. -Najlepszą miarą spośród zaimplementowanych jest miara euklidesowa Obliczenia inteligentne Zadanie 4 Literatura Stanisław Osowski – Sieci Neuronowe do przetwarzania informacji, Oficyna Wydawnicza Politechniki Warszawskiej, 2006 Uwagi prowadzącego