概述
1 高斯模型
1.1 单高斯模型
当样本数据 X X X 是一维数据时, X X X 服从高斯分布是指其概率密度函数(Probability Density Function)可以用下面的式子表示:
P ( x ∣ θ ) = 1 2 π σ exp ( − ( x − μ ) 2 2 σ 2 ) P(x|theta)=frac{1}{sqrt{2pi} sigma} exp (-frac{(x-mu)^2}{2sigma^2}) P(x∣θ)=2πσ1exp(−2σ2(x−μ)2)
其中, μ mu μ 为数据均值(期望), σ sigma σ 为数据标准差(Standard Deviation)。
当样本数据 X X X 是多维数据时, X X X 服从高斯分布是指其概率密度函数(Probability Density Function)可以用下面的式子表示:
P ( x ∣ θ ) = 1 ( 2 π ) D 2 ∣ Σ ∣ 1 2 exp ( − ( x − μ ) T Σ − 1 ( x − μ ) 2 ) P(x|theta)=frac{1}{(2pi)^{frac{D}{2}} |Sigma|^{frac{1}{2}}} exp (-frac{(x-mu)^T Sigma^{-1} (x-mu)}{2}) P(x∣θ)=(2π)2D∣Σ∣211exp(−2(x−μ)TΣ−1(x−μ))
其中, μ mu μ 为数据均值(期望), σ sigma σ 为数据标准差(Standard Deviation), D D D 为数据维度。
1.2 高斯模型混合模型
高斯混合模型可以看做是由 K K K 个单高斯模型组合而成的模型,其定义为:
高斯混合模型是指具有如下形式的概率分布模型:
P ( x ∣ θ ) = ∑ k = 1 K α k ϕ ( x ∣ θ k ) P(x|theta)=sum_{k=1}^{K}alpha_k phi(x|theta_k) P(x∣θ)=k=1∑Kαkϕ(x∣θk)
其中, α k alpha_k αk 是系数, α k ≥ 0 alpha_k geq 0 αk≥0, ∑ k = 1 K α k = 1 sum_{k=1}^{K}alpha_k=1 ∑k=1Kαk=1, ϕ ( x ∣ θ k ) phi(x|theta_k) ϕ(x∣θk) 是高斯分布, θ k = ( μ k , Σ k 2 ) theta_k=(mu_k,Sigma_k^2) θk=(μk,Σk2)
ϕ ( x ∣ θ k ) = 1 ( 2 π ) D 2 ∣ Σ k ∣ 1 2 exp ( − ( x − μ k ) T Σ k − 1 ( x − μ k ) 2 ) phi(x|theta_k)=frac{1}{(2pi)^{frac{D}{2}} |Sigma_k|^{frac{1}{2}}} exp (-frac{(x-mu_k)^T Sigma_k^{-1} (x-mu_k)}{2}) ϕ(x∣θk)=(2π)2D∣Σk∣211exp(−2(x−μk)TΣk−1(x−μk))
称为第 k k k 个分模型
高斯混合模型是一个生成式模型,可以这样理解数据的生成过程:假设一个最简单的情况,即只有两个一维标准高斯分布的分模型 N ( 0 , 1 ) N(0,1) N(0,1) 和 N ( 2 , 1 ) N(2,1) N(2,1) ,这两个分布的权重分别为 0.7 和 0.3,那么在生成一个数据点时,先按照 0.7 和 0.3 的概率随机选择一个分布,比如选择的是第一个分布 N ( 0 , 1 ) N(0,1) N(0,1),那么下一步就是按照 N ( 0 , 1 ) N(0,1) N(0,1) 生成一个数据点。每一个点的生成过程都是互相独立的,不断循环,就生成了所有的数据点。
2 高斯混合模型与 EM 算法
2.1 基本思想
高斯混合模型的核心思想是: 假设数据可以看作是从多个高斯分布中生成出来的,在该假设下,每个单独的分模型都是标准高斯模型,其均值 μ k mu_k μk 和方差 σ k sigma_k σk 是待估计的参数,每个分模型还有一个需要求解的参数 α k alpha_k αk,可以理解为该分布的权重或生成数据的概率。
通常,高斯混合模型的求解是在给定一系列数据点的情况下,求得最佳的 K K K 个高斯分模型。因为问题的本质,是求解最佳的均值 μ mu μ、方差 σ sigma σ 和权重 α alpha α,这类问题通常是用最大似然估计来求解的,但在这里,如果直接用最大似然估计,得到的是一个复杂的非凸函数,目标函数是和的对数,难以展开和求偏导。
高斯混合模型通常是用 EM 算法来求解该优化问题的,EM 算法的基本思想是:
- 先固定一个变量使整体函数变为凸优化函数,求导得到最值
- 固定步骤 1 中求得的最优参数,通过最优化方法更新步骤 1 中固定的变量
- 若达到停止条件,则停止更新;否则,重复步骤 1 和步骤 2
将 EM 算法用于高斯混合模型,其基本步骤为:
- 初始随机选择各参数的值
- E 步骤:根据当前的参数,计算每个数据点由每个分模型生成的概率
- M 步骤:根据 E 步骤生成的概率,来优化每个分模型的均值 μ mu μ、方差 σ sigma σ 和权重 α alpha α
- 重复 E 步骤和 M 步骤直到收敛。
2.2 求解过程
1、引入隐变量
首先,我们定义隐变量 γ j k gamma_{jk} γjk,它的取值只能是 1 或者 0,其具体含义如下:
- 取值为 1:第 j j j 个数据来自于第 k k k 个高斯分布
- 取值为 0:第 j j j 个数据不来自于第 k k k 个高斯分布
那么,每个数据点都对应于一个向量变量 Γ j = { γ j 1 , ⋯ , γ j K } Gamma_j={gamma_{j1},cdots,gamma_{jK}} Γj={γj1,⋯,γjK},因为GMM 中的各个高斯分布相互独立,且 α k alpha_k αk 可以看作是数据来自第 k k k 个高斯分布的概率,因此可以通过连乘得到整个隐变量 Γ j Gamma_j Γj 的先验概率分布,则有:
∑ k = 1 K γ j k = 1 p ( Γ j ) = ∏ k = 1 K α k γ j k begin{aligned} sum_{k=1}^{K}gamma_{jk} &=1 \ p(Gamma_j) &= prod_{k=1}^K alpha_k^{gamma_{jk}} end{aligned} k=1∑Kγjkp(Γj)=1=k=1∏Kαkγjk
2、得到所有数据的似然函数
对于每个样本数据 x j x_j xj,在已知其是由哪个高斯分布生成的之后,那么它服从的概率分布即为:
p ( x j ∣ γ j k = 1 ; θ ) = N ( x j ∣ μ k , Σ k ) p(x_j|gamma_{jk}=1;theta)=N(x_j|mu_k,Sigma_k) p(xj∣γjk=1;θ)=N(xj∣μk,Σk)
因为这些高斯分布之间互相独立,因此,可以写作:
p ( x j ∣ Γ j ; θ ) = ∏ k = 1 K N ( x j ∣ μ k , Σ k ) γ j k p(x_j|Gamma_{j};theta)=prod_{k=1}^K N(x_j|mu_k,Sigma_k)^{gamma_{jk}} p(xj∣Γj;θ)=k=1∏KN(xj∣μk,Σk)γjk
这样就得到了已知 Γ j Gamma_j Γj 的情况下单个数据的后验概率分布,结合之前得到的 Γ j Gamma_j Γj 的先验概率分布,则单个样本的似然函数为:
p ( x j , Γ j ∣ θ ) = ∏ k = 1 K α k γ j k N ( x j ∣ μ k , Σ k ) γ j k p(x_j,Gamma_{j}|theta)=prod_{k=1}^K alpha_k^{gamma_{jk}} N(x_j|mu_k,Sigma_k)^{gamma_{jk}} p(xj,Γj∣θ)=k=1∏KαkγjkN(xj∣μk,Σk)γjk
则,所有样本点的似然函数为:
p ( x , Γ j ∣ θ ) = ∏ j = 1 N ∏ k = 1 K α k γ j k N ( x j ∣ μ k , σ k ) γ j k p(x,Gamma_{j}|theta)=prod_{j=1}^N prod_{k=1}^K alpha_k^{gamma_{jk}} N(x_j|mu_k,sigma_k)^{gamma_{jk}} p(x,Γj∣θ)=j=1∏Nk=1∏KαkγjkN(xj∣μk,σk)γjk
取对数,则对数似然函数为:
ln p ( x , Γ j ∣ θ ) = ∑ j = 1 N ∑ k = 1 K ( γ j k ln α k + γ j k ln N ( x j ∣ μ k , Σ k ) ) ln p(x,Gamma_{j}|theta)=sum_{j=1}^N sum_{k=1}^K (gamma_{jk} ln alpha_k+gamma_{jk} ln N(x_j|mu_k,Sigma_k)) lnp(x,Γj∣θ)=j=1∑Nk=1∑K(γjklnαk+γjklnN(xj∣μk,Σk))
3、计算各个高斯分布的参数
首先,根据单高斯的向量形式的概率密度函数对 ln N ( x j ∣ μ k , Σ k ) ) ln N(x_j|mu_k,Sigma_k)) lnN(xj∣μk,Σk)) 进行展开:
ln N ( x j ∣ μ k , Σ k ) ) = − D 2 ln ( 2 π ) − 1 2 ln ∣ Σ k ∣ − 1 2 ( x j − μ k ) T Σ k − 1 ( x j − μ k ) ln N(x_j|mu_k,Sigma_k))=-frac{D}{2} ln(2pi) - frac{1}{2} ln | Sigma_k |-frac{1}{2} (x_j-mu_k)^T Sigma_k^{-1}(x_j-mu_k) lnN(xj∣μk,Σk))=−2Dln(2π)−21ln∣Σk∣−21(xj−μk)TΣk−1(xj−μk)
假设隐变量 γ j k gamma_{jk} γjk 的值已知,则对似然函数分别对 α k alpha_k αk 和 Σ k Sigma_k Σk 求偏导,并令偏导为零,则可以得到:
μ k = ∑ j = 1 N ∑ k = 1 K γ j k x j ∑ j = 1 N ∑ k = 1 K γ j k Σ k = ∑ j = 1 N ∑ k = 1 K γ j k ( x j − μ k ) ( x j − μ k ) T ∑ j = 1 N ∑ k = 1 K γ j k begin{aligned} mu_k &=frac{sum_{j=1}^N sum_{k=1}^K gamma_{jk} x_j}{sum_{j=1}^N sum_{k=1}^K gamma_{jk}} \ Sigma_k &= frac{sum_{j=1}^N sum_{k=1}^K gamma_{jk} (x_j-mu_k)(x_j-mu_k)^T}{sum_{j=1}^N sum_{k=1}^K gamma_{jk}} end{aligned} μkΣk=∑j=1N∑k=1Kγjk∑j=1N∑k=1Kγjkxj=∑j=1N∑k=1Kγjk∑j=1N∑k=1Kγjk(xj−μk)(xj−μk)T
因为 γ j k gamma_{jk} γjk 只在 k k k 处取值为 1,其他取值均为 0,因此,上面两式可以简化为:
μ k = ∑ j = 1 N γ j k x j ∑ j = 1 N γ j k Σ k = ∑ j = 1 N γ j k ( x j − μ k ) ( x j − μ k ) T ∑ j = 1 N γ j k begin{aligned} mu_k &=frac{sum_{j=1}^N gamma_{jk} x_j}{sum_{j=1}^N gamma_{jk}} \ Sigma_k &= frac{sum_{j=1}^N gamma_{jk} (x_j-mu_k)(x_j-mu_k)^T}{sum_{j=1}^N gamma_{jk}} end{aligned} μkΣk=∑j=1Nγjk∑j=1Nγjkxj=∑j=1Nγjk∑j=1Nγjk(xj−μk)(xj−μk)T
下面对 α k alpha_k αk 进行求解,因为 ∑ k = 1 K α k = 1 sum_{k=1}^{K}alpha_k=1 ∑k=1Kαk=1,利用拉格朗日乘子法,结合似然函数和约束条件对 α k alpha_k αk 求偏导,有:
α k = ∑ j = 1 N γ j k − λ alpha_k=frac{sum_{j=1}^N gamma_{jk}}{-lambda} αk=−λ∑j=1Nγjk
因为 ∑ k = 1 K α k = 1 sum_{k=1}^{K} alpha_k=1 ∑k=1Kαk=1,所以可以得到:
λ = − N lambda=-N λ=−N
因此,
α k = ∑ j = 1 N γ j k N alpha_k=frac{sum_{j=1}^N gamma_{jk}}{N} αk=N∑j=1Nγjk
4、得到隐变量的估计公式
根据 EM 算法,选择需要根据当前参数的取值求隐变量的期望,即求 E { γ j k ∣ x , θ } E{gamma_{jk}|x,theta} E{γjk∣x,θ}
E { γ j k ∣ x , θ } = P ( γ j k = 1 ∣ x , θ ) = P ( γ j k = 1 , x j ∣ θ ) ∑ k = 1 K P ( γ j k = 1 , x j ∣ θ ) = P ( x j ∣ γ j k = 1 , θ ) P ( γ j k = 1 ∣ θ ) ∑ k = 1 K P ( x j ∣ γ j k = 1 , θ ) P ( γ j k = 1 ∣ θ ) = α k N ( x j ∣ μ k , Σ k ) ∑ k = 1 K α k N ( x j ∣ μ k , Σ k ) begin{aligned} E{gamma_{jk}|x,theta} &= P(gamma_{jk}=1|x,theta) \ &= frac{P(gamma_{jk}=1,x_j|theta)}{sum_{k=1}^{K} P(gamma_{jk}=1,x_j|theta)} \ &= frac{P(x_j|gamma_{jk}=1,theta)P(gamma_{jk}=1|theta)}{sum_{k=1}^{K} P(x_j|gamma_{jk}=1,theta)P(gamma_{jk}=1|theta)} \ &= frac{alpha_k N(x_j|mu_k,Sigma_k)}{sum_{k=1}^{K} alpha_k N(x_j|mu_k,Sigma_k)} end{aligned} E{γjk∣x,θ}=P(γjk=1∣x,θ)=∑k=1KP(γjk=1,xj∣θ)P(γjk=1,xj∣θ)=∑k=1KP(xj∣γjk=1,θ)P(γjk=1∣θ)P(xj∣γjk=1,θ)P(γjk=1∣θ)=∑k=1KαkN(xj∣μk,Σk)αkN(xj∣μk,Σk)
5、根据 EM 算法进行迭代
重复计算直到收敛,常用的收敛条件如 ∥ θ i + 1 − θ i ∥ < ε |theta_{i+1}-theta_{i}|<varepsilon ∥θi+1−θi∥<ε,其中 ε varepsilon ε 是个很小的正数。
2.3 计算过程总结
(1)初始化参数
(2)E step
计算 每个数据 x j x_j xj 来自于子模型 k k k 的概率
γ j k = α k N ( x j ∣ μ k , Σ k ) ∑ k = 1 K α k N ( x j ∣ μ k , Σ k ) , j = 1 , 2 , ⋯ , N ; k = 1 , 2 , ⋯ , K gamma_{jk}=frac{alpha_k N(x_j|mu_k,Sigma_k)}{sum_{k=1}^{K} alpha_k N(x_j|mu_k,Sigma_k)}, j=1,2,cdots,N; k=1,2,cdots,K γjk=∑k=1KαkN(xj∣μk,Σk)αkN(xj∣μk,Σk),j=1,2,⋯,N;k=1,2,⋯,K
(3)M step
计算模型参数
μ k = ∑ j = 1 N γ j k x j ∑ j = 1 N γ j k , k = 1 , 2 , ⋯ , K Σ k = ∑ j = 1 N γ j k ( x j − μ k ) ( x j − μ k ) T ∑ j = 1 N γ j k , k = 1 , 2 , ⋯ , K α k = ∑ j = 1 N γ j k N , k = 1 , 2 , ⋯ , K begin{aligned} mu_k &=frac{sum_{j=1}^N gamma_{jk} x_j}{sum_{j=1}^N gamma_{jk}}, k=1,2,cdots,K \ Sigma_k &= frac{sum_{j=1}^N gamma_{jk} (x_j-mu_k)(x_j-mu_k)^T}{sum_{j=1}^N gamma_{jk}}, k=1,2,cdots,K \ alpha_k&=frac{sum_{j=1}^N gamma_{jk}}{N}, k=1,2,cdots,K end{aligned} μkΣkαk=∑j=1Nγjk∑j=1Nγjkxj,k=1,2,⋯,K=∑j=1Nγjk∑j=1Nγjk(xj−μk)(xj−μk)T,k=1,2,⋯,K=N∑j=1Nγjk,k=1,2,⋯,K
(4)重复 E-step 和 M-step 直到收敛
收敛条件: ∥ θ i + 1 − θ i ∥ < ε |theta_{i+1}-theta_{i}|<varepsilon ∥θi+1−θi∥<ε,其中 ε varepsilon ε 是个很小的正数。
3 GMM 和 K-means 的对比
首先,总结一下这两种方法的基本步骤。
GMM
- 计算每个数据由每个分模型生成的概率
- 根据概率更新每个分模型的参数
- 迭代直到收敛
K-means
- 计算所有数据点和 K K K 个中心点的距离,取距离最近的点为该点所属的类
- 根据上一步的类别更新中心点的位置
- 迭代直到收敛
可以看出,两种方法有很多的 相同点:
- GMM 中数据点由每个分模型生成的概率就相当于 K-means 中距离的计算
- GMM 中根据概率计算高斯模型参数的过程就相当于 K-means 中计算分类点的位置
- 最后两种方法都是通过迭代来达到最优的
两种方法的 不同点 在于:
- GMM 模型给出的是每个数据点由每个分模型生成的概率,而 K-means 给出的是每个数据点属于哪个类别
最后
以上就是勤奋钥匙为你收集整理的十一、高斯混合模型(Gaussian Mixed Model, GMM)1 高斯模型2 高斯混合模型与 EM 算法3 GMM 和 K-means 的对比的全部内容,希望文章能够帮你解决十一、高斯混合模型(Gaussian Mixed Model, GMM)1 高斯模型2 高斯混合模型与 EM 算法3 GMM 和 K-means 的对比所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复