EM聚类算法(一)

混合高斯和EM算法
针对于密度估计,这里我们讨论EM(Expectation-Maximization)算法。
通常我们会给定一个训练集 {x(1),...,x(m)} 。因为要处理非监督问题,所以这些点没有给出所属类别。
我们通过联合分布 p(x(i),z(i))=p(x(i)|z(i))p(z(i)) 模型化这些数据。这里 z(i) ~ B(ϕ) ( ϕj0 , Σkj=1ϕj=1 ,参数 ϕj 代表p(z^{(i)}=j))并且 x(i)|z(i)=j ~ N(μj,Σj) ,k代表z^{(i)}可以等于的值的个数。因此,我们的模型假设每个 x(i) 是由随机的选择 z(i) 为某个随机的值产生的, x(i) 是由K重高斯分布得到的,其中高斯分布取决于 z(i) ,这就是所谓的混合高斯模型
模型的参数为 ϕ,μΣ ,为了估计他们,我们可以写出似然函数为:
EM聚类算法(一)_第1张图片
如果我们对这个函数每个参数求导等于0,我们将会发现无法解决这个问题。
特别的我们可以把似然函数写成:
这里写图片描述
最大化这个方程通过给定的参数 ϕ,μΣ :
EM聚类算法(一)_第2张图片
如果, z(i) 已经知道,这个最大似然估计就和我们所熟知的高斯判别分析模型相同,这里 z(i) 就是所属的类别。
在我们的密度估计问题中, z(i) 是实现不知道的那我们该怎么办?
EM算法是一种迭代算法,其主要有两个步骤。应用到我们的问题上,E-step,主要是试图”猜测” z(i) 的值。在M-step中,我们通过我们的猜测的值来更新我们模型的参数,因为在M-step中我们假定在第一步的估计是正确的,所以最大化变得容易了。算法表示为:
重复直到收敛:
{
(E-step)对于每个i,j使得:
w(i)j:=p(z(i)=j|x(i);ϕ.μ,Σ)
(M-step)更新参数
EM聚类算法(一)_第3张图片
}
在E-step中,我们通过贝叶斯法则来计算:
这里写图片描述
这里 p(x(i)|z(i)=j;μ,Σ) 是由均值为 μj 协方差为 Σj 关于 x(i) 的高斯分布计算得到的; p(z(i)=j;ϕ) 是由 ϕj 得到的。这里的 w(i)j 代表着我们对 z(i) 的软猜测—— w(i)j[0,1]
下面的问题就是如何保证收敛呢?

你可能感兴趣的:(机器学习)