Wykład 6
Transkrypt
Wykład 6
ANALIZA SEMANTYCZNA OBRAZU I DŹWIĘKU Klasyfikacja dr inż. Jacek Naruniec Wprowadzenie Przetwarzanie wstępne Wyznaczenie obszarów zainteresowania Ekstrakcja cech Klasyfikacja Najprostsza klasyfikacja, odległośd euklidesowa, Mahalanobisa Klasyfikacja bayesowska K najbliższych sąsiadów Liniowa analiza dyskryminacyjna (LDA), mLDA, DLDA Subclass Discriminant Analysis (SDA) Niebezpieczeostwo przetrenowania, estymatory błędów Maszyna wektorów nośnych (SVM) Drzewa decyzyjne Bagging, boosting Sieci neuronowe Ukryte Modele Markowa (HMM) 2 Klasyfikacja Przetwarzanie koocowe Wprowadzenie Klasyfikacja: 3 Zakładamy, że dysponujemy pewnym zbiorem trenującym Dla każdego przykładu wyznaczany jest deskryptor Każdemu przykładowi przypisana jest pewna klasa Zadaniem klasyfikacji jest przypisanie nowego deskryptora (którego klasa nie jest znana) do jednej z danych kategorii Klasyfikacja Najprostsza klasyfikacja Klasyfikacja odbywa się na podstawie określonych miar podobieostwa Wyznaczanie odległości przykładu do klasy: Odległośd euklidesowa d ( x, ) n 2 ( x ) i i i 1 4 Za x można przyjąd aktualny przykład, za μ model klasy do której wyznaczamy odległośd Klasyfikacja Miary odległości Odległośd Mahalanobisa d ( x, , S ) ( x )T S 1 ( x ) , gdzie S jest macierzą kowariancji danej klasy. Miara euklidesowa nie uwzględnia wariancji i dlatego może byd w niektórych przypadkach nieodpowiednia. 5 Klasyfikacja Miary odległości Przykład 3-klasowy miara euklidesowa miara Mahalanobisa Kolory punktów po prawej oznaczają klasy do których został przypisany nowy przykład. 6 Klasyfikacja Klasyfikacja bayesowska Metoda ta wywodzi się z założenia prawdopodobieństwa warunkowego: P( x | yi ) P( yi ) P( yi | x) P( x) Klasyfikator działa na zasadzie: przypisz wektorowi x klasę y, dla której prawdopodobieństwo warunkowe P(yi|x) jest największe. W metodzie należy założyć model rozkładu P(x|yi) i obliczyć go na podstawie danych trenujących. Metoda nie wymaga znajomości P(x) – przy porównaniu element ten jest nieistotny. P(yi) może służyć do przypisywania większego prawdopodobieństwa wybranym klasom 7 Klasyfikacja Klasyfikacja bayesowska Dany jest problem dwuklasowy z normalnym rozkładem prawdopodobieostwa. Na podstawie danych trenujących wyznaczamy średnią i wariancję wektora danych Dla nowego przykładu wyznaczamy P(x|y) – y jest to etykieta klasy (tu czerwona lub niebieska) 3.5e-004 3.5e-004 3.0e-004 3.0e-004 2.5e-004 2.5e-004 2.0e-004 2.0e-004 1.5e-004 1.5e-004 1.0e-004 1.0e-004 5.0e-005 5.0e-005 0.0e+000 -4000 8 -3000 -2000 -1000 0 1000 Klasyfikacja 2000 3000 4000 0.0e+000 -4000 -3000 -2000 -1000 0 1000 2000 3000 4000 Klasyfikacja bayesowska Celem klasyfikacji jest znalezienie najbardziej prawdopodobnej klasy dla obserwowanego wektora Zakładamy niezależnośd zmiennych wartośd P(x|y) dla wielowymiarowego wektora x (xi oznaczad będzie i-ty element deskryptora x) Prawdopodobieostwo przynależności wektora x do kategorii y można wyznaczyd poprzez: P( x | y) P( xi | y) i 9 Klasyfikacja k najbliższych sąsiadów Jako wybraną kategorię wyznaczamy tę do której należy najwięcej najbliższych k sąsiadów badanego elementu. Przy badaniu bliskości zazwyczaj stosowana jest miara euklidesowa lub Mahalanobisa. Algorytm szczególnie skuteczny przy nietypowych rozkładach prawdopodobieostwa. *źródło obrazu: wikipedia] 10 Klasyfikacja Liniowa analiza dyskryminacyjna (LDA) Podczas gdy PCA wyznacza kierunki główne danych nie analizując przynależności do klas, LDA bierze informację o przynależności przykładów do klas pod uwagę Wariancja międzyklasowa varB(X) określa odległości między średnimi poszczególnych klas. Wariancja wewnątrzklasowa varw(X)określa odległośd przykładów poszczególnych klas do ich środków ciężkości Maksymalizowana jest funkcja f 11 Klasyfikacja varB ( X ) varW ( X ) Liniowa analiza dyskryminacyjna Innymi słowy: Szukamy kierunku dla którego rzutowanie (mnożenie przez wektor)da klasy jak najbardziej od siebie oddalone (licznik) Szukamy kierunku dla którego rzutowanie da klasy jak najbardziej „zwarte” (mianownik) Ilustracja wariancji między klasowej (jedna dla wszystkich klas). 12 Klasyfikacja varB ( X ) f varW ( X ) Ilustracja wariancji wewnątrz klasowej (w ramach każdej klasy osobno). Liniowa analiza dyskryminacyjna W przypadku dwuklasowym wyznaczenie wariancji międzyklasowej i wewnątrzklasowej można zrealizowad poprzez równania (dwie klasy: f i f z „daszkiem”): Tutaj wariancja międzyklasowa liczona jest jako odległośd średnich klas od średniej globalnej W klasycznym rozwiązaniu wariancje zastępuje się odpowiednimi macierzami rozproszenia Sw i Sb. 1 C S B ( i )( i )t C i 1 1 C Ni SW ( xij i )( xij i )t C i 1 j 1 13 Klasyfikacja Liniowa analiza dyskryminacyjna Wówczas maksymalizowana funkcja przyjmuje postad: wt S B w f t w SW w Równanie takie można rozwiązad poprzez równanie Sw1 ( X )Sb ( X )W ' W ' Co z kolei jest rozwiązywane poprzez wyznaczenie wektorów własnych odpowiadających największym wartościom własnym iloczynu macierzy rozproszenia. Podobnie problem można rozwiązad poprzez wyznaczanie wektorów osobliwych odpowiadających największym wartościom osobliwym 14 Klasyfikacja Dualna liniowa analiza dyskryminacyjna (DLDA) Może się również okazad, że rozwiązanie problemu dualnego daje lepsze rezultaty wt SW w f t w SB w Różnice wynikają ze sposobów liczenia rozwiązao (np. dla algorytmu 2SS4LDA) i sprzeczności warunków LDA. 15 Klasyfikacja Subclass Discriminant Analysis (SDA) Ponieważ klasy nie są spójne, np. w deskryptorach oczu zawierają przykłady z zamkniętymi i otwartymi powiekami, klasy można odpowiednio podzielid Podział można zrealizowad na przykład poprzez algorytm k-średnich Jeśli uda się uzyskad „spójne” klasy, klasyfikacja będzie znacznie skuteczniejsza Wynikowa liczba klas będzie większa niż pierwotna 16 Klasyfikacja Subclass Discriminant Analysis (SDA) Można wyznaczyd algorytm automatycznego dobierania odpowiedniej ilości podziałów Warunki maksymalizacji wariancji międzyklasowej i wewnątrzklasowe mogą byd ze sobą sprzeczne Jeśli kąt pomiędzy wektorami własnymi optymalizującymi te warunki jest wysoki (w najgorszym razie ortogonalny), należy dokonywad kolejnych podziałów Kąt jest zdefiniowany poprzez iloczyn skalarny wektorów 17 Klasyfikacja Subclass Discriminant Analysis (SDA) *źródło: Zhu, Martinez: „Subclass Discriminant Analysis”+ 18 Klasyfikacja Estymacja parametrów klasyfikacji Wyznaczenie błędu klasyfikacji na zbiorze uczącym Wyznaczanie błędu klasyfikacji na próbie z wyłączeniem zbioru uczącego Walidacja krzyżowa Bootstrapping Wyznaczanie błędu klasyfikacji na manualnie wyznaczonych zbiorach 19 Klasyfikacja Estymacja parametrów klasyfikacji Niebezpieczeostwo przetrenowania (overfitting) Klasyfikator zbyt uproszczony Skuteczny klasyfikator 20 Klasyfikacja Klasyfikator przetrenowany Estymacja parametrów klasyfikacji Testowanie klasyfikatora na zbiorze uczącym Klasyfikator uczony jest na całym zbiorze trenującym Testowanie przeprowadzane jest na tym samym zbiorze Estymacja obciążona zwykle dużym błędem (bardzo optymistyczna) Skuteczny klasyfikator 21 Klasyfikacja Klasyfikator przetrenowany Estymacja parametrów klasyfikacji Wyznaczanie błędu klasyfikacji na próbie z wyłączeniem zbioru uczącego Uczenie wykonywane jest na podzbiorze (dowolnym) danych trenujących Testowanie na elementach danych trenujących z wyłączeniem zbioru uczącego Skuteczny klasyfikator 22 Klasyfikacja Klasyfikator przetrenowany Estymacja parametrów klasyfikacji Walidacja krzyżowa W celu dokładniejszej estymacji błędu zbiór trenujący dzieli się na k podzbiorów Następnie: Wyznaczone wartości błędów są uśredniane (dzielone przez k) Wersja algorytmu Leave-One-Out polega na odwróceniu proporcji (jeden podzbiór do testowania, reszta uczenia) 23 Wybiera się jeden podzbiór, który stanowi dane uczące Pozostałe elementy (k-1 podzbiorów) służą wyznaczaniu błędu klasyfikacji (testowaniu) Powyższe operacje wykonuje się dla każdej możliwej kombinacji zbiorów (czyli k razy) Znacznie dłuższy czas analizy Potencjalnie lepsza klasyfikacja Jest to skuteczny sposób zapobiegania przetrenowaniu modelu Klasyfikacja Estymacja parametrów klasyfikacji Bootstrapping 24 Niekiedy istotna zmiana zbioru trenującego może oznaczad znaczne zmiany w skuteczności klasyfikacji W tej metodzie n razy wybiera się losowo podzbiór elementów (np. 2/3, ze zwracaniem) ze zbioru uczącego i dla każdego podzbioru uczy się klasyfikator Testowanie odbywa się na wszystkich elementach, które nie zostały wylosowane dla danego klasyfikatora Wynik estymacji dla wszystkich prób uśrednia się (dzieli przez n) Klasyfikacja Estymacja parametrów klasyfikacji Wyznaczanie błędu klasyfikacji na manualnie wyznaczonych zbiorach Przykład: detekcja/rozpoznawanie twarzy 25 Moment wykonania/baza twarzy Klasyfikacja Estymacja parametrów klasyfikacji 26 Klasyfikacja Mnożniki Lagrange’a Problem: maksymalizuj funkcje f(x) przy ograniczeniu g(x)=c Funkcje stykają się ze sobą bez przecięcia gdy styczna funkcji g(x) jest równoległa do stycznej konturu f(x)=d Tam będzie ekstremum funkcji przy danym ograniczeniu. [źródło obrazów: wikipedia] 27 Klasyfikacja Mnożniki Lagrange’a Podobny warunek można wprowadzid dla gradientów funkcji. Równoważnośd ta oznacza, że kontury są do siebie równoległe, jeśli ich gradienty są także równoległe Oznacza to, że szukamy parametrów dla których gradienty x , y f x , y g Stąd wynika Lagrangian: L f ( x, y ) ( g ( x, y ) c ) Dla którego znajdujemy rozwiązanie poprzez przyrównanie pochodnej każdej zmiennej (x, y, λ) funkcji L do zera (punkty stacjonarne) Z wyznaczonych punktów określamy maksima/minima Bardzo często spotykana metoda przy rozwiązywaniu równao dotyczących klasyfikacji. 28 Klasyfikacja Maszyna wektorów nośnych (SVM) Dla klas liniowo separowalnych możemy zapisad następujące równania dla hiperpłaszczyzn: H 2 : xi w b 1 dla yi 1 H1 : xi w b 1 dla yi 1 Gdzie margines pomiędzy tymi hiperpłaszczyznami można wyznaczyd jako: m 2 w Funkcją docelową Support Vector Machine jest maksymalizacja marginesu m przy zachowaniu wzorów na płaszczyzny H1 i H2. Hiperpłaszczyzny H1 i H2 oddzielają od siebie 2 klasy Wektory nośne są przykładami leżącymi na hiperpłaszczyznach decyzyjnych (najtrudniejsze przypadki) [hint: hiperpłaszczyzna: płaszczyzna, która ma 1 wymiar mniej niż przestrzeo w której się znajduje+ 29 Klasyfikacja Maszyna wektorów nośnych (SVM) Równania hiperpłaszczyzn można zastąpid poprzez równanie: yi ( w xi b) 1 Znajdując wartośd w xi b można określid do której klasy należy nowy obiekt Określenie parametrów maksymalizujących margines (poprzez 1 2 minimalizację 2 w ), przy spełnieniu powyższego równania, może byd zrealizowane przy pomocy funkcji Lagrange’a: 1 2 n L( w, ) w k yi ( wxi b) 1 2 k 1 30 Klasyfikacja Maszyna wektorów nośnych (SVM) Hiperpłaszczyzny H1i H2 mogą byd również zdefiniowane, zamiast parametrów w i b, poprzez wektory, które leżą na tych hiperpłaszczyznach. Te wektory są wektorami „wspierającymi” lub „nośnymi”. Innymi słowy – w może byd wyrażone jako liniowa kombinacja wektorów wspierających. 31 Maszyna wektorów nośnych (SVM) Problem można przekształcid w maksymalizację funkcji (równanie dualne): n L( ) i i 1 1 i j yi y j xi T x j 2 i, j Przy założeniach: i 0 n y i 1 , gdzie: i i 0 n w i yi xi i 1 1 b N SV N SV ( wx i 1 i yi ) Funkcja zależna jedynie od przykładów trenujących Wektory, które odpowiadają niezerowym współczynnikom to wektory nośne 32 Klasyfikacja Maszyna wektorów nośnych Funkcja decyzyjna przyjmuje postad: f ( xC ) x C w b y x x b iN SV i i c i gdzie xi są to wektory nośne modelu. 33 Klasyfikacja Maszyna wektorów nośnych Przypadek liniowo nieseparowalny (hiperbole) Można odwzorowywad przykłady do przestrzeni o większej ilości wymiarów (tutaj z (x1, x2) do (√2x1, √2x1x2)) *źródło: Duda „Pattern Classification”+ 34 Klasyfikacja Maszyna wektorów nośnych Ponieważ algorytm uczenia i klasyfikacji zależy jedynie od iloczynu wektorów, można zastosowad tzw. kernel trick umożliwiający przejście do innych przestrzeni. Zwykle wyznacza się pewną funkcję jądra (kernelową) o właściwości k(x,y)=φ(x)φ(y), gdzie φ(x) to transformacja wektora x w nową przestrzeo. Jeśli mamy iloczyn wektorów nie musimy wyznaczad odwzorowania φ(x) każdego elementu, bo wystarczy że wyznaczymy k(x, y) które będzie odpowiadało φ(x)φ(y) Przykładowe, popularne funkcje kernelowe: Wielomianowa: RBF (Radial Basis Functions): 35 Klasyfikacja Maszyna wektorów nośnych We wzorach trenowania i klasyfikacji wszystkie iloczyny wektorów możemy zamienid na funkcje jądra Klasyfikujemy wektory w nieliniowej przestrzeni wejściowej, ale w dziedzinie cech już liniowej n L( ) i i 1 1 i j yi y j k ( xi , x j ) 2 i, j f ( xC ) y k ( x , x iN SV *źródło: Ivanciuc „Applications of Support Vector Machines in Chemistry”+ 36 Klasyfikacja i i i C )b Maszyna wektorów nośnych *źródło: Ivanciuc „Applications of Support Vector Machines in Chemistry”+ 37 Klasyfikacja Maszyna wektorów nośnych (SVM) W większości rzeczywistych przypadków warunek separowalności nie jest spełniony => nie można wyznaczyd H1 i H2. 38 Klasyfikacja Maszyna wektorów nośnych (SVM) Aby zaradzid temu problemowi wprowadza się możliwośd błędu klasyfikacji (miękki margines) y i ( wxi b) 1 i Natomiast minimalizowaną funkcją jest n min 1 2 || w || C i w, 2 i 1 39 Klasyfikacja Maszyna wektorów nośnych (SVM) Rozszerzenie na większą liczbę klas – jeden vs pozostałe 40 Klasyfikacja Maszyna wektorów nośnych (SVM) Zwykle daje bardzo dobre wyniki klasyfikacji Może byd łatwo przekształcona w klasyfikator nieliniowy (tzw. kernel trick) Ma tendencję do zbytniego dopasowywania się do danych trenujących (dlatego należy stosowad np. walidację krzyżową) Daje możliwośd przetargu większej generalizacji problemu nad błędem klasyfikacji (większy margines = większa generalizacja) 41 Klasyfikacja Drzewa decyzyjne W najprostszym ujęciu manualnie wyznaczony zestaw warunków Klasyfikacja jest zbiorem pytao, które prowadzą do odpowiedzi Czy kupid dany produkt? Dużo kosztuje? Czy jest mi naprawdę potrzebne? Czy jest dobrej jakości? Kupuję 42 Klasyfikacja Nie kupuję Nie kupuję Czy jest dobrej jakości? Kupuję Nie kupuję Drzewa decyzyjne Inny przykład – jaką metodę klasyfikacji wybrad? Czy skomplikowany problem? Czy wymagana jest najwyższa skutecznośd? SVM 43 Klasyfikacja Prosty klasyfikator bayesowski LDA Drzewa decyzyjne Automatyczne tworzenie drzewa może przebiegad w następujący sposób: Wybieramy atrybut, który pozwoli podzielid elementy w sposób jak najbardziej jednorodny (dążymy do tego, aby jak najwięcej węzłów dążyło do jednakowej kategorii) Miary: entropia, miara Giniego Warunek stopu – niewielka ilośd przykładów w liściach lub próg jednorodności Łączymy węzły, których wszystkie liście należą do tej samej kategorii Mają tendencję do przetrenowania (aby tego uniknąd stosuje się przycinanie drzewa) Proste w realizacji, trenowaniu, klasyfikacji Optymalizacja jednorodności w każdym węźle nie gwarantuje globalnej optymalności 44 Klasyfikacja Drzewa decyzyjne Przycinanie drzewa Jeśli wykluczyd warunek stopu drzewa dopasowują się do danych trenujących (przetrenowanie) Można usunąd te atrybuty ostatnich wierszy, których usunięcie nie spowoduje znacznego zwiększenia niejednorodności drzewa a1 a2 a3 a4 l1 45 a5 l2 Klasyfikacja l3 a6 l4 l5 a7 l6 l7 l8 Lasy losowe Las losowy składa się z zestawu drzew decyzyjnych Każde drzewo decyzyjne tworzone jest poprzez: Na błąd lasu losowego wpływa siła i korelacja drzew Wylosowanie podzbioru danych trenujących (2/3 zbioru) Dla każdego drzewa wylosowanie dowolnego podzbioru argumentów (ale znaczenie mniejszego od całego zbioru) Wyznaczenie najlepszego podziału dla wylosowanych argumentów Na niewylosowanych elementach zbioru (oob – out of bag) testowany jest błąd klasyfikacji drzewa Silne drzewo daje mały błąd klasyfikacji Korelacja wyznaczana jest pomiędzy dwoma drzewami lasu. Im większa korelacja tym większy błąd klasyfikacji lasu Im więcej atrybutów losowanych na węzeł, tym większa siła drzew i korelacja 46 Klasyfikacja Lasy losowe • wiele drzew • podobne (ale nie jednakowe) dane trenujące • różne atrybuty 47 Klasyfikacja Lasy losowe Walidacja ważności argumentów: Klasyfikacja Wyznacz błąd drzewa na danych niewylosowanych (oob) Permutuj wartośd parametru m w danych niewylosowanych Wyznacz błąd drzewa w nowych warunkach Odejmij błąd przed i po permutacji. Jeśli różnica jest duża, parametr jest istotny. Dany wektor klasyfikuj za pomocą każdego drzewa Wybierz tą kategorię, na którą zagłosowało najwięcej drzew Proporcja tych drzew do pozostałych określa pewnośd z jaką wynik został określony Nie ulegają łatwo przetrenowaniu 48 Klasyfikacja Bagging Bagging – bootstrap aggregating Zwiększa poprawnośd klasyfikacji pojedynczych klasyfikatorów Redukuje efekt przetrenowania klasyfikatorów Algorytm: 49 Za pomocą losowania ze zwracaniem utwórz n podzbiorów trenujących Dla każdego podzbioru trenującego utwórz klasyfikator, w sumie otrzymując n klasyfikatorów Klasyfikacji dokonaj przez głosowanie. Ta klasa na którą padnie najwięcej głosów jest przyjmowana jako wynik klasyfikacji Klasyfikacja Bagging x K1 K2 K3 K4 y1 y2 y1 y1 y1 50 Klasyfikacja Bagging Bagging w regresji 51 Estymacja parametrów dla każdego podzbioru trenującego Uśrednienie wyników Klasyfikacja Boosting Metoda łączenia „słabych” klasyfikatorów w „silny” klasyfikator Najlepiej działa w przypadku obecności dużej liczby dostępnych słabych klasyfikatorów Polega na rozszerzaniu silnego klasyfikatora poprzez dodawanie kolejnych słabych klasyfikatorów Z każdym dodanym kolejnym klasyfikatorem błąd całkowity na zbiorze trenującym zmniejsza się 52 Klasyfikacja AdaBoost Zakładamy klasyfikację dwuklasową Wybrane klasyfikatory posiadają pozytywny i negatywny koszt podjęcia decyzji (α i β) Progowanie sumy podjętych decyzji określa odpowiedź klasyfikatora Zależnie od decyzji klasyfikatora dodaje on pozytywny lub negatywny koszt decyzji do finalnej klasyfikacji Każdy klasyfikator na przykład daje jedną odpowiedź - α lub β K1 K2 K3 α2 α1 53 Klasyfikacja + β3 AdaBoost 54 Klasyfikacja AdaBoost Zakładamy istnienie L elementowego zbioru trenującego i zbioru słabych klasyfikatorów Algorytm 55 Inicjalizuj wagi wszystkich przykładów trenujących (zwykle na jednakową wartośd) Wybierz najlepszy słaby klasyfikator (o najmniejszym błędzie) dla aktualnych wag przykładów trenujących i wyznacz jego błąd. Dodaj go do silnego klasyfikatora Wyznacz wartości pozytywnych i negatywnych decyzji dodanego klasyfikatora (α i β) Zaktualizuj wagi przykładów trenujących Klasyfikacja AdaBoost Wybór słabego klasyfikatora uwarunkowany jest jego błędem: , gdzie wi to waga danego przykładu trenującego, δω(oi) to odpowiedź klasyfikatora ω na i-ty przykład (+1 lub -1), yi to znana klasa tego przykładu (+1 lub -1). Klasyfikator o najniższym błędzie zostaje dodany do silnego klasyfikatora Poprzez różnicowanie wag przykładów trenujących można wymuszad poprawną klasyfikację błędnie rozpoznanych przykładów 56 Klasyfikacja AdaBoost Większa waga nadawana jest tym przykładom, które zostały dotychczas niepoprawnie sklasyfikowane: Gdzie indeks t oznacza iterację algorytmu, ϒ oznacza koszt decyzji klasyfikatora znalezionego w chwili t dla przykładu i. Następnie unormuj wagi: 57 Klasyfikacja AdaBoost Wyznaczanie kosztów podjęcia decyzji W oryginalnym algorytmie (Shapire i Freund) 1 2 t ln 2 et et gdzie et jest błędem klasyfikatora dobranego w t-tej iteracji, α to koszt decyzji akceptacji, β to koszt decyzji odrzucenia. 58 Klasyfikacja AdaBoost Wyznaczanie kosztów decyzji Lepsze efekty otrzymuje się poprzez zróżnicowanie kosztów pozytywnych i negatywnych: Gdzie W oznacza sumę wag elementów zaklasyfikowanych do odpowiedniej kategorii. – w indeksie dolnym oznacza błędną klasyfikację, + oznacza poprawną. Indeks górny: - oznacza, że klasyfikator odrzucił przykład, + oznacza, że zaakceptował 59 Klasyfikacja AdaBoost W celu przyspieszenia algorytmu można opuszczad mało prawdopodobne ścieżki: 60 Klasyfikacja AdaBoost Kaskada klasyfikatorów 61 Pozwala odrzucid większośd przykładów za pomocą jedynie kilku klasyfikatorów Znacznie przyspiesza działanie klasyfikatora Zmniejsza jego skutecznośd Klasyfikacja AdaBoost Kaskada klasyfikatorów Trenowanie: Ustala się 2 progi – próg fałszywych odrzuceo (np. 0.001) i fałszywych akceptacji (np. 0.4) Ilośd stopni kaskady zazwyczaj ustawiona na stałe tak, aby otrzymad określoną stopę błędu Algorytm pojedynczego stopnia kaskady: Algorytm całej kaskady: 62 Tak jak w przypadku zwyczajnego trenowania AdaBoost, tylko przesuwaj próg koocowy tak, aby klasyfikator odpowiadał założonej stopie fałszywych odrzuceo Po każdym stopniu kaskady usuwaj przykłady poprawnie odrzucone i uzupełniaj je nowymi, przykłady pozytywne zostają bez zmian Twórz nowe stopnie aż do osiągnięcia kryterium stopu Klasyfikacja AdaBoost Sprzężenie zwrotne w poszukiwaniu nowych przykładów negatywnych 63 Klasyfikacja Kaskada/klasyfikator monolityczny 64 Boosting Inne metody boostingu. 65 Sieci neuronowe Sied neuronowa jest wieloelementową strukturą, która przetwarza dane za pomocą neuronów Neurony są ze sobą połączone i mają przypisane wagi ustalone w procesie uczenia Sieci mogą zawierad warstwy ukryte, czyli zbiory neuronów pomiędzy neuronami wejściowymi a wyjściowymi W klasycznym przypadku sieci neuronowe prowadzą do liniowej klasyfikacji danych 66 Klasyfikacja Sieci neuronowe Najprostszy neuron: perceptron Każdemu wejściu przypisana jest waga wi Na wyjściu perceptronu otrzymujemy: output wi xi i *źródło: http://neuralnetworksanddeeplearning.com/ - polecam!] 67 Klasyfikacja Sieci neuronowe Zwykle dalej mamy pewną funkcję aktywacji, w najprostszym przypadku – próg: *źródło: www.learnartificialneuralnetworks.com/] 68 Klasyfikacja Sieci neuronowe Perceptron wielowarstwowy Zawiera dodatkowe warstwy ukryte *źródło: www.nnwj.de/ multi-layer-perceptron.html] 69 Klasyfikacja Sieci neuronowe Różne funkcje aktywacji: Liniowa y ( x) ax b y Funkcja progowa: 0 dla x a y( x) 1 dla x a Funkcja sigmoidalna: x y x y y( x) 1 1 exp( x ) x 70 Klasyfikacja Sieci neuronowe Różne funkcje aktywacji: ReLU (Rectified Linear Unit) y Liniowa dla x>0 Zero dla x<0 x 71 Klasyfikacja Sieci neuronowe Przykład działania neuronu: y ( wt x w0 ) 72 Klasyfikacja Sieci neuronowe Możliwe rodzaje nauki sieci: nadzorowana (z nauczycielem) dla każdego przykładu jest zestaw pytao i odpowiedzi nienadzorowana (bez nauczyciela) jedynie zestaw pytao system stara się wychwycid korelacje między danymi hybrydowa częśd układu trenowana jest na podstawie uczenia z nadzorem, częśd bez Trenowanie odbywa się w epokach. Jedna epoka polega na zaprezentowaniu sieci wszystkich przykładów trenujących. 73 Klasyfikacja Sieci neuronowe Najprostsza reguła uczenia: reguła korekcji błędu Podczas uczenia sygnał wyjściowy y może byd rożny od pożądanego sygnału d (oczekiwanej kategorii) Można podad prosty algorytm wyznaczania optymalnej hiperpłaszczyzny rozdzielającej elementy trenujące: Inicjalizuj wagi i próg na bardzo małą wartośd Wyznacz odpowiedź y układu na wektor x o klasie d Zaktualizuj wagi poprzez: w j (t 1) w j (t ) (d y ) x j Gdzie η to wielkośd kroku (0..1) a t jest aktualną iteracją. (d-y) wynosi 0 w przypadku braku błędu (brak aktualizacji) (d-y) wynosi 1 lub -1 w przypadku błędu 74 Klasyfikacja Sieci neuronowe η= 0.01 t= 0 t= 10 t= 30 75 t= 40 Klasyfikacja t= 20 t= 100 Sieci neuronowe η= 0.005 t= 0 76 t= 50 Klasyfikacja t=100 Sieci neuronowe Metoda największego spadku (gradient descent) Wykorzystywana w celu znalezienia minimum pewnej funkcji Jest bardzo prosta – w tej metodzie przyjmuje się, że powinniśmy zmieniad wartości zmiennych w kierunku przeciwnym do gradientu funkcji. Może byd to postrzegane jako „staczenie się” ze zbocza y xn 1 xn F ( xn ) g ɣ - regulowany krok x 77 Trenowanie sieci głębokich Zakładamy, że znamy pożądane wartości wyjściowe dla przykładów trenujących. Zakładamy, że nadaliśmy początkowe wagi neuronów (np. w sposób losowy). Algorytm propagacji wstecznej (w uproszczeniu): 78 Zaprezentuj nowy przykład i zbadaj odpowiedź sieci na ten przykład. Wyznacz błąd odpowiedzi sieci w stosunku do pożądanych wartości. Wyznacz wpływ poszczególnych wag warstwy wyjściowej na błąd (gradient). Zmodyfikuj wagi w celu zbliżenia się do pożądanych wartości. Propaguj błąd do głębszych warstw sieci i aktualizuj wagi neuronów w kolejnych warstwach. Trenowanie sieci głębokich Im więcej warstw, tym początkowe wagi są istotniejsze. Błędny dobór wag początkowym wiąże się z niebezpieczeostwem osiągania lokalnych ekstremów dla głębszych warstw, co jest zjawiskiem niepożądanym. Problem ten można rozwiązad poprzez pewien proces przetwarzania wstępnego sieci, który ustali początkowe wagi neuronów (np. maszyny Boltzmana) Przy wielu warstwach gradient niesie ze sobą coraz mniej informacji. 79 Trenowanie sieci głębokich Przez wiele lat głębokośd sieci była silnie ograniczona – każdy kolejny poziom sieci wykazuje coraz wolniejszą tendencję do uczenia. W rezultacie bardzo trudno wytrenowad sied o wielu warstwach ukrytych. Są pewne sposoby rozwiązania tego problemu, jak np. zmiana funkcji celu (np. z kwadratowej na entropię krzyżową) lub zastosowanie funkcji softmax. *źródło: http://neuralnetworksanddeeplearning.com/ ] 80 Sieci neuronowe Inna reguła uczenia – reguła współzawodnictwa (tutaj nienadzorowanya): Zasada winner-takes-all Tylko węzeł z największą(najmniejszą) wartością przyjmuje wartośd, pozostałe 0. Prosta reguła ucząca: ( x j wij ), i i * wij , * 0, i i Można ją rozumied jako przybliżanie wektorów zwycięskich (i*)do danego przykładu. Tylko wektory zwycięskie są aktualizowane *źródło: A.Jain „Artificial Neural Networks: A Tutorial”+ 81 Klasyfikacja Sieci neuronowe Skomplikowanie sieci a zdolności klasyfikacyjne *źródło: A.Jain „Artificial Neural Networks: A Tutorial”+ 82 Klasyfikacja Sieci neuronowe Bardzo duża różnorodnośd rozwiązao: *źródło: A.Jain „Artificial Neural Networks: A Tutorial”+ 83 Klasyfikacja Sieci konwolucyjne Sieci konwolucyjne: CNN – Convolutional Neural Networks Przetwarzają przestrzenne właściwości danych 2W. Automatycznie dobierane są filtry konwolucyjne, które służą do osiągnięcia funkcji celu. Wykazują się dużą skutecznością w szczególności w analizie obrazu. *źródło: Ciresan, Dan; Ueli Meier; Jonathan Masci; Luca M. Gambardella; Jurgen Schmidhuber (2011). "Flexible, High Performance Convolutional Neural Networks for Image Classification" 84 Sieci konwolucyjne Przykładowe filtry wytrenowane dla problemu rozpoznawania cyfr (na dole po prawej). Baza MNIST - 10000 obrazów ręcznie napisanych i opisanych cyfr *źródło: http://neuralnetworksanddeeplearning.com/ ] 85 Sieci konwolucyjne Zazwyczaj stosowane są na przemian 2 warstwy: konwolucji (konwolucja z wytrenowanym filtrem) max-pooling (wykrywanie maksimum w otoczeniu – np. 2x2 lub 3x3 i podpróbkowanie) *źródło: Y. Taigman i inni: DeepFace: Closing the Gap to Human-Level Performance in Face Verification] 86 Deep-face Deep convolutional neural network Algorytm Facebooka rozpoznawania twarzy. Wstępne kroki przetwarzania: 87 Deep-face Rozpoznawanie: C1, M2, C3 – tradycyjne warstwy konwolucyjne (M2 – max-pooling z krokiem 2 pikseli), jeden obraz tworzony poprzez konwolucję z jednym filtrem L4, L5, L6 – analogicznie, tylko każdej pozycji w obrazie (!) odpowiada osobny filtr F7 – sied łącząca wyniki z różnych pozycji i F8 określa nam prawdopodobieostwo przynależności do klas. Olbrzymia liczba parametrów! Wymaga olbrzymiej liczby przykładów – w tym rozwiązaniu wykorzystano bazę 5 milionów zdjęd twarzy 88 Deep-face Funkcja celu – zgodnośd wyjścia sieci z tożsamością osób. Aby rozszerzyd sied na większą liczbę osób (bo przecież nie chcemy rozpoznawad jedynie tych, na których trenowana była sied) proponuje się: 89 tzw. podejście bottleneck, czyli odcinamy ostatnią warstwę sieci (etykiety). Zakładamy, że w ostatniej warstwie będziemy mieli sensowną reprezentację wszystkich twarzy. Ostatnia warstwa służy jako wektor cech do rozpoznawania dowolnych twarzy. Nie jest to najlepsze rozwiązanie, bo nie wiemy czy ostatnia warstwa jest rzeczywiście dobrą reprezentacją innych twarzy. Deep-face 90 FaceNet (Google) Obecnie najlepszy algorytm rozpoznawania twarzy. Liczby między obrazami wskazują podobieostwo deskryptorów. [F. Schroff i inni: „FaceNet: A Unified Embedding for Face Recognition and Clustering”+ 91 FaceNet (Google) Nauka trójkami (triplets) jako cel wskazujemy 3 przykłady Jeśli podobieostwo anchor->negative jest większe niż achor->positive, oznacza to, że dla tego przykładu algorytm nie działa dobrze. Te „trójki” stanowią dane trenujące. 0.75 negative 0.95 anchor positive [F. Schroff i inni: „FaceNet: A Unified Embedding for Face Recognition and Clustering”+ 92 FaceNet (Google) Na wyjściu sieci są bezpośrednio deskryptory! Funkcją celu jest: , gdzie a to anchor, p – positive, n – negative, α jest określoną stałą. [F. Schroff i inni: „FaceNet: A Unified Embedding for Face Recognition and Clustering”+ 93 FaceNet (Google) 94 FaceNet (Google) Liczba przykładów trenujących a skutecznośd: 95 FaceNet (Google) 96 [http://megaface.cs.washington.edu/results/facescrubresults.html] Konwolucyjne sieci neuronowe Najpopularniejsze pakiety ułatwiające implementację CNN: 97 Theano Tensorflow (Google) Caffe … wiele innych (http://deeplearning.net/software_links/) Algorytmy genetyczne Oparte na ewolucji osobników Poszukiwanie najlepszego rozwiązania danego problemu Genotyp – zestaw genów danego osobnika, tutaj wektor cech Fenotyp – zestaw cech danego osobnika (sprzężenie genotypu ze środowiskiem), tutaj interakcja z otoczeniem Algorytmy zakłada, że: 98 W środowisku pozostają jedynie osobniki najsilniejsze, Genotypy najsilniejszych osobników mieszają się, Zachodzą mutacje genotypu Klasyfikacja Algorytmy genetyczne Algorytm działa zwykle według schematu: 99 Wylosuj pewną populację początkową Oceo zachowanie populacji w środowisku Wybierz osobniki o najlepszych właściwościach, najsilniejsze Krzyżuj najsilniejsze osobniki Dokonaj niewielkich mutacji na osiągniętej populacji Klasyfikacja Algorytmy genetyczne Genom – np. 8-bitowy Przykłady krzyżowania Jednopunktowe – krzyżowanie się w określonych dwóch blokach Dwupunktowe – krzyżowanie losowych bloków Rodzic 1: 11|001|000 Rodzic 2: 00|100|110 Potomek 1: 11|100|110 Potomek 2: 00|001|000 Jednorodne – krzyżowanie w losowych genach 100 Rodzic 1: 11001|000 Rodzic 2: 00100|110 Potomek 1: 11001|110 Potomek 2: 00100|000 Rodzic 1: 11001000 Rodzic 2: 00100110 Potomek 1: 1102120102120101 Potomek 2: 0112020112020101 Klasyfikacja Algorytmy genetyczne Problem osiągania lokalnego minimum Przykład wideo 101 Każda ryba jest siecią neuronową i na wejściu otrzymuje swoją prędkośd, kierunek i relatywną pozycję najbliższego jedzenia. Na wyjściu mamy prędkośd „lewego koła” i „prawego koła”. Klasyfikacja Porównanie Różne klasyfikatory w klasyfikacji cyfr odręcznych (baza MNIST) 102 trenowanie – 60000 obrazów testowanie – 10000 obrazów CLASSIFIER PREPROCESSING linear classifier (1-layer NN) none TEST ERROR Reference RATE (%) 12.0 LeCun et al. 1998 K-nearest-neighbors, Euclidean (L2) none 5.0 LeCun et al. 1998 K-nearest-neighbors, Euclidean (L2) stumps on Haar features deskewing deskewing, noise removal, blurring Haar features 40 PCA + quadratic classifier none 3.3 LeCun et al. 1998 SVM, Gaussian Kernel none 1.4 SVM deg 4 polynomial deskewing 2-layer NN, 800 HU, Cross-Entropy Loss none 1.1 LeCun et al. 1998 Simard et al., ICDAR 1.6 2003 K-nearest-neighbors, Euclidean (L2) 6-layer NN 784-2500-2000-1500-1000none 500-10 (on GPU) [elastic distortions] committee of 35 conv. net, 1-20-P-40-P- width 150-10 [elastic distortions] normalization 103 2.4 LeCun et al. 1998 Kenneth Wilder, U. 1.80 Chicago 1.02 Kegl et al., ICML 2009 0.35 Ciresan et al. 2010 a 0.23 Ciresan et al. CVPR 2012