Entropia Renyi ego, estymacja gęstości i klasyfikacja #2 Wojciech Czarnecki Jacek Tabor 13 lutego 2014 1 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 1/37 37
2 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 2/37 37
Idea Mamy dane X, Y R d Będziemy szukać takiego v R d, żeby po zrzutowaniu na v nasze dane miały możliwie dużą dywergencję maximize v R d D cs ([X] v, [Y ] v ) n N ( v, Z i, σz), 2 Z {X, Y }, i=1 σ Z = (4/3) 1/5 Z 1/5 std( v, Z ), Z {X, Y } where [Z] v = 1 Z Klasyfikowanie punktu x będzie odbywać się poprzez wybor większej gęstości: m(x; v) = arg max [Z] v(x) Z {X,Y } 3 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 3/37 37
Nasz problem optymalizacyjny Błąd na zbiorze uczącym maximize log ip XX(v) + log ip Y Y (v) 2 log ip XY (v) v R d subject to v = 1 where ip AB(v) = N AB N AB = x A,y B exp ( 1 2π(H A (v) + H B (v)) A B, v, x y 2 ), 2(H A (v) + H B (v)) H Z (v) = (4/3) 1/5 Z 1/5 std( v, Z ) Z {X, Y } Regularyzacja 4 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 4/37 37
Plan prezentacji obecny tydzien 1 Umiejscowienie modelu w uczeniu maszynowym 2 Modele liniowe, wymiar VC i Structural risk minimization 3 Nasz model a SVM 4 Jawna postać dywergencji 5 Gradientowa optymalizacja na sferze 6 Aspekty algorytmiczne i wydajnościowe 7 Ewaluacja 8 Co dalej? 5 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 5/37 37
Metoda największego spadku Dla ustalonego punktu startowego x, α i > 0 i funkcji f x 0 = x x t+1 = x t α t x f(x t ) 6 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 6/37 37
Metoda największego spadku Dla ustalonego punktu startowego x, α i > 0 i funkcji f x 0 = x x t+1 = x t α t x f(x t ) Analogicznie metoda największego wzrostu x 0 = x x t+1 = x t + α t x f(x t ) Rysunek: f : R 2 R 6 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 6/37 37
Metoda największego spadku na sferze Założmy, że x i = 1 x 0 = x x 7 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 7/37 37
Metoda największego spadku na sferze Założmy, że x i = 1 x 0 = x x g t = x f(x t ) 7 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 7/37 37
Metoda największego spadku na sferze Założmy, że x i = 1 x 0 = x x g t = x f(x t ) h t = g t ( g t, x t )x t 7 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 7/37 37
Metoda największego spadku na sferze Założmy, że x i = 1 x 0 = x x g t = x f(x t ) h t = g t ( g t, x t )x t n t = h t h t 7 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 7/37 37
Metoda największego spadku na sferze Założmy, że x i = 1 x 0 = x x g t = x f(x t ) h t = g t ( g t, x t )x t n t = h t h t x t+1 = x t cos(α t ) + n t sin(α t ) 7 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 7/37 37
Metoda największego spadku na sferze Założmy, że x i = 1 x 0 = x x g t = x f(x t ) h t = g t ( g t, x t )x t n t = h t h t x t+1 = x t cos(α t ) + n t sin(α t ) Rysunek: f : R 2 R na sferze 7 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 7/37 37
Metoda największego spadku na sferze Założmy, że x i = 1 x 0 = x x g t = x f(x t ) h t = g t ( g t, x t )x t n t = h t h t x t+1 = x t cos(α t ) + n t sin(α t ) Rysunek: f : R 2 R na sferze Można na to patrzeć inaczej x t+1 = R t x t 7 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 7/37 37
Gradient Dywergencji Cauchyego Schwarza D CS (v) = ip XX(v) ip XX(v) + ip Y Y (v) ip Y Y (v) 2 ip XY (v) ip XY (v), ip XY (v) =N XY x X,y Y { ( v, x y 2 exp ( v, x y 2 2H XY (v) 2H XY (v) 1) H XY (v) 2 v, x y (x y) H XY (v) =H X (v) + H Y (v), H XY (v) = H X (v) + H Y (v), ( 4 5 ( 3)2 H Z (v) = Z z z Z z Z v, v, z ) z 12/5 z Z z Z ) }, 8 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 8/37 37
Przykład Australian X, Y R 14 X = 307 Y = 383 X Y = 690 australian1mp4 dane dot otrzymania kredytu mieszane typy cech (8 nominalnych i 6 ciągłych) oryginalnie używane do pokazywania wydajności drzew decyzyjnych 9 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 9/37 37
Złożoność poszczegolnych elementow optymalizacji Przy obecnym (naiwnym) podejściu złożoność wynosi: operacja D cs (v) ip (v) odczytanie wartości Θ(( X + Y ) 2 ) Θ( X Y ) policzenie gradientu Θ(( X + Y ) 2 ) Θ( X Y ) optymalizacja O(st( X + Y ) 2 ) O(st X Y ) gdzie s liczba punktow początkowych, t maksymalna liczba iteracji 10 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 10/37 37
Jak wygląda nasza funkcja na sferze? Zaznaczam, że niełatwo było ją zwizualizować w związku z tym rysunek jest bardzo poglądowy 11 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 11/37 37
Jak wygląda nasza funkcja na sferze? Zaznaczam, że niełatwo było ją zwizualizować w związku z tym rysunek jest bardzo poglądowy 11 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 11/37 37
Szczegoły opytymalizacji gradientowej Musimy rozwiązać dwa problemy: Jak wybierać x (punkt początkowy) Skąd brać α t (wielkość kroku) 12 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 12/37 37
Jak wybierać x Metoda podstawowa: losowy punkt ze sfery jednostkowej 13 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 13/37 37
Jak wybierać x Metoda podstawowa: losowy punkt ze sfery jednostkowej Okazuje się, że nie jest to aż tak trywialne, jak studentowi niskiego roku może się wydawać Po lewej: wybor z jednostajnym rozkładem prawdopodobieństwa pary (θ, φ) z [0, 2π) [0, π) 13 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 13/37 37
Jak wybierać x Metoda podstawowa: losowy punkt ze sfery jednostkowej Okazuje się, że nie jest to aż tak trywialne, jak studentowi niskiego roku może się wydawać Używamy metody Muller a (1959): x = x / x, gdzie x N d (0, 1) 14 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 14/37 37
Jak wybierać α t W naiwnej wersji przyjmuje się często, że α t = const (np w podstawowej wersji propagacji wstecznej) 15 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 15/37 37
Jak wybierać α t W naiwnej wersji przyjmuje się często, że α t = const (np w podstawowej wersji propagacji wstecznej) Można rozsądniej (zgodnie z teorią optymalizacji): α t = arg max α R + f(x t + α x f(x t )) 15 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 15/37 37
Jak wybierać α t W naiwnej wersji przyjmuje się często, że α t = const (np w podstawowej wersji propagacji wstecznej) Można rozsądniej (zgodnie z teorią optymalizacji): α t = arg max α R + f(x t + α x f(x t )) od strony implementacyjnej, niech A = {2 x, dla x [ 15, 14,, 0]} {0} α t = arg max α A D cs(x t cos(α t ) + n t sin(α t )) Czyli wybieramy maksimum po kole wielkim zadanym przez kierunek gradientu dywergencji 15 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 15/37 37
Pseudokod 1: for i = 1 to T do 2: x N d (0, 1) 3: x 0 x / x 4: if i = 1 then 5: best x 0 6: end if 7: while x t x t 1 do 8: g t x D cs (x t ) 9: h t g t + ( g t, x t )x t 10: if h t < ε then 11: break 12: end if 13: n t h t h t 14: α t arg max α A D cs(x t cos(α t) + n t sin(α t)) 15: x t+1 x t cos(α t ) + n t sin(α t ) 16: t = t + 1 17: end while 18: if D cs (best) < D cs (x t ) then 19: best x t 20: end if 21: end for 22: return best 16 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 16/37 37
Czas zbudować klasyfikator dla zadanego v Dla uproszczenia, można przyjąć, że po prostu utrzymujemy estymatory gęstości [X] v oraz [Y ] v na podstawie ktorych podejmujemy decyzję W sposob oczywisty ma taka decyzja złożoność O( X + Y ) (nie licząc kosztu rzutowania na v, czyli O(d)) Ṣklasyfikowanie n punktow kosztuje O(nd( X + Y )) 17 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 17/37 37
Czas zbudować klasyfikator dla zadanego v Niech D = X Y oraz l(x) = 1: (x 1,, x n) = sort(v T D) 2: t 0 3: k 1 4: last l(x 1 ) 5: for i = 1 to n do 6: if last l(x i ) then { +1, jeśli x X 1, jeśli x Y 7: t j x i+x i 1 2 8: k k + 1 9: last l(x i ) 10: end if 11: end for 12: t j { +l(x1 ), iff i {0,, k} : 2 i v, x (t 13: cl v(x) = i, t i+1 ) l(x 1 ), iff i {0,, k} : 2 i v, x (t i, t i+1 ) 14: return cl v 18 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 18/37 37
Czas zbudować klasyfikator dla zadanego v Po zbudowaniu k-progowego klasyfikatora liniowego podjęcie decyzji wymaga rzutowania oraz wyszukania największego początku przedziału mniejszego od wartości rzutu Ṣklasyfikowanie n punktow kosztuje O(nd log(k)) 19 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 19/37 37
Czas zbudować klasyfikator dla zadanego v Czy aby na pewno ten algorytm jest ok? 20 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 20/37 37
Czas zbudować klasyfikator dla zadanego v Czy aby na pewno ten algorytm jest ok? Użycie estymatorow gęstości dawało nam silną regularyzację W wersji używającej etykiet tak nie jest i w efekcie k może być olbrzymie (nawet rowne X + Y )! 20 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 20/37 37
Czas zbudować klasyfikator dla zadanego v Czy aby na pewno ten algorytm jest ok? Użycie estymatorow gęstości dawało nam silną regularyzację W wersji używającej etykiet tak nie jest i w efekcie k może być olbrzymie (nawet rowne X + Y )! Mamy dwa wyjścia: { +1, jeśli [X]v (v Przyjąć l(x) = T x) > [Y ] v (v T x) 1, jeśli [X] v (v T x) [Y ] v (v T x) 20 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 20/37 37
Czas zbudować klasyfikator dla zadanego v Czy aby na pewno ten algorytm jest ok? Użycie estymatorow gęstości dawało nam silną regularyzację W wersji używającej etykiet tak nie jest i w efekcie k może być olbrzymie (nawet rowne X + Y )! Mamy dwa wyjścia: { +1, jeśli [X]v (v Przyjąć l(x) = T x) > [Y ] v (v T x) 1, jeśli [X] v (v T x) [Y ] v (v T x) Zbudować l-progowy klasyfikator liniowy, dla dowolnego l < k 20 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 20/37 37
Czas zbudować klasyfikator dla zadanego v Budowa l-progowego klasyfikatora liniowego Wystarczy zauważyć, że mając dany optymalny k-progowy klasyfikator, l-progowy można uzyskać usuwając z k-progowego k l niesąsiednich przedziałow, ktore minimalizują sumę implikowanych błędow na zbiorze uczacym (czyli liczbę przykładow uczących w tych usuwanych przedziałach) Rozwiązanie tego problemu jest znanym problemem algorytmicznym, rozwiązywalnym dynamicznie 21 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 21/37 37
Ewaluacja 22 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 22/37 37
Implementacja C++ boost leży na prywatnym repozytorium na github (tak, mamy swoje konto) 23 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 23/37 37
Implementacja C++ boost leży na prywatnym repozytorium na github (tak, mamy swoje konto) Problem otwarty Dlaczego sumowanie czynnikow w D cs w pythonie (numpy) jest ok 100 razy wolniejsze? 23 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 23/37 37
Co my w zasadzie maksymalizujemy? Maksymalizujemy: fakt: Dywegencję Cauchyego-Schwarza (niezbyt odkrywcze), 24 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 24/37 37
Co my w zasadzie maksymalizujemy? Maksymalizujemy: fakt: Dywegencję Cauchyego-Schwarza (niezbyt odkrywcze), hipoteza: Ważoną dokładność (weighted accuracy), 24 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 24/37 37
Co my w zasadzie maksymalizujemy? Maksymalizujemy: fakt: Dywegencję Cauchyego-Schwarza (niezbyt odkrywcze), hipoteza: Ważoną dokładność (weighted accuracy), hipoteza: MCC (Matthew s Correlation Coefficient) 24 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 24/37 37
Co my w zasadzie maksymalizujemy? Maksymalizujemy: fakt: Dywegencję Cauchyego-Schwarza (niezbyt odkrywcze), hipoteza: Ważoną dokładność (weighted accuracy), hipoteza: MCC (Matthew s Correlation Coefficient) Ẉ obecnej formule, nasz model nie maksymalizuje accuracy 24 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 24/37 37
Co my w zasadzie maksymalizujemy? Maksymalizujemy: fakt: Dywegencję Cauchyego-Schwarza (niezbyt odkrywcze), hipoteza: Ważoną dokładność (weighted accuracy), hipoteza: MCC (Matthew s Correlation Coefficient) Ẉ obecnej formule, nasz model nie maksymalizuje accuracy While there is no perfect way of describing the confusion matrix of true and false positives and negatives by a single number, the Matthews correlation coefficient is generally regarded as being one of the best such measures 24 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 24/37 37
Czy dywergencja to dobra miara? Obserwacja empiryczna Ẉ obecnej formule, nasz model maksymalizuje MCC 25 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 25/37 37
Zbiory danych z UCI dataset d X Y australian 14 383 307 bank 4 762 610 breast cancer 9 444 239 diabetes 8 268 500 fourclass 2 307 555 german number 24 700 300 heart 13 150 120 liver-disorders 6 145 200 sonar 60 111 97 splice 60 483 517 26 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 26/37 37
Zbiory danych z UCI dataset d X Y australian 14 383 307 bank 4 762 610 breast cancer 9 444 239 diabetes 8 268 500 fourclass 2 307 555 german number 24 700 300 heart 13 150 120 liver-disorders 6 145 200 sonar 60 111 97 splice 60 483 517 filemp4 27 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 27/37 37
RMLC vs Perceptron, SVM (bez strojenia) 28 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 28/37 37
RMLC wewnątrz foldow vs Perceptron, SVM (bez strojenia) 29 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 29/37 37
RMLC wewnątrz foldow vs Perceptron, SVM (bez strojenia) 30 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 30/37 37
RMLC (fast) vs Perceptron, SVM (bez strojenia) 31 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 31/37 37
RMLC vs SVM-balanced, SVM (ze strojeniem) 32 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 32/37 37
RMLC vs SVM-balanced, SVM (ze strojeniem) 33 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 33/37 37
Podsumowanie ogolne Zaproponowaliśmy nowy klasyfikator, z rosądną podbudową teoretyczną Używamy nietypowej funkcji kosztu (nie opartej o bezpośrednią klasyfikację) Budujemy klasyfikator z stosunkowo rzadko rozpatrywanej dziedziny Wskazaliśmy prostą (acz kosztowną) metodę optymalizacji 34 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 34/37 37
Podsumowanie ewaluacji Wyniki: Wskazują na wysoką korelację pomiędzy D cs a zdolnością generalizacyjną modelu Na prostych danych (UCI) są zbliżone (jakościowo) do tych z SVM Jednoczesnie budujemy istotnie rożny klasyfikator, i w niektorych przypadkach dostajemy istotnie lepsze wyniki Pokazują, że można istotnie przyspieszyć naszą metodę startując od rozwiązania taniego modelu Uważamy, że RMLC może być wartościową alternatywą dla SVM a i warto go zastosować tam, gdzie wynik uzyskiwany przez SVM nie jest zadowalający 35 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 35/37 37
Co dalej? Zmiana H X (v) na HX(v) γ = γh X (v) Napisanie w końcu pracy :-) Modyfikacja dla maksymalizacji accuracy Intrygujący przypadek kernelizowany Delinearyzacja poprzez sieci neuronowe i/lub projekcje losowe Przypadek wyżej wymiarowy (2 i 3) Zmiana jądra na Epanuchnikova Zastosowanie do wizualizacj danych etykietowanych Zwiększenie wydajności procedury optymalizacyjnej 36 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 36/37 37
Dziekuję za uwagę Pytania? Propozycje? Idee? 37 / Wojciech Czarnecki, Jacek Tabor Renyi s Multithreshold Linear Classifier 37/37 37