Участник:Марина/Песочница

Материал из MachineLearning.

< Участник:Марина(Различия между версиями)
Перейти к: навигация, поиск
 
(12 промежуточных версий не показаны.)
Строка 1: Строка 1:
-
'''EM-алгоритм''' (англ. expectation-maximization) - алгоритм, используемый в математической статистике для нахождения оценок максимального правдоподобия параметров вероятностных моделей, в случае, когда модель зависит от некоторых скрытых переменных. Каждая итерация алгоритма состоит из двух шагов. На E-шаге (expectation) вычисляется ожидаемое значение функции правдоподобия, при этом скрытые переменные рассматриваются как наблюдаемые. На M-шаге (maximization) вычисляется оценка максимального правдоподобия, таким образом увеличивается ожидаемое правдоподобие, вычисляемое на E-шаге. Затем это значение используется для E-шага на следующей итерации. Алгоритм выполняется до сходимости.
+
'''EM-алгоритм''' (англ. expectation-maximization) - алгоритм, используемый в математической статистике для нахождения оценок максимального правдоподобия параметров вероятностных моделей, в случае, когда модель зависит от некоторых скрытых переменных. Каждая итерация алгоритма состоит из двух шагов. На ''E-шаге (expectation)'' вычисляется ожидаемое значение функции правдоподобия, при этом скрытые переменные рассматриваются как наблюдаемые. На ''M-шаге (maximization)'' вычисляется оценка максимального правдоподобия, таким образом увеличивается ожидаемое правдоподобие, вычисляемое на E-шаге. Затем это значение используется для E-шага на следующей итерации. Алгоритм выполняется до сходимости.
-
Как правило, ЕМ-алгоритм применяется для решения задач двух типов. К первому типу можно отнести задачи, связанные с анализом действительно неполных данных, когда некоторые статистические данные отсутствуют в силу каких-либо причин. Ко второму типу задач можно отнести те задачи, в которых функция правдоподобия имеет вид, не допускающий удобных аналитических методов исследования, но допускающий серьезные упрощения, если в задачу ввести дополнительные “ненаблюдаемые” (скрытые, латентные) переменные. Примерами прикладных задач второго типа являются задачи распознавания образов, реконструкции изображений. Математическую суть данных задач составляют задачи кластерного анализа, классификации и разделения смесей вероятностных распределений.
+
Как правило, ЕМ-алгоритм применяется для решения задач двух типов. <br />
 +
* К первому типу можно отнести задачи, связанные с ''анализом действительно неполных данных'', когда некоторые статистические данные отсутствуют в силу каких-либо причин. <br />
 +
* Ко второму типу задач можно отнести те задачи, в которых функция правдоподобия имеет вид, ''не допускающий удобных аналитических методов исследования, но допускающий серьезные упрощения, если в задачу ввести дополнительные “ненаблюдаемые” (скрытые, латентные) переменные''. Примерами прикладных задач второго типа являются задачи распознавания образов, реконструкции изображений. Математическую суть данных задач составляют задачи [[кластерный анализ|кластерного анализа]], [[классификация|классификации]] и [[разделение смесей вероятностных распределений|разделения смесей вероятностных распределений]].
== Постановка задачи ==
== Постановка задачи ==
-
Пусть плотность распределения на множестве <tex>X</tex> имеет вид смеси <tex>k</tex> распределений: <br />
+
Пусть [[плотность распределения]] на множестве <tex>X</tex> имеет вид смеси <tex>k</tex> распределений: <br />
::<tex>p(x) = \sum_{j=1}^k w_jp_j(x)</tex> , <tex>\sum_{i=1}^k w_j = 1</tex> , <tex>w_j\geq 0</tex>, <br />
::<tex>p(x) = \sum_{j=1}^k w_jp_j(x)</tex> , <tex>\sum_{i=1}^k w_j = 1</tex> , <tex>w_j\geq 0</tex>, <br />
где <tex>p_j(x)</tex> - функция правдоподобия j-й компоненты смеси,
где <tex>p_j(x)</tex> - функция правдоподобия j-й компоненты смеси,
<tex>w_j</tex> - ее априорная вероятность. <br />
<tex>w_j</tex> - ее априорная вероятность. <br />
-
Функции правдоподобия принадлежат параметрическому семейству распределений <tex>\varphi(x; \theta)</tex> и отличаются только значениями параметра <tex>p_j(x) = \varphi(x; \theta_j)</tex>.
+
[[функция правдоподобия|Функции правдоподобия]] принадлежат параметрическому семейству распределений <tex>\varphi(x; \theta)</tex> и отличаются только значениями параметра <tex>p_j(x) = \varphi(x; \theta_j)</tex>.
-
Задача разделения смеси заключается в том, чтобы, имея выборку <tex>X^m</tex> случайных и независимых наблюдений из смеси <tex>p(x)</tex>, зная число <tex>k</tex> и функцию <tex>\varphi</tex>, оценить вектор параметров <tex>\Theta = (w_1,...,w_k,\theta_1,...,\theta_k)</tex>.
+
''Задача разделения смеси'' заключается в том, чтобы, имея [[выборка|выборку]] <tex>X^m</tex> случайных и независимых наблюдений из смеси <tex>p(x)</tex>, зная число <tex>k</tex> и функцию <tex>\varphi</tex>, оценить вектор параметров <tex>\Theta = (w_1,...,w_k,\theta_1,...,\theta_k)</tex>.
== Основной алгоритм ==
== Основной алгоритм ==
-
Идея алгоритма заключается в следующем. Искусственно вводится вспомогательный вектор скрытых переменных <tex>G</tex>, обладающий двумя замечательными свойствами. С одной стороны, он может быть вычислен, если известны значения вектора параметров <tex>\Theta</tex>. С другой стороны, поиск максимума правдоподобия сильно упрощается, если известны значения скрытых переменных.
+
''Идея алгоритма'' заключается в следующем. Искусственно вводится '''вспомогательный вектор скрытых переменных''' <tex>G</tex>, обладающий двумя замечательными свойствами. <br />
 +
* С одной стороны, он может быть вычислен, если известны значения вектора параметров <tex>\Theta</tex>. <br />
 +
* С другой стороны, поиск максимума правдоподобия сильно упрощается, если известны значения скрытых переменных.
EM-алгоритм состоит из итерационного повторения двух шагов. На E-шаге вычисляется ожидаемое значение (expectation) вектора скрытых переменных <tex>G</tex> по текущему приближению вектора параметров <tex>\Theta</tex>. На М-шаге решается задача максимизации правдоподобия (maximization) и находится следующее приближение вектора <tex>\Theta</tex> по текущим значениям векторов <tex>G</tex> и <tex>\Theta</tex>.
EM-алгоритм состоит из итерационного повторения двух шагов. На E-шаге вычисляется ожидаемое значение (expectation) вектора скрытых переменных <tex>G</tex> по текущему приближению вектора параметров <tex>\Theta</tex>. На М-шаге решается задача максимизации правдоподобия (maximization) и находится следующее приближение вектора <tex>\Theta</tex> по текущим значениям векторов <tex>G</tex> и <tex>\Theta</tex>.
* '''Е-шаг''' <br />
* '''Е-шаг''' <br />
-
Обозначим через <tex>p(x,\theta_j)</tex> плотность вероятности того, что объект <tex>x</tex> получен из <tex>j</tex>-й компоненты смеси. По формуле условной вероятности
+
Обозначим через <tex>p(x,\theta_j)</tex> плотность вероятности того, что объект <tex>x</tex> получен из <tex>j</tex>-й компоненты смеси. По [[формула условной вероятности|формуле условной вероятности]]
::<tex>p(x,\theta_j) = p(x)P(\theta_j |x) = w_jp_j(x)</tex>.
::<tex>p(x,\theta_j) = p(x)P(\theta_j |x) = w_jp_j(x)</tex>.
Введём обозначение
Введём обозначение
Строка 24: Строка 28:
Это неизвестная апостериорная вероятность того, что обучающий объект <tex>x_i</tex> получен из <tex>j</tex>-й компоненты смеси. Возьмём эти величины в качестве скрытых переменных.
Это неизвестная апостериорная вероятность того, что обучающий объект <tex>x_i</tex> получен из <tex>j</tex>-й компоненты смеси. Возьмём эти величины в качестве скрытых переменных.
-
<tex>\sum_{j=1}^k g_{ij} = 1</tex>, для любого <tex>i = 1, \dots, m</tex>, так как имеет смысл полной вероятности принадлежать объекту <tex>x_i</tex> одной из <tex>k</tex> компонент смеси.
+
<tex>\sum_{j=1}^k g_{ij} = 1</tex>, для любого <tex>i = 1, \dots, m</tex>, так как имеет смысл полной вероятности принадлежать объекту <tex>x_i</tex> одной из <tex>k</tex> компонент смеси.
-
Из формулы Байеса <br />
+
Из [[формула Байеса|формулы Байеса]] <br />
::<tex>g_{ij} = \frac{w_jp_j(x_i)}{\sum_{s=1}^k w_sp_s(x_i)} </tex> для всех <tex>i, j</tex>.
::<tex>g_{ij} = \frac{w_jp_j(x_i)}{\sum_{s=1}^k w_sp_s(x_i)} </tex> для всех <tex>i, j</tex>.
-
 
* '''М-шаг''' <br />
* '''М-шаг''' <br />
Будем максимизировать логарифм полного правдоподобия: <br />
Будем максимизировать логарифм полного правдоподобия: <br />
-
::<tex>Q(\Theta) = \ln\prod_{i=1}^mp(x_i|w,\mu,\Sigma) = \sum_{i=1}^m\ln\sum_{j=1}^kw_jp_j(x_i) \rightarrow \max_{\Theta}</tex>. <br />
+
::<tex>Q(\Theta) = \ln\prod_{i=1}^mp(x_i) = \sum_{i=1}^m\ln\sum_{j=1}^kw_jp_j(x_i) \rightarrow \max_{\Theta}</tex>. <br />
-
Решая оптимизационную задачу Лагранжа с ограничением на сумму <tex>w_j</tex>, находим: <br />
+
Решая [[оптимизационная задача Лагранжа|оптимизационную задачу Лагранжа]] с ограничением на сумму <tex>w_j</tex>, находим: <br />
-
::<tex>w_j = \frac1m sum_{i=1}^m g_{ij} , j = 1, \dots, k </tex>
+
::<tex>w_j = \frac1m \sum_{i=1}^m g_{ij} ,\: j = 1, \dots, k </tex>
-
::<tex>\theta_j = arg max_{\theta} sum_{i=1}^m g_{ij}\ln\varphi(x_i,\theta) , j = 1, \dots, k </tex>.
+
::<tex>\theta_j = arg \max_{\theta} \sum_{i=1}^m g_{ij}\ln\varphi(x_i,\theta) ,\: j = 1, \dots, k </tex>.
=== Смесь нормальных распределений ===
=== Смесь нормальных распределений ===
 +
Далее часто будет встречаться смесь [[нормальное распределение|нормальных распределений]], поэтому выпишем для нее результаты Е- и М-шага алгоритма: <br />
 +
<tex>\theta = (w_1,...,w_k;\mu_1,...,\mu_k;\sigma_1,...,\sigma_k)</tex> - вектор параметров, <br />
 +
<tex>p_j(x) = N(x;\mu_j, \sigma_j) = \frac1{\sqrt{2\pi}\sigma_j}exp{-\frac{(x - \mu_j)^2}{2\sigma_j^2}} </tex> - [[плотность распределения]].
 +
 +
* E-шаг <br />
 +
::<tex>g_{ij} = \frac{w_jN(x_i;\mu_j, \sigma_j)}{\sum_{s=1}^k w_sN(x_i;\mu_s, \sigma_s)} </tex>
 +
 +
* М-шаг <br />
 +
::<tex>w_j = \frac1m\sum_{i=1}^m g_{ij}</tex> ,
 +
::<tex>\mu_j = \frac1{mw_j}\sum_{i=1}^m g_{ij}x_i</tex> ,
 +
::<tex>\sigma_j^2 = \frac1{mw_j}\sum_{i=1}^m g_{ij}(x_i - \mu_j)^2,\; j = 1, \dots, k</tex>.
 +
 +
== Недостатки ЕМ-алгоритма ==
 +
# ЕМ-алгоритм ''неустойчив по начальным данным'' (то есть тем, которые инициализируют вектор параметров <tex>\theta</tex> на первой итерации), так как он находит локальный экстремум, значение которого может оказаться гораздо ниже, чем глобальный максимум. В зависимости от выбора начального приближения алгоритм может сходиться к разным точкам. Также может сильно варьироваться скорость сходимости.
 +
# ЕМ-алгоритм ''не позволяет определять количество <tex>k</tex> компонент смеси''. Эта величина является структурным параметром алгоритма!
 +
 +
В связи с этим рассмотрим некоторые модификации ЕМ-алгоритма, так или иначе борющиеся с данными недостатками.
== Медианные модификации ЕМ-алгоритма ==
== Медианные модификации ЕМ-алгоритма ==
 +
Для противодействия неустойчивости алгоритма по начальным данным можно использовать медианные модификации. Их смысл заключается в том, что наиболее „неустойчивые“ этапы выполнения ЕМ-алгоритма заменяются более устойчивыми. В частности, на М-шаге моментные оценки максимального правдоподобия заменяются более устойчивыми (робастными) оценками [[медиана|медианного]] типа.
-
=== Первая медианная модификация ===
+
Далее будут приведены конечные результаты для смеси нормальных распределений. Математическое обоснование данного метода можно посмотреть в [2].
 +
 
 +
=== Первая медианная модификация ===
 +
Введем следующие величины: <br />
 +
<tex>\pi_{ij} = \frac{g_{ij}}{\sum_{i=1}^m g_{ij}},\: i = 1, \dots, m, \: j = 1, \dots, k</tex>, <br />
 +
имеющие смысл некой вероятности.Введем также „фиктивные“ случайные величины <tex>\x_j,\: j = 1, \dots, k</tex>, принимающие значения <tex>x_i</tex> с вероятностями <tex>\pi_{ij}</tex>. Переупорядочим значения <tex>x_1, \dots, x_m</tex> случайной величины <tex>\x_j</tex> по неубыванию, одновременно переставляя соответствующие данным значениям вероятности. Пусть <tex>\pi_{(ij)}</tex> - вероятность, соответствующая значению <tex>x_{(i)}</tex>. Положим: <br />
 +
::<tex>I_j = min(i: \pi_{(1j)} + \pi_{(2j)} + \dots + \pi_{(ij)} \geq \frac12)</tex>. <br />
 +
Тогда <tex>\mu_j = med \x_j = x_{I_j}</tex>.
 +
 
 +
Пусть <tex>m_j = med|\x_j - \mu_j|</tex>. Тогда <tex>\sigma_j = 1.4826m_j</tex>.
=== Вторая медианная модификация ===
=== Вторая медианная модификация ===
 +
Матожидание <tex>\mu_j</tex> оценивается так же, как и в первой медианной модификации. Рассмотрим дисперсию <tex>\sigma_j</tex>. Обозначим <tex>s_j = \sum_{i=1}^m \pi_{ij}|x_i - \mu_j|</tex>. <br />
 +
Тогда <tex>\sigma_j = 1.2533s_j</tex>.
-
== SEM-алгоритм ==
+
== Стохастический EM-алгоритм (Stochastic, SEM) ==
 +
Классический ЕМ-алгоритм относится к так называемым „жадным“ алгоритмам, то есть он бросается на первый попавшийся локальный максимум, который, как уже упоминалось, может сильно отличаться от глобального. Одним из способов борьбы является как бы случайное, но целенаправленное „встряхивание“ выборки на каждой итерации. Такая рандомизация „выбивает“ оптимизационный процесс из локальных максимумов, так что: <br />
 +
* SEM работает относительно быстро, и его результаты практически не зависят от начального приближения;
 +
* как правило, SEM находит экстремум <tex>Q(\Theta)</tex>, близкий к глобальному.
-
== CEM-алгоритм ==
+
Пусть вся выборка <tex>X^m</tex> разбита на кластеры <tex>K_j,\: j = 1, \dots, k</tex>: каждый элемент <tex>x_i</tex> относится к
 +
единственному(!) кластеру <tex>K_j</tex>, то есть утверждается, что данный элемент взят из <tex>j</tex> компоненты смеси.
-
== MCEM-алгоритм ==
+
* '''S-шаг''' <br />
 +
На первом этапе SEM-алгоритма производится так называемое ''стохастическое моделирование''. Для каждого <tex>i = 1, \dots, m</tex> генерируется вектор <tex>y_i = (y_{i1}, y_{i2, \dots, y_{ik}})</tex> как реализация случайного вектора из [[полиномиальное распределение|полиномиального распределения]] с параметрами 1 и <tex>g_{ij}</tex>, где <tex>g_{ij}</tex> - это вероятность того, что величина
 +
<tex>y_{ij}</tex> равна 1. По векторам <tex>y_i</tex> определяется разбиение выборки <tex>X^m</tex> на кластеры <tex>K_j</tex> и соответствующие численности кластеров <tex>\nu_1, \dots, \nu_k</tex>.
-
== GEM-алгоритм ==
+
* '''Е-шаг''' <br />
 +
Остается без изменений.
 +
 
 +
* '''М-шаг''' <br />
 +
Пересчитываются веса: <br />
 +
::<tex>w_j = \frac{\nu_j}{m} </tex>
 +
и вместо максимизации взвешенного правдоподобия: <br />
 +
::<tex>\theta_j = arg \max_{\theta} \sum_{i=1}^m g_{ij}\ln\varphi(x_i,\theta)</tex>,
 +
решается задача обычного невзвешенного правдоподобия: <br />
 +
::<tex>\theta_j = arg \max_{\theta} \sum_{x_i \in K_j} \ln\varphi(x_i,\theta)</tex>.
 +
 
 +
Для SEM-алгоритма также существуют медианные модификации. Ознакомиться с ними можно в [2].
 +
 
 +
== Классификационный EM-алгоритм (Classification, CEM) ==
 +
Этот алгоритм совпадает с SEM-алгоритмом, за исключением того, что вместо S-шага используется детерминированное правило, эквивалентное классификации по принципу максимума апостериорной вероятности, то есть <tex>x_i</tex> приписывается тому кластеру, номер которого совпадает с номером наибольшего из чисел <tex>g_{i1}, \dots, g_{ik}</tex>. Формулы для оценок параметров аналогичны SEM-алгоритму.
 +
 
 +
== Обобщенный EM-алгоритм (Generalized, GEM) ==
 +
В тех случаях, когда максимизация функционала <tex>Q(\Theta)</tex>,имеющего смысл полного правдоподобия, по каким-либо причинам затруднена, применяется подход, в котором достаточно лишь сместиться в сторону максимума значения функционала, сделав одну или несколько итераций на М-шаге. Этот алгоритм также обладает неплохой сходимостью.
== Модификации с добавлением/удалением компонент ==
== Модификации с добавлением/удалением компонент ==
=== EM-алгоритм с добавлением компонент ===
=== EM-алгоритм с добавлением компонент ===
 +
Позволяет решить две проблемы сразу: проблему выбора числа компонент и проблему выбора начального приближения. Идея заключается в следующем. Имея некоторый набор компонент, можно выделить объекты <tex>x_i</tex>, которые хуже всего описываются смесью - это
 +
объекты с наименьшими значениями правдоподобия <tex>p(x_i)</tex>. По этим объектам строится ещё одна компонента. Затем она добавляется в смесь и запускаются EM-итерации, чтобы новая компонента и старые „притёрлись друг к другу“. Так продолжается до тех пор, пока все объекты не окажутся покрыты компонентами. <br />
 +
Более подробное описание алгоритма можно посмотреть в статье [[EM-алгоритм с последовательным добавлением компонент]].
 +
 +
=== SEM-алгоритм с удалением компонент ===
 +
Решает проблему выбора компонент и „застоя“ в локальном максимуме.
 +
 +
До начала работы алгоритма фиксируются два числа:
 +
* <tex>K</tex> - максимально возможное число компонент, которое определяется соображениями практической интерпретируемости полученного результата;
 +
* <tex>\nu_0</tex> -минимально допустимое число наблюдений в одном кластере, которое выбирают исходя из минимально допустимой значимости компонент. Если нецелесообразно считать значимыми компоненты, веса которых меньше некоторого заданного (малого) значения <tex>\alpha</tex>, то <tex>\nu_0 = \alpha m</tex>, где <tex>m</tex> - объем выборки.
 +
 +
Начальное число компонент смеси равно <tex>K</tex>. Далее это число может только уменьшаться: <br />
 +
в результате стохастического моделирования на S-шаге SEM-алгоритма могут возникнуть кластеры, для которых <tex>\nu_j \leq \nu_0</tex>. Тогда данный кластер аннулируется, то есть <br />
 +
# Переопределяются апостериорные вероятности <tex>g_{ij}</tex>.
 +
# Элементы выборки, попавшие в аннулированные классы, перераспределяются по „достаточно представительным“ кластерам.
 +
# Переопределяется число компонент смеси.
 +
 +
Формулы для оценок параметров аналогичны SEM-алгоритму с фиксированным числом компонент.
 +
 +
== Краткое резюме ==
 +
Естественно, все вышеперечисленные схемы не являются жесткими. Возможно изменение некотрых их частей, или комбинирование нескольких схем. Также существует множество методов, о которых не было рассказано в данной статье. ЕМ-алгоритм - это довольно мощный и часто встречающийся инструмент для решения прикладных задач и использование той или иной его модификации зависит от конкретной задачи и поставленных целей.
 +
 +
== Смотрите также ==
 +
* [[EM-алгоритм с последовательным добавлением компонент | EM-алгоритм с последовательным добавлением компонент]]
 +
* [[EM алгоритм (пример)|EM алгоритм (пример)]]
 +
* [http://ru.wikipedia.org/wiki/ЕМ-алгоритм ЕМ-алгоритм (русскоязычная википедия)]
 +
* [http://en.wikipedia.org/wiki/Expectation-maximization_algorithm ЕМ-алгоритм (англоязычная википедия)]
 +
 +
== Литература ==
 +
# [http://www.machinelearning.ru/wiki/images/e/ed/Voron-ML-Bayes.pdf К.В.Воронцов „Лекции по статистическим (байесовским) алгоритмам классификации“]
 +
# В.Ю.Королев „ЕМ-алгоритм, его модификации и их применение к задаче разделения смесей вероятностных рспределений“.
-
=== SEM-алгоритм с удалением клмпонент ===
+
{{Задание|Марина|Константин Воронцов|8 января 2010}}

Текущая версия

EM-алгоритм (англ. expectation-maximization) - алгоритм, используемый в математической статистике для нахождения оценок максимального правдоподобия параметров вероятностных моделей, в случае, когда модель зависит от некоторых скрытых переменных. Каждая итерация алгоритма состоит из двух шагов. На E-шаге (expectation) вычисляется ожидаемое значение функции правдоподобия, при этом скрытые переменные рассматриваются как наблюдаемые. На M-шаге (maximization) вычисляется оценка максимального правдоподобия, таким образом увеличивается ожидаемое правдоподобие, вычисляемое на E-шаге. Затем это значение используется для E-шага на следующей итерации. Алгоритм выполняется до сходимости.

Как правило, ЕМ-алгоритм применяется для решения задач двух типов.

  • К первому типу можно отнести задачи, связанные с анализом действительно неполных данных, когда некоторые статистические данные отсутствуют в силу каких-либо причин.
  • Ко второму типу задач можно отнести те задачи, в которых функция правдоподобия имеет вид, не допускающий удобных аналитических методов исследования, но допускающий серьезные упрощения, если в задачу ввести дополнительные “ненаблюдаемые” (скрытые, латентные) переменные. Примерами прикладных задач второго типа являются задачи распознавания образов, реконструкции изображений. Математическую суть данных задач составляют задачи кластерного анализа, классификации и разделения смесей вероятностных распределений.

Содержание

Постановка задачи

Пусть плотность распределения на множестве X имеет вид смеси k распределений:

p(x) = \sum_{j=1}^k w_jp_j(x) , \sum_{i=1}^k w_j = 1 , w_j\geq 0,

где p_j(x) - функция правдоподобия j-й компоненты смеси, w_j - ее априорная вероятность.
Функции правдоподобия принадлежат параметрическому семейству распределений \varphi(x; \theta) и отличаются только значениями параметра p_j(x) = \varphi(x; \theta_j).

Задача разделения смеси заключается в том, чтобы, имея выборку X^m случайных и независимых наблюдений из смеси p(x), зная число k и функцию \varphi, оценить вектор параметров \Theta = (w_1,...,w_k,\theta_1,...,\theta_k).

Основной алгоритм

Идея алгоритма заключается в следующем. Искусственно вводится вспомогательный вектор скрытых переменных G, обладающий двумя замечательными свойствами.

  • С одной стороны, он может быть вычислен, если известны значения вектора параметров \Theta.
  • С другой стороны, поиск максимума правдоподобия сильно упрощается, если известны значения скрытых переменных.

EM-алгоритм состоит из итерационного повторения двух шагов. На E-шаге вычисляется ожидаемое значение (expectation) вектора скрытых переменных G по текущему приближению вектора параметров \Theta. На М-шаге решается задача максимизации правдоподобия (maximization) и находится следующее приближение вектора \Theta по текущим значениям векторов G и \Theta.

  • Е-шаг

Обозначим через p(x,\theta_j) плотность вероятности того, что объект x получен из j-й компоненты смеси. По формуле условной вероятности

p(x,\theta_j) = p(x)P(\theta_j |x) = w_jp_j(x).

Введём обозначение

g_{ij} \equiv P(\theta_j |x_i).

Это неизвестная апостериорная вероятность того, что обучающий объект x_i получен из j-й компоненты смеси. Возьмём эти величины в качестве скрытых переменных.

\sum_{j=1}^k g_{ij} = 1, для любого i = 1, \dots, m, так как имеет смысл полной вероятности принадлежать объекту x_i одной из k компонент смеси. Из формулы Байеса

g_{ij} = \frac{w_jp_j(x_i)}{\sum_{s=1}^k w_sp_s(x_i)} для всех i, j.
  • М-шаг

Будем максимизировать логарифм полного правдоподобия:

Q(\Theta) = \ln\prod_{i=1}^mp(x_i) = \sum_{i=1}^m\ln\sum_{j=1}^kw_jp_j(x_i) \rightarrow \max_{\Theta}.

Решая оптимизационную задачу Лагранжа с ограничением на сумму w_j, находим:

w_j = \frac1m \sum_{i=1}^m g_{ij} ,\: j = 1, \dots, k
\theta_j = arg \max_{\theta} \sum_{i=1}^m g_{ij}\ln\varphi(x_i,\theta) ,\: j = 1, \dots, k .

Смесь нормальных распределений

Далее часто будет встречаться смесь нормальных распределений, поэтому выпишем для нее результаты Е- и М-шага алгоритма:
\theta = (w_1,...,w_k;\mu_1,...,\mu_k;\sigma_1,...,\sigma_k) - вектор параметров,
p_j(x) = N(x;\mu_j, \sigma_j) = \frac1{\sqrt{2\pi}\sigma_j}exp{-\frac{(x - \mu_j)^2}{2\sigma_j^2}} - плотность распределения.

  • E-шаг
g_{ij} = \frac{w_jN(x_i;\mu_j, \sigma_j)}{\sum_{s=1}^k w_sN(x_i;\mu_s, \sigma_s)}
  • М-шаг
w_j = \frac1m\sum_{i=1}^m g_{ij} ,
\mu_j = \frac1{mw_j}\sum_{i=1}^m g_{ij}x_i ,
\sigma_j^2 = \frac1{mw_j}\sum_{i=1}^m g_{ij}(x_i - \mu_j)^2,\; j = 1, \dots, k.

Недостатки ЕМ-алгоритма

  1. ЕМ-алгоритм неустойчив по начальным данным (то есть тем, которые инициализируют вектор параметров \theta на первой итерации), так как он находит локальный экстремум, значение которого может оказаться гораздо ниже, чем глобальный максимум. В зависимости от выбора начального приближения алгоритм может сходиться к разным точкам. Также может сильно варьироваться скорость сходимости.
  2. ЕМ-алгоритм не позволяет определять количество k компонент смеси. Эта величина является структурным параметром алгоритма!

В связи с этим рассмотрим некоторые модификации ЕМ-алгоритма, так или иначе борющиеся с данными недостатками.

Медианные модификации ЕМ-алгоритма

Для противодействия неустойчивости алгоритма по начальным данным можно использовать медианные модификации. Их смысл заключается в том, что наиболее „неустойчивые“ этапы выполнения ЕМ-алгоритма заменяются более устойчивыми. В частности, на М-шаге моментные оценки максимального правдоподобия заменяются более устойчивыми (робастными) оценками медианного типа.

Далее будут приведены конечные результаты для смеси нормальных распределений. Математическое обоснование данного метода можно посмотреть в [2].

Первая медианная модификация

Введем следующие величины:
\pi_{ij} = \frac{g_{ij}}{\sum_{i=1}^m g_{ij}},\: i = 1, \dots, m, \: j = 1, \dots, k,
имеющие смысл некой вероятности.Введем также „фиктивные“ случайные величины \x_j,\: j = 1, \dots, k, принимающие значения x_i с вероятностями \pi_{ij}. Переупорядочим значения x_1, \dots, x_m случайной величины \x_j по неубыванию, одновременно переставляя соответствующие данным значениям вероятности. Пусть \pi_{(ij)} - вероятность, соответствующая значению x_{(i)}. Положим:

I_j = min(i: \pi_{(1j)} + \pi_{(2j)} + \dots + \pi_{(ij)} \geq \frac12).

Тогда \mu_j = med \x_j = x_{I_j}.

Пусть m_j = med|\x_j - \mu_j|. Тогда \sigma_j = 1.4826m_j.

Вторая медианная модификация

Матожидание \mu_j оценивается так же, как и в первой медианной модификации. Рассмотрим дисперсию \sigma_j. Обозначим s_j = \sum_{i=1}^m \pi_{ij}|x_i - \mu_j|.
Тогда \sigma_j = 1.2533s_j.

Стохастический EM-алгоритм (Stochastic, SEM)

Классический ЕМ-алгоритм относится к так называемым „жадным“ алгоритмам, то есть он бросается на первый попавшийся локальный максимум, который, как уже упоминалось, может сильно отличаться от глобального. Одним из способов борьбы является как бы случайное, но целенаправленное „встряхивание“ выборки на каждой итерации. Такая рандомизация „выбивает“ оптимизационный процесс из локальных максимумов, так что:

  • SEM работает относительно быстро, и его результаты практически не зависят от начального приближения;
  • как правило, SEM находит экстремум Q(\Theta), близкий к глобальному.

Пусть вся выборка X^m разбита на кластеры K_j,\: j = 1, \dots, k: каждый элемент x_i относится к единственному(!) кластеру K_j, то есть утверждается, что данный элемент взят из j компоненты смеси.

  • S-шаг

На первом этапе SEM-алгоритма производится так называемое стохастическое моделирование. Для каждого i = 1, \dots, m генерируется вектор y_i = (y_{i1}, y_{i2, \dots, y_{ik}}) как реализация случайного вектора из полиномиального распределения с параметрами 1 и g_{ij}, где g_{ij} - это вероятность того, что величина y_{ij} равна 1. По векторам y_i определяется разбиение выборки X^m на кластеры K_j и соответствующие численности кластеров \nu_1, \dots, \nu_k.

  • Е-шаг

Остается без изменений.

  • М-шаг

Пересчитываются веса:

w_j = \frac{\nu_j}{m}

и вместо максимизации взвешенного правдоподобия:

\theta_j = arg \max_{\theta} \sum_{i=1}^m g_{ij}\ln\varphi(x_i,\theta),

решается задача обычного невзвешенного правдоподобия:

\theta_j = arg \max_{\theta} \sum_{x_i \in K_j} \ln\varphi(x_i,\theta).

Для SEM-алгоритма также существуют медианные модификации. Ознакомиться с ними можно в [2].

Классификационный EM-алгоритм (Classification, CEM)

Этот алгоритм совпадает с SEM-алгоритмом, за исключением того, что вместо S-шага используется детерминированное правило, эквивалентное классификации по принципу максимума апостериорной вероятности, то есть x_i приписывается тому кластеру, номер которого совпадает с номером наибольшего из чисел g_{i1}, \dots, g_{ik}. Формулы для оценок параметров аналогичны SEM-алгоритму.

Обобщенный EM-алгоритм (Generalized, GEM)

В тех случаях, когда максимизация функционала Q(\Theta),имеющего смысл полного правдоподобия, по каким-либо причинам затруднена, применяется подход, в котором достаточно лишь сместиться в сторону максимума значения функционала, сделав одну или несколько итераций на М-шаге. Этот алгоритм также обладает неплохой сходимостью.

Модификации с добавлением/удалением компонент

EM-алгоритм с добавлением компонент

Позволяет решить две проблемы сразу: проблему выбора числа компонент и проблему выбора начального приближения. Идея заключается в следующем. Имея некоторый набор компонент, можно выделить объекты x_i, которые хуже всего описываются смесью - это объекты с наименьшими значениями правдоподобия p(x_i). По этим объектам строится ещё одна компонента. Затем она добавляется в смесь и запускаются EM-итерации, чтобы новая компонента и старые „притёрлись друг к другу“. Так продолжается до тех пор, пока все объекты не окажутся покрыты компонентами.
Более подробное описание алгоритма можно посмотреть в статье EM-алгоритм с последовательным добавлением компонент.

SEM-алгоритм с удалением компонент

Решает проблему выбора компонент и „застоя“ в локальном максимуме.

До начала работы алгоритма фиксируются два числа:

  • K - максимально возможное число компонент, которое определяется соображениями практической интерпретируемости полученного результата;
  • \nu_0 -минимально допустимое число наблюдений в одном кластере, которое выбирают исходя из минимально допустимой значимости компонент. Если нецелесообразно считать значимыми компоненты, веса которых меньше некоторого заданного (малого) значения \alpha, то \nu_0 = \alpha m, где m - объем выборки.

Начальное число компонент смеси равно K. Далее это число может только уменьшаться:
в результате стохастического моделирования на S-шаге SEM-алгоритма могут возникнуть кластеры, для которых \nu_j \leq \nu_0. Тогда данный кластер аннулируется, то есть

  1. Переопределяются апостериорные вероятности g_{ij}.
  2. Элементы выборки, попавшие в аннулированные классы, перераспределяются по „достаточно представительным“ кластерам.
  3. Переопределяется число компонент смеси.

Формулы для оценок параметров аналогичны SEM-алгоритму с фиксированным числом компонент.

Краткое резюме

Естественно, все вышеперечисленные схемы не являются жесткими. Возможно изменение некотрых их частей, или комбинирование нескольких схем. Также существует множество методов, о которых не было рассказано в данной статье. ЕМ-алгоритм - это довольно мощный и часто встречающийся инструмент для решения прикладных задач и использование той или иной его модификации зависит от конкретной задачи и поставленных целей.

Смотрите также

Литература

  1. К.В.Воронцов „Лекции по статистическим (байесовским) алгоритмам классификации“
  2. В.Ю.Королев „ЕМ-алгоритм, его модификации и их применение к задаче разделения смесей вероятностных рспределений“.


Данная статья является непроверенным учебным заданием.
Студент: Участник:Марина
Преподаватель: Участник:Константин Воронцов
Срок: 8 января 2010

До указанного срока статья не должна редактироваться другими участниками проекта MachineLearning.ru. По его окончании любой участник вправе исправить данную статью по своему усмотрению и удалить данное предупреждение, выводимое с помощью шаблона {{Задание}}.

См. также методические указания по использованию Ресурса MachineLearning.ru в учебном процессе.