EM-алгоритм

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

## Идея, суть, смысл

Положим, что модель распределения наблюдаемых объектов

X

{\displaystyle X}

 описывается не только с помощью некоторых параметров

θ

{\displaystyle \theta}

, но и с использованием скрытых переменных

Z

{\displaystyle Z}

. В таком случае логарифм правдоподобия наблюдаемой выборки записывается в виде

L
(
θ
# )
log
⁡

(

P

(
X
∣
θ
)

)

=
log
⁡

(

∑

Z

P

(
X
,
Z
∣
θ
)

)

{\displaystyle L(\theta) = \log\left(\mathbb{P}(X \mid \theta)\right) = \log\left(\sum\_{Z} \mathbb{P}(X, Z \mid \theta)\right) }

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

θ

{\displaystyle \theta}

. Однако максимизировать логарифм от суммы некруто: получаются аналитически нерешаемые уравнения, локальные оптимумы и куча прочих неприятностей... Идея!

Давайте придумаем способ для каждого фиксированного

θ
^

{\displaystyle \hat{\theta}}

 находить оптимальную оценку снизу для

L
(
θ
)

{\displaystyle L(\theta)}

, т. е.

g
(
θ
)
:
g
(

θ
^

# )
L
(

θ
^

)
,
g
(
θ
)
≤
L
(
θ
)
,
∀
θ

{\displaystyle g(\theta): g(\hat{\theta}) = L(\hat{\theta}), g(\theta) \le L(\theta), \forall \theta }

, максимизировать ее по параметру, а затем проделывать все заново до сходимости!

Ок, пускай у нас есть некоторое распределение на скрытых переменных:

q
(
Z
)
:
q
(
Z
)
≥
0
,

∑

Z

q
(
Z
# )
1

{\displaystyle q(Z): q(Z) \ge 0,
 \sum\_{Z} q(Z) = 1}

. Тогда

L
(
θ
# )
log
⁡

(

P

(
X
∣
θ
)

)

=
log
⁡

(

∑

Z

P

(
X
,
Z
∣
θ
)

)

=
log
⁡

(

∑

Z

q
(
Z
)

P

(
X
,
Z
∣
θ
)

q
(
Z
)

)

≥

{\displaystyle L(\theta) = \log\left(\mathbb{P}(X \mid \theta)\right) = \log\left(\sum\_{Z} \mathbb{P}(X, Z \mid \theta)\right) = \log\left(\sum\_{Z} q(Z) \frac{\mathbb{P}(X, Z \mid \theta)}{q(Z)}\right) \ge }

∑

Z

q
(
Z
)
log
⁡

(

P

(
X
,
Z
∣
θ
)

q
(
Z
)

)

=
g
(
θ
)

{\displaystyle \sum\_{Z} q(Z) \log\left(\frac{\mathbb{P}(X, Z \mid \theta)}{q(Z)}\right) = g(\theta) }

.

Неравенство здесь откуда? А, это ж Йенсен для строго вогнутого логарифма от случайной величины

U

{\displaystyle U}

, которая принимает значения

P

(
X
,
Z
∣
θ
)

q
(
Z
)

)

{\displaystyle \frac{\mathbb{P}(X, Z \mid \theta)}{q(Z)})}

 с вероятностями

q
(
Z
)

{\displaystyle q(Z)}

. Вот мы получили нижнюю оценку для

L
(
θ
)

{\displaystyle L(\theta)}

.

Давайте теперь эту оценку сделаем оптимальной для некоторого фиксированного

θ
^

{\displaystyle \hat{\theta}}

. Вспомним, что Йенсен обращается в равенство для строго вогнутых функций тогда и только тогда, когда случайная величина, относительно которой записывается неравенство, почти всюду совпадает со своим матожиданием. Ага, ну тогда:

P

(
X
,
Z
∣

θ
^

)

q
(
Z
)

=

E

# U

∑

Z

P

(
X
,
Z
∣

θ
^

# )

P

(
X
∣

θ
^

)
,
∀
Z

{\displaystyle \frac{\mathbb{P}(X, Z \mid \hat{\theta})}{q(Z)} = \mathbb{E}U = \sum\_{Z} \mathbb{P}(X, Z \mid \hat{\theta}) = \mathbb{P}(X \mid \hat{\theta}), \forall Z}

. Из чего немедленно следует, что

q
(
Z
# )

P

(
X
,
Z
∣

θ
^

)

P

(
X
∣

θ
^

)

=

P

(
Z
∣
X
,

θ
^

)

{\displaystyle q(Z) = \frac{\mathbb{P}(X, Z \mid \hat{\theta})}{\mathbb{P}(X \mid \hat{\theta})} = \mathbb{P}(Z \mid X,\hat{\theta})}

.

Отлично! Теперь эту оптимальную оценку мы, как и обещали, будем максимизировать по параметру:

θ
^

n
e
w

=

arg
⁡
max

θ

g
(
θ
# )

arg
⁡
max

θ

∑

Z

q
(
Z
)
log
⁡

(

P

(
X
,
Z
∣
θ
)

q
(
Z
)

)

=

{\displaystyle \hat{\theta}\_{new} = \underset{\theta}{\arg\max}g(\theta) = \underset{\theta}{\arg\max} \sum\_{Z} q(Z) \log\left(\frac{\mathbb{P}(X, Z \mid \theta)}{q(Z)}\right) = }

arg
⁡
max

θ

∑

Z

q
(
Z
)
log
⁡

(

P

(
X
,
Z
∣
θ
)

)

=

arg
⁡
max

θ

E

Z
∼
q
(
Z
# )

P

(
Z
∣
X
,

θ
^

o
l
d

)

log
⁡

(

P

(
X
,
Z
∣
θ
)

)

{\displaystyle \underset{\theta}{\arg\max} \sum\_{Z} q(Z) \log\left(\mathbb{P}(X, Z \mid \theta)\right) = \underset{\theta}{\arg\max} \mathbb{E}\_{Z \sim q(Z) = \mathbb{P}(Z \mid X,\hat{\theta}\_{old})} \log\left(\mathbb{P}(X, Z \mid \theta)\right)}

.

Мы там выкинули часть не зависящую от параметра, разбив логарифм частного на разность логарифмов.

Все, вот, собственно, и весь алгоритм. Часть с настройкой распределения на скрытых переменных при фиксированном параметре называется E-шагом, а часть с оптимизацией по параметру нижней оценки при фиксированном распределении на скрытых переменных — M-шагом. Сам алгоритм приведен тут.

## Свойства, комментарии, замечания

Ну и что, норм алгоритм? А то! Оказывается, получаемые оценки параметра

θ

0

^

,

θ

1

^

,

θ

2

^

,
…

{\displaystyle \hat{\theta\_{0}},
 \hat{\theta\_{1}}, \hat{\theta\_{2}}, \dots}

 дают неубывающую последовательность значений логарифма правдоподобия

L
(

θ

0

^

)
≤
L
(

θ

1

^

)
≤
L
(

θ

2

^

)
≤
…

{\displaystyle L(\hat{\theta\_{0}}) \le L(\hat{\theta\_{1}}) \le L(\hat{\theta\_{2}}) \le \dots}

. Мда? Да! Ведь для любых соседних

θ
^

o
l
d

{\displaystyle \hat{\theta}\_{old} }

 и

θ
^

n
e
w

{\displaystyle \hat{\theta}\_{new} }

 выполняются следующие соотношения:

L
(

θ
^

o
l
d

# )

g

o
l
d

(

θ
^

o
l
d

)
≤

g

o
l
d

(

θ
^

n
e
w

)
≤
L
(

θ
^

n
e
w

)

{\displaystyle L(\hat{\theta}\_{old}) = g\_{old}(\hat{\theta}\_{old}) \le g\_{old}(\hat{\theta}\_{new}) \le L(\hat{\theta}\_{new})}

. Это справедливо в силу того, что оценка

g

o
l
d

(
θ
)

{\displaystyle g\_{old}(\theta)}

 точна при

# θ

θ
^

o
l
d

{\displaystyle \theta = \hat{\theta}\_{old} }

 и является обычной оценкой снизу при прочих значениях параметра, а также в силу M-шага.

Вот, значит, мы получили неубывающую, ограниченную сверху (логарифм от ограниченного правдоподобия ограничен, вау) последовательность чисел. Значит, куда-то она сходится. Ну и хорошо.

Что можно сказать по этому поводу?

* Имеем в виду, что распределение на скрытых переменных не зависит от параметра на M-шаге, так как зафиксировано на E-шаге.
* Итерировать можно до сходимости по аргументу, по правдоподобию, по числу итераций.
* Так как EM сходится к локальному оптимому, было бы неплохо запустить его из нескольких начальных приближений, а затем взять лучший результат (по величине логарифма правдоподобия) в качестве окончательной оценки параметра.
* Есть еще такая штука, как Generalized EM. Тут идея такова, что для сходимости на M-шаге не обязательно искать прям точь-в-точь аргмаксимум. По сути достаточно даже грубого одношагового приближения. Ну лан, будем знать.
* EM, как вы, мальчики и девочки, наверное, заметили, применяется для ML-оптимизации. Но его можно применять и для нахождения MAP-оценок (об этом далее).
* Если хотите, рассматривайте EM как покоординатный подъем, мне-то что.

## Случай независимых наблюдений

А что, если

(

x
n

,

z
n

)
∼
i
.
i
.
d
.

{\displaystyle (x\_n, z\_n) \sim i. i. d.}

? Ну, например, если скрытая переменная отвечают за компоненту смеси, из которой происходит объект, или если скрытая переменная — недостающие переменные в независимых и одинаково распределенных наблюдаемых объектах. О, ну тогда совсем другое дело:

* **E-шаг:**

q
(
Z
# )

P

(
Z
∣
X
,
θ
# )
p
(

z
1

∣

x
1

,
θ
)
…
p
(

z
n

∣

x
n

,
θ
# )

{\displaystyle
q(Z) = \mathbb{P}(Z \mid X, \theta) = p(z\_1 \mid x\_1, \theta)\dots p(z\_n \mid x\_n, \theta) =
}

q
1

(

z
1

)
…

q
N

(

z
N

)
,

q
i

(

z
i

# )
p
(

z
i

∣

x
i

,
θ
)

{\displaystyle
 q\_1(z\_1)\dots q\_N(z\_N), q\_i(z\_i) = p(z\_i \mid x\_i, \theta)
}

.

* **M-шаг:** .

θ
^

n
e
w

=

arg
⁡
max

θ

∑

Z

q
(
Z
)
log
⁡

(

P

(
X
,
Z
∣
θ
)

)

=

{\displaystyle
\hat{\theta}\_{new} =
\underset{\theta}{\arg\max} \sum\_{Z} q(Z) \log\left(\mathbb{P}(X, Z \mid \theta)\right) =
}

arg
⁡
max

θ

∑

Z

q
(
Z
)

∑

# i
1

N

log
⁡

(

p
(

x
i

,

z
i

∣
θ
)

)

=

{\displaystyle
 \underset{\theta}{\arg\max} \sum\_{Z} q(Z)\sum\_{i = 1}^{N} \log\left(p(x\_i, z\_i \mid \theta)\right)
 =
}

arg
⁡
max

θ

∑

# i
1

N

∑

z
1

,
…
,

z
n

q
1

(

z
1

)
…

q
n

(

z
n

)
log
⁡

(

p
(

x
i

,

z
i

∣
θ
)

)

=

{\displaystyle
\underset{\theta}{\arg\max} \sum\_{i = 1}^{N} \sum\_{z\_1, \dots, z\_n} q\_1(z\_1) \dots q\_n(z\_n) \log\left(p(x\_i, z\_i \mid \theta)\right) =
}

arg
⁡
max

θ

∑

# i
1

N

∑

z
i

q
i

(

z
i

)
log
⁡

(

p
(

x
i

,

z
i

∣
θ
)

)

{\displaystyle
\underset{\theta}{\arg\max} \sum\_{i = 1}^{N} \sum\_{z\_i} q\_i(z\_i) \log\left(p(x\_i, z\_i \mid \theta)\right)
}

## Регуляризация (тут же про MAP)

Ок, давайте добавим регуляризатор к нашему логарифму правдоподобия:

L
(
θ
# )
log
⁡

(

P

(
X
∣
θ
)

)

λ
R
(
θ
)

{\displaystyle L(\theta) = \log\left(\mathbb{P}(X \mid \theta)\right) + \lambda R(\theta) }

. Давайте не будем переписывать все заново, а методом пристального взгляда осознаем, что нижняя оценка станет такой:

g
(
θ
# )

∑

Z

q
(
Z
)
log
⁡

(

P

(
X
,
Z
∣
θ
)

q
(
Z
)

)

λ
R
(
θ
)

{\displaystyle g(\theta) = \sum\_{Z} q(Z) \log\left(\frac{\mathbb{P}(X, Z \mid \theta)}{q(Z)}\right) + \lambda R(\theta)}

, поэтому E-шаг вообще никак не изменится: мы полагаем оптимальным распределением на скрытых переменных все то же

q
(
Z
# )

P

(
Z
∣
X
,

θ
^

)

{\displaystyle q(Z) = \mathbb{P}(Z \mid X,\hat{\theta})}

 при некотором фиксированном

θ
^

{\displaystyle \hat{\theta}}

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

θ
^

n
e
w

=

arg
⁡
max

θ

{

E

Z
∼
q
(
Z
# )

P

(
Z
∣
X
,

θ
^

o
l
d

)

log
⁡

(

P

(
X
,
Z
∣
θ
)

)

λ
R
(
θ
)

}

{\displaystyle \hat{\theta}\_{new} = \underset{\theta}{\arg\max}\left\{ \mathbb{E}\_{Z \sim q(Z) = \mathbb{P}(Z \mid X,\hat{\theta}\_{old})} \log\left(\mathbb{P}(X, Z \mid \theta)\right) + \lambda R(\theta)\right\}}

. В итоге измененный алгоритм получится таким.

Хорошо, но что насчет MAP-оценки? А в чем суть оценки Maximum A Posteriori? Мы полагаем (Байесовский подход), что параметр

θ

{\displaystyle \theta}

 — это не что-то строго фиксированное, а тоже в некотором роде случайная величина. Поэтому мы прямо так и говорим: пусть

θ

{\displaystyle \theta}

 — случайная величина с априорным распределением

p
(
θ
)

{\displaystyle p(\theta)}

. Тогда по аналогии с методом максимального правдоподобия мы будем максимизировать следующую функцию правдоподобия:

L
(
θ
# )
log
⁡

(

P

(
X
,
θ
)

)

=
log
⁡

(

P

(
X
∣
θ
)

)

log
⁡

(

p
(
θ
)

)

→

max

θ

{\displaystyle L(\theta) = \log\left(\mathbb{P}(X, \theta)\right) = \log\left(\mathbb{P}(X \mid \theta)\right) + \log\left(p(\theta)\right) \rightarrow \max\_{\theta}}

. Если приглядеться, то это только что рассмотренный ML с регуляризацией

λ
R
(
θ
# )
log
⁡

(

p
(
θ
)

)

{\displaystyle \lambda R(\theta) = \log\left(p(\theta)\right)}

. А посему все (касаемо EM) проделывается в полной аналогии. А вот и результат.

## Вывод для гауссиан

Для смеси нормальных распределений полный вывод можно найти по этой ссылке. Затруднения возникают в связи с необходимостью дифференцирования определителей и прочих логарифмов от них, которые появляются в лагранжиане для M-шага; Китов расправляется с этим безобразием при помощи лемм. В остальном всё следует определениям в лоб и требует просто аккуратного расписывания.

## P. S.

Сорри за корявые формулы, ох уж эта педивикия...