Sprawozdanie 6 Metody klasyfikacji
Transkrypt
Sprawozdanie 6 Metody klasyfikacji
Metody rozpoznawania obrazów
Sprawozdanie 6
Metody klasyfikacji
Mirosław Jedynak, Krzysztof Lewandowski
1 FLD/LDA
1.1 LDA jako optymalny rzut liniowy
Przy wykorzystaniu materiałów znalezionych w sieci, pakietu „Statistical Pattern
Recognition Toolbox for Matlab”, zaimplementowano procedurę przekształcająca zadaną przestrzeń
cech w przestrzeń dwu wymiarową przy użyciu transformacji liniowej LDA, a następnie wykonano
podobną procedurę przy użyciu metody PCA.
Wyniki zaprezentowano na rysunkach 1 - "Przekształcenie przy użyciu metody LDA" oraz 2 "Przekształcenie przy użyciu metody PCA" odpowiednio dla metod LDA i PCA.
1 - "Przekształcenie przy użyciu metody LDA"
2 - "Przekształcenie przy użyciu metody PCA"
Wyniki przekształceń sugerują, że przekształcenie przestrzeni przy wykorzystaniu metody LDA daje
rezultaty, które pozwalają na lepsze rozróżnianie klas. Dane tworzą dużo bardziej wyraźniejsze klastry
i są rozłożone na większej powierzchni niż w przypadku, gdy wykorzystana była metoda PCA. Dla
wyników otrzymanych przy użyciu PCA trudno jest w łatwy sposób podzielić przestrzeń na klastry
zawierające dane tylko z jednej określonej klasy.
1.2 Wpływ stosunku liczby przykładów do liczby cech na zachowanie LDA
jako klasyfikatora
Przeprowadzono dwa eksperymenty. W pierwszym za przykłady służyły dane ze zbioru treningowego,
w drugim ze zbioru testowego. W obu przypadkach klasyfikowano zarówno dane testowe, jaki i
treningowe.
Trening
przy
treningowych
Klasyfikacja danych
Treningowych
Błąd klasyfikacji
0,028
Czułość
0,933
Swoistość
0,994
Stosunek liczby przykładów
1
z zbiorze klasyfikowanym
do liczby przykładów w
zbiorze treningowych
użyciu
danych Trening przy użyciu danych testowych
Testowych
0,049
0,873
1
0,5
Treningowych
0,039
0,905
0,994
2
Testowych
0,014
0,963
1
1
W obu przypadkach najmniejszy błąd (liczony jako średni błąd klasyfikacji) otrzymano, gdy
klasyfikowano dane, które służyły również jako dane treningowe. Co ciekawe, przy klasyfikacji danych
ze zbioru, który nie był wykorzystywany przy treningu mniejszy błąd mniejszy błąd otrzymano, kiedy
w treningu był wykorzystywany mniejszy zbiór (testowy). Uwagę zwraca także fakt, że w obu
przypadkach swoistość klasyfikacji jest taka sama.
2 Perceptron
Błąd klasyfikacji był liczony jako wartość średnia błędu zwracanego przez funkcję sim
przeprowadzającej symulację działania sieci. Czas trwania treningu sieci wybrano na 20 epok, większa
wartość (50 epok) nie poprawiała rezultatów symulacji.
Opis eksperymentu
Trenowanie
sieci
danymi Trenowanie
sieci
danymi
treningowymi i testowanie na treningowymi oraz walidacyjnymi i
danych testowych
testowanie sieci przy użyciu danych
ze zbioru testowego
Błąd
0,042
0,028
Czułość
0,909
0,945
Swoistość
0,989
0,989
Zmniejszenie się błędu po wykorzystaniu podczas treningu dodatkowego zbioru danych potwierdza
fakt, że zwiększenie zbioru uczącego sieć pozwala na osiągnięcie lepszych rezultatów klasyfikacji przy
użyciu sieci neuronowej.
Inaczej niż przy zastosowaniu metody FLD lepsze rezultaty osiągnięto przy większej liczbie
przypadków treningowych. Błąd klasyfikacji wykonywanej przy użyciu sieci neuronowej jest trochę
mniejszy niż ten uzyskany przy użyciu FLD.
3 Support Vector Machines
3.1 Obrazowa analiza zachowania metody SVM
3.1.1 Granica liniowa
Granica rzeczywista
Wygenerowane punkty
Granica na podst. SVM
Dla granicy liniowej przestrzeń jest poprawnie dzielona, nawet przy bardzo małej ilości danych
treningowych i testowych (40) niezależnie od kernela.
3.1.2 Granica zbliżona do liniowej
Granica
Dla 2048 punktów:
Linowy
Wielomianowy (3)
RBF
Dla 200:
LInowy
Wielomanowy (3)
3.1.3 Bardziej skomplikowane przestrzenie decyzyjne
Dla 200 punktów
Granica
RBF
Dla200 punków
Linowy
Wielomianowy
RBF
Dla 2048 punktów:
3.1.4 Wnioski
Powyższe przykłady pokazują, że dla granicy linowej wszystkie metody zachowują się prawidłowo i
potrafią znaleźć właściwą granicę decyzyjna. Wart uwagi jest fakt, że dzieje się tak nawet przy małej
ilości danych treningowych- dzieje się tak, dlatego że granica decyzyjna liniowa jest stosunkowo
prosta do wyznaczenia.
Dla granicy decyzyjnej, która nie jest liniowa, metoda oparta na kernelu liniowym aproksymuje
granice do linii prostej – taki zjawisko może być przydatne, kiedy w danych pomiarowych mogą
występować szumy - jeśli w tych danych spodziewamy się granicy liniowej lub chcemy wygładzić
wpływ przypadków, które odbiegają od tej granicy warto użyć klasyfikatora o kernelu liniowym. Jeśli
użyje się bardziej złożonych funkcji, to granica bardziej przypomina rzeczywista granicę, jednak w
przypadku użycia wielomianu o niskim stopniu (3) błąd może być podobny jak dla klasyfikatora
liniowego, a dodatkowo nie widać takiego wyraźnego rozdzielenia dwóch klastrów.
Dodatkowo można zauważyć, że dla wszystkich przypadków zwiększenie ilości danych testowych
poprawia klasyfikację, dlatego w przypadku danych rzeczywistych warto zadbać o jak największą
próbkę, na których można testować zbudowany klasyfikator.
Dla wszystkich 3 rozważanych przypadków najdokładniej granicę odwzorowywał klasyfikator oparty
na RBF, najmniej dokładnie klasyfikator liniowy. Warto jednak zauważyć, że w niektórych
przypadkach(gdy potrzebna jest generalizacja lub gdy dane testowe są zaszumione) może się okazać,
że warto stosować prostszy klasyfikator (np. liniowy lub wielomianowy niskiego stopnia), który
posiada większe własności generalizujący i wyznaczą prostszą granicę mniej podatną na błędne dane
wejściowe.
3.2 Wpływ parametrów na błąd metody SVM
Przed przystąpieniem do analizy dane zostały znormalizowanie, zgodnie z instrukcjami do
laboratorium
Zbadana została metoda oparta o kernel RBF, dla zmieniających się wartości parametrów:
•
•
C – współczynnik stały dla funkcji błędu
γ – współczynnik dla jądra radialnego (RBF) zgodnie ze wzorem e γ |xi – Xj|^2
Błąd, swoistość i czułość została zbadana dla 4 przypadków: C={6,20} oraz γ={125,1000}. Poniższe
wykresy prezentują te zależności.
Ciekawym spostrzeżeniem może być fakt, że przy zwiększaniu wartości stałych maleje specyficzność,
rośnie natomiast czułość, co oznacza że wraz ze zrostem wartości stałych zwiększała się ilość
przypadków, kiedy poprane (nie-spam) adresy zostały zaklasyfikowane jako spam. Taką zależność
należy wziąć pod uwagę w zależności od rozważanych danych: jeśli rozważamy spam
prawdopodobnie lepszym zachowanie jest przesuszenie spamu, natomiast w przypadku wykrywanie
zmian chorobowych, lepszym zachowaniem będzie fałszywy alarm
Błąd liczony był jako suma źle zaklasyfikowanych klastrów.
Jak widać z powyższych zestawień zwiększenie stałej kosztowej C i współczynnika γ poprawiło wynik
metody. Ciężko jednak na podstawie analizy powyższych danych wyciągać bardziej daleko idące
wnioski, gdyż dobór właściwych wartości powyższych stałych zależy od danych, które poddawane są
obróbce.
4 Metody zespołowe
Zgodnie z załączonymi materiałami zaimplementowano metodę AdaBoost.
4.1 Obrazowa analiza
decyzyjnych
zachowania
metody
AdaBoost
dla
drzew
Przy użyciu skryptu podobnego jak dla punktu 3.3.1 badano granicę decyzyjną dla metody AdaBoost.
Do testów wykorzystywano zbiory treningowe składające się z 2048 punktów.
Dla „prostych” granic nie obserwowano różnic pomiędzy granicami decyzyjnymi dla różnej wielkości
zespołów. Miało to miejsce dla trzech pierwszych granic. Dla wszystkich zespołów granica decyzyjna
wyglądała identycznie. W tabeli 1 - "Granice decyzyjne dla AdaBoost cz. 1" przedstawiono granice dla
trzech pierwszych przypadków.
Granica rzeczywista
Granica decyzyjna dla AdaBoost
1 - "Granice decyzyjne dla AdaBoost cz. 1"
Można zauważyć, że znalezione granice mają bardzo widoczny prostokątny kształt. Wypadają one
trochę gorzej w porównaniu z najlepszymi metodami SVM, chociaż należy zaznaczyć, że w każdym
przypadku ogólny kształt granicy został zachowany.
W przypadku bardziej skomplikowanych granic kiedy zastosowano bardziej liczne zespoły granica
zamazywała się w lekkim stopniu. Na przykład dla przypadku piątego (3 - "Granice decyzyjne dla
przypadku piątego dla zespołów o różnej wielkości") mniejsze zespoły w miarę dobrym stopniu
zachowywały kształt granicy, podczas gdy dla większych zespołów pojawiały się pewne elementy ją
zaburzające.
2 - "Granice decyzyjne dla przypadku czwartego dla zespołów o różnej wielkości"
3 - "Granice decyzyjne dla przypadku piątego dla zespołów o różnej wielkości"
W przypadku bardziej skomplikowanych granic granice decyzyjne metody AdaBoost również
zachowują ogólny kształt granic rzeczywistych szczególnie w przypadku zastosowania mniejszych
zespołów.
Na koniec przeprowadzono jeszcze testy przy wykorzystaniu mniej licznych próbek danych
treningowych. W takich przypadkach, podobnie jak to miało miejsce dla SVM, znalezione granice
decyzyjne bardziej odbiegają od granic rzeczywistych, co potwierdza po raz kolejny fakt, że
zastosowanie większych próbek danych przykładowych poprawia wyniki klasyfikacji.
4.2 Wpływ wielkości zespołu na błąd
Drzewa były tworzone przy użyciu danych ze zbioru treningowego, testy natomiast wykonywano na
danych ze zbioru testowego.
Eksperymenty wykazały, że zwiększanie liczby drzew decyzyjnych w zespole nie daje poprawy
klasyfikacji. Powyżej 8 drzew w zespole nie obserwujemy już żadnych zmian w otrzymywanych
rezultatach. Wykres 3 - "Klasyfikacja przy użyciu metody AdaBoost" przedstawia wyniki otrzymane
pry klasyfikacji metodą AdaBoost.
3 - "Klasyfikacja przy użyciu metody AdaBoost"
Wydaje się, że metoda AdaBoost daje lepsze rezultaty niż te uzyskane przy pomocy SVM, gdyż
najlepszy wynik otrzymany przy wykorzystaniu drzew decyzyjnych daje o połowę mniej błędów niż
SVM.