GMM及EM算法

标签(空格分隔): 机器学习


前言:

  • EM(Exception Maximizition) -- 期望最大化算法,用于含有隐变量的概率模型参数的极大似然估计;
  • GMM(Gaussian Mixture Model) -- 高斯混合模型,是一种多个高斯分布混合在一起的模型,主要应用EM算法估计其参数;
  • 本篇博客首先从简单的k-means算法给出EM算法的迭代形式,然后用GMM的求解过程给出EM算法的宏观认识;最后给出EM的标准形式,并分析EM算法为什么收敛。

K-Means Clustering

目标函数(损失函数)

EM过程

  1. 随机初始化样本中心点,即均值\(\mu_{k}\).
  2. E step: 固定均值\(\mu_{k}\),用\(r_{n}k\)最小化目标函数J。
  3. M step: 固定\(r_{n}k\),用\(\mu_{k}\)最小化目标函数J。
  4. 不断迭代,直至收敛。

Gaussian Mixture Model

将高斯混合模型看成是高斯分量的简单线性叠加,目标是提供一类比单独高斯分布更强大的概率模型。

  • 假设有K个高斯分布构成了数据X,则其概率分布为:
    \(p(x) = \sum_{k=1}^{K}\pi_{k}N(x|\mu_{k},\Sigma_{k})\).
    其中,数据点x属于第k个高斯分布的概率为\(\pi_{k}\),则有$0\leq \pi_{k} \leq 1, \sum_{k=1}^{K}\pi_{k} = 1 $
  • x的边缘概率分布为\(p(x) = \sum_{k=1}^{K}\pi_{k}N(x|\mu_{k},\Sigma_{k})\)

对数似然函数为:

\(\ln P(X|\pi,\mu,\Sigma) = \sum_{n=1}^{N}\ln\{\sum_{k=1}^{K}\pi_{k}N(x_{n}|\mu_{k},\Sigma_{k})\}\)
其中,\(N(x_{n}|\mu_{k},\Sigma_{k}) =\frac{1}{(2\pi)^{\frac{D}{2}}|\Sigma|^{\frac{1}{2}}}exp\{-\frac{1}{2}(x_{n}-\mu_{k})^{T}\Sigma_{k}^{-1}(x_{n}-\mu_{k})\}\)

关于\(\mu_{k}\)使对数似然函数最大:

\(\frac{\partial P(X|\pi_{k},\mu_{k},\Sigma_{k})}{\partial\mu_{k}} = \sum_{n=1}^{N}\frac{\pi_{k}N(x_{n}|\mu_{k},\Sigma_{k})(-\frac{1}{2}*2*\Sigma_{k}^{-1}(x_{n}-\mu_{k}))}{\sum_{j}\pi_{j}N(x_{n}|\mu_{j},\Sigma_{j})} \\ = -\sum_{n=1}^{N}\frac{\pi_{k}N(x_{n}|\mu_{k},\Sigma_{k})}{\sum_{j}\pi_{j}N(x_{n}|\mu_{j},\Sigma_{j})}\Sigma_{k}^{-1}(x_{n}-\mu_{k}) = 0\)
两边同时乘以\(\Sigma_{k}\),
记\(\gamma(z_{n}k) = \frac{\pi_{k}N(x_{n}|\mu_{k},\Sigma_{k})}{\sum_{j}\pi_{j}N(x_{n}|\mu_{j},\Sigma_{j})}\)得:

\(\mu_{k} = \frac{1}{\sum_{n=1}^{N}\gamma(z_{n}k)}\sum_{n=1}^{N}\gamma(z_{n}k)·x_{n}\)

关于\(\Sigma_{k}\)使对数似然最大:

\(\Sigma_{k} = \frac{1}{\sum_{n=1}^{N}\gamma(z_{n}k)}\sum_{n=1}^{N}\gamma(z_{n}k)(x_{n}-\mu_{k})(x_{n}-\mu_{k})^{T}\)

关于混合系数\(\pi_{k}\)使对数似然函数最大:

由于所有混合系数的和为1,即满足\(\sum_{k=1}^{K}\pi_{k} = 1\),则原来的最大似然问题变为带约束条件的似然函数最大化,使用Lagrange乘子法
\(max \ln P(X|\pi,\mu,\Sigma) + \lambda(\sum_{n=1}^{N}\pi_{k} - 1)\)
对\(\pi_{k}\)求偏导,令导数为0:
$0 = \sum_{n=1}^{N}\frac{N(x_{n}|\mu_{k},\Sigma_{k})}{\sum_{j}\pi_{j}N(x_{n}|\mu_{j},\Sigma_{j})} + \lambda $

两边同乘\(\pi_{k}\),得
\(0 = \sum_{n=1}^{N}\frac{\pi_{k}N(x_{n}|\mu_{k},\Sigma_{k})}{\sum_{j}\pi_{j}N(x_{n}|\mu_{j},\Sigma_{j})} + \lambda·\pi_{k}\ \ \ \ (*)\)

对k = 1,..,K求和,得:
\(\sum_{n=1}^{N}\sum_{k=1}^{K}\gamma(z_{n}k) + \lambda = 0\),

所以\(\lambda = -N\),代入(*)式,得:
\(\pi_{k} = \frac{\sum_{n=1}^{N}\gamma(z_{n}k)}{N}\)

Exception Maximizition

期望最大化EM算法的标准形式:

  • E-step:来自第j个组份的概率
  • \(x_{j}^{i} = Q_{i}(z_{i} = j) = p(z^{i} = j | x^{i};\Phi, \mu, \Sigma)\)
  • S-step:估计每个组份的参数。
  • \(\sum_{i=1}^{m}\sum_{z^{(i)}}Q_{i}(z^{(i)})log\frac{P(x^{i},z^{i};\Phi,\mu\Sigma)}{Q_{i}(z^{(i)})}\)

EM process:

Initilization:

First, choose some initial values for the means \(\mu\{\mu_{1}, \mu_{2},...,\mu_{K}\}\), covariances \(\Sigma\{\Sigma_{1},\Sigma_{2},...,\Sigma_{K}\}\), and mixing coefficients \(\pi\{\pi_{1},\pi_{2},...,\pi_{K}\}\).

E-Step:

Use the current values for the parameters \(\mu, \Sigma, \pi\) to evaluate the posterior probabilities, or responsibilities \(\gamma(z_{n}k) = \frac{\pi_{k}N(x_{n}|\mu_{k},\Sigma_{k})}{\sum_{j}\pi_{j}N(x_{n}|\mu_{j},\Sigma_{j})}\);

M-step:

Re-estimate the means \(\mu\), covariances \(\Sigma\), and mixing coefficients \(\pi\) using the results:
\(\mu_{k} = \frac{1}{\sum_{n=1}^{N}\gamma(z_{n}k)}\sum_{n=1}^{N}\gamma(z_{n}k)·x_{n}\)

\(\Sigma_{k} = \frac{1}{\sum_{n=1}^{N}\gamma(z_{n}k)}\sum_{n=1}^{N}\gamma(z_{n}k)(x_{n}-\mu_{k})(x_{n}-\mu_{k})^{T}\)

\(\pi_{k} = \frac{\sum_{n=1}^{N}\gamma(z_{n}k)}{N}\)

Evaluate the log likelihood

\(\ln P(X|\pi,\mu,\Sigma) = \sum_{n=1}^{N}\ln\{\sum_{k=1}^{K}\pi_{k}N(x_{n}|\mu_{k},\Sigma_{k})\}\)
and check for convergence of either the parameters or the log likelihood.

隐变量的视角解释GMM

有时模型内既存在观测变量(observable variable),又存在隐变量(latent variable). 当存在隐变量时,直接使用极大似然法或者贝叶斯估计模型参数就比较困难。而EM算法的目标是找到具有潜在变量的模型的最大似然解
图模型:

  • 记所有的观测数据的集合为\(X = {x_{1}, x_{2}, ..., x_{n}}\), 所有隐变量的集合为\(Z = {z_{1}, z_{2}, ..., z_{k}}\),模型所有参数的集合为\(\theta\).
    则对数似然函数为:
    \(\ln p(X|\theta) = \ln\{\sum_{z} p(X, Z|\theta) \}\);
  • 但是由于对数似然内部存在求和符号,所以一般情况下边缘概率分布\(p(X|\theta)\)一定不是指数族函数,从而使得对数似然的形式变复杂了;
  • 将\(\{X, Z\}\)数据集称为完全(complete)数据集,称实际观测数据集\(\{X\}\)为不完全(incomplete)数据集.一般我们所拥有的数据集只有不完全数据集。
  • E-step: 使用当前的参数\(\theta^{old}\)计算隐变量的后验概率\(p(Z|Z, \theta^{old})\),然后计算完全数据(X,Z)对数似然对于参数值\(\theta\)的期望:
    \(Q(\theta, \theta^{old}) = \sum_{z}p(Z|X,\theta^{old})\ln p(X, Z|\theta)\);
  • M-step: 通过最大化Q函数更新模型参数\(\theta\):
    \(\theta^{new} = argmax_{\theta}Q(\theta, \theta^{old})\)

### 引入隐变量z
用1-of-K的形式表示K维的二元随机变量z,\(z_{k} \in \{0, 1\} 并且 \sum_{k=1}^{K} = 1\),则\(p(z_{k} = 1) = \pi_{k}\),

  • z的概率分布可以表示为:\(p(z) = \Pi_{k=1}^{K}\pi_{k}^{z_{k}}\);
  • 在给定隐变量z的条件下x的条件概率分布为:\(p(x|z) = \Pi_{k=1}^{K}N(x|\mu_{k}, \Sigma_{k})^{z_{k}}\)
  • 完全数据(X,Z)的似然函数为:\(p(X,Z|\pi,\mu,\Sigma) = P(X|Z,\pi,\mu,\Sigma)·P(Z|\pi,\mu,\Sigma)\\ = \Pi_{n=1}^{N}\Pi_{k=1}^{K}\pi_{k}^{z_{n}k}N(x_{n}|\mu_{k},\Sigma_{k})^{z_{n}k}\)
  • 完全数据(X,Z)取对数,得到对数似然:
    \(\ln P(X,Z|\pi,\mu,\Sigma) = \sum_{n=1}^{N}\sum_{k=1}^{K}z_{nk}(\ln\pi_{k} + \ln N(x_{n}|\mu_{k}, \Sigma_{k})) \ \ \ \ \ (1)\)
  • 不完全数据(X)的对数似然为:
    \(\ln P(X|\pi,\mu,\Sigma) = \sum_{n=1}^{N}\ln\{\sum_{k=1}^{K}\pi_{k}N(x_{n}|\mu_{k},\Sigma_{k})\} \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (2)\)

    对比完全数据的对数似然函数(1)式和不完全数据的对数似然(2)式,可以发现,对于(1)式,log运算放到了里面,而高斯分布是指数族函数,所以大大简化了计算量。

  • 计算隐变量z的条件概率:\(p(Z|X,\pi,\mu,\Sigma) = \frac{p(Z,X|\pi,\mu,\Sigma)}{p(X|\pi,\mu,\Sigma)} \\ = \Pi_{n=1}^{N}\Pi_{k=1}^{K}[\pi_{k}N(x_{n}|\mu_{k},\Sigma_{k})]^{z_{n}k}\)
  • 对\(z_{n}k\)求期望:

Exception Maximizition Algorithm

Input: Observed variables X, latent variables Z, parameters \(\theta\), and joint distribution \(p(X,Z|\theta)\).
Goal: maxizimize the likelihood function \(p(X|\theta)\).
Output: parameters \(\theta\).

  1. Choose an initial setting for the parameters \(\theta^{old}\).
  2. E step Calculate \(Q(\theta, \theta^{old}) = \sum_{z}p(Z|X,\theta^{old})\ln p(X,Z|\theta)\).
  3. M step Evaluate \(\theta^{new}\) given by \(\theta^{new} = argmax_{\theta}Q(\theta, \theta^{old})\).
  4. Check for convergence of either the log likelihood or the parameter values.

GMM与K-Means的关系

K-Means对数据点进行了硬分配,即每个数据点只属于唯一的聚类;
而GMM应用EM算法,进行了软分配。

  • 考虑一个GMM,设所有混合分量的协方差矩阵为\(\epsilon I\),则
    \(p(x|\mu_{k},\Sigma_{k}) = \frac{1}{(2\pi\epsilon)^{\frac{D}{2}}}exp\{-\frac{1}{2\epsilon}||x - \mu_{k}||^{2} \}\)
  • 一个数据点属于一个分量的responsibility为:
  • 当\(\epsilon \to 0\), 分子分母中只有当某项\(||x_{n} - \mu_{j}||^{2} \to 0\)时,整个式子的极限才存在。因此在这种极限情况下,GMM会将一个数据点分配给距它最近的那个中心点所在的簇类中。
  • 当\(\epsilon \to 0\),完全数据的对数似然函数为:
  • 这就退化为K-means的损失函数(目标函数)。

因此,K-means没有估计聚类的协方差,只是估计了聚类的均值。当GMM的方差取极限时,就退化成了k-means算法。
K-means是GMM的方差取为0的极限情况。

Exception Maximizition

期望最大化EM算法的标准形式:

  • E-step:来自第j个组份的概率
  • \(x_{j}^{i} = Q_{i}(z_{i} = j) = p(z^{i} = j | x^{i};\Phi, \mu, \Sigma)\)
  • S-step:估计每个组份的参数。
  • \(\sum_{i=1}^{m}\sum_{z^{(i)}}Q_{i}(z^{(i)})log\frac{P(x^{i},z^{i};\Phi,\mu\Sigma)}{Q_{i}(z^{(i)})}\)

为什么EM算法是可以收敛的

EM算法,是寻找具有潜在变量的概率模型的最大似然解的一种通用的方法.所以,在含有隐变量z的情况下,我们的目标是:最大化似然函数:
\(p(X|\theta) = \sum_{z}p(X, Z|\theta)\)

  • 直接优化\(p(X|\theta)\)是困难的,但是优化完整数据的似然\(p(X, Z|\theta)\)就容易的多。

所以,我们引入隐变量的分布\(q(z)\),将似然函数取对数,总能化简成如下形式:

因为KL散度总是大于等于0,所以\(L(q,\theta)\)可以看做是对数似然的下界。因此EM算法的思想就是:找到似然函数的一个下界,用这个简单的下界来逼近最终的对数似然。

  • E step: 保持\(\theta\)固定,\(L(q,\theta^{old})\)关于q(z)的最大化。实际是求对z的期望。如下图所示,期望为:当\(KL(q||p) = 0\)(即p = q)时,\(L(q,\theta^{old})\)与对数似然相等。

  • M step: 保持\(q(z)\)固定,更新参数\(\theta\),使得\(L(q,\theta^{old})\)关于\(\theta\)求最大值。对每个参数求偏导,然后令偏导为0. 由于\(KL(q||p) > 0\), 因此\(\ln p(X|\theta)\)增加量一定大于其下界\(L(q,\theta)\)的增大量。

  • 通过E step 和 M step不断迭代的过程,如果目标不完全数据的对数似然\(\ln p(X|\theta)\)存在最大值,则EM算法一定能够找到。
  • EM算法对参数初值的选择是敏感的,不同的参数往往会收敛到不同的结果。因此在实际应用中,应该设置几组参数,然后选择一组最好的结果。

关于EM算法导出的几点说明

  • 在[李航,2012]中,使用\(\ln(\theta) - \in(\theta^{old})\)推导出似然函数的下界。然后每次迭代用下界逼近似然的极大值;
  • 在PRML中,将完全数据的似然函数\(L(Z,X|\theta)\)拆分为 下界 + \(KL(q||p)\)的形式,依然是使用下界逼近目标函数的极大值。

[参考文献]

1 M. Jordan, J. Kleinberg, ect. Pattern Recognition and Machine Learning. 2006
2 李航,统计学习方法,清华大学出版社,2012.

GMM及EM算法的更多相关文章

  1. 高斯混合模型GMM与EM算法的Python实现

    GMM与EM算法的Python实现 高斯混合模型(GMM)是一种常用的聚类模型,通常我们利用最大期望算法(EM)对高斯混合模型中的参数进行估计. 1. 高斯混合模型(Gaussian Mixture ...

  2. 【机器学习】GMM和EM算法

    机器学习算法-GMM和EM算法 目录 机器学习算法-GMM和EM算法 1. GMM模型 2. GMM模型参数求解 2.1 参数的求解 2.2 参数和的求解 3. GMM算法的实现 3.1 gmm类的定 ...

  3. GMM的EM算法实现

    转自:http://blog.csdn.net/abcjennifer/article/details/8198352 在聚类算法K-Means, K-Medoids, GMM, Spectral c ...

  4. [转载]GMM的EM算法实现

    在聚类算法K-Means, K-Medoids, GMM, Spectral clustering,Ncut一文中我们给出了GMM算法的基本模型与似然函数,在EM算法原理中对EM算法的实现与收敛性证明 ...

  5. GMM的EM算法

    在聚类算法K-Means, K-Medoids, GMM, Spectral clustering,Ncut一文中我们给出了GMM算法的基本模型与似然函数,在EM算法原理中对EM算法的实现与收敛性证明 ...

  6. GMM与EM算法

    用EM算法估计GMM模型参数 参考  西瓜书 再看下算法流程

  7. 5. EM算法-高斯混合模型GMM+Lasso

    1. EM算法-数学基础 2. EM算法-原理详解 3. EM算法-高斯混合模型GMM 4. EM算法-GMM代码实现 5. EM算法-高斯混合模型+Lasso 1. 前言 前面几篇博文对EM算法和G ...

  8. 4. EM算法-高斯混合模型GMM详细代码实现

    1. EM算法-数学基础 2. EM算法-原理详解 3. EM算法-高斯混合模型GMM 4. EM算法-高斯混合模型GMM详细代码实现 5. EM算法-高斯混合模型GMM+Lasso 1. 前言 EM ...

  9. 3. EM算法-高斯混合模型GMM

    1. EM算法-数学基础 2. EM算法-原理详解 3. EM算法-高斯混合模型GMM 4. EM算法-高斯混合模型GMM详细代码实现 5. EM算法-高斯混合模型GMM+Lasso 1. 前言 GM ...

随机推荐

  1. java web sql注入测试(1)---概念概述

    在进行java web 测试时,经常会忽略的测试种类就是sql注入测试,这类缺陷造成的原因是开发技术在这方面欠缺的表现,虽然不常见,但一旦有这类缺陷,就很因此对运营的数据造成很多不必要的损失,所以,还 ...

  2. 《zw版·delphi与halcon系列原创教程》zw版_THOperatorSetX控件函数列表 v11中文增强版

    <zw版·delphi与halcon系列原创教程>zw版_THOperatorSetX控件函数列表v11中文增强版 Halcon虽然庞大,光HALCONXLib_TLB.pas文件,源码就 ...

  3. SQL SERVER 2008 R2配置管理器出现“远程过程调用失败”【0x800706be】的解决办法

    以前SQL Server 2008 不能登陆的时候,总是通过“计算机管理”→“SQL Server服务”更改一下,"SQL Server(MSSQLSERVER)".可是现在出现的 ...

  4. 天天模拟器 和 Genymotion 设置代理

    之前以为是10.0.3.1或者本机IP,尝试几次都不行,百度之,得到答案,原来genymotion里面网关的IP是10.0.3.2 所以,代理IP要设置为:10.0.3.2

  5. 形状特征提取-Hu不变矩(转载)

    [原文部分转载]:http://blog.csdn.net/wrj19860202/archive/2011/04/16/6327094.aspx 在连续情况下,图像函数为 ,那么图像的p+q阶几何矩 ...

  6. android 项目学习随笔十(自定义ProgressBar)

    android:innerRadius 内部半径 android:thickness 厚度 gradient 渐变 android:useLevel="false" 取掉控件自带旋 ...

  7. #import vs. @class

    You #import or #include when there is a physical dependency. Otherwise, you use forward declarations ...

  8. 【jQuery UI 1.8 The User Interface Library for jQuery】.学习笔记.4.Tabs控件

    之前,我们已经介绍了 jQuery UI 库,CSS 框架.下面,我们将学习这些有增强可视化效果,高度可配置的用户交互组件. Tab 的特性是,点击 tab 后,会高亮该 tab,并显示他的关联con ...

  9. 安装keepalived

    主机名  网络IP                     VIPnode1 192.168.2.161     192.168.2.165node2 192.168.2.162 [root@node ...

  10. Hive报错之java.lang.NoClassDefFoundError: org/codehaus/jackson/JsonFactory

    一.问题: 在使用Hive0.11进行select查询的时候报: hive,),site from zhifu; Total MapReduce jobs Launching Job out In o ...