高斯混合模型(GMM)及其EM算法的理解
一个例子
高斯混合模型(Gaussian Mixed Model)指的是多个高斯分布函数的线性组合,理论上GMM可以拟合出任意类型的分布,通常用于解决同一集合下的数据包含多个不同的分布的情况(或者是同一类分布但参数不一样,或者是不同类型的分布,比如正态分布和伯努利分布)。
如图1,图中的点在我们看来明显分成两个聚类。这两个聚类中的点分别通过两个不同的正态分布随机生成而来。但是如果没有GMM,那么只能用一个的二维高斯分布来描述图1中的数据。图1中的椭圆即为二倍标准差的正态分布椭圆。这显然不太合理,毕竟肉眼一看就觉得应该把它们分成两类。
图1
这时候就可以使用GMM了!如图2,数据在平面上的空间分布和图1一样,这时使用两个二维高斯分布来描述图2中的数据,分别记为N(μ1,Σ1)\mathcal{N}(\boldsymbol{\mu}_1, \boldsymbol{\Sigma}_1)N(μ1,Σ1)和N(μ2,Σ2)\mathcal{N}(\boldsymbol{\mu}_2, \boldsymbol{\Sigma}_2)N(μ2,Σ2). 图中的两个椭圆分别是这两个高斯分布的二倍标准差椭圆。可以看到使用两个二维高斯分布来描述图中的数据显然更合理。实际上图中的两个聚类的中的点是通过两个不同的正态分布随机生成而来。如果将两个二维高斯分布N(μ1,Σ1)\mathcal{N}(\boldsymbol{\mu_1}, \boldsymbol{\Sigma}_1)N(μ1,Σ1)和N(μ2,Σ2)\mathcal{N}(\boldsymbol{\mu}_2, \boldsymbol{\Sigma}_2)N(μ2,Σ2)合成一个二维的分布,那么就可以用合成后的分布来描述图2中的所有点。最直观的方法就是对这两个二维高斯分布做线性组合,用线性组合后的分布来描述整个集合中的数据。这就是高斯混合模型(GMM)。
图2
高斯混合模型(GMM)
设有随机变量X\boldsymbol{X}X,则混合高斯模型可以用下式表示:
p(x)=∑k=1KπkN(x∣μk,Σk)p(\boldsymbol{x}) = \sum_{k=1}^K\pi_k \mathcal{N}(\boldsymbol{x}|\boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)p(x)=k=1∑KπkN(x∣μk,Σk)
其中N(x∣μk,Σk)\mathcal{N}(\boldsymbol{x}|\boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)N(x∣μk,Σk)称为混合模型中的第kkk个分量(component)。如前面图2中的例子,有两个聚类,可以用两个二维高斯分布来表示,那么分量数K=2K = 2K=2. πk\pi_kπk是混合系数(mixture coefficient),且满足:
∑k=1Kπk=1\sum_{k=1}^K\pi_k = 1k=1∑Kπk=1
0≤πk≤10 \leq \pi_k \leq 10≤πk≤1
实际上,可以认为πk\pi_kπk就是每个分量N(x∣μk,Σk)\mathcal{N}(\boldsymbol{x}|\boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)N(x∣μk,Σk)的权重。
GMM的应用
GMM常用于聚类。如果要从 GMM 的分布中随机地取一个点的话,实际上可以分为两步:首先随机地在这 K 个 Component 之中选一个,每个 Component 被选中的概率实际上就是它的系数πk\pi_kπk ,选中 Component 之后,再单独地考虑从这个 Component 的分布中选取一个点就可以了──这里已经回到了普通的 Gaussian 分布,转化为已知的问题。
将GMM用于聚类时,假设数据服从混合高斯分布(Mixture Gaussian Distribution),那么只要根据数据推出 GMM 的概率分布来就可以了;然后 GMM 的 K 个 Component 实际上对应KKK个 cluster 。根据数据来推算概率密度通常被称作 density estimation 。特别地,当我已知(或假定)概率密度函数的形式,而要估计其中的参数的过程被称作『参数估计』。
例如图2的例子,很明显有两个聚类,可以定义K=2K=2K=2. 那么对应的GMM形式如下:
p(x)=π1N(x∣μ1,Σ1)+π2N(x∣μ2,Σ2)p(\boldsymbol{x}) =\pi_1 \mathcal{N}(\boldsymbol{x}|\boldsymbol{\mu}_1, \boldsymbol{\Sigma}_1) + \pi_2 \mathcal{N}(\boldsymbol{x}|\boldsymbol{\mu}_2, \boldsymbol{\Sigma}_2)p(x)=π1N(x∣μ1,Σ1)+π2N(x∣μ2,Σ2)
上式中未知的参数有六个:(π1,μ1,Σ1;π2,μ2,Σ2)(\pi_1, \boldsymbol{\mu}_1, \boldsymbol{\Sigma}_1; \pi_2, \boldsymbol{\mu}_2, \boldsymbol{\Sigma}_2)(π1,μ1,Σ1;π2,μ2,Σ2). 之前提到GMM聚类时分为两步,第一步是随机地在这KKK个分量中选一个,每个分量被选中的概率即为混合系数πk\pi_kπk. 可以设定π1=π2=0.5\pi_1 = \pi_2 = 0.5π1=π2=0.5,表示每个分量被选中的概率是0.5,即从中抽出一个点,这个点属于第一类的概率和第二类的概率各占一半。但实际应用中事先指定πk\pi_kπk的值是很笨的做法,当问题一般化后,会出现一个问题:当从图2中的集合随机选取一个点,怎么知道这个点是来自N(x∣μ1,Σ1)N(\boldsymbol{x}|\boldsymbol{\mu}_1, \boldsymbol{\Sigma}_1)N(x∣μ1,Σ1)还是N(x∣μ2,Σ2)N(\boldsymbol{x}|\boldsymbol{\mu}_2, \boldsymbol{\Sigma}_2)N(x∣μ2,Σ2)呢?换言之怎么根据数据自动确定π1\pi_1π1和π2\pi_2π2的值?这就是GMM参数估计的问题。要解决这个问题,可以使用EM算法。通过EM算法,我们可以迭代计算出GMM中的参数:(πk,xk,Σk)(\pi_k, \boldsymbol{x}_k, \boldsymbol{\Sigma}_k)(πk,xk,Σk).
GMM参数估计过程
GMM的贝叶斯理解
在介绍GMM参数估计之前,先改写GMM的形式,改写之后的GMM模型可以方便地使用EM估计参数。GMM的原始形式如下:
p(x)=∑k=1KπkN(x∣μk,Σk)(1)p(\boldsymbol{x}) = \sum_{k=1}^K\pi_k \mathcal{N}(\boldsymbol{x}|\boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k) \tag{1}p(x)=k=1∑KπkN(x∣μk,Σk)(1)
前面提到πk\pi_kπk可以看成是第kkk类被选中的概率。我们引入一个新的KKK维随机变量z\boldsymbol{z}z. zk(1≤k≤K)z_k (1 \leq k \leq K)zk(1≤k≤K)只能取0或1两个值;zk=1z_k = 1zk=1表示第kkk类被选中的概率,即:p(zk=1)=πkp(z_k = 1) = \pi_kp(zk=1)=πk;如果zk=0z_k = 0zk=0表示第kkk类没有被选中的概率。更数学化一点,zkz_kzk要满足以下两个条件:
zk∈{0,1}z_k \in \{0,1\}zk∈{0,1}
∑Kzk=1\sum_K z_k = 1K∑zk=1
例如图2中的例子,有两类,则z\boldsymbol{z}z的维数是2. 如果从第一类中取出一个点,则z=(1,0)\boldsymbol{z} = (1, 0)z=(1,0);,如果从第二类中取出一个点,则z=(0,1)\boldsymbol{z} = (0, 1)z=(0,1).
zk=1z_k=1zk=1的概率就是πk\pi_kπk,假设zkz_kzk之间是独立同分布的(iid),我们可以写出z\boldsymbol{z}z的联合概率分布形式,就是连乘:
p(z)=p(z1)p(z2)...p(zK)=∏k=1Kπkzk(2)p(\boldsymbol{z}) = p(z_1) p(z_2)...p(z_K) = \prod_{k=1}^K \pi_k^{z_k} \tag{2}p(z)=p(z1)p(z2)...p(zK)=k=1∏Kπkzk(2)
因为zkz_kzk只能取0或1,且z\boldsymbol{z}z中只能有一个zkz_kzk为1而其它zj(j≠k)z_j (j\neq k)zj(j=k)全为0,所以上式是成立的。
图2中的数据可以分为两类,显然,每一類中的数据都是服从正态分布的。这个叙述可以用条件概率来表示:
p(x∣zk=1)=N(x∣μk,Σk)p(\boldsymbol{x}|z_k = 1) = \mathcal{N}(\boldsymbol{x}|\boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)p(x∣zk=1)=N(x∣μk,Σk)
即第kkk类中的数据服从正态分布。进而上式有可以写成如下形式:
p(x∣z)=∏k=1KN(x∣μk,Σk)zk(3)p(\boldsymbol{x}| \boldsymbol{z}) = \prod_{k=1}^K \mathcal{N}(\boldsymbol{x}|\boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)^{z_k} \tag{3}p(x∣z)=k=1∏KN(x∣μk,Σk)zk(3)
上面分别给出了p(z)p(\boldsymbol{z})p(z)和p(x∣z)p(\boldsymbol{x}| \boldsymbol{z})p(x∣z)的形式,根据条件概率公式,可以求出p(x)p(\boldsymbol{x})p(x)的形式:
p(x)=∑zp(z)p(x∣z)=∑z(∏k=1KπkzkN(x∣μk,Σk)zk)=∑k=1KπkN(x∣μk,Σk)(4)\begin{aligned} p(\boldsymbol{x}) &= \sum_{\boldsymbol{z}} p(\boldsymbol{z}) p(\boldsymbol{x}| \boldsymbol{z}) \\ &= \sum_{\boldsymbol{z}} \left(\prod_{k=1}^K \pi_k^{z_k} \mathcal{N}(\boldsymbol{x}|\boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)^{z_k} \right ) \\ &= \sum_{k=1}^K \pi_k \mathcal{N}(\boldsymbol{x}|\boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k) \end{aligned} \tag{4} p(x)=z∑p(z)p(x∣z)=z∑(k=1∏KπkzkN(x∣μk,Σk)zk)=k=1∑KπkN(x∣μk,Σk)(4)
(注:上式第二个等号,对z\boldsymbol{z}z求和,实际上就是∑k=1K\sum_{k=1}^K∑k=1K。又因为对某个kkk,只要i≠ki \ne ki=k,则有zi=0z_i = 0zi=0,所以zk=0z_k=0zk=0的项为1,可省略,最终得到第三个等号)
可以看到GMM模型的(1)式与(4)式有一样的形式,且(4)式中引入了一个新的变量z\boldsymbol{z}z,通常称为隐含变量(latent variable)。对于图2中的数据,『隐含』的意义是:我们知道数据可以分成两类,但是随机抽取一个数据点,我们不知道这个数据点属于第一类还是第二类,它的归属我们观察不到,因此引入一个隐含变量z\boldsymbol{z}z来描述这个现象。
注意到在贝叶斯的思想下,p(z)p(\boldsymbol{z})p(z)是先验概率, p(x∣z)p(\boldsymbol{x}| \boldsymbol{z})p(x∣z)是似然概率,很自然我们会想到求出后验概率p(z∣x)p(\boldsymbol{z}| \boldsymbol{x})p(z∣x):
γ(zk)=p(zk=1∣x)=p(zk=1)p(x∣zk=1)p(x,zk=1)=p(zk=1)p(x∣zk=1)∑j=1Kp(zj=1)p(x∣zj=1)(全概率公式)=πkN(x∣μk,Σk)∑j=1KπjN(x∣μj,Σj)(结合(3)、(4))(5)\begin{aligned} \gamma(z_k) &= p(z_k = 1| \boldsymbol{x}) \\ &= \frac{p(z_k = 1) p(\boldsymbol{x}|z_k = 1)}{p(\boldsymbol{x}, z_k = 1)} \\ &= \frac{p(z_k = 1) p(\boldsymbol{x}|z_k = 1)}{\sum_{j=1}^K p(z_j = 1) p(\boldsymbol{x}|z_j = 1)} \text{ (全概率公式)}\\ &= \frac{\pi_k \mathcal{N}(\boldsymbol{x|\boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k})}{\sum_{j=1}^K \pi_j \mathcal{N}(\boldsymbol{x|\boldsymbol{\mu}_j, \boldsymbol{\Sigma}_j})} \text{ (结合(3)、(4))} \end{aligned} \tag{5} γ(zk)=p(zk=1∣x)=p(x,zk=1)p(zk=1)p(x∣zk=1)=∑j=1Kp(zj=1)p(x∣zj=1)p(zk=1)p(x∣zk=1) (全概率公式)=∑j=1KπjN(x∣μj,Σj)πkN(x∣μk,Σk) (结合(3)、(4))(5)
(第2行,贝叶斯定理。关于这一行的分母,很多人有疑问,应该是p(x,zk=1)p(\boldsymbol{x}, z_k = 1)p(x,zk=1)还是p(x)p(\boldsymbol{x})p(x),按照正常写法,应该是p(x)p(\boldsymbol{x})p(x)。但是为了强调zkz_kzk的取值,有的书会写成p(x,zk=1)p(\boldsymbol{x}, z_k = 1)p(x,zk=1),比如李航的《统计学习方法》,这里就约定p(x)p(\boldsymbol{x})p(x)与p(x,zk=1)p(\boldsymbol{x}, z_k = 1)p(x,zk=1)是等同的)
上式中我们定义符号γ(zk)\gamma(z_k)γ(zk)来表示来表示第kkk个分量的后验概率。在贝叶斯的观点下,πk\pi_kπk可视为zk=1z_k=1zk=1的先验概率。
上述内容改写了GMM的形式,并引入了隐含变量z\boldsymbol{z}z和已知x{\boldsymbol{x}}x后的的后验概率γ(zk)\gamma(z_k)γ(zk),这样做是为了方便使用EM算法来估计GMM的参数。
EM算法估计GMM参数
EM算法(Expectation-Maximization algorithm)分两步,第一步先求出要估计参数的粗略值,第二步使用第一步的值最大化似然函数。因此要先求出GMM的似然函数。
假设x={x1,x2,...,xN}\boldsymbol{x} = \{\boldsymbol{x}_1, \boldsymbol{x}_2, ..., \boldsymbol{x}_N\}x={x1,x2,...,xN},对于图2,x\boldsymbol{x}x是图中所有点(每个点有在二维平面上有两个坐标,是二维向量,因此x1,x2\boldsymbol{x}_1, \boldsymbol{x}_2x1,x2等都用粗体表示)。GMM的概率模型如(1)式所示。GMM模型中有三个参数需要估计,分别是π\boldsymbol{\pi}π,μ\boldsymbol{\mu}μ和Σ\boldsymbol{\Sigma}Σ. 将(1)式稍微改写一下:
p(x∣π,μ,Σ)=∑k=1KπkN(x∣μk,Σk)(6)p(\boldsymbol{x}|\boldsymbol{\pi}, \boldsymbol{\mu}, \boldsymbol{\Sigma}) = \sum_{k=1}^K\pi_k \mathcal{N}(\boldsymbol{x}|\boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k) \tag{6}p(x∣π,μ,Σ)=k=1∑KπkN(x∣μk,Σk)(6)
为了估计这三个参数,需要分别求解出这三个参数的最大似然函数。先求解μk\mu_kμk的最大似然函数。样本符合iid,(6)式所有样本连乘得到最大似然函数,对(6)式取对数得到对数似然函数,然后再对μk\boldsymbol{\mu_k}μk求导并令导数为0即得到最大似然函数。
0=−∑n=1NπkN(xn∣μk,Σk)∑jπjN(xn∣μj,Σj)Σk−1(xn−μk)(7)0 = -\sum_{n=1}^N \frac{\pi_k \mathcal{N}(\boldsymbol{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)}{\sum_j \pi_j \mathcal{N}(\boldsymbol{x}_n|\boldsymbol{\mu}_j, \boldsymbol{\Sigma}_j)} \boldsymbol{\Sigma}_k^{-1} (\boldsymbol{x}_n - \boldsymbol{\mu}_k) \tag{7}0=−n=1∑N∑jπjN(xn∣μj,Σj)πkN(xn∣μk,Σk)Σk−1(xn−μk)(7)
注意到上式中分数的一项的形式正好是(5)式后验概率的形式。两边同乘Σk\boldsymbol{\Sigma}_kΣk,重新整理可以得到:
μk=1Nk∑n=1Nγ(znk)xn(8)\boldsymbol{\mu}_k = \frac{1}{N_k}\sum_{n=1}^N \gamma(z_{nk}) \boldsymbol{x}_n \tag{8}μk=Nk1n=1∑Nγ(znk)xn(8)
其中:
Nk=∑n=1Nγ(znk)(9)N_k = \sum_{n=1}^N \gamma(z_{nk}) \tag{9}Nk=n=1∑Nγ(znk)(9)
(8)式和(9)式中,NNN表示点的数量。γ(znk)\gamma(z_{nk})γ(znk)表示点nnn(xn\boldsymbol{x}_nxn)属于聚类kkk的后验概率。则NkN_kNk可以表示属于第kkk个聚类的点的数量。那么μk\boldsymbol{\mu}_kμk表示所有点的加权平均,每个点的权值是∑n=1Nγ(znk)\sum_{n=1}^N \gamma(z_{nk})∑n=1Nγ(znk),跟第kkk个聚类有关。
同理求Σk\boldsymbol{\Sigma}_kΣk的最大似然函数,可以得到:
Σk=1Nk∑n=1Nγ(znk)(xn−μk)(xn−μk)T(10)\boldsymbol{\Sigma}_k = \frac{1}{N_k} \sum_{n=1}^N \gamma(z_{nk}) (x_n - \boldsymbol{\mu}_k)(x_n - \boldsymbol{\mu}_k)^T \tag{10}Σk=Nk1n=1∑Nγ(znk)(xn−μk)(xn−μk)T(10)
最后剩下πk\pi_kπk的最大似然函数。注意到πk\pi_kπk有限制条件∑k=1Kπk=1\sum_{k=1}^K\pi_k = 1∑k=1Kπk=1,因此我们需要加入拉格朗日算子:
lnp(x∣π,μ,Σ)+λ(∑k=1Kπk−1)\ln p(\boldsymbol{x}|\boldsymbol{\pi}, \boldsymbol{\mu}, \boldsymbol{\Sigma}) + \lambda(\sum_{k=1}^K \pi_k -1)lnp(x∣π,μ,Σ)+λ(k=1∑Kπk−1)
求上式关于πk\pi_kπk的最大似然函数,得到:
0=∑n=1NN(xn∣μk,Σk)∑jπjN(xn∣μj,Σj)+λ(11)0 = \sum_{n=1}^N \frac{\mathcal{N}(\boldsymbol{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)}{\sum_j \pi_j \mathcal{N}(\boldsymbol{x}_n|\boldsymbol{\mu}_j, \boldsymbol{\Sigma}_j)} + \lambda \tag{11}0=n=1∑N∑jπjN(xn∣μj,Σj)N(xn∣μk,Σk)+λ(11)
上式两边同乘πk\pi_kπk,我们可以做如下推导:
0=∑n=1NπkN(xn∣μk,Σk)∑jπjN(xn∣μj,Σj)+λπk(11.1)0 = \sum_{n=1}^N \frac{\pi_k \mathcal{N}(\boldsymbol{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)}{\sum_j \pi_j \mathcal{N}(\boldsymbol{x}_n|\boldsymbol{\mu}_j, \boldsymbol{\Sigma}_j)} + \lambda \pi_k \tag{11.1}0=n=1∑N∑jπjN(xn∣μj,Σj)πkN(xn∣μk,Σk)+λπk(11.1)
结合公式(5)、(9),可以将上式改写成:
0=Nk+λπk(11.2)0 = N_k + \lambda \pi_k \tag{11.2}0=Nk+λπk(11.2)
注意到∑k=1Kπk=1\sum_{k=1}^K \pi_k = 1∑k=1Kπk=1,上式两边同时对kkk求和。此外NkN_kNk表示属于第个聚类的点的数量(公式(9))。对Nk,N_k,Nk,从k=1k=1k=1到k=Kk=Kk=K求和后,就是所有点的数量NNN:
0=∑k=1KNk+λ∑k=1Kπk(11.3)0 = \sum_{k=1}^K N_k + \lambda \sum_{k=1}^K \pi_k \tag{11.3}0=k=1∑KNk+λk=1∑Kπk(11.3)
0=N+λ(11.4)0 = N + \lambda \tag{11.4}0=N+λ(11.4)
从而可得到λ=−N\lambda = -Nλ=−N,带入(11.2),进而可以得到πk\pi_kπk更简洁的表达式:
πk=NkN(12)\pi_k = \frac{N_k}{N} \tag{12}πk=NNk(12)
EM算法估计GMM参数即最大化(8),(10)和(12)。需要用到(5),(8),(10)和(12)四个公式。我们先指定π\boldsymbol{\pi}π,μ\boldsymbol{\mu}μ和Σ\boldsymbol{\Sigma}Σ的初始值,带入(5)中计算出γ(znk)\gamma(z_{nk})γ(znk),然后再将γ(znk)\gamma(z_{nk})γ(znk)带入(8),(10)和(12),求得πk\pi_kπk,μk\boldsymbol{\mu}_kμk和Σk\boldsymbol{\Sigma}_kΣk;接着用求得的πk\pi_kπk,μk\boldsymbol{\mu}_kμk和Σk\boldsymbol{\Sigma}_kΣk再带入(5)得到新的γ(znk)\gamma(z_{nk})γ(znk),再将更新后的γ(znk)\gamma(z_{nk})γ(znk)带入(8),(10)和(12),如此往复,直到算法收敛。
EM算法
- 定义分量数目KKK,对每个分量kkk设置πk\pi_kπk,μk\boldsymbol{\mu}_kμk和Σk\boldsymbol{\Sigma}_kΣk的初始值,然后计算(6)式的对数似然函数。
- E step
根据当前的πk\pi_kπk、μk\boldsymbol{\mu}_kμk、Σk\boldsymbol{\Sigma}_kΣk计算后验概率γ(znk)\gamma(z_{nk})γ(znk)
γ(znk)=πkN(xn∣μn,Σn)∑j=1KπjN(xn∣μj,Σj)\gamma(z_{nk}) = \frac{\pi_k\mathcal{N}(\boldsymbol{x}_n| \boldsymbol{\mu}_n, \boldsymbol{\Sigma}_n)}{\sum_{j=1}^K \pi_j \mathcal{N}(\boldsymbol{x}_n| \boldsymbol{\mu}_j, \boldsymbol{\Sigma}_j)}γ(znk)=∑j=1KπjN(xn∣μj,Σj)πkN(xn∣μn,Σn) - M step
根据E step中计算的γ(znk)\gamma(z_{nk})γ(znk)再计算新的πk\pi_kπk、μk\boldsymbol{\mu}_kμk、Σk\boldsymbol{\Sigma}_kΣk
μknew=1Nk∑n=1Nγ(znk)xnΣknew=1Nk∑n=1Nγ(znk)(xn−μknew)(xn−μknew)Tπknew=NkN\begin{aligned} \boldsymbol{\mu}_k^{new} &= \frac{1}{N_k} \sum_{n=1}^N \gamma(z_{nk}) \boldsymbol{x}_n \\ \boldsymbol{\Sigma}_k^{new} &= \frac{1}{N_k} \sum_{n=1}^N \gamma(z_{nk}) (\boldsymbol{x}_n - \boldsymbol{\mu}_k^{new}) (\boldsymbol{x}_n - \boldsymbol{\mu}_k^{new})^T \\ \pi_k^{new} &= \frac{N_k}{N} \end{aligned} μknewΣknewπknew=Nk1n=1∑Nγ(znk)xn=Nk1n=1∑Nγ(znk)(xn−μknew)(xn−μknew)T=NNk
其中:
Nk=∑n=1Nγ(znk)N_k = \sum_{n=1}^N \gamma(z_{nk})Nk=n=1∑Nγ(znk) - 计算(6)式的对数似然函数
lnp(x∣π,μ,Σ)=∑n=1Nln{∑k=1KπkN(xk∣μk,Σk)}\ln p(\boldsymbol{x}|\boldsymbol{\pi}, \boldsymbol{\mu}, \boldsymbol{\Sigma}) = \sum_{n=1}^N \ln \left\{\sum_{k=1}^K \pi_k \mathcal{N}(\boldsymbol{x}_k| \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)\right\}lnp(x∣π,μ,Σ)=n=1∑Nln{k=1∑KπkN(xk∣μk,Σk)} - 检查参数是否收敛或对数似然函数是否收敛,若不收敛,则返回第2步。
GMM聚类的可分性评价
使用GMM得到聚类结果后如何定量评价两个类别的可分性呢?可以通过计算两个或多个类别分布的重叠度来评价模型的可分性。这里介绍一种高斯混合模型的重叠度计算方法:计算高斯混合模型的可分性和重叠度(Overlap Rate, OLR)。
Reference
- 漫谈 Clustering (3): Gaussian Mixture Model
- Draw Gaussian distribution ellipse
- Pang-Ning Tan 等, 数据挖掘导论(英文版), 机械工业出版社, 2010
- Christopher M. Bishop etc., Pattern Recognition and Machine Learning, Springer, 2006
- 李航, 统计学习方法, 清华大学出版社, 2012
高斯混合模型(GMM)及其EM算法的理解相关推荐
- 高斯混合模型参数估计的EM算法
一.高斯模型简介 首先介绍一下单高斯模型(GSM)和高斯混合模型(GMM)的大概思想. 1.单高斯模型 如题,就是单个高斯分布模型or正态分布模型.想必大家都知道正态分布,这一分布反映了自然界普遍存在 ...
- EM算法应用:k均值聚类(k-means)和高斯混合模型(GMM)
文章目录 k-means聚类 EM角度的理解 算法流程 特点 k值选择 局限性 高斯混合模型 GMM的问题描述 1,明确隐变量 2.EM算法的E步:确定Q函数 3. EM算法的E步 4. 停止条件 上 ...
- 使用高斯混合模型(GMM)近似未知分布:EM算法的应用
该篇博客是对邱锡鹏老师<神经网络与深度学习>的学习笔记.在阅读本博文之前,建议读者先阅读上一篇博客EM算法. 高斯混合模型(Gaussian Mixture Model) 如果一个连续随机 ...
- EM算法及高斯混合模型GMM详述
1.最大似然估计 最大似然估计(Maximum Likelihood Estimation,MLE)就是利用已知的样本结果,反推最有可能(最大概率)导致这样结果的参数值的计算过程.直白来讲,就是给定了 ...
- ITK学习笔记(八) ITK高斯混合模型 GMM EM
ITK学习笔记(八) ITK高斯混合模型 GMM EM 1.高斯混合模型 2.变分贝叶斯高斯混合 3.ITK中的GMM.EM 1.高斯混合模型 sklearn.mixture是一个能够学习高斯混合模型 ...
- 混合高斯模型_大数据小白入门高斯混合模型(GMM)聚类算法
导读 高斯混合模型(Gaussian Mixture Model)通常简称GMM,是一种业界广泛使用的聚类算法,属于生成式模型,它假设所有的数据样本都是由某一个给定参数的 多元高斯分布 所生成的.从中 ...
- 高斯混合模型GMM的理解
高斯混合模型(Gaussian Mixture Model,简称GMM)是用高斯概率密度函数(正态分布曲线)精确地量化事物,将一个事物分解为若干的基于高斯概率密度函数(正态分布曲线)形成的模型.通俗点 ...
- 从生成模型到GDA再到GMM和EM算法
在学习生成模型之前,先学习了解下密度估计和高斯混合模型.为什么呢?因为后面的VAE\GANs模型都需要把训练样本,也就是输入的图像样本看作是一个复杂的.多维的分布. 1. 知乎上关于图像频率的解释 作 ...
- GMM与EM个人的理解
GMM与EM个人的理解 本文GMM和EM是个人的粗浅理解,并不一定是正确的,欢迎大家批评指正. 1.GMM GMM在语音识别的有大的作用.全名叫高斯混合分布,通俗的理解是多个高斯分布模型构成的. GM ...
最新文章
- iwconfig的用法
- VM之Linux:Linux的Ubuntu中,解决安装后屏幕太小的问题
- eclipse jdbc mysql下载_在eclipse里jdbc连接mysql 怎么安装
- (一)导学(前端框架面试-聚焦Vue/React/Webpack)
- .NET Core请求控制器Action方法正确匹配,但为何404?
- 卷积神经网络特征图大小计算公式
- mysql 重启数据库实例_mysql 单机多实例重启数据库服务
- NOIP2018游记(更新完毕)
- Rails的静态资源管理
- NBSI2内部功能实现大揭谜 1
- PHP是世界上最好的语言
- virtualBox报错 0x80004005
- 宏基d260linux系统,千呼万唤始出来 宏碁D260新本仅售2499
- 《人工智能算法工程师(初级)》
- Java web学习文档
- 12 投资心理建设宝典
- jquery实现锚点动画效果
- 诗经 - 小雅 - 采芑
- 机器人产业变革:后来者的机会之窗|财经封面报道
- coffeescript 汉字转拼音代码
热门文章
- 【子桓说】过生日的徐峥:要学会在职场做个“技术派”
- 微型计算机怎样打开光驱,怎样把光盘中的文件复制到微机的硬盘中?
- php读音量大小,怎么调整歌曲的声音大小-调整mp3声音大小软件,音量调整软件...
- Qt之创建桌面和开始菜单快捷方式
- 《楚汉传奇》对韩信的一点看法
- iphone的分辨率总结2014以前的设备
- ping 丢包 网络摄像头_网络摄像机频繁掉线的处理方法
- Linux学习笔记(更新中~)
- 马云“退休”前,给我们留下的10句人生真言
- 微信企业号开发:微信考勤