EM-алгоритм с последовательным добавлением компонент (пример)
Материал из MachineLearning.
Строка 9: | Строка 9: | ||
Задача разделения смеси заключается в том, чтобы, имея выборку <tex>X^m</tex> случайных и независимых наблюдений из смеси <tex>p(x)</tex> оценить вектор параметров <tex>\theta = (w_1,...,w_k,\mu_1,...,\mu_k,\Sigma_1,...,\Sigma_k)</tex> доставляющий максимум функции правдоподобия | Задача разделения смеси заключается в том, чтобы, имея выборку <tex>X^m</tex> случайных и независимых наблюдений из смеси <tex>p(x)</tex> оценить вектор параметров <tex>\theta = (w_1,...,w_k,\mu_1,...,\mu_k,\Sigma_1,...,\Sigma_k)</tex> доставляющий максимум функции правдоподобия | ||
- | <center><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 | + | <center><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></center> |
== Алгоритм отыскания оптимальных параметров == | == Алгоритм отыскания оптимальных параметров == | ||
Строка 32: | Строка 32: | ||
2. для всех <tex>k:= 2,3,4... </tex><br /> | 2. для всех <tex>k:= 2,3,4... </tex><br /> | ||
3. выделить объекты с низким правдоподобием <br /> | 3. выделить объекты с низким правдоподобием <br /> | ||
- | <tex>U:= \{x_i \in X^m\ | ~ p(x_i) < \frac{ | + | <tex>U:= \{x_i \in X^m\ | ~ p(x_i) < \frac{max_j ~ p(x_j)}{R} \}</tex> <br /> |
4. Если <tex>|U|<m_0</tex> то выход из цикла по <tex>k</tex><br /> | 4. Если <tex>|U|<m_0</tex> то выход из цикла по <tex>k</tex><br /> | ||
5. Начальное приближение для <tex>k</tex> компоненты: <br/> | 5. Начальное приближение для <tex>k</tex> компоненты: <br/> | ||
Строка 40: | Строка 40: | ||
+ | == Вычислительный эксперимент == | ||
+ | Цель вычислительного эксперимента - | ||
+ | <source lang="matlab"> | ||
+ | y = 1; | ||
+ | </source> | ||
+ | [[Изображение:logo.png|100px|thumb|Рисунок с подписью. Выровнен по правому краю.]] | ||
+ | |||
+ | == Исходный код == | ||
+ | * [https://mlalgorithms.svn.sourceforge.net/svnroot/mlalgorithms/EMAlgorithmMVNpdf/ EMAlgorithmMVNpdf] | ||
== Смотри также == | == Смотри также == |
Версия 15:01, 29 апреля 2009
|
EM-алгоритм с последовательным добавлением компонент (пример) — общий метод нахождения функции плотности распределения объектов. Предполагается, что она имеет вид смеси распределений.
В данной статье рассматривается гауссовское распредение выборки, количество гауссианов произвольно.
Постановка задачи
Задана выборка , в которой
=
- множество объектов,
=
- множество ответов. Предполагается, что объекты имеют плотность распределения
, представимую в виде смеси
гауссиан с параметрами
и
.
Задача разделения смеси заключается в том, чтобы, имея выборку случайных и независимых наблюдений из смеси
оценить вектор параметров
доставляющий максимум функции правдоподобия
Алгоритм отыскания оптимальных параметров
Оптимальные параметры отыскиваются последовательно с помощью EM-алгоритма. Идея заключается во введении вспомогательного вектора скрытых переменных , обладающего двумя замечательными свойствами. С одной стороны, он может быть вычислен, если известны значения вектора параметров
, с другой стороны, поиск максимума правдоподобия сильно упрощается, если известны значения скрытых переменных.
EM-алгоритм состоит из итерационного повторения двух шагов. На E-шаге вы-
числяется ожидаемое значение (expectation) вектора скрытых переменных
по те-
кущему приближению вектора параметров
. На М-шаге решается задача максими-
зации правдоподобия (maximization) и находится следующее приближение вектора
по текущим значениям векторов
и
.
Если число компонент смеси заранее не известно, то применяется EM-алгоритм с последовательным добавлением компонент. Если при каком-либо
число неправильно классифицированных объектов превышает допустимое, то
увеличивается и повторяется EM(
)
- Вход:
Выборка ;
- максимальный допустимый разброс правдоподобия объектов;
- минимальная длина выборки, по которой можно восстановить плотность;
- параметр критерия останова;
- Выход:
- число компонент смеси;
- Алгоритм
1. начальное приближение - одна компонента:
2. для всех
3. выделить объекты с низким правдоподобием
4. Если то выход из цикла по
5. Начальное приближение для компоненты:
6.
Вычислительный эксперимент
Цель вычислительного эксперимента -
y = 1;
Исходный код
Смотри также
Литература
- К. В. Воронцов, Лекции по статистическим (байесовским) алгоритмам классификации
![]() | Данная статья является непроверенным учебным заданием.
До указанного срока статья не должна редактироваться другими участниками проекта MachineLearning.ru. По его окончании любой участник вправе исправить данную статью по своему усмотрению и удалить данное предупреждение, выводимое с помощью шаблона {{Задание}}. См. также методические указания по использованию Ресурса MachineLearning.ru в учебном процессе. |