Mixtures of Gaussians模型学习了一个联合分布
P(x(i),z(i))
P(x(i),z(i))=P(x(i)∣z(i))P(z(i)),x(i)∈Rn
【参数定义】
z(i)∼Multinomial(ϕ)
,
ϕ=[ϕ1ϕ2⋯ϕk]
x(i)∣z(i)=j∼N(μj,Σj)
,
μ=[μ1μ2⋯μk]
是一个
k×n
的矩阵,
Σ=[Σ1Σ2⋯Σk]
是一个
k×n×n
的Tensor
所有参数包括:
k
维向量
ϕ
,
k
组
{μj,Σj}kj=1
【样本生成过程】
第
i
个样本
x(i)
的产生过程
掷参数为
ϕ
的
k
面骰子,为样本
x(i)
选择隐变量
z(i)
,对应概率
P(z(i))
,假设最终投掷的结果为
z(i)=3
由多元高斯分布
N(μ3,Σ3)
中采样出
x(i)
,对应概率
P(x(i)∣z(i))
因为多了隐变量
z(i)
,而无法使用最大似然估计对求解参数
【EM算法】
E-Step:固定参数
ϕ
,
μ
,
Σ
,计算每个样本分配到
k
个类别的概率
P(z(i)∣x(i))
,这里涉及到贝叶斯公式,推导如下
P(z∣x)=P(x∣z)P(z)P(x)=P(x∣z)P(z)∑zP(x,z)=P(x∣z)P(z)∑zP(x∣z)P(z)
w(i)j=P(z(i)=j∣x(i);ϕ,μ,Σ)=P(x(i)∣z(i)=j;μ,Σ)P(z(i)=j;ϕ)∑l=1kP(x(i)∣z(i)=l;μ,Σ)P(z(i)=l;ϕ)
w(i)=[w(i)1w(i)2⋯w(i)k]
称为对
z(i)
的“soft guess”
M-Step:由隐变量
z(i)
的“soft guess”
w(i)
,使用最大似然估计求解参数
ϕ
,
μ
,
Σ
ϕj=1m∑i=1mw(i)j
μj=∑i=1mw(i)jx(i)∑i=1mw(i)j
(和K-means中的更新cluster中心非常类似,只不过是带权重的)
Σj=∑i=1mw(i)j(x(i)−μj)(x(i)−μj)T∑i=1mw(i)j
高斯混合模型学习完
P(z)
和
P(x|z)
之后,可以将样本分配到某个类别
z
P(z|x)∝P(z)P(x|z)
由此可知,高斯混合模型也是一种聚类方法
【EM算法和K-means的关系】
相同点:每一轮迭代中都包含了2步,在EM算法中,分别是隐变量的“soft guess”和参数的最大化似然,在K-means算法中,分别是分配cluster和更新cluster中心,并且二者都易受局部最小值的影响,因此需要尝试不同的初始化方式
不同点:EM算法估计隐变量是“soft guess”,K-means分配cluster是“hard guess”
【Mixtures of Gaussians与高斯判别分析】
高斯判别分析建模
P(x|y=0)
和
P(x|y=1)
,而高斯混合模型建模的是
P(x|z)
,使用一个随机变量
z
替换了
y
如果
z
是已知的,那么高斯混合模型就相当于高斯判别分析
但现在
z
是不知道的,这就需要使用EM算法了