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