在通常的状况下,对于所获得的样本集,\(X=\left\{x_{1}, \dots, x_{N}\right\}\),咱们的目标是最大化似然函数,经过最大化似然函数来获取参数的值。这是似然函数每每取对数表示就是:
\[ \begin{aligned} L(\theta | X) &=\log \left(\prod_{i=1}^{N} p\left(x_{i} | \theta\right)\right) \\ &=\sum_{i=1}^{N} \log p\left(x_{i} | \theta\right) \end{aligned} \]
这个过程的参数估计能够描述成:
\[ \hat{\theta}=\arg \max _{\theta} L(\theta | X) \]
这个结果是能够直接计算出来的,那么引入混合高斯分布会是什么样呢?算法
混合高斯分布:app
简单的说就是,非混合的状况下,咱们的数据集知足高斯分布,这样用极大似然就直接算出高斯分布中的参数就能够了。那么混合的状况下就是,原数据集是由多个知足高斯分布的数据集线性组合起来,这个时候咱们理解为:有 \(k\) 个知足不一样参数的高斯分布的数据集,而且 \(\sum_{j=1}^{k} \phi_{j}=1\)。其中 $\phi $ 表示权重那么咱们新的数据集就能够表示成 \(\sum_{j=1}^{k} \phi_{j} p_{j}\left({x} | \theta_{j}\right)\) 。那么这时参数就有两个,分别是 $ \phi $ 和 $ \theta$ 。如今咱们假设有\(\phi_{j} = p\left(z^{(i)}=j\right)\) 。函数
这个时候,根据条件几率的计算公式,咱们似然函数能够写成下面这样的式子:
\[ \begin{aligned} \ell(\phi, \mu, \Sigma) &=\sum_{i=1}^{m} \log p\left(x^{(i)} ; \phi, \mu, \Sigma\right) \\ &=\sum_{i=1}^{m} \log \sum_{z^{(i)}=1}^{k} p\left(x^{(i)} | z^{(i)} ; \mu, \Sigma\right) p\left(z^{(i)} ; \phi\right) \end{aligned} \]
上式中的 \(x^{(i)}|z^{(i)}\) 能够理解为 $x^{(i)} $ 来自第 $ j$ 个数据集的几率。显然这个 \(p\left(x^{(i)} | z^{(i)} ; \mu, \Sigma\right)\) 表示的是第 \(z^{(i)}\) 个高斯分布的函数。因此 $z^{(i)} $ 是个隐变量。这个式子我感受本身说的不够清楚,这个里的 $z^{(i)} $ 的选择咱们选择的是 \(\{1, \ldots, k\}\) 中的某一个,其实 $z^{(i)} $ 能够用向量来表示,表示成:
\[ \left[ \begin{matrix} 0& 0& 1& 0& ……& 0& 0& 0\\ \end{matrix} \right] \]
这样说明这个式子更直观,也更加细节,这里推荐一篇博客 传送门 ,spa
对于 Jensen 不等式,一般状况下是这样的:对于 \(f^{\prime \prime}(x) \geq 0\) 也就是对于凸函数而言,这个能够用中值定理来证实,同时这个公式还能够用于证实多项式的均值不等式与调和不等式,这里就不给出证实了,在几率的条件下就是:实际上,这就是均值不等式来的啊, E 表示数学指望
\[ \mathrm{E}[f(X)] \geq f(\mathrm{E} X) \].net
对于通常形式的,引入隐变量 \(z\) 的极大似然函数:
\[ \begin{aligned} \ell(\theta) &=\sum_{i=1}^{N} \log p(x ; \theta) \\ &=\sum_{i=1}^{N} \log \sum_{z} p(x, z ; \theta) \end{aligned} \]
如今,咱们假设对于每个 $ i $ , \(Q_{i}\) 表示 $ z $ 的分布,那么咱们有 \(\sum_{z} Q_{i}(z)=1, Q_{i}(z) \geq0\) 。而后咱们使用 Jensen 不等式将上面的式子进行放缩,写成下面的这样形式,
\[ \begin{aligned} \ell(\theta) =\sum_{i} \log p\left(x^{(i)} ; \theta\right) &=\sum_{i} \log \sum_{z^{(i)}} p\left(x^{(i)}, z^{(i)} ; \theta\right) \\ &=\sum_{i} \log \sum_{z^{(i)}} Q_{i}\left(z^{(i)}\right) \frac{p\left(x^{(i)}, z^{(i)} ; \theta\right)}{Q_{i}\left(z^{(i)}\right)} \\ & \geq \sum_{i} \sum_{z^{(i)}} Q_{i}\left(z^{(i)}\right) \log \frac{p\left(x^{(i)}, z^{(i)} ; \theta\right)}{Q_{i}\left(z^{(i)}\right)} \end{aligned} \]
这里的 \(Q_{i}\) 应该就是 EM 算法不断的迭代的关键。blog
上面的式子代表 \(\ell(\theta)\) 有一个下界,从极大似然的角度考虑,咱们就是要最大化这个下界,获得 $ \theta $ 的取值,可是其中的 \(Q_{i}\) 是一个隐变量的分布,咱们并不知道这个分布是什么样子的。get
上面使用 Jensen 不等式关键的一步是:
\[ f\left(\mathrm{E}_{z^{(i)} \sim Q_{i}}\left[\frac{p\left(x^{(i)}, z^{(i)} ; \theta\right)}{Q_{i}\left(z^{(i)}\right)}\right]\right) \geq \mathrm{E}_{z^{(i)} \sim Q_{i}}\left[f\left(\frac{p\left(x^{(i)}, z^{(i)} ; \theta\right)}{Q_{i}\left(z^{(i)}\right)}\right)\right] \]
这个式子取等式的时候,对于数学指望而言,只有常数能够知足数学指望中的 Jensen 不等式相等。这里不作具体的证实,咱们能够考虑从均值不等式来理解这个问题,假设这个常数是 $ c$ :
\[ \frac{p\left(x^{(i)}, z^{(i)} ; \theta\right)}{Q_{i}\left(z^{(i)}\right)}=c \]
也就是说:
\[ Q_{i}\left(z^{(i)}\right) \propto p\left(x^{(i)}, z^{(i)} ; \theta\right) \]
咱们知道:\(\sum_{z} Q_{i}\left(z^{(i)}\right)=1\) ,那么我能够考虑这样的状况:
\[ 1 = \sum{Q_i\left( z^{\left( i \right)} \right)} \propto \sum{p\left( x^{\left( i \right)},z^{\left( i \right)};\theta \right) } = \sum_{z} p\left(x^{(i)}, z ; \theta\right) \]
这样的话,就有下面的公式:
\[ \begin{aligned} Q_{i}\left(z^{(i)}\right) &=\frac{p\left(x^{(i)}, z^{(i)} ; \theta\right)}{\sum_{z} p\left(x^{(i)}, z ; \theta\right)} \\ &=\frac{p\left(x^{(i)}, z^{(i)} ; \theta\right)}{p\left(x^{(i)} ; \theta\right)} \\ &=p\left(z^{(i)} | x^{(i)} ; \theta\right) \end{aligned} \]
这一步咱们称为 E 步骤,能够获得等式成立的条件, \(Q_{i}\left(z^{(i)}\right) :=p\left(z^{(i)} | x^{(i)} ; \theta\right)\) ,这个是最大化下界的条件,咱们将这个条件带入 $\ell(\theta) $ 获得,也就是说,这个是最大似然函数的条件之一:那么咱们能够用下面的步骤来计算 $ \theta$ ,
\[ \theta :=\arg \max _{\theta} \sum_{i} \sum_{z^{(i)}} Q_{i}\left(z^{(i)}\right) \log \frac{p\left(x^{(i)}, z^{(i)} ; \theta\right)}{Q_{i}\left(z^{(i)}\right)} \]
那么这个 $ \theta$ 是否是最优的呢?接下来咱们来证实 EM 算法中一个很关键的问题,那就是上述的 E 步骤与 M 步骤不断放缩与收敛,最终获得最优的 $ \theta$ 的值。博客
因此 EM 算法的步骤能够表示成下面这样:数学
这个收敛的思想是这样的:咱们的 $ \theta $ 是直接经过极大似然函数算出的来的。那么 EM 算法迭代的步骤就是,咱们不断地最大化极大似然估计函数,也就是说 \(\ell\left(\theta^{(t)}\right) \leq \ell\left(\theta^{(t+1)}\right)\) ,这样就会不断地逼近最优解。在 EM 迭代的过程当中,咱们不断改变是 \(Q_{i}\) ,it
为了更好的说明,假设上一步咱们已经获得了一个最优解 \(\ell\left(\theta^{(t)}\right)\) 以及 $ \theta^{(t)} $ 那么在这一步,咱们知足下面的状况:
\[ Q_{i}^{(t)}\left(z^{(i)}\right) :=p\left(z^{(i)} | x^{(i)} ; \theta^{(t)}\right) \ \ \ Jensen不等式条件\\ 用于计算 \ell\left(\theta^{(t+1)}\right) \]
\[ \ell\left(\theta^{(t)}\right)=\sum_{i} \sum_{z^{(i)}} Q_{i-1}^{(t)}\left(z^{(i)}\right) \log \frac{p\left(x^{(i)}, z^{(i)} ; \theta^{(t)}\right)}{Q_{i-1}^{(t)}\left(z^{(i)}\right)} \]
上面是一次最大化似然函数的条件,假设在上一次结束后咱们获得知足如上的条件,第一个式子是,咱们在上一次结束以后咱们获得 \(\ell\left(\theta^{(t)}\right)\) 以及最优解 $ \theta^{(t)} $ ,那么接下来的一次 E 步骤中,就会知足上面第一个等式,
那么咱们能够推出下面的不等式:
\[ \begin{aligned} \ell\left(\theta^{(t+1)}\right) & \geq \sum_{i} \sum_{z^{(i)}} Q_{i}^{(t)}\left(z^{(i)}\right) \log \frac{p\left(x^{(i)}, z^{(i)} ; \theta^{(t+1)}\right)}{Q_{i}^{(t)}\left(z^{(i)}\right)} \\ & \geq \sum_{i} \sum_{z^{(i)}} Q_{i}^{(t)}\left(z^{(i)}\right) \log \frac{p\left(x^{(i)}, z^{(i)} ; \theta^{(t)}\right)}{Q_{i}^{(t)}\left(z^{(i)}\right)} \\ &=\ell\left(\theta^{(t)}\right) \end{aligned} \]
对于上面的两个不等式作出如下解释:
\[ \sum_{i=1}^{m} \sum_{z^{(i)}} Q_{i}\left(z^{(i)}\right) \log \frac{p\left(x^{(i)}, z^{(i)} ; \phi, \mu, \Sigma\right)}{Q_{i}\left(z^{(i)}\right)} \\ =\sum_{i=1}^{m} \sum_{j=1}^{k} Q_{i}\left(z^{(i)}=j\right) \log \frac{p\left(x^{(i)} | z^{(i)}=j ; \mu, \Sigma\right) p\left(z^{(i)}=j ; \phi\right)}{Q_{i}\left(z^{(i)}=j\right)} \\ =\sum_{i=1}^{m} \sum_{j=1}^{k} w_{j}^{(i)} \log \frac{\frac{1}{(2 \pi)^{n / 2}\left|\Sigma_{j}\right|^{1 / 2}} \exp \left(-\frac{1}{2}\left(x^{(i)}-\mu_{j}\right)^{T} \Sigma_{j}^{-1}\left(x^{(i)}-\mu_{j}\right)\right) \cdot \phi_{j}}{w_{j}^{(i)}} \]
而后咱们用极大似然函数来将这个函数求最大值,偏导为0,
\[ \nabla_{\mu_{l}} \sum_{i=1}^{m} \sum_{j=1}^{k} w_{j}^{(i)} \log \frac{\frac{1}{(2 \pi)^{n / 2}\left|\Sigma_{j}\right|^{1 / 2}} \exp \left(-\frac{1}{2}\left(x^{(i)}-\mu_{j}\right)^{T} \Sigma_{j}^{-1}\left(x^{(i)}-\mu_{j}\right)\right) \cdot \phi_{j}}{w_{j}^{(i)}} \\ =-\nabla_{\mu_{l}} \sum_{i=1}^{m} \sum_{j=1}^{k} w_{j}^{(i)} \frac{1}{2}\left(x^{(i)}-\mu_{j}\right)^{T} \Sigma_{j}^{-1}\left(x^{(i)}-\mu_{j}\right) \\ =\frac{1}{2} \sum_{i=1}^{m} w_{l}^{(i)} \nabla_{\mu_{l}} 2 \mu_{l}^{T} \Sigma_{l}^{-1} x^{(i)}-\mu_{l}^{T} \Sigma_{l}^{-1} \mu_{l} \\ =\sum_{i=1}^{m} w_{l}^{(i)}\left(\sum_{l}^{-1} x^{(i)}-\Sigma_{l}^{-1} \mu_{l}\right) \]
而后就能够得出了:
\[ \mu_{l} :=\frac{\sum_{i=1}^{m} w_{l}^{(i)} x^{(i)}}{\sum_{i=1}^{m} w_{l}^{(i)}} \]