混合高斯分布与 EM 算法
极大似然估计在混合高斯分布中遇到的困难
在一般的情况下,对于所得到的样本集,\(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)
\]
这个结果是可以直接计算出来的,那么引入混合高斯分布会是什么样呢?
混合高斯分布:
简单的说就是,非混合的情况下,我们的数据集满足高斯分布,这样用极大似然就直接算出高斯分布中的参数就可以了。那么混合的情况下就是,原数据集是由多个满足高斯分布的数据集线性组合起来,这个时候我们理解为:有 \(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]
\]
这样说明这个式子更直观,也更加细节,这里推荐一篇博客 传送门 ,
概率论中的 Jensen 不等式
对于 Jensen 不等式,通常情况下是这样的:对于 \(f^{\prime \prime}(x) \geq 0\) 也就是对于凸函数而言,这个可以用中值定理来证明,同时这个公式还可以用于证明多项式的均值不等式与调和不等式,这里就不给出证明了,在概率的条件下就是:实际上,这就是均值不等式来的啊, E 表示数学期望
\[
\mathrm{E}[f(X)] \geq f(\mathrm{E} X)
\]
EM 算法讲了什么东西
对于一般形式的,引入隐变量 \(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 算法不断的迭代的关键。
上面的式子表明 \(\ell(\theta)\) 有一个下界,从极大似然的角度考虑,我们就是要最大化这个下界,得到 $ \theta $ 的取值,但是其中的 \(Q_{i}\) 是一个隐变量的分布,我们并不知道这个分布是什么样子的。
上面使用 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 算法的步骤可以表示成下面这样:
- 函数声明 \(\operatorname{EM}\left(p_{Y, C}(y, c ; \theta), p_{C | Y}(c | y ; \theta), \theta^{(0)}\right)\)
- for iteration \(t \in 1,2, \ldots\) do
- \(Q_{i}^{(t)} \leftarrow P\left(z_i | x_i ; \theta^{(t-1)}\right) \quad(\text { E-step })\)
- \(\theta^{(t)} \leftarrow \operatorname{argmax}_{\theta} \mathbb{E}_{Q_{i}^{(t)}}\left[P(y, C ; \theta)\right] \quad\left(\mathrm{M}{-\mathrm{Step}}\right)\)
- if \(\theta^{(t)} \approx \theta^{(t-1)}\) then
- return $\theta^{(t)} $
EM 算法的收敛问题
这个收敛的思想是这样的:我们的 $ \theta $ 是直接通过极大似然函数算出的来的。那么 EM 算法迭代的步骤就是,我们不断地最大化极大似然估计函数,也就是说 \(\ell\left(\theta^{(t)}\right) \leq \ell\left(\theta^{(t+1)}\right)\) ,这样就会不断地逼近最优解。在 EM 迭代的过程中,我们不断改变是 \(Q_{i}\) ,
为了更好的说明,假设上一步我们已经得到了一个最优解 \(\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}
\]
对于上面的两个不等式做出以下解释:
- 这个式子来自 Jensen 不等式,原式是这样的:\(\ell(\theta) \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)}\) 对任意的 $ Q_i $ 与 \(\theta\) 均成立,所以我们进行放缩得到第一个不等式,这个式子比较显然,
EM 算法用于混合高斯分布
\[
\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)}}
\]
混合高斯分布与 EM 算法的更多相关文章
- 高斯混合模型和EM算法
使用期望最大化算法(Expectation-Maximization)来进行密度估计(density estimation). 与k-means一样,给定的训练样本是,我们将隐含类别标签用表示.与k- ...
- EM算法[转]
最大期望算法:EM算法. 在统计计算中,最大期望算法(EM)是在概率模型中寻找参数最大似然估计或者最大后验估计的算法,其中概率模型依赖于无法观测的隐藏变量. 最大期望算法经过两个步骤交替进行计算: 第 ...
- EM算法理解的九层境界
EM算法理解的九层境界 EM 就是 E + M EM 是一种局部下限构造 K-Means是一种Hard EM算法 从EM 到 广义EM 广义EM的一个特例是VBEM 广义EM的另一个特例是WS算法 广 ...
- 记录:EM 算法估计混合高斯模型参数
当概率模型依赖于无法观测的隐性变量时,使用普通的极大似然估计法无法估计出概率模型中参数.此时需要利用优化的极大似然估计:EM算法. 在这里我只是想要使用这个EM算法估计混合高斯模型中的参数.由于直观原 ...
- EM算法与混合高斯模型
非常早就想看看EM算法,这个算法在HMM(隐马尔科夫模型)得到非常好的应用.这个算法公式太多就手写了这部分主体部分. 好的參考博客:最大似然预计到EM,讲了详细样例通熟易懂. JerryLead博客非 ...
- 机器学习笔记(十)EM算法及实践(以混合高斯模型(GMM)为例来次完整的EM)
今天要来讨论的是EM算法.第一眼看到EM我就想到了我大枫哥,EM Master,千里马.RUA!!!不知道看这个博客的人有没有懂这个梗的. 好的,言归正传.今天要讲的EM算法,全称是Expectati ...
- 机器学习笔记—混合高斯和 EM 算法
本文介绍密度估计的 EM(Expectation-Maximization,期望最大). 假设有 {x(1),...,x(m)},因为是无监督学习算法,所以没有 y(i). 我们通过指定联合分布 p( ...
- EM算法总结
EM算法总结 - The EM Algorithm EM是我一直想深入学习的算法之一,第一次听说是在NLP课中的HMM那一节,为了解决HMM的参数估计问题,使用了EM算法.在之后的MT中的词对齐中也用 ...
- EM算法(2):GMM训练算法
目录 EM算法(1):K-means 算法 EM算法(2):GMM训练算法 EM算法(3):EM算法运用 EM算法(4):EM算法证明 EM算法(2):GMM训练算法 1. 简介 GMM模型全称为Ga ...
随机推荐
- CentsOS原生RabbitMQ安装过程
版本依赖问题 RabbitMQ安装时与Erlang的版本一定要保持以下的对应关系,否则会引发无法启动的问题 安装Erlang 下载Erlang依赖 1 wget http://erlang.org/d ...
- spark过滤算子+StringIndexer算子出发的一个逻辑bug
问题描述: 在一段spark机器学习的程序中,同时用到了Filter算子和StringIndexer算子,其中StringIndexer在前,filter在后,并且filter是对stringinde ...
- 在win10、Ubuntu双系统下,卸载Ubuntu
一.Win下确定ubuntu的磁盘分区 这个步骤是为了删除Ubuntu的系统分区,这种直接删除的方式来重新安装ubuntu的低版本比较省事. (1)右键计算机->管理->磁盘管理,打开磁盘 ...
- VUE组件3 数据流和.sync修饰符
单向数据流:数据通过prop从父组件传递到子组件中,当父级组件中的数据更新时,传子组件也会更新,但不能在子组件中修改.防止子组件在无意中修改,改变父级组件状态 然而,双向数据绑定在某些情况下有用.如果 ...
- ML-求解 SVM 的SMO 算法
这算是我真正意义上认真去读的第一篇ML论文了, but, 我还是很多地方没有搞懂, 想想, 缓缓吧, 还是先熟练调用API 哈哈 原论文地址: https://www.microsoft.com/en ...
- 【Spring Boot】Spring Boot之利用Logstash将日志转换成以JSON的格式存储和输出
一.Logstash的作用 Logstash是一个完全开源的工具,它可以对日志进行收集.过滤,能非常方便地将日志转换成以JSON的格式存储和输出,并将其存储供以后使用. 二.整合Logstash的步骤 ...
- 定时任务工具Linux crontab命令详解
crontab:定时任务的守护进程,精确到分,设计秒的我们一般写脚本 -->相当于闹钟 日志文件: ll /var/log/cron* 编辑文件: vim /et ...
- vue.js生成纵向拓扑图
1.前端代码 <link href="https://magicbox.bk.tencent.com/static_api/v3/assets/bootstrap-3.3.4/css/ ...
- React源码 React ref
ref 的功能,在 react 当中.我们写了一个组件,在这个时候,我们的 render function 里面我们会渲染一系列的子组件或者 dom 节点,有时候我们会希望有这样的需求,就是我们要获取 ...
- httprunner学习13-环境变量.env
前言 一般来说,在进行实际应用的开发过程中,应用会拥有不同的运行环境,通常会有以下环境: 本地开发环境 测试环境 生产环境 在不同环境中,我们可能会使用不同的数据库或邮件发送驱动等配置,这时候则需要通 ...