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
Sw1 ( 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
iN 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
iN 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