Wstęp do sieci neuronowych, wykład 09, Walidacja jakości uczenia. Metody statystyczne.
Maja Czoków, Jarosław Piersa
Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika
2011-12-06
1 Generalizacja Przykład Generalizacja Przeuczenie sieci
2 Walidacja jakości uczenia Przypomnienie ze statystyki Problem
Modele walidacji danych
3 Błędy klasyfikacji Eksperyment myślowy
Błędy pierwszego i drugiego rodzaju
4 Przypadek ciągły Przypadek ciągły
Regresja liniowa — prosta
1 Generalizacja Przykład Generalizacja Przeuczenie sieci
2 Walidacja jakości uczenia Przypomnienie ze statystyki Problem
Modele walidacji danych
3 Błędy klasyfikacji Eksperyment myślowy
Błędy pierwszego i drugiego rodzaju
4 Przypadek ciągły Przypadek ciągły
Regresja liniowa — prosta
Regresja liniowa — wielomian stopnia d Zadania
Przykład
Rozważmy problem XOR;
-1.5 -1 -0.5 0 0.5 1 1.5
-1.5 -1 -0.5 0 0.5 1 1.5
(Poprawnie) nauczona sieć daje poprawną odpowiedź na wszystkich 4 przykładach, Tablica haszująca da ten sam efekt bez zaawansowanej teorii i przy porównywalnym (albo i mniejszym) koszcie pamięciowym,
Ale co się stanie gdy zapytamy się o klasyfikację
Przykład
Co się stanie gdy zapytamy się o klasyfikację punktu (1.3, −0.5)?
Tablica haszująca: (zależnie od wybranego języka)
ArrayIndexOutOfBoundsException, Segmentation fault itp.
Sieć neuronowa: zwróci (jakąś) odpowiedź dla każdego z punktów na płaszczyźnie,
Od czego zależy odpowiedź?
Wnioski
nie chcemy w zbiorze treningowym każdej możliwej wartości jaka może paść,
chcemy „reprezentatywną próbkę” przestrzeni o jaką sieć będzie pytana podczas normalnego działania,
Co to jest „reprezentatywna próbka”?
Co autor może mieć na myśli:
-1 -0.5 0 0.5 1 1.5 2
-1 -0.5 0 0.5 1 1.5 2
Co to jest „reprezentatywna próbka”?
Co sieć może z tego zrozumieć:
-0.5 0 0.5 1 1.5 2
Generalizacja
Generalizacja jest zdolnością sieci do porawnej klasyfikacji danych, na których sieć nie była uczona.
Generalizacja
Dane uczące:
-0.5 0 0.5 1 1.5 2
Generalizacja
Sieć niedouczona:
-1 -0.5 0 0.5 1 1.5 2
-1 -0.5 0 0.5 1 1.5 2
Generalizacja
Sieć dobrze nauczona:
-0.5 0 0.5 1 1.5 2
Generalizacja
Sieć przeuczona:
-1 -0.5 0 0.5 1 1.5 2
-1 -0.5 0 0.5 1 1.5 2
Przeuczenie sieci
przeuczenie sieci jest sytuacją gdy sieć uczy się przykładów „na pamięć”,
zdarza się to gdy sieć ma zbyt wiele punktów swobody (za dużo neuronów do nauczenia w porównaniu do skomplikowania problemu i ilości danych),
przeuczona sieć traci możliwości generalizacji.
Systuacja ekstremalna
Dane uczące:
-1 -0.5 0 0.5 1 1.5 2
-1 -0.5 0 0.5 1 1.5 2
Systuacja ekstremalna
Wewnętrzna reprezentacja
-0.5 0 0.5 1 1.5 2
1 Generalizacja Przykład Generalizacja Przeuczenie sieci
2 Walidacja jakości uczenia Przypomnienie ze statystyki Problem
Modele walidacji danych
3 Błędy klasyfikacji Eksperyment myślowy
Błędy pierwszego i drugiego rodzaju
4 Przypadek ciągły Przypadek ciągły
Regresja liniowa — prosta
Regresja liniowa — wielomian stopnia d Zadania
Przypomnienie ze statystyki
Dana jest próbka losowa x1, ..., xn wartości, losowanych niezależnie z rozkładu X .
Średnia z próby definiowana jest jako
¯ x =
Pn i =1xi
n
Średnia jest (mocno) zgodnym estymatorem wartości oczekiwanej rozkładu X (o ile EX istnieje!).
Przypomnienie ze statystyki
Estymator wariancji (o ile rozkład X posiada wariancję!):
σˆ2= 1 n − 1
n
X
i =1
(xi − ¯x )2
Estymator odchylenia standardowego:
ˆ σ =
v u u t
1 n − 1
n
X
i =1
(xi − ¯x )2
Przypomnienie ze statystyki
Medianą próbki losowej xi1, ..., xin będzie tą próbką po posortowaniu.
Mediana jest zdefiniowana jako:
jeżeli n jest nieparzyste xi(n+1/2) (element na samym środku posortowanej listy),
jeżeli n jest parzyste xin/2+x2in/2+1 (średnia dwóch „środkowych”
elementów)
Zagadnienie
Dane niech będzie zbiór punktów uczących wraz z poprawnymi odpowiedziami,
Skonstruowana i nauczona została sieć neuronowa,
Chcemy ocenić jakość klasyfikacji i generalizacji uzyskanej sieci.
Proste rozwiązanie
Po nauczeniu sieci sprawdzamy ile z przykładów jest klasyfikowanych poprawnie,
Obliczamy ilość wszystkich przykładów, Przypisujemy:
jakość uczenia := ilość przykładów sklasyfikowanych poprawnie ilość wszystkich przykładów
Proste rozwiązanie
Rozwiązanie jest aż za proste!
nie mówi nic o zachowaniu się sieci na danych, których nie widziała,
preferuje uczenie się danych na pamięć, ignoruje generalizację, zaletą jest to, że maksymalnie wykorzystuje zestaw danych do uczenia.
Walidacja prosta
dane uczące są losowo dzielone na dwa rozłączne zbiory:
próbkę uczącą U, próbkę testową T ,
sieć jest uczona za pomocą próbki uczącej,
jakość sieci jest badana tylko za pomocą próbki testowej jakość := ilość przykładów T sklasyfikowanych poprawnie
ilość wszystkich przykładów w T
Walidacja prosta
Walidacja prosta
Uwagi i niebezpieczeństwa:
większy wpływ na wynik może mieć |U∪T ||U| , niż zaimplementowany algorytm,
rozsądnym minimum dla |U| jest około 14 całego zbioru, z drugiej strony |U| nie powinno być większe niż 109 całego zbioru,
podając wynik, zawsze podajemy proporcje w jakich podzielono zbiór,
mamy informację o możliwości generalizacji, ale algorytm uczenia sieci korzystał tylko z ułamka dostępnej wiedzy,
k-krotna walidacja krzyżowa
Ang. k-fold cross-validation
dane uczące są losowo dzielone na k rozłącznych i równolicznych zbiorów: T1, ..., Tk,
dla i = 1...k powtarzamy
uczymy sieć na zbiorze uczącym T1∪ ...Ti −1∪ Ti +1∪ Tk, testujemy tak nauczoną sieć na danych Ti (na tych danych sieć nie była uczona),
zapamiętujemy rezultat jako ri podajemy wszystkie rezultaty ri,
lub przynajmniej ich średnią, medianę, minimum, maksimum i odchylenie standardowe,
k-krotna walidacja krzyżowa
k-razy dwukrotna walidacja krzyżowa
Ang. k-times 2-fold cross-validation odmiana walidacji krzyżowej, dla i = 1...k powtarzamy:
wykonujemy 2-krotną walidację, za każdym razem losujemy zbiory treningowy i testowy od nowa,
zapamiętujemy wyniki ri1 ri2 (po dwa na każdą iterację), zwracamy statystyki uzyskanych wyników,
k-razy dwukrotna walidacja krzyżowa
Leave One Out
odmiana walidacji krzyżowej, w której k = ilość elementów w T , dla i = 1...n powtarzamy:
uczymy sieć na zbiorze uczącym T \Ti, testujemy sieć na pozostałym przykładzie Ti,
zapamiętujemy wynik ri (będzie on albo +1, albo 0), obliczamy średnią i odchylenie standardowe wyników,
można stosować w przypadku małej ilości danych w zbiorze T .
Leave One Out
1 Generalizacja Przykład Generalizacja Przeuczenie sieci
2 Walidacja jakości uczenia Przypomnienie ze statystyki Problem
Modele walidacji danych
3 Błędy klasyfikacji Eksperyment myślowy
Błędy pierwszego i drugiego rodzaju
4 Przypadek ciągły Przypadek ciągły
Regresja liniowa — prosta
Regresja liniowa — wielomian stopnia d Zadania
Błędy i błędy
jeżeli przyjmowana klasyfikacja jest binarna to możemy się pomylić na dwa sposoby:
przypadek, który powinien być prawdziwy, oceniamy jako fałszywy, (ang. false negative error )
przypadek fałszywy oceniamy jako prawdziwy (ang. false positive),
który błąd jest gorszy?
Przykład
egzamin z przedmiotu (np. WSN) powinien testować wiedzę zdających
jeżeli zdający zna materiał i dostał ocenę pozytywną, to egzaminatorpoprawnieocenił wiedzę,
jeżeli zdający nie zna materiału i nie zaliczył, to ocena jest poprawna,
jeżeli zdający umiał, ale mimo tego nie zaliczył, to egzaminator popełnił błąd (false negative),
jeżeli zdający nie umiał a zaliczył, to egzaminator popełnił (dramatyczny) błąd (false positive).
ponieważ zawsze przysługuje egzamin poprawkowy, to ostatnia opcja jest najgorsza...
Błędy pierwszego i drugiego rodzaju
klasyfikacja pozytywna klasyfikacja negatywna faktyczny stan poprawna odpowiedź false negative
jest pozytywny true positive (błąd II-go rodzaju) faktyczny stan false positive poprawna odpowiedź jest negatywny (błąd I-go rodzaju) true negative
Bardziej życiowe przykłady
filtr antyspamowy,
kontrola bezpieczeństwa na lotnisku, diagnoza lekarska,
diagnoza usterek technicznych, kontrola jakości,
Wrażliwość i specyficzność
wrażliwość testu (ang. sensitivity) jest odsetkiem poprawnych odpowiedzi wśród poprawnych przypadków, test o wysokiej wrażliwości popełnia mało błędów II-go rodzaju
TPR = true positives positives
specyficzność testu (ang. specificity) jest odsetkiem
poprawnych odpowiedzi wśród negatywnych przypadków, test o wysokiej specyficzności popełnia mało błędów I-go rodzaju
TNR = true negatives
Wrażliwość i specyficzność
stuprocentowa wrażliwość — tak na każdy przypadek, stuprocentowa specyficzność — nie na każdy przypadek („bardzo asertywny test”),
wysokie oba wskaźniki są cechą dobrych testów (co oznacza:
trudne do osiągnięcia),
znając cel (np. unikanie fałszywych alarmów), szukamy najlepszego kompromisu kontrolując ważniejszą statystykę,
Reciever Operation Characteristic
Funkcja wrażliwości testu w zależności od progu przyjmowania odpowiedzi:
1 Generalizacja Przykład Generalizacja Przeuczenie sieci
2 Walidacja jakości uczenia Przypomnienie ze statystyki Problem
Modele walidacji danych
3 Błędy klasyfikacji Eksperyment myślowy
Błędy pierwszego i drugiego rodzaju
4 Przypadek ciągły Przypadek ciągły
Regresja liniowa — prosta
Regresja liniowa — wielomian stopnia d Zadania
Co robić jeżeli wyniki są ciągłe?
błędy mierzymy jako odległość uzyskanego wyniku od oczekiwanego:
ERR =X
t
|E (t) − O(t)|
lub kwadrat odległości
ERR =X
t
(E (t) − O(t))2
Co robić jeżeli wyniki są ciągłe?
w przypadku wielowymiarowym dodatkowo suma po współrzędnych
ERR =X
t
X
i
(Ei(t) − Oi(t))2
im mniejszy błąd tym lepsza klasyfikacja
Co robić jeżeli wyniki są ciągłe?
im więcej elementów w zbiorze, tym większy błąd nawet dla dobrej sieci,
zatem uśrednimy wyniki:
ERR = 1 n
n
X
i =1
(E (ti) − O(ti))2
n — ilość przykładów w zbiorze
Generalizacja Walidacja jakości uczenia Błędy klasyfikacji Przypadek ciągły
Przypadek ciągły Regresja liniowa — prosta
Regresja liniowa — wielomian stopnia d Zadania
Regresja liniowa / Metoda najmniejszych kwadratów
danych mamy n punktów na R2: (x1, y1), ..., (xn, yn)
chcemy znaleźć równanie prostej y = ax + b „przybliżającej” te punkty
n
X
i =1
(f (xi) − yi)2
Regresja liniowa / Metoda najmniejszych kwadratów
danych mamy n punktów na R2: (x1, y1), ..., (xn, yn)
chcemy znaleźć równanie prostej y = ax + b „przybliżającej” te punkty
idea: znajdziemy równanie prostej f , która minimalizuje odległość od tych punktów
n
X
i =1
(f (xi) − yi)2
Regresja liniowa / Metoda najmniejszych kwadratów
-15 -10 -5 0 5
0 2 4 6 8 10
-15 -10 -5 0 5
0 2 4 6 8 10
Regresja liniowa / Metoda najmniejszych kwadratów
Rozważania na tablicy
Generalizacja Walidacja jakości uczenia Błędy klasyfikacji Przypadek ciągły
Przypadek ciągły Regresja liniowa — prosta
Regresja liniowa — wielomian stopnia d Zadania
Regresja liniowa / Metoda najmniejszych kwadratów
Da tych, którzy wolą uczyć się ze slajdów
i i i i i i
błąd chcemy minimalizować więc liczymy pochodne po a i po b
∂E
∂a =X
i
∂(axi+ b − yi)2
∂a
∂E
∂b =X
i
∂(axi+ b − yi)2
∂b
Generalizacja Walidacja jakości uczenia Błędy klasyfikacji Przypadek ciągły
Przypadek ciągły Regresja liniowa — prosta
Regresja liniowa — wielomian stopnia d Zadania
Regresja liniowa / Metoda najmniejszych kwadratów
Da tych, którzy wolą uczyć się ze slajdów postać prostej f (x ) = ax + b
błąd E (a, b) =P
i(f (xi) − yi)2=P
i(axi+ b − yi)2
∂E
∂a =X
i
∂(axi+ b − yi)2
∂a
∂E
∂b =X
i
∂(axi+ b − yi)2
∂b
Regresja liniowa / Metoda najmniejszych kwadratów
Da tych, którzy wolą uczyć się ze slajdów postać prostej f (x ) = ax + b
błąd E (a, b) =P
i(f (xi) − yi)2=P
i(axi+ b − yi)2
błąd chcemy minimalizować więc liczymy pochodne po a i po b
∂E
∂a =X
i
∂(axi+ b − yi)2
∂a
∂E
∂b =X
i
∂(axi+ b − yi)2
∂b
Generalizacja Walidacja jakości uczenia Błędy klasyfikacji Przypadek ciągły
Przypadek ciągły Regresja liniowa — prosta
Regresja liniowa — wielomian stopnia d Zadania
Regresja liniowa
∂E
∂a =X
i
∂(axi + b − yi)2
∂a =X
i
2(axi + b − yi)∂(axi + b − yi)
∂a =
X
i
2(axi+ b − yi)xi = 2(aX
i
xi2+ bX
i
xi −X
i
xiyi)
∂E
∂b =X
i
∂(axi+ b − y )
∂b =X
i
2(axi + b − yi)∂(axi + b − y )
∂b =
X
i
2(axi + b − yi)1 = 2(aX
i
xi + bX
i
1 −X
i
yi)
Regresja liniowa
∂E
∂a =X
i
∂(axi + b − yi)2
∂a =X
i
2(axi + b − yi)∂(axi + b − yi)
∂a =
X
i
2(axi+ b − yi)xi = 2(aX
i
xi2+ bX
i
xi −X
i
xiyi) Podobnie
∂E
∂b =X
i
∂(axi+ b − yi)2
∂b =X
i
2(axi + b − yi)∂(axi + b − yi)
∂b =
X
i
2(axi + b − yi)1 = 2(aX
i
xi + bX
i
1 −X
i
yi)
Regresja liniowa / Metoda najmniejszych kwadratów
Oznaczmy S1=P
i1 = n Sx =P
ixi Sy =P
iyi Sxy =P
ixiyi
Sxx =P
ixi2
Generalizacja Walidacja jakości uczenia Błędy klasyfikacji Przypadek ciągły
Przypadek ciągły Regresja liniowa — prosta
Regresja liniowa — wielomian stopnia d Zadania
Regresja liniowa / Metoda najmniejszych kwadratów
Nasze równania teraz wyglądają następująco:
2(aSxx+ bSx − Sxy) = 0 2(aSx + bS1− Sy) = 0
x 1 y
a = n·Sn·Sxy−SxSy
xx−Sx2
b = Sxxn·SSy−SxySx
xx−Sx2
Generalizacja Walidacja jakości uczenia Błędy klasyfikacji Przypadek ciągły
Przypadek ciągły Regresja liniowa — prosta
Regresja liniowa — wielomian stopnia d Zadania
Regresja liniowa / Metoda najmniejszych kwadratów
Nasze równania teraz wyglądają następująco:
2(aSxx+ bSx − Sxy) = 0 2(aSx + bS1− Sy) = 0
aSxx+ bSx = Sxy
aSx+ bS1 = Sy
b = Sxxn·SSy−SxySx
xx−Sx2
Regresja liniowa / Metoda najmniejszych kwadratów
Nasze równania teraz wyglądają następująco:
2(aSxx+ bSx − Sxy) = 0 2(aSx + bS1− Sy) = 0
aSxx+ bSx = Sxy
aSx+ bS1 = Sy
a = n·Sn·Sxy−SxSy
xx−Sx2
b = Sxxn·SSy−SxySx
xx−Sx2
Generalizacja Walidacja jakości uczenia Błędy klasyfikacji Przypadek ciągły
Przypadek ciągły Regresja liniowa — prosta
Regresja liniowa — wielomian stopnia d Zadania
Regresja liniowa / Metoda najmniejszych kwadratów
Jeżeli f (x ) = adxd+ ad −1xd −1+ a1x + a0 błąd E (a, b) =P
i(f (xi) − yi)2
∂E
∂ai =X
j
∂(adxjd+ ... + a1xj1+ a0− yj)2
∂aj dla i = 0...d ,
Regresja liniowa / Metoda najmniejszych kwadratów
Jeżeli f (x ) = adxd+ ad −1xd −1+ a1x + a0 błąd E (a, b) =P
i(f (xi) − yi)2
ponownie liczymy pochodne po każdym ze współczynników
∂E
∂ai =X
j
∂(adxjd+ ... + a1xj1+ a0− yj)2
∂aj dla i = 0...d ,
Aproksymacja wielomianem st. 2
-5 0 5 10
Generalizacja Walidacja jakości uczenia Błędy klasyfikacji Przypadek ciągły
Przypadek ciągły Regresja liniowa — prosta
Regresja liniowa — wielomian stopnia d Zadania
Regresja liniowa / Metoda najmniejszych kwadratów
∂E
∂ai =X
j
adxjd+ ... + a1xj1+ a0− yj∂(adxjd+ ... + a0− yj)
∂aj dla i = 0...d ,
j
dla i = 0...d ,
∂E
∂ai
= adX
j
xjd +i + ... + a1X
j
xj1+i + a0X
j
xji −X
j
yjxji = 0
Generalizacja Walidacja jakości uczenia Błędy klasyfikacji Przypadek ciągły
Przypadek ciągły Regresja liniowa — prosta
Regresja liniowa — wielomian stopnia d Zadania
Regresja liniowa / Metoda najmniejszych kwadratów
∂E
∂ai =X
j
adxjd+ ... + a1xj1+ a0− yj∂(adxjd+ ... + a0− yj)
∂aj dla i = 0...d ,
∂E
∂ai =X
j
adxjd+ ... + a1xj1+ a0− yj xji
dla i = 0...d ,
j j j j
Regresja liniowa / Metoda najmniejszych kwadratów
∂E
∂ai =X
j
adxjd+ ... + a1xj1+ a0− yj∂(adxjd+ ... + a0− yj)
∂aj dla i = 0...d ,
∂E
∂ai =X
j
adxjd+ ... + a1xj1+ a0− yj xji
dla i = 0...d ,
∂E
∂ai
= adX
j
xjd +i + ... + a1X
j
xj1+i + a0X
j
xji −X
j
yjxji = 0
Regresja liniowa / Metoda najmniejszych kwadratów
Oznaczmy:
Sxk =X
j
xjk
Syxk =X
j
yjxjk
S1 =X
j
1
Regresja liniowa / Metoda najmniejszych kwadratów
Otrzymujemy układ równań:
Sx2d Sx2d −1 ... Sxd +1 Sxd Sx2d −1 Sx2d −2 ... Sxd Sxd −1
... ...
Sxd Sxd −1 ... Sx1 Sx0
·
an
an−1
... a0
=
Syxd
Syxd −1
... Syx0
Aproksymacja wielomianem zbyt wysokiego stopnia
dla wysokich stopni wielomianu d i złośliwych danych problem może być źle uwarunkowany (np. w danych jest para
(xi, yi)(xj, yj) gdzie xi jest dość bliski xj, a odpowiadające im y znacznie się różnią),
wielomian trafia idealnie (niemal idealnie, jeżeli d < n − 1) w każdy z punktów uczących, ale nie oddaje tego, co się dzieje poza nimi,
jeżeli d ' n (ilość danych), to prostszym rozwiązaniem jest interpolacja wielomianowa Lagrange’a.
Aproksymacja wielomianem zbyt wysokiego stopnia
-40 -20 0 20 40
0 2 4 6 8 10
Zadania
znajdź wielomiany stopni 1, 2 i 3 przybliżający punkty (0, 0), (1, 1), (2, 3),
znajdź wielomiany stopni 1, 2 i 3 przybliżający punkty (0, 0), (1, 1), (2, 3), (4, 0),
(*) znajdź wielomian interpolacyjny Lagrange’a stopnia 1, 2 i 3 dla danych z zadań powyżej,
zaimplementuj uczenie perceptronu i prostej sieci skierowanej na przykładzie XOR (lub innym nietrywialnym), zbadaj jakość uczenia w obu przypadkach, Skorzystaj z walidacji prostej, krzyżowej, LOO, estymacji poprawnie klasyfikowanych punktów
Zadania
zbadaj specyficzność i wrażliwość (sensitivity and specificity) nauczonej sieci z zadania wyżej,
(**) kontrolując ręcznie próg neuronu a tym samym wrażliwość testu (zawsze „nie” do zawsze „tak”), wyświetl wykres
zależności specyficzności od wrażliwości (wykres ROC).
(**) Oblicz numerycznie pole pod wykresem (AUC) z zadania powyżej.