Skip to main content

Mixture Model

· 5 min read
PuQing
AI, CVer, Pythoner, Half-stack Developer
info

In statistics, a mixture model is a probabilistic model for representing the presence of subpopulations within an overall population, without requiring that an observed data set should identify the sub-population to which an individual observation belongs

Introduce

三硬币模型

假设有 3 枚硬币,分别记作 A,B,CA,B,C。这些硬币正面出现的概率分别是 π,p,q\pi,p,q。进行如下掷硬币实验:先掷硬币 AA,根据其结果选出硬币 BB,反面选硬币 CC;然后掷选出的硬币,掷硬币的结果,出现正面记作 1,出现反面记作 0;独立地重复 nn 次实验(这里,n=10n=10),观测结果如下:

1,1,0,1,0,0,1,0,1,11,1,0,1,0,0,1,0,1,1

假设我们只能观测到最终掷硬币的结果,不能观测中间状态。问如何估计三硬币正面出现的概率,即三硬币模型的参数。

三硬币模型可以写作

P(yθ)=zP(y,zθ)=zP(zθ)P(yz,θ)=πpy(1p)1yP(yz,θ)+(1π)P(zθ)qy(1q)1y\begin{aligned} P(y \mid \theta) & =\sum_{z} P(y, z \mid \theta)=\sum_{z} P(z \mid \theta) P(y \mid z, \theta) \\ & =\underbrace{\pi \underbrace{p^{y}(1-p)^{1-y}}_{{\color{Green} P(y\mid z,\theta)} } +\underbrace{(1-\pi)}_{{\color{Red} P(z\mid \theta)} } q^{y}(1-q)^{1-y}}_{\sum} \end{aligned}

在这里,随机变量 yy 是观测到的变量,表示实验结果是 11 或者是 00;随机变量 zz 是一个隐变量,表示未观测到的硬币 AA 的结果;θ=(π,p,q)\theta=(\pi,p,q) 是模型参数。

将观测数据表示为 Y=(Y1,Y2,,Yn)Y=(Y_{1},Y_{2},\dots,Y_{n})^\top,未观测数据表示为 Z=(Z1,Z2,,Zn)Z=(Z_{1},Z_{2},\dots,Z_{n})^\top。则观测数据的似然函数为

P(Yθ)=ZP(Zθ)P(YZ,θ)\begin{equation} P(Y \mid \theta)=\sum_{Z} P(Z \mid \theta) P(Y \mid Z, \theta) \end{equation}

P(Yθ)=j=1n[πpyj(1p)1yj+(1π)qyj(1q)1yj]P(Y \mid \theta)=\prod_{j=1}^{n}\left[\pi p^{y_{j}}(1-p)^{1-y_{j}}+(1-\pi) q^{y_{j}}(1-q)^{1-y_{j}}\right]

考虑到求模型参数 θ=(π,p,q)\theta=(\pi,p,q) 的极大似然估计,即

θ^=argmaxθlogP(Yθ)\begin{equation} \hat{\theta}=\arg \max _{\theta} \log P(Y \mid \theta) \end{equation}

这里的三变量模型实际上就是一种混合模型,最后 yy 的总体分布包含有 KK 个子分布(这里就是最后的两个 p,qp,q 分布),而其中的 π\pi 实际上是一种混合权重 (mixture weights\text{mixture weights})

更加一般的,混合模型一般有下面几个特点。

Mixture Model

  • 观测到的 NN 个随机变量每一个都是从 KK 个子分布得到的
  • NN 个隐随机变量,表示从各个子分布的结果,每个的维度都是 KK
  • 一个 KK 维的 mixture weights\text{mixture weights},其和是 11

特别的,当各个子分布是高斯(正态)分布时,我们叫 Gaussian mixture model\text{Gaussian mixture model},写作

p(y)=i=1KϕiN(μi,Σi)\begin{equation} p(\boldsymbol{y})=\sum_{i=1}^{K} \phi_{i} \mathcal{N}\left(\boldsymbol{\mu}_{i}, \boldsymbol{\Sigma}_{i}\right) \end{equation}

其中的 ϕi\phi_{i} 是观测数据属于第 ii 个子模型的概率,ϕi0,i=1Kϕi=1\phi_{i}\ge 0, \sum_{i=1}^K \phi_{i}=1N(μi,Σi)\mathcal{N}\left(\boldsymbol{\mu}_{i}, \boldsymbol{\Sigma}_{i}\right) 是第 ii 个子模型的高斯分布密度函数。

类似于上面中的隐随机变量 zz,构造混合高斯模型的另一种表示方式。

note

我们可以这样想象一个符合混合高斯模型分布的数据点的产生过程:首先以一定的概率从 KK 个高斯分布中选择一个,其中第 ii 个高斯分布被选中的概率为 ϕi\phi_{i} ,然后依据被选中的高斯分布生成一个数据点。重复以上过程生成多个数据点,这些数据点将符合上式的混合高斯分布。

tip

为了表示选中哪一个高斯分布,我们引入一个二值指示变量 z\boldsymbol{z},该变量是 one hot\text{one hot} 编码的,由于第 ii 个高斯分布被选中的概率为 ϕi\phi_{i},即

p(zi=1)=ϕip(z_{i}=1) = \phi_{i}

因此,随机变量 z\boldsymbol{z} 的分布可以表示为

p(z)=i=1Kϕizip(\boldsymbol{z}) = \prod^{K}_{i=1} \phi_{i}^{z_{i}}

所以,当已知选中第 ii 个高斯分布时,y\boldsymbol{y} 的条件分布为

p(yzi=1)=N(yμi,Σi)p(\boldsymbol{y}\mid z_{i}=1) = \mathcal{N}\left(\boldsymbol{y}\mid \boldsymbol{\mu}_{i}, \boldsymbol{\Sigma}_{i}\right)

或者表示为

p(yz)=i=1KN(yμi,Σi)zip(\boldsymbol{y}\mid \boldsymbol{z}) = \prod^{K}_{i=1} \mathcal{N}\left(\boldsymbol{y}\mid \boldsymbol{\mu}_{i}, \boldsymbol{\Sigma}_{i}\right) ^ {z_{i}}

从而,y\boldsymbol{y} 的边缘分布为

p(y)=zp(yz)p(z)=zi=1K[ϕiN(yμi,Σi)]zi\begin{equation} p(\boldsymbol{y}) = \sum_{\boldsymbol{z}} p(\boldsymbol{y}\mid \boldsymbol{z}) p(\boldsymbol{z}) = \sum_{{\boldsymbol{z}}} \prod_{i=1}^{K}[\phi_{i}\mathcal{N}(\boldsymbol{y}\mid \boldsymbol{\mu}_{i}, \boldsymbol{\Sigma}_{i})]^{z_{i}} \end{equation}

注意到 z\boldsymbol{z}one hot\text{one hot} 编码的,于是连乘积可以化简成为

p(y)=zp(yz)p(z)=i=1KϕiN(yμi,Σi)p(\boldsymbol{y}) = \sum_{\boldsymbol{z}} p(\boldsymbol{y}\mid \boldsymbol{z}) p(\boldsymbol{z}) = \sum_{i=1}^{K}\phi_{i} \mathcal{N}(\boldsymbol{y}\mid\boldsymbol{\mu}_{i}, \boldsymbol{\Sigma}_{i})

^d1001b

相关资料