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ą: