参考自:
高斯混合模型(GMM)
定义:
高斯混合模型可以看作是由 K 个单高斯模型组合而成的模型,这 K 个子模型是混合模型的隐变量(Hidden variable)**。一般来说,一个混合模型可以使用任何概率分布,这里使用高斯混合模型是因为高斯分布具备很好的数学性质以及良好的计算性能。
首先定义如下信息:
高斯混合模型的概率分布为:
对于这个模型而言,参数 θ = ( μ k ~ , σ k ~ , α k ~ ) \theta=(\tilde{\mu_k}, \tilde{\sigma_k}, \tilde{\alpha_k}) θ=(μk~,σk~,αk~),也就是每个子模型的期望、方差(或协方差)、在混合模型中发生的概率。
总结:每一个data x总是由K个高斯分布得到的。而这K个高斯分布即所谓hidden variable
Bayesian 理解
GMM原始形式:
前面提到的
π
k
\pi_k
πk 可以看成是第 k 类被选中的概率。我们引入一个新的 K 维随机变量 z .
z
k
(
1
≤
k
≤
K
)
z_k (1 \leq k \leq K)
zk(1≤k≤K) 只能取0或1两个值;
z
k
=
1
z_k = 1
zk=1 表示第 k 类被选中的概率,即
p
(
z
k
=
1
)
=
π
k
p(z_k = 1) = \pi_k
p(zk=1)=πk ;如果
z
k
=
0
z_k = 0
zk=0 表示第 k 类没有被选中的概率。更数学化一点,
z
k
z_k
zk 要满足以下两个条件:
假设
z
k
z_k
zk 之间是独立同分布的,我们可以写出
z
\boldsymbol{z}
z 的联合概率分布形式:
而K维向量z中的每一个分量都是对应一个高斯分布,因此:
上式可以理解为:在"已知"latent variable 隐含变量z的情况下,数据点x产生的概率
隐含变量(latent variable)中『隐含』的意义是:我们知道数据可以分成几类,但是随机抽取一个数据点,我们不知道这个数据点属于其中哪一类或者哪几类,它的归属我们观察不到,因此引入一个隐含变量
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) :
上式中我们定义符号 γ ( z k ) \gamma(z_k) γ(zk) 来表示第 k 个分量的后验概率。在贝叶斯的观点下, π k \pi_k πk 可视为 z k = 1 z_k=1 zk=1 的先验概率。
参数学习:
用最大似然法(Maximum Likelihood)
如何计算高斯混合模型的参数呢?这里我们无法像单高斯模型那样使用最大似然法来求导求得使 likelihood 最大的参数,因为对于每个观测数据点来说,事先并不知道它是属于哪个子分布的(hidden variable),因此 log 里面还有求和, K 个高斯模型的和不是一个高斯模型,对于每个子模型都有未知的 α k , μ k , σ k \alpha_{k}, \mu_{k}, \sigma_{k} αk,μk,σk,直接求导无法计算。需要通过迭代的方法求解。
EM算法
可参考: