Участник:Марина/Песочница
Материал из MachineLearning.
(→Стохастический EM-алгоритм (Stochastic, SEM)) |
|||
(3 промежуточные версии не показаны) | |||
Строка 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>\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 | + | ::<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 /> | + | Далее часто будет встречаться смесь [[нормальное распределение|нормальных распределений]], поэтому выпишем для нее результаты Е- и М-шага алгоритма: <br /> |
- | <tex>\theta = (w_1,...,w_k;\mu_1,...,\mu_k;\sigma_1,...,\sigma_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> | + | <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 /> | * E-шаг <br /> | ||
Строка 49: | Строка 53: | ||
== Недостатки ЕМ-алгоритма == | == Недостатки ЕМ-алгоритма == | ||
- | # ЕМ-алгоритм | + | # ЕМ-алгоритм ''неустойчив по начальным данным'' (то есть тем, которые инициализируют вектор параметров <tex>\theta</tex> на первой итерации), так как он находит локальный экстремум, значение которого может оказаться гораздо ниже, чем глобальный максимум. В зависимости от выбора начального приближения алгоритм может сходиться к разным точкам. Также может сильно варьироваться скорость сходимости. |
- | # ЕМ-алгоритм не позволяет определять количество <tex>k</tex> компонент смеси. Эта величина является структурным параметром алгоритма! | + | # ЕМ-алгоритм ''не позволяет определять количество <tex>k</tex> компонент смеси''. Эта величина является структурным параметром алгоритма! |
- | В связи с этим рассмотрим некоторые модификации ЕМ-алгоритма, так или иначе | + | В связи с этим рассмотрим некоторые модификации ЕМ-алгоритма, так или иначе борющиеся с данными недостатками. |
== Медианные модификации ЕМ-алгоритма == | == Медианные модификации ЕМ-алгоритма == | ||
- | Для противодействия неустойчивости алгоритма по начальным данным можно использовать медианные модификации. Их смысл заключается в том, что наиболее „неустойчивые“ этапы выполнения ЕМ-алгоритма заменяются более устойчивыми. В частности, на М-шаге моментные оценки максимального правдоподобия заменяются более устойчивыми (робастными) оценками медианного типа. | + | Для противодействия неустойчивости алгоритма по начальным данным можно использовать медианные модификации. Их смысл заключается в том, что наиболее „неустойчивые“ этапы выполнения ЕМ-алгоритма заменяются более устойчивыми. В частности, на М-шаге моментные оценки максимального правдоподобия заменяются более устойчивыми (робастными) оценками [[медиана|медианного]] типа. |
Далее будут приведены конечные результаты для смеси нормальных распределений. Математическое обоснование данного метода можно посмотреть в [2]. | Далее будут приведены конечные результаты для смеси нормальных распределений. Математическое обоснование данного метода можно посмотреть в [2]. | ||
Строка 81: | Строка 85: | ||
* '''S-шаг''' <br /> | * '''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>. | + | На первом этапе 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>. | ||
* '''Е-шаг''' <br /> | * '''Е-шаг''' <br /> | ||
Строка 88: | Строка 93: | ||
* '''М-шаг''' <br /> | * '''М-шаг''' <br /> | ||
Пересчитываются веса: <br /> | Пересчитываются веса: <br /> | ||
+ | ::<tex>w_j = \frac{\nu_j}{m} </tex> | ||
и вместо максимизации взвешенного правдоподобия: <br /> | и вместо максимизации взвешенного правдоподобия: <br /> | ||
- | , решается задача обычного невзвешенного правдоподобия: <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) == | == Обобщенный EM-алгоритм (Generalized, GEM) == | ||
Строка 105: | Строка 114: | ||
Более подробное описание алгоритма можно посмотреть в статье [[EM-алгоритм с последовательным добавлением компонент]]. | Более подробное описание алгоритма можно посмотреть в статье [[EM-алгоритм с последовательным добавлением компонент]]. | ||
- | === SEM-алгоритм с удалением | + | === 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-алгоритм (англ. expectation-maximization) - алгоритм, используемый в математической статистике для нахождения оценок максимального правдоподобия параметров вероятностных моделей, в случае, когда модель зависит от некоторых скрытых переменных. Каждая итерация алгоритма состоит из двух шагов. На E-шаге (expectation) вычисляется ожидаемое значение функции правдоподобия, при этом скрытые переменные рассматриваются как наблюдаемые. На M-шаге (maximization) вычисляется оценка максимального правдоподобия, таким образом увеличивается ожидаемое правдоподобие, вычисляемое на E-шаге. Затем это значение используется для E-шага на следующей итерации. Алгоритм выполняется до сходимости.
Как правило, ЕМ-алгоритм применяется для решения задач двух типов.
- К первому типу можно отнести задачи, связанные с анализом действительно неполных данных, когда некоторые статистические данные отсутствуют в силу каких-либо причин.
- Ко второму типу задач можно отнести те задачи, в которых функция правдоподобия имеет вид, не допускающий удобных аналитических методов исследования, но допускающий серьезные упрощения, если в задачу ввести дополнительные “ненаблюдаемые” (скрытые, латентные) переменные. Примерами прикладных задач второго типа являются задачи распознавания образов, реконструкции изображений. Математическую суть данных задач составляют задачи кластерного анализа, классификации и разделения смесей вероятностных распределений.
Постановка задачи
Пусть плотность распределения на множестве имеет вид смеси распределений:
- , , ,
- , , ,
где - функция правдоподобия j-й компоненты смеси,
- ее априорная вероятность.
Функции правдоподобия принадлежат параметрическому семейству распределений и отличаются только значениями параметра .
Задача разделения смеси заключается в том, чтобы, имея выборку случайных и независимых наблюдений из смеси , зная число и функцию , оценить вектор параметров .
Основной алгоритм
Идея алгоритма заключается в следующем. Искусственно вводится вспомогательный вектор скрытых переменных , обладающий двумя замечательными свойствами.
- С одной стороны, он может быть вычислен, если известны значения вектора параметров .
- С другой стороны, поиск максимума правдоподобия сильно упрощается, если известны значения скрытых переменных.
EM-алгоритм состоит из итерационного повторения двух шагов. На E-шаге вычисляется ожидаемое значение (expectation) вектора скрытых переменных по текущему приближению вектора параметров . На М-шаге решается задача максимизации правдоподобия (maximization) и находится следующее приближение вектора по текущим значениям векторов и .
- Е-шаг
Обозначим через плотность вероятности того, что объект получен из -й компоненты смеси. По формуле условной вероятности
- .
Введём обозначение
- .
- .
Это неизвестная апостериорная вероятность того, что обучающий объект получен из -й компоненты смеси. Возьмём эти величины в качестве скрытых переменных.
, для любого , так как имеет смысл полной вероятности принадлежать объекту одной из компонент смеси.
Из формулы Байеса
- для всех .
- М-шаг
Будем максимизировать логарифм полного правдоподобия:
- .
- .
Решая оптимизационную задачу Лагранжа с ограничением на сумму , находим:
- .
Смесь нормальных распределений
Далее часто будет встречаться смесь нормальных распределений, поэтому выпишем для нее результаты Е- и М-шага алгоритма:
- вектор параметров,
- плотность распределения.
- E-шаг
- М-шаг
- ,
- ,
- .
Недостатки ЕМ-алгоритма
- ЕМ-алгоритм неустойчив по начальным данным (то есть тем, которые инициализируют вектор параметров на первой итерации), так как он находит локальный экстремум, значение которого может оказаться гораздо ниже, чем глобальный максимум. В зависимости от выбора начального приближения алгоритм может сходиться к разным точкам. Также может сильно варьироваться скорость сходимости.
- ЕМ-алгоритм не позволяет определять количество компонент смеси. Эта величина является структурным параметром алгоритма!
В связи с этим рассмотрим некоторые модификации ЕМ-алгоритма, так или иначе борющиеся с данными недостатками.
Медианные модификации ЕМ-алгоритма
Для противодействия неустойчивости алгоритма по начальным данным можно использовать медианные модификации. Их смысл заключается в том, что наиболее „неустойчивые“ этапы выполнения ЕМ-алгоритма заменяются более устойчивыми. В частности, на М-шаге моментные оценки максимального правдоподобия заменяются более устойчивыми (робастными) оценками медианного типа.
Далее будут приведены конечные результаты для смеси нормальных распределений. Математическое обоснование данного метода можно посмотреть в [2].
Первая медианная модификация
Введем следующие величины:
,
имеющие смысл некой вероятности.Введем также „фиктивные“ случайные величины , принимающие значения с вероятностями . Переупорядочим значения случайной величины по неубыванию, одновременно переставляя соответствующие данным значениям вероятности. Пусть - вероятность, соответствующая значению . Положим:
- .
- .
Тогда .
Пусть . Тогда .
Вторая медианная модификация
Матожидание оценивается так же, как и в первой медианной модификации. Рассмотрим дисперсию . Обозначим .
Тогда .
Стохастический EM-алгоритм (Stochastic, SEM)
Классический ЕМ-алгоритм относится к так называемым „жадным“ алгоритмам, то есть он бросается на первый попавшийся локальный максимум, который, как уже упоминалось, может сильно отличаться от глобального. Одним из способов борьбы является как бы случайное, но целенаправленное „встряхивание“ выборки на каждой итерации. Такая рандомизация „выбивает“ оптимизационный процесс из локальных максимумов, так что:
- SEM работает относительно быстро, и его результаты практически не зависят от начального приближения;
- как правило, SEM находит экстремум , близкий к глобальному.
Пусть вся выборка разбита на кластеры : каждый элемент относится к единственному(!) кластеру , то есть утверждается, что данный элемент взят из компоненты смеси.
- S-шаг
На первом этапе SEM-алгоритма производится так называемое стохастическое моделирование. Для каждого генерируется вектор как реализация случайного вектора из полиномиального распределения с параметрами 1 и , где - это вероятность того, что величина равна 1. По векторам определяется разбиение выборки на кластеры и соответствующие численности кластеров .
- Е-шаг
Остается без изменений.
- М-шаг
Пересчитываются веса:
и вместо максимизации взвешенного правдоподобия:
- ,
решается задача обычного невзвешенного правдоподобия:
- .
Для SEM-алгоритма также существуют медианные модификации. Ознакомиться с ними можно в [2].
Классификационный EM-алгоритм (Classification, CEM)
Этот алгоритм совпадает с SEM-алгоритмом, за исключением того, что вместо S-шага используется детерминированное правило, эквивалентное классификации по принципу максимума апостериорной вероятности, то есть приписывается тому кластеру, номер которого совпадает с номером наибольшего из чисел . Формулы для оценок параметров аналогичны SEM-алгоритму.
Обобщенный EM-алгоритм (Generalized, GEM)
В тех случаях, когда максимизация функционала ,имеющего смысл полного правдоподобия, по каким-либо причинам затруднена, применяется подход, в котором достаточно лишь сместиться в сторону максимума значения функционала, сделав одну или несколько итераций на М-шаге. Этот алгоритм также обладает неплохой сходимостью.
Модификации с добавлением/удалением компонент
EM-алгоритм с добавлением компонент
Позволяет решить две проблемы сразу: проблему выбора числа компонент и проблему выбора начального приближения. Идея заключается в следующем. Имея некоторый набор компонент, можно выделить объекты , которые хуже всего описываются смесью - это
объекты с наименьшими значениями правдоподобия . По этим объектам строится ещё одна компонента. Затем она добавляется в смесь и запускаются EM-итерации, чтобы новая компонента и старые „притёрлись друг к другу“. Так продолжается до тех пор, пока все объекты не окажутся покрыты компонентами.
Более подробное описание алгоритма можно посмотреть в статье EM-алгоритм с последовательным добавлением компонент.
SEM-алгоритм с удалением компонент
Решает проблему выбора компонент и „застоя“ в локальном максимуме.
До начала работы алгоритма фиксируются два числа:
- - максимально возможное число компонент, которое определяется соображениями практической интерпретируемости полученного результата;
- -минимально допустимое число наблюдений в одном кластере, которое выбирают исходя из минимально допустимой значимости компонент. Если нецелесообразно считать значимыми компоненты, веса которых меньше некоторого заданного (малого) значения , то , где - объем выборки.
Начальное число компонент смеси равно . Далее это число может только уменьшаться:
в результате стохастического моделирования на S-шаге SEM-алгоритма могут возникнуть кластеры, для которых . Тогда данный кластер аннулируется, то есть
- Переопределяются апостериорные вероятности .
- Элементы выборки, попавшие в аннулированные классы, перераспределяются по „достаточно представительным“ кластерам.
- Переопределяется число компонент смеси.
Формулы для оценок параметров аналогичны SEM-алгоритму с фиксированным числом компонент.
Краткое резюме
Естественно, все вышеперечисленные схемы не являются жесткими. Возможно изменение некотрых их частей, или комбинирование нескольких схем. Также существует множество методов, о которых не было рассказано в данной статье. ЕМ-алгоритм - это довольно мощный и часто встречающийся инструмент для решения прикладных задач и использование той или иной его модификации зависит от конкретной задачи и поставленных целей.
Смотрите также
- EM-алгоритм с последовательным добавлением компонент
- EM алгоритм (пример)
- ЕМ-алгоритм (русскоязычная википедия)
- ЕМ-алгоритм (англоязычная википедия)
Литература
- К.В.Воронцов „Лекции по статистическим (байесовским) алгоритмам классификации“
- В.Ю.Королев „ЕМ-алгоритм, его модификации и их применение к задаче разделения смесей вероятностных рспределений“.
Данная статья является непроверенным учебным заданием.
До указанного срока статья не должна редактироваться другими участниками проекта MachineLearning.ru. По его окончании любой участник вправе исправить данную статью по своему усмотрению и удалить данное предупреждение, выводимое с помощью шаблона {{Задание}}. См. также методические указания по использованию Ресурса MachineLearning.ru в учебном процессе. |