GMM

一维单高斯模型SGM###

分布概率密度函数PDF定义如下:

N(x;μ,σ)=12πσexp((xμ)22σ2)N(x;\mu,\sigma) = \frac {1}{\sqrt {2\pi} \sigma}exp(-\frac {(x-\mu)^2}{2\sigma^2})

多维单高斯模型SGM###

分布概率密度函数PDF定义如下:

N(x;μ,Σ)=1(2π)DΣexp(12(xμ)TΣ1(xμ))N(x;\mu,\Sigma) = \frac {1}{\sqrt {(2\pi)^D|\Sigma|}} exp(-\frac {1}{2}(x-\mu)^T \Sigma^{-1} (x-\mu))

注:μk\mu_k各类均值,Σk\Sigma_k各类协方差矩阵,D是维度

注意得满足下面3个条件,才等价于N维随机向量服从多维正太分布

  • 任何线性组合Y=α1x1++αnxnY = \alpha_1x_1+ \ldots +\alpha_n x_n服从正太分布

  • 存在随机

    参考wiki

几何理解: 二维的SGM在平面上近似椭圆形,在三维空间中近似椭球体。

混合高斯模型###

由K个 Gaussian Model(多维)线性组合在一起就是GMM的概率密度函数:

p(x)=k=1Kp(Zk=1)p(xZk=1)=k=1KπkN(xμk,Σk)k=1Kπk=1Z为K维向量,满足Zk0,1一个样本不能由多个类别混合组成吗?EM中没这样要求。p(x) = \sum_{k=1}^K p(Z_k=1)p(x|Z_k=1) = \sum_{k=1}^K \pi_k N(x|\mu_k,\Sigma_k) \\ \sum_{k=1}^K \pi_k = 1 \\ Z\text{为K维向量,满足} Z_k \in {0,1} \\ \text{一个样本不能由多个类别混合组成吗?EM中没这样要求。}

求解

每个样本所属分类已知####

设样本容量为N,属于第K个分类的样本数量为NkN_k,则

πk=NkNμk=1NkxL(k)xΣk=1NkxL(k)(xμk)T(xμk)\pi_k = \frac {N_k}{N} \\ \mu_k = \frac {1}{N_k} \sum_{x \in L(k)}x \\ \Sigma_k = \frac {1}{N_k} \sum_{x \in L(k)}(x-\mu_k)^T(x-\mu_k)

所有样本所属分类已知,则跟EM算法没有关系。但是部分样本已知分类,如何半监督的学习,或者初始化EM的参数?

样本分类数未知####

对整体数据求对数极大似然:

f(x)=i=1Nlogk=1KπkN(xμk,Σk)f(x) = \sum_{i=1}^N \log \sum_{k=1}^K \pi_k N(x|\mu_k,\Sigma_k)
  • 初始化参数:初始化每个Gaussian Models 都是标准正太分布。

  • E步:依据当前模型的参数,计算分模型k对观测数据xix_i的相应度。 或者说每个样本由第k个component生成的概率,即类别k在给定的x下的条件概率,利用bayesian公式得:

γ(i,k)=p(z=kxi;μ,Σ)=πkN(xiμk,Σk)k=1KπkN(xiμk,Σk)γ(i,k)是在当前模型参数下等i个观测数据来自第k个分模型的概率\gamma(i,k) = p(z=k|x_i;\mu,\Sigma) = \frac {\pi_k N(x_i|\mu_k,\Sigma_k)}{\sum_{k=1}^K \pi_k N(x_i|\mu_k,\Sigma_k)} \\ \gamma(i,k) \text{是在当前模型参数下等i个观测数据来自第k个分模型的概率}

注意:在算γ(i,k)\gamma(i,k)时,假定μk,Σk\mu_k,\Sigma_k均已知,是上一轮迭代出的参数。

  • M步:对期望的下限最大化,计算新一轮迭代的模型参数。

    注意:此时γ(i,k)\gamma(i,k)已知,也就是知道了每个样本由那个component生成,此时求模型参数,使似然函数最大化。

    • μk,Σk\mu_k,\Sigma_k分别求偏导数,然后等于0就可以了

    • πk\pi_k不能直接求偏导数,因为有k=1Kπk=1\sum_{k=1}^K \pi_k=1的约束,可以构造拉格朗日函数求解

求解过程: 对μk\mu_k求导,固定πk,Σk\pi_k,\Sigma_k

f=i=1Nlogk=1KπkN(xμk,Σk)k=1Kπk=i=1Nlogk=1KπkN(xμk,Σk)k=1Kπk=i=1Nk=1Kγ(i,k)logN(xμk,Σk)k=1Kγ(i,k)fμk=i=1Nk=1Kγ(i,k)12(xiμ)TΣk1(xiμ)=12i=1Nγ(i,k)(2μkTΣk1xiμkTΣk1μk)=i=1Nγ(i,k)(Σk1xiΣk1μk)=0μk=1Nki=1Nγ(i,k)xif = \sum_{i=1}^N \log \sum_{k=1}^K \pi_k \frac {N(x|\mu_k,\Sigma_k)}{\sum_{k=1}^K \pi_k} = \sum_{i=1}^N \log \sum_{k=1}^K \pi_k \frac {N(x|\mu_k,\Sigma_k)}{\sum_{k=1}^K \pi_k} = \sum_{i=1}^N \sum_{k=1}^K \gamma(i,k) \log \frac {N(x|\mu_k,\Sigma_k)}{ \sum_{k=1}^K \gamma(i,k)} \\ \frac {\partial f}{\partial \mu_k} = -\sum_{i=1}^N \sum_{k=1}^K \gamma(i,k) \frac {1}{2}(x_i-\mu)^T \Sigma_k^{-1} (x_i-\mu) = -\frac {1}{2} \sum_{i=1}^N \gamma(i,k)(2\mu_k^T\Sigma_k^{-1}x_i - \mu_k^T\Sigma_k^{-1}\mu_k ) = \sum_{i=1}^N \gamma(i,k)(\Sigma_k^{-1}x_i - \Sigma_k^{-1}\mu_k ) = 0 \\ \mu_k = \frac {1}{N_k} \sum_{i=1}^N \gamma(i,k)x_i

Σk\Sigma_k求导,固定πk,μk\pi_k,\mu_k

Σk=1Nki=1Nγ(i,k)(xiμk)(xiμk)T\Sigma_k = \frac {1}{N_k} \sum_{i=1}^N \gamma(i,k)(x_i-\mu_k)(x_i-\mu_k)^T
Nk=i=1Nγ(i,k),πk=NkNN_k = \sum_{i=1}^N \gamma(i,k) , \\ \pi_k = \frac {N_k}{N}

半监督学习###

并行学习###

参考佳文####

高斯混合模型和期望最大化算法 (此文甚是清晰准确) 期望最大化算法

Last updated