当前位置:首页 >> 数学 >>

高斯混合和EM算法


高斯混合和 EM 算法

首先介绍高斯混合模型: 高斯混合模型是指具有以下形式的概率分布模型:

一般其他分布的混合模型用相应的概率密度代替(1)式中的高斯分布密度即可。

给定训练集

,我们希望构建该数据联合分布

这里 是概率 表示 可能的取值。 ,并且

,其中 ,用

因此,我们构建的模型就是假设 中随机选择出来的,那么 一个高斯混合模型

是由 就服从

生成,而

是从

个依赖于

的高斯分布中的一个。这就是

是潜在随机变量,即它是隐藏的或者观察不到的,这将使得估计问题变得棘手。

上面公式太多, 作一个总结, 总体意思是 正态分布) , 这个 关于

关于

的条件分布符合高斯分布 (即 服从多项式分布, 于是

是潜在变量, 它的值未知, 但是

的条件分布就是高斯混合模型,而

是一个潜在变量,值不确定,进而导

致高斯混合模型的概率估计也变得棘手。 可以看出,我们构建的高斯混合模型参数有 出参数的似然函数: 和 ,为了估计出这些参数,写

变量

意味着每一个

来自于

个高斯分布中的哪一个,如果我们知道变量

的值,最大化似然函数问题将变得容易,似然函数将会变成如下形式:

那么参数的最大似然估计可以计算出:

可以看出,当

已知的时候,最大似然函数的的估计与前面讨论过的高斯判别分析 替代了高斯

模型(关于高斯判别模型参见生成式学习算法)几乎一样,除了这里 判别模型中类别标签的角色。

但是在这个问题中

是未知的,该怎么办?就得运用 EM 算法。在应用到我们的这个 的值,在 M 步骤中,根据

问题中,EM 算法分两步,在 E 步骤中,算法试图猜测出

E 步骤猜测的值更新参数。需要注意的是在 M 步骤中假定 E 步骤中的猜测是正确的,算 法流程如下: E-step: 对于每一个 ,令:

M-step: 更新参数:

重复上面两步直至收敛(参数不再发生明显变化) 在 E-step 中计算 关于 的后验概率时,参数 和 用的都是当前的

值,第一步时可以随机初始化,用贝叶斯公式,我们可以得到:

分子上的 在 处的概率密度给出, 给出. 在 E-step 中对

是由均值为 由参数

, 方差为

的高斯分布

的猜测只是猜测它是某个值得概率, 被称作 “软猜测” ,

与之对应的“硬猜测”就是一个最好的猜测,即不是 0 就是 1. 和上面我们在推导 已知时,参数估计的公式相比,EM 算法中的参数更新仅仅是用

代替了

.

EM 算法和 k-means 算法(参考我的博文 K-means 聚类算法原理和 C++实现)很类似,除 了 k-means 是一个“硬” 类别分配(为每个样本选择一个确定的类别),而这里是以

概率

的“软”分配(就是

取某个值的概率)。同 k-means 一样,EM 算法也

容易陷入局部最优,所以多次运行,每次都将参数初始化为不同的值将会是一个很好的 解决办法。

EM 算法就是不断重复猜测

的值,但是到底是如何进行的呢,如何保证收敛性呢,

在下一篇博文将继续讨论,从而使得 EM 算法能够更加容易应用到各种存在潜在变量的 参数估计问题中,而且将讨论如何保证算法收敛。


赞助商链接
相关文章:
EM算法--应用到三个模型: 高斯混合模型 ,混合朴素贝叶...
EM 算法--应用到三个模型: 高斯混合模型 ,混合朴素贝叶斯模型,因子分析模型 判别模型求的是条件概率 p(y|x), 生成模型求的是联合概率 p(x,y) 经网络等。 ...
更多相关标签: