Изменения

Перейти к: навигация, поиск

EM-алгоритм

1571 байт добавлено, 13:02, 17 марта 2020
Добавил примеры использования алгоритма в задаче кластеризации
# Они помогают разбить сумму так: <tex>p (X, H|\Theta) = \prod\limits_{i=1}^k p (X|H, \Theta) p(H|\Theta)</tex>, где <tex>H</tex> - матрица скрытых переменных.
Тогда алгоритм EM сводится к повторению шагов, указанных в [[#Определение|ОпределениеОпределении]].
=== E-шаг ===
* Чуствителен к начальному приближению. Могут быть ситуации, когда сойдемся к локальному экстремуму
* Число компонент <tex>k</tex> является гиперпараметром.
 
== Модификации ==
Как уже было отмечено в [[#Плюсы_и_минусы|Плюсы и минусы]], базовый алгоритм чувствителен к начальному приближению и могут быть ситуации, когда алгоритм "застрянет" в лоакльном экстремуме. Для того, чтобы предотвратить это, будем на каждой итерации алгоритма случайно "встряхивать" выборку. В этой модификации у нас добавляется шаг S, на котором мы и будем "встряхивать" выборку. И на шаге M мы будем решать уже задачу максимуму невзвешенного правдоподобия. Эта модификация хороша тем, что нечуствиетльная к начальном приблежению.
== Пример. Разделение смеси Гауссиана ==
== Пример[[Файл:Gaussians2. Разделение смеси Гауссиана == png|right|thumb|400px|Несколько итераций алгоритма]]
Каноническим примером использования EM алгоритма является задача разделения смеси гауссиана. Данные у нас получены из нормального распределения. В этом лучае случае параметрами функций ялвяются матожидание и дисперсия.<br/>
<tex>\theta = (w_1,..,w_k;\;\mu_1,..,\mu_k;\;\sigma_1,..,\sigma_k)</tex> — вектор параметров, <br/>
: <tex> \sigma_j^2 = \frac {1} {mw_j} \sum\limits_{i=1}^m h_{ij}(x_i - \mu_j)^2, j = 1..k</tex>
== Использование в задаче кластеризации ==
Как уже упоминалось в [[#Опредиление|Определении]], алгоритм EM подходит для решения задачи кластеризации. И одной из его имплементаций для это задачи является алгоритм <tex>k</tex>-means. В этом алгоритме в качестве скрытых переменных выступают метки классов объектов. Параметрами же являются центроиды искомых классов. Тогда на шаге E мы относим объекты к какому то одному классу на основе расстояний до центроид. А на шаге M мы пересчитываем центроиды кластеров, исходя из полученной на шаге E разметке.<br/>
      Также стоит упомянуть алгоритм <tex>c</tex>-means. В нем качестве скрытых переменных выступают вероятности принадлежности объекта к классам. На шаге E мы пересчитывем вероятности принадлежности объектов, иходя из расстояния до центроид. Шаг M, идейно, остается без изменений.
== Задача разделения смеси распределений ==
15
правок

Навигация