11
правок
Изменения
Новая страница: «Алгоритм EM - алгоритм поиска максимума правдоподобия параметров для решения задач, где н…»
Алгоритм EM - алгоритм поиска максимума правдоподобия параметров для решения задач, где некоторые переменные не являются наблюдаемыми.
Алгоритм ищет параметры модели итеративно, каждая итерация состоит из двух шагов:
E(Expectation) шаг, в котором находится распределение скрытых переменных используя значение наблюдаемых переменных и текущего значения параметров.
M(Maximisation) шаг - пересчет параметров, находя максимум правдоподобия исходя из распределения скрытых переменных, полученных на E - шаге.
----
== k-means как EM алгоритм ==
Скрытыми переменными в данной задаче являются классы, к которым относятся объекты для кластеризации. Сами же параметры это центры масс классов. На шаге E - распределяются все объекты по классам исходя из расстояния от центра, на шаге M находится оптимальное месторасположение центра.
Аналогично рассматривается и алгоритм c-means. Скрытые переменные здесь будут вероятности принадлежности к классам, которые находятся на E-шаге по расстоянию от центра. Центр так же рассчитывается на M-шаге исходя из скрытых переменных.
----
== Задача разделения смеси распределений ==
Суть
Необходимо описать плотность распределения функции на X как сумму k функций, которые можно рассматривать как элементы параметрического семейства функций <tex> p_j(x) = \phi(x;\theta_j)</tex>. Плотность распределения будет выглядеть как <tex>p(x) = \sum\limits_{i=1}^k \omega_j p_j(x); \sum\limits_{i=1}^k w_j = 1; w_j >= 0 </tex> где <tex>\omega_j</tex> - априорная вероятность j компоненты распределения.
Задача разделения смеси заключается в том, чтобы, имея выборку <tex>X^m</tex> случайных и независимых наблюдений из смеси <tex>p(x)</tex>, зная число <tex>k</tex> и функцию <tex>\phi</tex>, оценить вектор параметров <tex>\theta = (omega_1 .. \omega_k, \theta_1 .. \theta_k)</tex>
E-шаг:
<tex>p(x,\theta_j) = p(x)P(\theta_j | x) = w_jp_j(x)</tex>
Введем обозначение: <tex> g_{ij} = P(\theta_j | x_i) </tex> это и будут скрытые параметры данной задачи - апостериорная вероятность того, что обучающий объект <tex> x_i </tex> получен из <tex>j</tex>-й компоненты
По формуле Байеса справедливо равенство <tex> g_{ij} = \frac{w_jp_j(x_i)}{\sum\limits_{t=1}^k w_t p_t(x_i)}</tex>
Таким образом при зная значение параметров легко найти скрытые переменные.
Перейдем к M-шагу:
Посчитаем для аддитивности логарифм правдоподобия:
<tex> Q(\Theta) = ln \mul\limits_{i=1}^mp(x_i) = \sum\limits_{i=1}^mln\sum\limits_{j=1}^kw_jp_j(x_i) -> max\limits{Theta} </tex>
при условии <tex>\sum\limits_{i=1}^k w_j = 1; w_j >= 0</tex> имеет смысл расcматривать лагранжиан задачи:
<tex>\frac{\partial L} {\partial w_j} = \sum\limits_{i=1}^m \frac{w_jp_j(x_i)}{\sum\limits_{t=1}^kw_tp_t(x_i)} - \lambda = 0</tex>
Алгоритм ищет параметры модели итеративно, каждая итерация состоит из двух шагов:
E(Expectation) шаг, в котором находится распределение скрытых переменных используя значение наблюдаемых переменных и текущего значения параметров.
M(Maximisation) шаг - пересчет параметров, находя максимум правдоподобия исходя из распределения скрытых переменных, полученных на E - шаге.
----
== k-means как EM алгоритм ==
Скрытыми переменными в данной задаче являются классы, к которым относятся объекты для кластеризации. Сами же параметры это центры масс классов. На шаге E - распределяются все объекты по классам исходя из расстояния от центра, на шаге M находится оптимальное месторасположение центра.
Аналогично рассматривается и алгоритм c-means. Скрытые переменные здесь будут вероятности принадлежности к классам, которые находятся на E-шаге по расстоянию от центра. Центр так же рассчитывается на M-шаге исходя из скрытых переменных.
----
== Задача разделения смеси распределений ==
Суть
Необходимо описать плотность распределения функции на X как сумму k функций, которые можно рассматривать как элементы параметрического семейства функций <tex> p_j(x) = \phi(x;\theta_j)</tex>. Плотность распределения будет выглядеть как <tex>p(x) = \sum\limits_{i=1}^k \omega_j p_j(x); \sum\limits_{i=1}^k w_j = 1; w_j >= 0 </tex> где <tex>\omega_j</tex> - априорная вероятность j компоненты распределения.
Задача разделения смеси заключается в том, чтобы, имея выборку <tex>X^m</tex> случайных и независимых наблюдений из смеси <tex>p(x)</tex>, зная число <tex>k</tex> и функцию <tex>\phi</tex>, оценить вектор параметров <tex>\theta = (omega_1 .. \omega_k, \theta_1 .. \theta_k)</tex>
E-шаг:
<tex>p(x,\theta_j) = p(x)P(\theta_j | x) = w_jp_j(x)</tex>
Введем обозначение: <tex> g_{ij} = P(\theta_j | x_i) </tex> это и будут скрытые параметры данной задачи - апостериорная вероятность того, что обучающий объект <tex> x_i </tex> получен из <tex>j</tex>-й компоненты
По формуле Байеса справедливо равенство <tex> g_{ij} = \frac{w_jp_j(x_i)}{\sum\limits_{t=1}^k w_t p_t(x_i)}</tex>
Таким образом при зная значение параметров легко найти скрытые переменные.
Перейдем к M-шагу:
Посчитаем для аддитивности логарифм правдоподобия:
<tex> Q(\Theta) = ln \mul\limits_{i=1}^mp(x_i) = \sum\limits_{i=1}^mln\sum\limits_{j=1}^kw_jp_j(x_i) -> max\limits{Theta} </tex>
при условии <tex>\sum\limits_{i=1}^k w_j = 1; w_j >= 0</tex> имеет смысл расcматривать лагранжиан задачи:
<tex>\frac{\partial L} {\partial w_j} = \sum\limits_{i=1}^m \frac{w_jp_j(x_i)}{\sum\limits_{t=1}^kw_tp_t(x_i)} - \lambda = 0</tex>