EM-алгоритм: различия между версиями
[отпатрулированная версия] | [отпатрулированная версия] |
отмена правки 79926773 участника 84.237.43.9 (обс) |
Добавление ссылок на электронные версии книг (20240123)) #IABot (v2.0.9.5) (GreenC bot |
||
(не показаны 23 промежуточные версии 17 участников) | |||
Строка 1: | Строка 1: | ||
'''EM-алгоритм''' ({{lang-en|Expectation-maximization (EM) algorithm}}) — алгоритм, используемый в [[Математическая статистика|математической статистике]] для нахождения оценок [[Метод максимального правдоподобия|максимального правдоподобия]] параметров вероятностных моделей, в случае, когда модель зависит от некоторых [[Скрытая переменная|скрытых переменных]]. Каждая [[итерация]] алгоритма состоит из двух шагов. На E-шаге (expectation) вычисляется ожидаемое значение [[Функция правдоподобия|функции правдоподобия]], при этом скрытые переменные рассматриваются как [[Наблюдаемая переменная|наблюдаемые]]. На M-шаге (maximization) вычисляется оценка максимального правдоподобия, таким образом увеличивается ожидаемое правдоподобие, вычисляемое на E-шаге. Затем это значение используется для E-шага на следующей итерации. Алгоритм выполняется до сходимости. |
'''EM-алгоритм''' ({{lang-en|Expectation-maximization (EM) algorithm}}) — алгоритм, используемый в [[Математическая статистика|математической статистике]] для нахождения оценок [[Метод максимального правдоподобия|максимального правдоподобия]] параметров вероятностных моделей, в случае, когда модель зависит от некоторых [[Скрытая переменная|скрытых переменных]]. Каждая [[Итерация (программирование)|итерация]] алгоритма состоит из двух шагов. На E-шаге (expectation) вычисляется ожидаемое значение [[Функция правдоподобия|функции правдоподобия]], при этом скрытые переменные рассматриваются как [[Наблюдаемая переменная|наблюдаемые]]. На M-шаге (maximization) вычисляется оценка максимального правдоподобия, таким образом увеличивается ожидаемое правдоподобие, вычисляемое на E-шаге. Затем это значение используется для E-шага на следующей итерации. Алгоритм выполняется до сходимости. |
||
Часто EM-алгоритм используют для разделения смеси [[Гауссиана|гауссиан]]. |
Часто EM-алгоритм используют для разделения смеси [[Гауссиана|гауссиан]]. |
||
Строка 8: | Строка 8: | ||
Положим <math>p</math> — [[плотность вероятности]] (в непрерывном случае) или [[функция вероятности]] (в дискретном случае) полного набора данных с параметрами <math>\Theta</math>: <math>p( \mathbf X, \mathbf T | \Theta).</math> Эту функцию можно понимать как [[функция правдоподобия|правдоподобие]] всей модели, если рассматривать её как функцию параметров <math>\Theta</math>. Заметим, что [[условное распределение]] скрытой компоненты при некотором наблюдении и фиксированном наборе параметров может быть выражено так: |
Положим <math>p</math> — [[плотность вероятности]] (в непрерывном случае) или [[функция вероятности]] (в дискретном случае) полного набора данных с параметрами <math>\Theta</math>: <math>p( \mathbf X, \mathbf T | \Theta).</math> Эту функцию можно понимать как [[функция правдоподобия|правдоподобие]] всей модели, если рассматривать её как функцию параметров <math>\Theta</math>. Заметим, что [[условное распределение]] скрытой компоненты при некотором наблюдении и фиксированном наборе параметров может быть выражено так: |
||
: |
:<math>p(\mathbf T |\mathbf X, \Theta) = \frac{p(\mathbf X|\mathbf T, \Theta) p(\mathbf T |\Theta) }{p(\mathbf X | \Theta)} = \frac{p(\mathbf X|\mathbf T, \Theta) p(\mathbf T |\Theta) }{\int p(\mathbf X|\mathbf{\hat{T}}, \Theta) p(\mathbf{\hat{T}} |\Theta) d\mathbf{ \hat{T}}}</math>, |
||
используя расширенную [[формула Байеса|формулу Байеса]] и [[формула полной вероятности|формулу полной вероятности]]. Таким образом, нам необходимо знать только распределение наблюдаемой компоненты при фиксированной скрытой <math>p(\mathbf X|\mathbf T, \Theta)</math> и вероятности скрытых данных <math>p(\mathbf T |\Theta)</math>. |
используя расширенную [[формула Байеса|формулу Байеса]] и [[формула полной вероятности|формулу полной вероятности]]. Таким образом, нам необходимо знать только распределение наблюдаемой компоненты при фиксированной скрытой <math>p(\mathbf X|\mathbf T, \Theta)</math> и вероятности скрытых данных <math>p(\mathbf T |\Theta)</math>. |
||
Строка 19: | Строка 19: | ||
</math> |
</math> |
||
где <math>Q(\Theta)</math> — [[матожидание]] логарифма правдоподобия. Другими словами, мы не можем сразу вычислить точное правдоподобие, но по известным данным (<math>X</math>) мы можем найти ''[[Апостериори|апостериорную]]'' оценку вероятностей для различных значений скрытых переменных <math>T</math>. Для каждого набора значений <math>T</math> и параметров <math>\Theta</math> мы можем вычислить |
где <math>Q(\Theta)</math> — [[Математическое ожидание|матожидание]] логарифма правдоподобия. Другими словами, мы не можем сразу вычислить точное правдоподобие, но по известным данным (<math>X</math>) мы можем найти ''[[Апостериори|апостериорную]]'' оценку вероятностей для различных значений скрытых переменных <math>T</math>. Для каждого набора значений <math>T</math> и параметров <math>\Theta</math> мы можем вычислить матожидание [[функция правдоподобия|функции правдоподобия]] по данному набору <math>X</math>. Оно зависит от предыдущего значения <math>\Theta</math>, потому что это значение влияет на вероятности скрытых переменных <math>T</math>. |
||
<math>Q(\Theta)</math> вычисляется следующим образом: |
<math>Q(\Theta)</math> вычисляется следующим образом: |
||
Строка 28: | Строка 28: | ||
E_{\mathbf T} \! \! \left[ \log p \left(\mathbf X, \mathbf T \,|\, \Theta \right) \Big| \mathbf X \right] |
E_{\mathbf T} \! \! \left[ \log p \left(\mathbf X, \mathbf T \,|\, \Theta \right) \Big| \mathbf X \right] |
||
</math> |
</math> |
||
то есть это [[условное матожидание]] <math>\log p \left( \mathbf X, \mathbf T \,|\, \Theta \right) </math> при условии <math> \ |
то есть это [[Условное математическое ожидание|условное матожидание]] <math>\log p \left( \mathbf X, \mathbf T \,|\, \Theta \right) </math> при условии <math> \mathbf X </math>. |
||
Другими словами, <math>\Theta_{n+1}</math> — это значение, максимизирующее (M) |
Другими словами, <math>\Theta_{n+1}</math> — это значение, максимизирующее (M) условное матожидание (E) логарифма правдоподобия при данных значениях наблюдаемых переменных и предыдущем значении параметров. |
||
В непрерывном случае значение <math>Q(\Theta)</math> вычисляется так: |
В непрерывном случае значение <math>Q(\Theta)</math> вычисляется так: |
||
Строка 42: | Строка 42: | ||
== Альтернативное описание == |
== Альтернативное описание == |
||
При |
При определённых обстоятельствах удобно рассматривать EM-алгоритм как два чередующихся шага максимизации.<ref name="neal1999">{{статья|заглавие=A view of the EM algorithm that justifies incremental, sparse, and other variants|издание=Learning in Graphical Models|страницы=355—368|издательство=MIT Press|место=Cambridge, MA|isbn=0262600323|ссылка=ftp://ftp.cs.toronto.edu/pub/radford/emk.pdf|accessdate=2009-03-22|язык=en|тип=journal|автор=Radford; Neal; [[Хинтон, Джеффри|Hinton, Geoffrey]]|ответственный=[[Michael I. Jordan]]|год=1999|archivedate=2020-06-07|archiveurl=https://web.archive.org/web/20200607135814/ftp://ftp.cs.toronto.edu/pub/radford/emk.pdf}}</ref><ref name="hastie2001">{{книга |год=2001|заглавие=The Elements of Statistical Learning|ссылка=https://archive.org/details/elementsofstatis0000hast/page/236|isbn=0-387-95284-5 |издательство=Springer |место=New York |часть=8.5 The EM algorithm |страницы=236—243|язык=und|автор=Hastie, Trevor; Tibshirani, Robert; Friedman, Jerome}}</ref> |
||
Рассмотрим функцию: |
Рассмотрим функцию: |
||
: <math>F(q,\theta) = \operatorname{E}_q [ \log L (\theta ; x,Z) ] + H(q) = -D_{\text{KL}}\big(q \big\| p_{Z|X}(\cdot|x;\theta ) \big) + \log L(\theta;x) </math> |
: <math>F(q,\theta) = \operatorname{E}_q [ \log L (\theta ; x,Z) ] + H(q) = -D_{\text{KL}}\big(q \big\| p_{Z|X}(\cdot|x;\theta ) \big) + \log L(\theta;x) </math> |
||
Строка 49: | Строка 49: | ||
Тогда шаги EM-алгоритма можно представить как: |
Тогда шаги EM-алгоритма можно представить как: |
||
: '''E(xpectation) шаг''': Выбираем ''q'', чтобы максимизировать ''F'': |
: '''E(xpectation) шаг''': Выбираем ''q'', чтобы максимизировать ''F'': |
||
:: <math> q^{(t)} = \operatorname*{arg\,max}_q \ F(q,\theta^{(t)}) </math> |
:: <math> q^{(t)} = \operatorname*{\arg\,\max}_q \ F(q,\theta^{(t)}) </math> |
||
: '''M(aximization) шаг''': Выбираем ''θ'', чтобы максимизировать ''F'': |
: '''M(aximization) шаг''': Выбираем ''θ'', чтобы максимизировать ''F'': |
||
:: <math> \theta^{(t+1)} = \operatorname*{\arg\,max}_{\theta} \ F(q^{(t)},\theta) </math> |
:: <math> \theta^{(t+1)} = \operatorname*{\arg\,\max}_{\theta} \ F(q^{(t)},\theta) </math> |
||
== Примеры использования == |
== Примеры использования == |
||
Строка 62: | Строка 62: | ||
== Ссылки == |
== Ссылки == |
||
* [ |
* [https://web.archive.org/web/20141228001233/http://socr.ucla.edu/htmls/SOCR_Experiments.html Демонстрация разделения смеси гауссиан с помощью EM-алгоритма] |
||
* [http://lcn.epfl.ch/tutorial/english/mixtureModel/index.html Реализация на Java] |
* [https://web.archive.org/web/20160214062151/http://lcn.epfl.ch/tutorial/english/mixtureModel/index.html Реализация на Java] |
||
{{перевести|en|Expectation–maximization algorithm}} |
|||
{{Машинное обучение}} |
|||
[[Категория:Алгоритмы оптимизации]] |
[[Категория:Алгоритмы оптимизации]] |
||
[[Категория:Кластерный анализ]] |
[[Категория:Кластерный анализ]] |
Текущая версия от 02:56, 24 января 2024
EM-алгоритм (англ. Expectation-maximization (EM) algorithm) — алгоритм, используемый в математической статистике для нахождения оценок максимального правдоподобия параметров вероятностных моделей, в случае, когда модель зависит от некоторых скрытых переменных. Каждая итерация алгоритма состоит из двух шагов. На E-шаге (expectation) вычисляется ожидаемое значение функции правдоподобия, при этом скрытые переменные рассматриваются как наблюдаемые. На M-шаге (maximization) вычисляется оценка максимального правдоподобия, таким образом увеличивается ожидаемое правдоподобие, вычисляемое на E-шаге. Затем это значение используется для E-шага на следующей итерации. Алгоритм выполняется до сходимости.
Часто EM-алгоритм используют для разделения смеси гауссиан.
Описание алгоритма
[править | править код]Пусть — некоторые из значений наблюдаемых переменных, а — скрытые переменные. Вместе и образуют полный набор данных. Вообще, может быть некоторой подсказкой, которая облегчает решение проблемы в случае, если она известна. Например, если имеется смесь распределений, функция правдоподобия легко выражается через параметры отдельных распределений смеси.
Положим — плотность вероятности (в непрерывном случае) или функция вероятности (в дискретном случае) полного набора данных с параметрами : Эту функцию можно понимать как правдоподобие всей модели, если рассматривать её как функцию параметров . Заметим, что условное распределение скрытой компоненты при некотором наблюдении и фиксированном наборе параметров может быть выражено так:
- ,
используя расширенную формулу Байеса и формулу полной вероятности. Таким образом, нам необходимо знать только распределение наблюдаемой компоненты при фиксированной скрытой и вероятности скрытых данных .
EM-алгоритм итеративно улучшает начальную оценку , вычисляя новые значения оценок и так далее. На каждом шаге переход к от выполняется следующим образом:
где — матожидание логарифма правдоподобия. Другими словами, мы не можем сразу вычислить точное правдоподобие, но по известным данным () мы можем найти апостериорную оценку вероятностей для различных значений скрытых переменных . Для каждого набора значений и параметров мы можем вычислить матожидание функции правдоподобия по данному набору . Оно зависит от предыдущего значения , потому что это значение влияет на вероятности скрытых переменных .
вычисляется следующим образом:
то есть это условное матожидание при условии .
Другими словами, — это значение, максимизирующее (M) условное матожидание (E) логарифма правдоподобия при данных значениях наблюдаемых переменных и предыдущем значении параметров. В непрерывном случае значение вычисляется так:
Альтернативное описание
[править | править код]При определённых обстоятельствах удобно рассматривать EM-алгоритм как два чередующихся шага максимизации.[1][2] Рассмотрим функцию:
где q — распределение вероятностей ненаблюдаемых переменных Z; pZ|X(· |x;θ) — условное распределение ненаблюдаемых переменных при фиксированных наблюдаемых x и параметрах θ; H — энтропия и DKL — расстояние Кульбака-Лейблера.
Тогда шаги EM-алгоритма можно представить как:
- E(xpectation) шаг: Выбираем q, чтобы максимизировать F:
- M(aximization) шаг: Выбираем θ, чтобы максимизировать F:
Примеры использования
[править | править код]- k-means — алгоритм кластеризации, построенный на идее EM-алгоритма
- Метод упругих карт для нелинейного сокращения размерности данных
- Алгоритм Баума-Велша — алгоритм для оценки параметров скрытых марковских моделей
Примечания
[править | править код]- ↑ Radford; Neal; Hinton, Geoffrey. A view of the EM algorithm that justifies incremental, sparse, and other variants (англ.) // Learning in Graphical Models : journal / Michael I. Jordan. — Cambridge, MA: MIT Press, 1999. — P. 355—368. — ISBN 0262600323. Архивировано 7 июня 2020 года.
- ↑ Hastie, Trevor; Tibshirani, Robert; Friedman, Jerome. 8.5 The EM algorithm // The Elements of Statistical Learning (неопр.). — New York: Springer, 2001. — С. 236—243. — ISBN 0-387-95284-5.
Ссылки
[править | править код]В другом языковом разделе есть более полная статья Expectation–maximization algorithm (англ.). |