Zapisz jako PDF
Transkrypt
Zapisz jako PDF
powrót Spis treści 1 Wstęp: generatywne algorytmy uczące 2 Gaussowska analiza dyskryminacyjna 2.1 Gaussowska analiza dyskryminacyjna a regresja logistyczna 3 Naiwny Klasyfikator Bayesa 3.1 Wygładzanie Laplace'a Wstęp: generatywne algorytmy uczące Dotychczas mówiliśmy tylko o algorytmach uczących bazujących na modelowaniu rozkładów warunkowych zmiennych zależnych przy zadanym regresja liniowa, logistyczna czy softmax. i sparametryzowanych przez : , np.: Na podstawie przykładów z ciągu uczącego estymowana jest pewna granica między dwoma obszarami przestrzeni wejść. Decyzja co do klasy, którą reprezentuje nowy przypadek zależy tylko od tego, po której stronie granicy znajduje się ten przypadek. W tym wykładzie zajmiemy się odmiennym podejściem. Na podstawie ciągu uczącego stworzymy osobne modele tego, jakim rozkładom podlegają cechy w poszczególnych klasach. Po otrzymaniu nowego przypadku patrzymy, do której klasy jest on najbardziej podobny. Algorytmy, które estymują wprost rozkłady algorytmami dyskryminacyjnymi. czy też mapowania z nazywamy Dziś będziemy mówić o drugiej grupie algorytmów, tzw. algorytmach generatywnych. Modelują one: rozkłady cech w klasach: oraz prawdopodobieństwa występowania klas: Rozważmy przykład. Chcemy odróżniać psy ( . ) od kotów ( ). Umiemy określać cechy tych zwierząt. Budujemy rozkłady tych cech dla psów: i dla kotów . Modelujemy także prawdopodobieństwo tego, że losowo wybrane zwierzę będzie psem lub kotem (np. na podstawie liczebności obu gatunków): (jest to tzw. prawdopodobieństwo apriori). Wtedy można na podstawie wzoru Bayesa obliczyć prawdopodobieństwo a posteriori: Prawdopodobieństwo następująco: można także wyrazić za pomocą prawdopodobieństwa i . Warto jednak zauważyć, że w problemie klasyfikacji nie interesuje nas tak naprawdę . Dlaczego? W klasyfikacji chcemy odpowiedzieć na pytanie, która z klas jest najbardziej prawdopodobna, czyli dla jakiego maksymalne. Ponieważ mianownik wyrażenia (%i 1) , tzn. dla wszystkich klas. Można to zapisać tak: nie zależy od jest więc jest jednakowy Gaussowska analiza dyskryminacyjna Pierwszym algorytmem generatywnym, z którym się zapoznamy będzie gaussowska analiza dyskryminacyjna (GAD). W tej analizie zakładamy, że dane niezależne, przy ustalonej klasie, pochodzą z wielowymiarowego rozkładu normalnego: . Dla przypomnienia funkcja gęstości prawdopodobieństwa dla -wymiarowego rozkładu o wektorze średnim i macierzy kowariancji dana jest przez: gdzie: oznacza wyznacznik macierzy . Oczywiście z tego rozkładu: Macierz kowariancji natomiast dana jest wzorem: równe jest wartości oczekiwanej zmiennych ''': Kod do prezentacji dwuwymiarowych rozkładów normalnych:''' # -*- coding: utf-8 -*import numpy as np import pylab as py #parametry rozkładu # wektor średnich: mu = [-2,-3] # macierz kowariancji: Sigma = np.array([[1, 0.5], [0.5, 1]]) # generujemy dane: z1 = np.random.multivariate_normal(mu, Sigma, 10) # # Rysujemy każdą realizację zmiennej jako punkt # z1 to macierz taka, że # kolejne współrzędne zmiennej losowej są ułożone w kolejnych kolumnach py.plot(z1[:,],z1[:,1],'g.') py.axis('equal') py.show() Dla pełnej specyfikacji modelu gaussowskiej analizy dyskryminacyjnej musimy założyć, że następujące zmienne mają wskazane rozkłady: zapisując to przy pomocy odpowiednich funkcji gęstości prawdopodobieństwa mamy: Oznacza to, że nasz model jest sparametryzowany przez , , i . (Zazwyczaj w modelu tym przyjmuje się, że średnie są różne ale macierz kowariancji jest dla obu klas taka sama.) Do wyznaczenie parametrów możemy zastosować metodę największej wiarygodności. Mając do dyspozycji zbiór uczący możemy zapisać funkcję log-wiarygodności: Wielkości występujące w tym wzorze dane są przez równania (%i 3). Porównajmy tą funkcję z analogiczną funkcją dla regresji logistycznej: Zwróćmy uwagę, że w tym wzorze, jak i we wszystkich wzorach na funkcję log-wiarygodności w algorytmach dyskryminacyjnych, występuje prawdopodobieństwo warunkowe klasy mając dany : , zaś w przypadku algorytmów generatywnych mamy prawdopodobieństwa łączne . Maksymalizując tą funkcję (%i 4) względem parametrów otrzymujemy: Kiedy już mamy dopasowane parametry modelu możemy robić przy jego pomocy klasyfikację (przewidywania) co od nowych przypadków. Przewidywaną klasą będzie, zgodnie z tym co mówiliśmy na początku wykładu: Gaussowska analiza dyskryminacyjna a regresja logistyczna (Przykładowy rysunek w 1-D, dwa gaussy , pierwszy klasie odpowiada klasie y = 0 , a drugi . Zastanówmy się jakie jest prawdopodobieństwo dla różnych wartości ? : Otrzymujemy sigmiodę!) Istnieje ciekawa relacja między GAD a regresją logistyczną. Obie metody dają w efekcie pewną hiperpowierzchnię separującą obszary przestrzeni wejść na przynależną do klasy 0 bądź 1. Prawdopodobieństwo warunkowe klasy w modelu GAD można też wyrazić w postaci: przy czym jest pewną funkcją parametrów modelu . Co do formy uzyskujemy analogiczny wynik, chociaż w ogólności wynikające z tego proste (hiperpowierzchnie) decyzyjne będą różne dla GAD i regresji logistycznej, pomimo użycia tego samego zbioru uczącego. Który model jest lepszy ? Możemy narysować taki schemat: Dla wielu rozkładów należących do rodziny wykładniczej otrzymujemy logistycznej. Wynika stąd, że założenie gaussowskiej postaci logistyczna postać w postaci jest mocniejszym założeniem niż . Zatem odpowiedź, które podejście jest lepsze zależy od danych. Model GAD oparty jest o założenie, że rozkłady warunkowe danych są wielowymiarowymi rozkładami normalnymi. Jeśli to założenie jest prawdziwe, to model GAD wykorzystuje więcej informacji, bo ”zna” cały rozkład danych - dane ze zbioru uczącego służą jedynie do estymacji parametrów tego rozkładu. Z drugiej strony regresja logistyczna robi znacznie słabsze założenia co do danych w związku z czym jest bardziej odporna na odstępstwa rozkładów danych wejściowych od założeń. Naiwny Klasyfikator Bayesa Klasyfikator GAD działał na danych ciągłych. Jak można zbudować kalsyfikator generatywny dla danych dyskretnych? Jako przykład omówimy naiwny klasyfikator Bayesa. Klasyfikator ten zaprezentujemy na przykładzie filtru antyspamowego. Załóżmy, że jako zbiór uczący mamy kolekcję listów oznaczonych jako spam albo nie-spam Najpierw musimy się zastanowić jak można reprezentować listy? Jednym z popularnych podejść jest metoda słownikowa. Przeglądamy duży zestaw listów, sporządzamy listę słów, które wystąpiły w tych listach, porządkujemy alfabetycznie i otrzymujemy słownik. Mając taki słownik możemy każdy list zakodować jako wektor kolumnowy złożony z zer i jedynek. Jedynka na i-tej pozycji oznacza, że w liście wystąpiło i-te słowo z naszego słownika. Przykładowy list mógłby wyglądać tak: Każdy ( -ta współrzędna wektora ) może przyjąć wartość 1 albo 0 w zależności od tego czy -te słowo ze słownika wystąpiło w liście czy też nie. Zauważmy, że kodowanie to pomija informację o częstości danego słowa w liście. Widać, że rozmiar może być bardzo duży. Jest on równy rozmiarowi słownika. Mając wybrany sposób reprezentacji listów możemy przystąpić do budowania modelu dyskryminacyjnego. Czyli potrzebjemy wyznaczyć . Jeśli rozmiar naszego słownika to 5000 słów to są 5000-wymiarowymi wektorami z wartościami 0 i 1. Gdzybyśmy chcieli zamodelować to rozkładem wielorakim to mielibyśmy możliwych stanów do zareprezentowania i tyle potrzebowalibyśmy oszacować parametrów. To zdecydowanie za dużo. Aby sobie jakoś z tym problemem poradzić posłużymy się tzw. naiwnym założeniem Bayesa. Założymy mianowicie, że słowa są warunkowo niezależne. W praktyce oznacza to tyle, że jeśli wiem, że dany list jest spamem, to dodatkowa wiedza, że występuje w nim słowo 'wygrałeś' ( ) nie wpływa na moje oszacowanie prawdopodobieństwa, że w tym liście występuje słowo 'kliknij' ( ). Formalnie oznacza to, że . Uwaga: Nie jest to to samo co założenie, że słowa te są od siebie niezależne. Niezależność słów zapisalibyśmy jako . Dzięki założeniu warunkowej niezależności możemy zapisać: Ostatecznie nasz model jest sparametryzowany przez: Mając dany zbiór uczący możemy wypisać funkcję wiarygodności: Maksymalizując tą fuknkcję za względu na parametry otrzymujemy: Teraz aby sklasyfikować nowy list z cechami obliczamy: (aby obliczyć prawdopodobieństwo przynależności do klasy 0 możemy skorzystać z: ) i wybieram klasę do której przynależność jest bardziej prawdopodobna. W tym przykładzie rozważaliśmy sytuację gdy prawdopodobieństwa warunkowe poszczególnych były modelowane rozkładem Bernoulliego. Widać, że gdyby mogło przyjmować dyskretnych wartości to należałoby modelować je za pomocą rozkładu wielorakiego. Wygładzanie Laplace'a Chociaż opisany przed chwilą model zazwyczaj działa dobrze, to jest z nim czasem w praktycznych zastosowaniach problem. Wyobraźmy sobie, że słownik zawiera słowo 'niezapominajka' ale, że zbiór uczący nie zawierał listu w którym słowo to by wystąpiło, załóżmy że ma ono indeks 2576 w naszym słowniku. Wówczas oszacowane parametry dla tego słowa to: bo nigdy się nie zdarzyło aby słowo to wystąpiło w klasie spam i w klasie nie-spam. Jeżeli teraz policzymy dla tego słowa prawdopodobieństwo klasy 1 to : ponieważ w każdym z iloczynów występuje czynnik . Czyli nie da się określić prawdopodobieństwa przynależności listu do klasy spam albo nie-spam ze względu na jedno słowo, które nie występowało w zbiorze uczącym! W tym przykładzie można by oczywiście zaproponować inny sposób konstrukcji słownika aby do takiej sytuacji nie doszło. Można też przyjrzeć się temu problemowi bardziej ogólnie. Problem ten bierze się ze sposobu szacowania parametrów . Rozważmy zagadnienie oszacowania średniej w rozkładzie wielorakim, w którym zmienna przyjmuje jedną z wartości i rozkład ten jest sparametryzowany przez . Do dyspozycji mamy niezależnych obserwacji największej wiarygodności otrzymujemy estymaty (stosunek liczby obserwacji): . Z metody do liczby wszystkich Jednak fakt, że w skończonym zbiorze obserwacji nie wystąpiła ani razu któraś z możliwych wartości nie powinien skutkować tym, że przypisujemy zerowe prawdopodobieństwo tej możliwości. Metodą powszechnie stosowaną na poprawę tej estymaty jest tzw. wygładzanie Laplacea. Modyfikuje ono estymatę otrzymaną metodą największej wiarygodności w następujący sposób: Łatwo zauważyć, że ten estymator też spełnia warunki narzucone przez interpretację probabilistyczną: