K-means算法与GMM和EM之间的关系

EM算法的流程:

  1. 随机初始化未知参数,初始化值记为 θ o l d \theta^{old} θold
  2. E-STEP:
    • 求隐变量 z z z的后验: p ( z ∣ x ; θ o l d ) = p ( z , x ; θ o l d ) ∫ p ( z , x ; θ o l d ) d z p(z|x;\theta^{old}) = {p(z,x;\theta^{old}) \over \int p(z,x;\theta^{old})dz} p(zx;θold)=p(z,x;θold)dzp(z,x;θold)
    • 求完全数据 ( x , z ) (x,z) (x,z)的对数似然关于 z z z的后验的期望: E p ( z ∣ x ; θ o l d ) [ l o g p ( x , z ; θ ) ] E_{p(z|x;\theta^{old})}[logp(x,z;\theta)] Ep(zx;θold)[logp(x,z;θ)]
  3. M-STEP:
    最大化期望: E p ( z ∣ x ; θ o l d ) [ l o g p ( x , z ; θ ) ] E_{p(z|x;\theta^{old})}[logp(x,z;\theta)] Ep(zx;θold)[logp(x,z;θ)],也就是 θ ^ = a r g m a x θ E p ( z ∣ x ; θ o l d ) [ l o g p ( x , z ; θ ) ] \hat{\theta}=argmax_{\theta} E_{p(z|x;\theta^{old})}[logp(x,z;\theta)] θ^=argmaxθEp(zx;θold)[logp(x,z;θ)]
    θ o l d = θ ^ \theta^{old} = \hat{\theta} θold=θ^,并开启下一轮迭代。

用EM算法求解GMM算法的流程:在这里插入图片描述
其中, π k \pi_{k} πk是第k个高斯的先验,一般 π k = 1 K \pi_{k}={1 \over K} πk=K1
γ i , k = p ( z ∣ x i ; θ o l d ) = π k N ( x i ; μ k , Σ k ) Σ j K π j N ( x i ; μ j , Σ j ) (1) \tag{1} \gamma_{i,k}=p(z|x_i;\theta^{old})={\pi_{k}N(x_i;\mu_{k}, \Sigma_{k}) \over \Sigma_{j}^{K}\pi_{j}N(x_i;\mu_{j}, \Sigma_{j})} γi,k=p(zxi;θold)=ΣjKπjN(xi;μj,Σj)πkN(xi;μk,Σk)(1)
是后验分布。
在这里插入图片描述

我们令 Σ k = ϵ \Sigma_{k}=\epsilon Σk=ϵ,考虑GMM中 ϵ 趋 近 于 0 的 情 况 \epsilon 趋近于0的情况 ϵ0(这时其实变成了狄拉克分布,狄拉克分布是高斯分布在协方差趋于0的一种特殊情况)。

在E-step中
(1)式变成:

γ i , k = π k N ( x i ; μ k , Σ k ) Σ j K π j N ( x i ; μ j , Σ j ) = π k e x p ( − 1 2 ϵ ( x i − μ k ) 2 ) ∑ j K π j e x p ( − 1 2 ϵ ( x i − μ j ) 2 ) (2) \begin{aligned} \tag{2} \gamma_{i,k}= & {\pi_{k}N(x_i;\mu_{k}, \Sigma_{k}) \over \Sigma_{j}^{K}\pi_{j}N(x_i;\mu_{j}, \Sigma_{j})} \\ = & {\pi_{k}exp(-{1 \over 2\epsilon}(x_{i}-\mu_{k})^{2}) \over \sum_{j}^{K} \pi_{j}exp(-{1 \over 2\epsilon}(x_{i}-\mu_{j})^{2})} \end{aligned} γi,k==ΣjKπjN(xi;μj,Σj)πkN(xi;μk,Σk)jKπjexp(2ϵ1(xiμj)2)πkexp(2ϵ1(xiμk)2)(2)

假设 x i x_{i} xi距离 μ k \mu_{k} μk最近,也就是 ( x i − μ k ) 2 (x_i-\mu_k)^{2} (xiμk)2最小。根据类内距最小,类间距最大的原则,在分母中, ( x i − μ j ) 2 , j ≠ k (x_{i}-\mu_{j})^{2},j \neq k (xiμj)2j=k都比 ( x i − μ k ) 2 (x_i-\mu_k)^{2} (xiμk)2要大的多。根据指数函数的单调性可知,其他项都趋于0。根据求极限的法则,在 ϵ → 0 时 , ( x i − μ k ) 2 最 小 , 等 价 于 γ i , k → 1 \epsilon \to0时,(x_i-\mu_{k})^2最小,等价于\gamma_{i,k} \to1 ϵ0(xiμk)2γi,k1。这种情况下,相当于每个样本获得了一个硬分配,和k-means一样。

M-step中
E p ( z ∣ x ; θ ) [ l o g p ( x i , z ; θ ) ] = ∑ k K ∑ i n γ i , k [ l n π k + l n N ( x i ; μ k , Σ k ) ] (3) \begin{aligned} \tag{3} E_{p(z|x;\theta)}[logp(x_i,z;\theta)]= & \sum_{k}^{K}\sum_{i}^{n} \gamma_{i,k}[ln\pi_{k}+lnN(x_i;\mu_{k}, \Sigma_{k})]\\ \end{aligned} Ep(zx;θ)[logp(xi,z;θ)]=kKinγi,k[lnπk+lnN(xi;μk,Σk)](3)

ϵ → 0 \epsilon \to 0 ϵ0时,(3)式变成:
E p ( z ∣ x i ; θ ) [ l o g p ( x , z ; θ ) ] = ∑ k K ∑ i n γ i , k [ l n π k + l n N ( x i ; μ k , Σ k ) ] = ∑ k K ∑ i n γ i , k l n π k + + ∑ k K ∑ i n γ i , k l n 1 2 π ϵ − 1 2 ϵ ∑ k K ∑ i n γ i , k ( x i − μ k ) 2 = c o n s t + 1 ϵ ∑ k K [ ∑ i n γ i , k ( l n 1 2 π − ( x i − μ k ) 2 ) ] s (4) \begin{aligned} \tag{4} E_{p(z|x_i;\theta)}[logp(x,z;\theta)]= & \sum_{k}^{K}\sum_{i}^{n} \gamma_{i,k}[ln\pi_{k}+lnN(x_i;\mu_{k}, \Sigma_{k})]\\ = & \sum_{k}^{K}\sum_{i}^{n}\gamma_{i,k}ln\pi_{k + } + \sum_{k}^{K}\sum_{i}^{n}\gamma_{i,k}ln{1 \over \sqrt{2\pi \epsilon}} -{1\over 2\epsilon} \sum_{k}^{K}\sum_{i}^{n}\gamma_{i,k}(x_i-\mu_k)^2\\ = & const + {1 \over \epsilon} \sum_{k}^{K}[\sum_{i}^{n}\gamma_{i,k} (ln{1 \over \sqrt{2\pi}}-(x_i-\mu_k)^2)] \end{aligned}s Ep(zxi;θ)[logp(x,z;θ)]===kKinγi,k[lnπk+lnN(xi;μk,Σk)]kKinγi,klnπk++kKinγi,kln2πϵ 12ϵ1kKinγi,k(xiμk)2const+ϵ1kK[inγi,k(ln2π 1(xiμk)2)]s(4)
在M-step中,只有 μ k \mu_k μk是未知的,其他都是已知的,所以只需要让 μ k \mu_k μk使得上式最大即可。也就是 ∑ k K [ ∑ i n γ i , k ( l n 1 2 π − ( x i − μ k ) 2 ) ] \sum_{k}^{K}[\sum_{i}^{n}\gamma_{i,k} (ln{1 \over \sqrt{2\pi}}-(x_i-\mu_k)^2)] kK[inγi,k(ln2π 1(xiμk)2)]最大。通过对 μ k \mu_k μk求导得: μ k = ∑ i n γ i , k x i ∑ i n γ i , k \mu_k={\sum_i^{n}\gamma_{i,k}x_i \over \sum_{i}^n\gamma_{i,k}} μk=inγi,kinγi,kxi

从此可知,K-Means算法其实是GMM的EM解法在高斯分量协方差 Σ → 0 \Sigma \to 0 Σ0时的一个特例。

参考:https://blog.csdn.net/tingyue_/article/details/70739671

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值