EM 摘要

离开EM接近一年了,昨晚的PR课继续保持了沉闷的风格,于是打算推一遍...结果半路卡住了。先看看走到哪一步了,然后借了Nglecture才解脱(去年也是找到这本pdf才算明白,言简意赅)。

Block

首先是独立同分布的似然估计(不支持\bm,用大写代替):

\[\begin{equation}\label{eq:likehood} P(X;\theta)=\prod_{i=1}^{N}p(x_i;\theta) \end{equation} \]

后面作用对数:

\[\begin{eqnarray} l(\theta) &=& \log P(X;\theta)\nonumber\\ & = & \sum_{i=1}^{N} \log P(x_i;\theta) \label{eq:loss} \end{eqnarray} \]

引入类变量(我这样称呼,auxiliary variable 可能通用些):

\[\begin{eqnarray} l(\theta) & = & \sum_{i=1}^{N} \log P(x_i;\theta) \nonumber \\ & = & \sum_{i=1}^{N} \log \sum_{c_i=1}^{M} P(x_i|c_i;\theta)P(c_i;\theta) \label{eq:wrong_way} \end{eqnarray} \]

然后用那个什么inequality:

\[\begin{eqnarray} \log \sum_{c_i=1}^{M}P(x_i|c_i;\theta)P(c_i;\theta) \ge \sum_{c_i=1}^{M}P(c_i;\theta)\log P(x_i|c_i;\theta) \label{eq:jensen_ineq} \end{eqnarray} \]

于是\ref{eq:wrong_way}可以发展出:

\[l(\theta) > \sum_{i=1}^{N} \sum_{c_i=1}^{M}P(c_i;\theta)\log P(x_i|c_i;\theta) \label{eq:stall} \]

然后就在这死循环了...只记得似乎要牵涉一个\(Q(c_i)\)

Solution

赶紧爪机上下载pdf一睹为快...

Where goes wrong

原来在\ref{eq:wrong_way}就已经走偏了,而\(Q(c_i)\)正是在那引入的:

\[\begin{eqnarray} l(\theta) & = & \sum_{i=1}^{N} \log P(x_i;\theta)\nonumber\\ & = & \sum_{i=1}^{N} \log \sum_{c_i=1}^{M} \frac{P(x_i,c_i;\theta)}{Q(c_i)}Q(c_i) \label{eq:right_way}\\ & \ge & \sum_{i=1}^{N} \sum_{c_i=1}^{M} Q(c_i) \log \frac{P(x_i,c_i;\theta)}{Q(c_i)} \label{eq:jensen_ineq_r} \end{eqnarray} \]

**Note **
此处的\(Q(c_i)\) 应该假定为一个分布。

So

一个奇兵突起之处就在这里:对于\ref{eq:jensen_ineq_r},要使等号成立,需要对数项为常量:

\[\begin{equation} \frac{P(x_i,c_i;\theta)}{Q(c_i)} \equiv c \label{eq:constant} \end{equation} \]

现在可以利用\(Q(c_i)\)为分布的假定了,求取\(Q(c_i)\):

\[\begin{eqnarray} \int cQ(c_i) & = & \int P(x_i,c_i;\theta)\nonumber\\ c & = & P(x_i;\theta)\nonumber\\ Q(c_i) & = & P(c_i|x_i;\theta) \label{eq:expactation} \end{eqnarray} \]

Maximization

最终目标是\(\theta^*\),这一步通过最大化求解已经具有等于性质的\ref{eq:jensen_ineq_r}完成:

\[\begin{equation}\label{eq:maximization} \theta^* = \mathop{argmax}_{\theta} \sum_{i=1}^{N} \sum_{c_i=1}^{M} Q(c_i) \log \frac{P(x_i,c_i;\theta)}{Q(c_i)} \end{equation} \]


15 Jul, 2017 记
这里要说明的是\ref{{eq:maximization}}中,分数线上下的两个\(\theta\)是不一样的,*i.e.: *\(Q(c_i)=Q(c_i|\theta_n)\)\(\theta^*=\theta_{n+1}\)

优化的证明

这里再说明一下如何证明这样的迭代具有优化作用。
首先有:

\[\begin{eqnarray} l(\theta_{n+1}) & = & \sum_{i=1}^{N}\log\sum_{c_i=1}^{M}\frac{P(x_i,c_i;\theta_{n+1})}{Q(c_i;\theta_{n+1})}Q(c_i;\theta_{n+1})\label{eq:l_n+1}\\ & \ge & \sum_{i=1}^{N}\sum_{c_i=1}^{M}Q(c_i;\theta_n)\log\frac{P(x_i,c_i;\theta_{n+1})}{Q(c_i;\theta_n)} \label{eq:greater_1}\\ & \ge& \sum_{i=1}^{N}\sum_{c_i=1}^{M}Q(c_i;\theta_n)\log\frac{P(x_i,c_i;\theta_{n})}{Q(c_i;\theta_n)} \label{eq:greater_2}\\ & = & \sum_{i=1}^{N}\log\sum_{c_i=1}^{M}\frac{P(x_i,c_i;\theta_{n})}{Q(c_i;\theta_{n})}Q(c_i;\theta_{n})\label{eq:l_n}\\ & = & l(\theta_n) \end{eqnarray} \]

\ref{eq:greater_1}能够成立的原因是\(P(x_i,c_i;\theta_{n+1})/Q(c_i;\theta_n)\)不再(一定)为常数,而仅当为常数时有等号成立。
\ref{eq:greater_2}由极大化得到;当\(\log\)操作的结果再次成为常数时,\ref{eq:l_n}成立。


Review

一些tricks很值得回味...

EM成功的关键

  1. 类变量的引入。显然,没有auxiliary变量的引入,就不能使用Jensen inequality,所以这很关键。然而更有意思的,是这与通常要进行classification问题正好契合了其中的class变量。
  2. 分布函数的假定和常数设定。 很容易以为Jensen不等式是关键。但就像我在上面个走错的一样,这个不等式比较容易被想到。更重要的一步是equality hold,而这一步却是通过\(Q(c_i)\)为分布函数的假定(和\ref{eq:constant}的设定一并)得到的。
    分布函数的假定,使得

\[\begin{equation} \sum_{c_i=1}^{M}Q(c_i) =1 \end{equation} \]

所以才有:

\[\begin{eqnarray} \log \sum_{c_i=1}^{M}Q(c_i)c = \sum_{c_i=1}^{M}Q(c_i)\log c \label{eq:key_hold} \end{eqnarray} \]

如果\(\sum_{c_i=1}^{M}Q(c_i)\ne 1\)的话,\ref{eq:key_hold}也就不能成立,这一点很有趣:) 。
而常数的设定,还可以使得\(Q(c_i)\)能够被求解出来。

命名

似乎总是在完成之后才想起命名上的线索,但这里想强调的不是E(前文已经说过了)。回想之前对EM的印象,觉得似乎是不用求导的。然而看看命名就应该明白这是很显然的问题。

posted @ 2017-06-12 09:53  rotxin  阅读(182)  评论(0编辑  收藏  举报