MaxEnt – zasada maksymalnej entropii
Marek Śmieja
Teoria informacji
Motywacja 1
Rzucamy kostką. Jaki jest najbardziej prawdopodobny rozkład na kostce?
Jednostajny p(i ) = 16
Losujemy liczbę z przedziału [0, 1]. Jaki jest najbardziej prawdopodobny rozkład na przedziale?
Jednostajny (nie mamy żadnej dodatkowej informacji) Rozkład jednostajny maksymalizuje entropię (informację)
2 / 29
Motywacja 2
W praktyce mamy dodatkową informację o rozkładzie np. średnio na kostce wypada wartość 4.
Jaki jest najbardziej prawdopodobny rozkład przy tym ograniczeniu?
Maksymalizowanie entropii minimalizuje ilość informacji wejściowej (a priori) o rozkładzie – jeśli nie wiemy wiele o danych to użyjmy rozkładu MaxEnt
Zasada maksymalnej entropii wywodzi się z fizyki
MaxEnt
Problem
Znajdź gęstość f , która maksymalizuje entropię h(f ) =R f (x)(− log f (x))dx przy warunkach:
f (x ) 0, R f (x)dx = 1,
R f (x)ri(x )dx = αi, dla i = 1, . . . , m
Dwa pierwsze warunki to warunki na gęstość. Ostatni mówi o równości momentów
Przypomina to metodę momentów ze statystyki, ale tam zamiast optymalizacji entropii zakładaliśmy postać rozkładu.
4 / 29
Wyprowadzenie
Zaastosujmy metodę Lagrange’a do problemu maksymalizacji:
J(f ) = − Z
f log f + λ0( Z
f − 1) +
m
X
i =1
λi( Z
rif − αi)
Różniczkując względem f (x ) (osobno względem każdego f (x )) dostajemy:
∂J
∂f (x ) = − log f (x ) − 1 + λ0+
m
X
i =1
λiri(x )
Przyrównując ją do zera dostajemy:
f (x ) = exp(λ0− 1 +
m
X
i =1
λiri(x )),
gdzie λ0, λ1, . . . , λm są wybrane tak, aby f spełniała zadane warunki.
Globalne maksimum
Nasz kandydat na maksimum ma postać:
f (x ) = exp(λ0+
m
X
i =1
λiri(x )),
Pokażmy, że jest maksimum globalnym:
Twierdzenie
Niech f (x ) = exp(λ0+Pm
i =1λiri(x )), gdzie λ0, λ1, . . . , λmsą wybrane tak, aby f spełniała zadane warunki. Wówczas f jest maksimum globalnym problemu.
6 / 29
Dowód
Niech g również spełnia zadane warunki. Wówczas:
h(g ) = − Z
g log g = − Z
g logg f f
= D(g kf ) − Z
g log f ¬ − Z
g log f
= − Z
g (λ0+
m
X
i =1
λiri(x ))
= − Z
f (λ0+
m
X
i =1
λiri(x ))
= − Z
f log f = h(f )
Nierówność, bo D(g kf ) 0, potem korzystamy z postaci f oraz z faktu że g spełnia te same warunki co f .
Rozkład MaxEnt
Definicja
Rozkład maksymalnej entropii jest postaci
f (x ) = exp(λ0+
m
X
i =1
λiri(x )),
gdzie λ0, λ1, . . . , λm są tak dobrane aby spełnić następujące warunki:
f (x ) 0, R f (x)dx = 1,
R f (x)ri(x )dx = αi, dla i = 1, . . . , m
Dla rozkładu dyskretnego p = (p1, . . . , pk) dostajemy rozkład:
pj = exp(P
iλirij) exp(−λ0) , gdzie λi spełniająP
jpj = 1 orazP
jpjrij = αi.
8 / 29
Przykład
Znajdź rozkład maksymalizujący entropię, który spełnia EX = 0, D2X = σ2.
Zauważmy, że D2X = E (X2) − (EX )2, więc u nas E (X2) = σ2. Mamy dwa warunki na momenty, więc możemy zastosować postać MaxEnt:
f (x ) = exp(λ0+ λ1x + λ2x2) Skorzystajmy z postaci kanonicznej funkcji kwadratowej:
f (x ) = exp(λ2(x − p)2+ q) = exp(q) exp(λ2(x − p)2), gdzie p = −2λλ1
0 oraz q = −∆4λ
0.
To jest gęstość rozkładu normalnego, zatem optymalny ma postać:
√1
2πσexp(−x2 2σ2), aby spełniał warunki.
Cel
Chcemy zastosować zasadę MaxEnt do problemu klasyfikacji.
Przypomnienie:
Mamy zbiór treningowy X = {xi}ni =1⊂ RD, gdzie każdy przykład xi jest klasy yi∈ Y = {1, . . . , K }.
Szukamy funkcji f : RD → Y , która daje dobre odpowiedzi na zbiorze testowym.
Zwykle szukamy prostych funkcji aby móc generalizować.
10 / 29
Rozkład a posteriori
Weźmy przykład x i zbiór etykiet Y
Znajdźmy prawdopodobieństwo, że nasz x należy do klasy y , dla każdego y ∈ Y
Wówczas, jako klasę x przyjmujemy tę najbardziej prawdopodobną.
Tak naprawdę szukamy rozkładu warunkowego py(x ) = p(y |x ) Jest to rozkład a posteriori (szansa klasy y mając dany x )
Notacja
xij oznacza j -tą współrzędną i -tego przykładu
py(x ) = p(y |x ) to rozkład a posteriori przykładu x względem klasy y Dla zbioru treningowego rozkład a posteriori to macierz:
p(1|x1) . . . p(1|xn) . . .
p(K |x1) . . . p(K |xn)
Rozkład empiryczny a posteriori:
ˆ
p(y |xi) =
1, yi= y 0, yi6= y Rozkład na X to p(xi) =1n. Wtedy
p(xi, y ) = p(xi)p(y |xi) = 1 np(y |xi)
12 / 29
Cel
Będziemy chcieli znaleźć taki rozkład a posteriori, który maksymalizuje entropię, czyli informację o danych
Bez dodatkowych warunków weźmiemy rozkład jednostajny, który nie klasyfikuje dobrze (losowy)
Zażądamy, aby rozkład a posteriori dawał dobre odpowiedzi na znanych przykładach (w sensie wartości oczekiwanej)
Ograniczenia 1
Oczywiście p(y |x ) musi być rozkładem, tzn.
py(xi) 0, dla xi ∈ X , y = 1, . . . , K PK
k=1pk(xi) = 1, dla xi ∈ X
14 / 29
Ograniczenia 2
Predykcje mają zgadzać się ze zbiorem treningowym tzn.
py(xi) ≈ 1y =yi, dla każdego xi, y .
Chcemy żeby powyższa równość była spełniona “średnio (po wszystkich xi)”:
1 n
n
X
i =1
py(xi)xi= 1 n
n
X
i =1
1y =yixi.
dla każdego y = 1, . . . , K .
Powyższe jest wielowymiarowe, więc badamy wartość średnich na każdej współrzędnej:
n
X
i =1
py(xi)xij =
n
X
i =1
1y =yixij, .
dla y ∈ Y , j = 1, . . . , D
Problem
Szukamy takiego py(x ), który spełnia zadane warunki i maksymalizuje entropię (warunkową):
H(Y |X ) = − P
x ∈X
p(x )H(Y |x )
= −1n P
y ∈Y
P
x ∈X
py(x ) log py(x )
= −1n P
(x ,y )
py(x ) log py(x )
Intuicyjnie: rozkład ma się zgadzać na klasach oraz rozciągać się w miarę jednostajnie poza zbiorem uczącym (zakładając gładkość rozwiązania).
16 / 29
Postać rozwiązania
Z postaci rozkładu MaxEnt mamy, że:
pk(xi) = exp(βi+
D
X
j =1
λkjxij)
= exp(βi+ λk · xi),
gdzie
λk = (λk1, . . . , λkD) λk· xi=PD
j =1λkjxij oznacza iloczyn skalarny
Szukamy parametrów βi, λk aby warunki (1-3) były spełnione.
Warunek (1) jest spełniony bo exp(x ) 0.
Parametr βi
Aby wyznaczyć wartość βi wrzućmy nasz rozkład do warunku (2):
K
X
k=1
exp(βi+ λk · xi) = 1
Mamy:
exp(βi) = 1/
K
X
k=1
exp(λk· xi) Zatem wracając do postaci rozkładu dostajemy:
py(xi) = exp(λy · xi) PK
k=1exp(λk· xi),
Jest to tak zwana funkcja sigmoidalna.
18 / 29
Sigmoid
−4 −2 0 2 4
0.00.20.40.60.81.0
Parametry λk
Znalezienie λk nie jest jest takie proste
Wrzucenie rozkładu do warunku (3) daje równanie uwikłane – nie da się wyciągnąć jawnego wzoru, ale rozwiązanie istnieje
Pokażemy warunek równoważny warunkowi (3), który będzie można rozwiązać
20 / 29
Warunek równoważny (3)
Rozważmy funkcję log-likelihood dla py(x ) (funkcja wiarygodności):
L(λ1, . . . , λK) =
n
X
i =1
log p(yi|xi)
Twierdzenie
Maksymalizacja funkcji L jest równoważna warunkowi (3) dla problemu MaxEnt.
Innymi słowy, parametry λ dobieramy maksymalizując funkcję wiarygodności
Dowód
ćwiczenie:)
trzeba policzyć funkcję wiarygodności i dojdzie się do równości momentów
22 / 29
Podsumowanie
Klasyfikator MaxEnt szuka prawdopodobieństw a posteriori py(x ) postaci:
py(x ) = exp(λy · x) PK
k=1exp(λk· x) gdzie λk dla k = 1, . . . , K są parametrami modelu.
Aby je znaleźć, maksymalizujemy funkcję wiarygodności
Pochodna ma postać uwikłaną, więc nie da się wyliczyć jawnego wzoru na λ
Rozwiązania szukamy gradientowo
Funkcja jest wklęsła – istnieje jednoznaczne rozwiązanie!
Metoda gradientowa
Dana funkcja L(λ1, . . . , λK) =Pn
i =1log p(yi|xi)
Liczymy gradient (macierz pochodnych cząstkowych po λ):
∇L =
∂L
∂λ11 . . . ∂λ∂L
1D
. . . . . . . . .
∂L
∂λK 1 . . . ∂λ∂L
KD
Idziemy po wzroście gradientu (implementacja L-BFGS w Python)
24 / 29
Analiza
Znajdźmy granicę pomiędzy klasami k i c.
Są to takie punkty x ∈ RD, dla których pc(x ) = pk(x ).
Rozwiązując dostajemy:
λk · x = λc· x Zatem rozwiązaniem są takie x ∈ RD, że
D
X
j =1
(λkj − λcj)xj = 0
Jest to równianie liniowe, więc granicą jest hiperpłaszczyzna
Problemy praktyczne 1
Postać hiperpłaszczyzn dzielących to A · x = 0
Model nie dopuszcza przesunięcia granic (brak wyrazu wolnego) Warto zanurzyć nasze dane ˜X = {1} × X , a by umożliwić przesunięcia
Innymi słowy zamiast x = (x1, . . . , xD) bierzemy ˜x = (1, x1, . . . , xD) Podobnie bierzemy ˜λk = (λk0, λk1, . . . , λkD), zatem:
λ˜k · ˜x = λk0+ λk · x, i mamy wyraz wolny
26 / 29
Problemy praktyczne 2
W praktyce, parametry λk mogą rosnąć, co powoduje overfitting (sigmoidy zbiegają do funkcji Heaviside’a)
Jest to spowodowane niedostatkiem przykładów uczących – chcemy uniknąć świetnego dopasowania do zbioru treningowego
−4 −2 0 2 4
0.00.20.40.60.81.0 f(x) = x f(x) = 10x
Problemy praktyczne 2 - c.d.
Do funkcji wiarygodności dodajemy regularyzację
R(λ) =
K
X
k=1
kλkk2
ograniczającą współczynniki λk (nie karzemy za przesunięcie!).
Dlatego maksymalizujemy:
n
X
i =1
log p(yi|xi) − αR(λ),
gdzie α 0 wybieramy ręcznie (zwykle przez walidację krzyżową).
28 / 29
Logistyczna regresja
Wprowadzony klasyfikator jest znany jako logistyczna regresja Ma swoje alternatywne wyprowadzenie niekorzystające z entropii, choć ono trochę wyciąga z kapelusza sigmoida...
MaxEnt pokazuje, że sigmoid sam wychodzi z przyjętych założeń