ML Atlas

05 · Bez nadzoru · 4 min czytania · aktualizacja

Czym jest model mieszaniny gaussowskiej i jak działa algorytm EM?

W skrócie

Mieszanina gaussowska zakłada, że dane pochodzą z kilku rozkładów normalnych. Algorytm EM na zmianę zgaduje przynależność punktów i poprawia rozkłady.

Co to jest

Model mieszaniny gaussowskiej (Gaussian Mixture Model, GMM) zakłada, że każdy punkt danych powstał tak: najpierw losowo wybrano jedną z K grup (z prawdopodobieństwami π₁…π_K), a potem wylosowano punkt z rozkładu normalnego tej grupy, o własnej średniej i macierzy kowariancji. Dopasowanie modelu to odgadnięcie tych parametrów z samych punktów, bez wiedzy, który punkt pochodzi z której grupy.

W przeciwieństwie do k-średnich GMM daje przynależność miękką: zamiast „pingwin należy do grupy 2” mówi „z prawdopodobieństwem 0,97 grupa 2, 0,03 grupa 1”. Do tego każda grupa może być elipsą dowolnie wydłużoną i obróconą, a nie tylko kulą. Model służy do klasteryzacji, estymacji gęstości i wykrywania anomalii (punkty o niskiej gęstości).

Mechanizm — dlaczego tak działa

Gdybyśmy znali przynależność punktów, zadanie byłoby trywialne: średnia i kowariancja każdej grupy z jej punktów. Gdybyśmy znali parametry grup, też łatwo: dla każdego punktu liczymy z twierdzenia Bayesa, jak prawdopodobne jest każde pochodzenie. Problem w tym, że nie znamy ani jednego, ani drugiego. Algorytm EM (Expectation–Maximization) rozwiązuje to błędne koło naprzemiennie.

Krok E: przy bieżących parametrach oblicz dla każdego punktu i każdej grupy „odpowiedzialność” r = π_k · N(x | μ_k, Σ_k) / suma po wszystkich grupach. To miękkie przypisanie, sumujące się do 1.

Krok M: potraktuj odpowiedzialności jak wagi i przelicz parametry: nowa średnia grupy to średnia ważona punktów, nowa kowariancja to ważona kowariancja, nowe π_k to średnia odpowiedzialność.

Dlaczego to działa? Można pokazać, że każdy pełny cykl E+M nie zmniejsza logarytmu wiarygodności danych. Krok E buduje dolne ograniczenie wiarygodności, które w bieżącym punkcie jest z nią równe, a krok M to ograniczenie maksymalizuje. Wiarygodność rośnie więc monotonicznie aż do zbieżności. Ale tylko do maksimum lokalnego — stąd wiele startów, zwykle z wyniku k-średnich.

K-średnich to szczególny przypadek GMM: wszystkie grupy z jednakową, kulistą kowariancją, która dąży do zera, przez co miękkie przypisanie staje się twarde. Dlatego GMM radzi sobie z grupami wydłużonymi i różnej wielkości, a k-średnich nie. Ceną jest liczba parametrów: pełna kowariancja w d wymiarach to d(d+1)/2 liczb na grupę. Przy wielu cechach i małej próbie łatwo o przeuczenie albo osobliwą macierz — wtedy upraszcza się kowariancję (diagonalna, wspólna, kulista) lub dodaje regularyzację. Liczbę grup wybiera się kryterium BIC, które karze za liczbę parametrów.

Na przykładzie

Pingwiny z Palmer Archipelago: 342 osobniki, cztery standaryzowane pomiary, trzy gatunki (151 Adeli, 123 Gentoo, 68 maskowych). BIC dla K = 1…6 (pełna kowariancja) wynosi kolejno 3118,0; 2586,8; 2553,6; 2600,7; 2660,8; 2717,7 — minimum przy K = 3, czyli tyle, ile jest gatunków. Dla porównania współczynnik sylwetki k-średnich wskazuje 2 grupy.

Zgodność z gatunkami: GMM z pełną kowariancją osiąga ARI 0,96, k-średnich 0,79. GMM myli się tylko na 5 pingwinach (2 Adeli, 3 maskowe), a wszystkie 123 Gentoo są w swojej grupie. Najlepszy start zbiegł w 5 iteracjach EM. Miękkie przypisanie jest pewne dla większości ptaków: tylko 7 z 342 (2%) ma najwyższe prawdopodobieństwo przynależności poniżej 0,9 — to właśnie osobniki na styku gatunków. Kształt kowariancji ma znaczenie: wersja kulista daje ARI 0,89, a diagonalna tylko 0,51, bo cechy pingwinów są silnie skorelowane wewnątrz gatunku (większy ptak ma dłuższy dziób i płetwę), a macierz diagonalna tego nie opisze. Wspólna pełna kowariancja (tied) daje ARI 0,96 i najniższe BIC (2515,8).

Dane: Palmer Penguins (pingwiny z Antarktydy)

W praktyce

  • W scikit-learn: GaussianMixture(n_components=3, covariance_type="full", n_init=5, random_state=0); predict_proba zwraca miękkie przypisania, score_samples logarytm gęstości.
  • Liczbę grup wybieraj przez bic() dla kilku K; porównuj też różne covariance_type (full, tied, diag, spherical).
  • Standaryzuj cechy; przy problemach numerycznych zwiększ reg_covar.
  • Do wykrywania anomalii: niski score_samples oznacza punkt w obszarze małej gęstości.
  • Gdy nie chcesz wybierać K, rozważ BayesianGaussianMixture, który sam „wyłącza” zbędne składowe.
  • Typowy błąd: pełna kowariancja przy wielu cechach i małej próbie — model dopasuje elipsy do szumu.

Najczęstsze pytania

Czym GMM różni się od k-średnich?
K-średnich daje twarde przypisanie i zakłada kuliste grupy podobnej wielkości. GMM daje prawdopodobieństwa przynależności i pozwala na eliptyczne grupy różnej wielkości i orientacji. K-średnich jest granicznym przypadkiem GMM z identyczną, kulistą kowariancją.
Czy EM zawsze znajduje najlepsze rozwiązanie?
Nie. EM gwarantuje, że wiarygodność nie maleje, ale zatrzymuje się w maksimum lokalnym. Dlatego uruchamia się go wielokrotnie z różnych startów i wybiera wynik o najwyższej wiarygodności. Wiarygodność może też uciec w nieskończoność, gdy jedna składowa „zapadnie się” na pojedynczy punkt — przed tym chroni regularyzacja kowariancji.
Do czego jeszcze służy algorytm EM?
To ogólna metoda dopasowania modeli ze zmiennymi ukrytymi lub brakującymi danymi: ukryte modele Markowa (algorytm Bauma–Welcha), modele tematyczne, imputacja braków. Mieszanina gaussowska jest po prostu najczęściej pokazywanym przykładem.

Źródła

  • Dempster A. P., Laird N. M., Rubin D. B., „Maximum Likelihood from Incomplete Data via the EM Algorithm”, Journal of the Royal Statistical Society, Series B 39(1), 1977.
  • Bishop C. M., „Pattern Recognition and Machine Learning”, Springer 2006, rozdz. 9 (Mixture Models and EM).
  • Hastie T., Tibshirani R., Friedman J., „The Elements of Statistical Learning”, 2nd ed., Springer 2009, rozdz. 8.5 (The EM Algorithm).
  • Schwarz G., „Estimating the Dimension of a Model”, The Annals of Statistics 6(2), 1978.
  • Dokumentacja scikit-learn, „Gaussian mixture models”: https://scikit-learn.org/stable/modules/mixture.html

Zobacz też