公式推导

混合分布是多个概率密度函数的线性组合,形式如下:

p(xΘ)=k=1Mαkpk(xθk),  andk=1Mαk=1(1.1)p(x \mid \Theta) = \sum_{k=1}^M \alpha_k \, p_k(x \mid \theta_k), \; \text{and} \sum_{k=1}^M \alpha_k = 1 \qquad (1.1)

对于 Θ=(α1,,αM,θ1,,θk)\Theta = (\alpha_1, \ldots, \alpha_M, \theta_1, \ldots, \theta_k),表示该混合分布由 MM 个分布构成,每个分布的权重为 αk\alpha_k。当每个分布均服从高斯分布时,则称该混合分布为 MM 个分布的高斯混合模型。

假设样本观测值为 X={xi},1iNX = \{ x_i \}, 1 \le i \le N,则由上式可知,高斯混合模型中每个高斯分布的概率密度函数 pk(xθk)p_k(x \mid \theta_k) 为:

pk(xθk)=12πσk2e(xiμk)22σk2(1.2)p_k(x \mid \theta_k) = \frac{1}{\sqrt{2\pi \sigma_k^2}} \, e^{- \frac{(x_i - \mu_k)^2}{2\sigma_k^2}} \qquad (1.2)

对于 NN 个独立同分布的样本观察值,它们的联合分布有:

p(XΘ)=i=1Np(xiΘ)(1.3)p(X \mid \Theta) = \prod_{i=1}^{N} p(x_i \mid \Theta) \qquad (1.3)

它们的对数似然函数可以写成:

lnL(ΘX)=lni=1Np(xiΘ)=i=1Nln[k=1Mαkpk(xiθk)](1.4)\ln L(\Theta \mid X) = \ln \prod_{i=1}^{N} p(x_i \mid \Theta) = \sum_{i=1}^{N} \ln \left[ \sum_{k=1}^{M} \alpha_k \, p_k(x_i \mid \theta_k) \right] \qquad (1.4)

我们的目的是求 Q=argmaxΘL(ΘX)Q = \arg\max_{\Theta} L(\Theta \mid X) 的极大值,从数学的基础理论上来分析,可以对上述对数似然函数进行求导,从而寻求极值。但是这是比较困难的任务,因为它含有对数函数和多项式求和。为了克服这个困难,引入隐变量 Y={yi},1iNY = \{ y_i \}, 1 \le i \le N,并且对于每个隐变量 yi{1,2,,M}y_i \in \{1, 2, \ldots, M\}yi=ky_i = k 时,表示第 ii 个样本观测值 xix_i 是高斯混合分布的第 kk 个分布产生的。因此,引入隐变量 YY 后,对数似然函数可以改写成为

lnL(ΘX,Y)=lni=1Np(xi,yiΘ)=i=1Nln[αyipyi(xiθyi)](1.5)\ln L(\Theta \mid X, Y) = \ln \prod_{i=1}^{N} p(x_i, y_i \mid \Theta) = \sum_{i=1}^{N} \ln \left[ \alpha_{y_i} \, p_{y_i}(x_i \mid \theta_{y_i}) \right] \qquad (1.5)

改写似然函数后,可以采用 EM 算法来对模型进行参数估计。

假设在第 t1t-1 次迭代开始,有 Θ\Theta 的估计 Θ^t1=(α1t1,,αMt1,θ1t1,,θMt1)\hat{\Theta}^{t-1} = (\alpha_1^{t-1}, \ldots, \alpha_M^{t-1}, \theta_1^{t-1}, \ldots, \theta_M^{t-1})

在 EM 算法的 E 步,求完全数据的对数似然函数的期望,如下:

Q(ΘΘt1)=E[lnL(ΘX,Y)]=yln[L(ΘX,y)]p(yX,Θt1)=yi=1Nln[αyipyi(xiθyi)]p(yxi,Θt1)(1.6)\begin{aligned} Q(\Theta \mid \Theta^{t-1}) &= \mathbb{E} \left[ \ln L(\Theta \mid X, Y) \right] \\ &= \sum_{y} \ln \left[ L(\Theta \mid X, y) \right] \, p(y \mid X, \Theta^{t-1}) \\ &= \sum_{y} \sum_{i=1}^{N} \ln \left[ \alpha_{y_i} \, p_{y_i}(x_i \mid \theta_{y_i}) \right] \, p(y \mid x_i, \Theta^{t-1}) \end{aligned} \qquad (1.6)

已知第 ii 个观测值 xix_i 来自第 kk 个分布的概率为 p(yi=kxi,Θt1)p(y_i = k \mid x_i, \Theta^{t-1})。因此上式可以写成:

Q(ΘΘt1)=k=1Mi=1Nln[αkpk(xiθk)]p(kxi,Θt1)=k=1Mi=1Nln(αk)p(kxi,Θt1)+k=1Mi=1Nln[pk(xiθk)]p(kxi,Θt1)(1.7)\begin{aligned} Q(\Theta \mid \Theta^{t-1}) &= \sum_{k=1}^{M} \sum_{i=1}^{N} \ln \left[ \alpha_k \, p_k(x_i \mid \theta_k) \right] \, p(k \mid x_i, \Theta^{t-1}) \\ &= \sum_{k=1}^{M} \sum_{i=1}^{N} \ln (\alpha_k) \, p(k \mid x_i, \Theta^{t-1}) + \sum_{k=1}^{M} \sum_{i=1}^{N} \ln \left[ p_k(x_i \mid \theta_k) \right] \, p(k \mid x_i, \Theta^{t-1}) \end{aligned} \qquad (1.7)

而由贝叶斯公式可知

p(kxi,Θt1)=p(k,xiθkt1)s=1Mp(s,xiθst1)=pk(xiθkt1)s=1Mps(xiθst1)(1.8)p(k \mid x_i, \Theta^{t-1}) = \frac{p(k, x_i \mid \theta_k^{t-1})} {\sum\limits_{s=1}^{M} p(s, x_i \mid \theta_s^{t-1})} = \frac{p_k(x_i \mid \theta_k^{t-1})} {\sum\limits_{s=1}^{M} p_s(x_i \mid \theta_s^{t-1})} \qquad (1.8)

其中,pk(xiθk)p_k(x_i \mid \theta_k) 由式 (1.2) 给出。

在 EM 算法的 M 步,通过求 Θt\Theta^{t} 来极大化式 (1.7) 的函数。

首先,求均值 μk\mu_k,可以将 Q(ΘΘt1)Q(\Theta \mid \Theta^{t-1})μk\mu_k 求偏导,并令其为零,有:

Q(ΘΘt1)μk=μk[i=1Nln[pk(xiθk)]p(kxi,Θt1)]=μk[i=1N(ln(12πσk2)(xiμk)22σk2)p(kxi,Θt1)]=1σk2i=1N(xiμk)p(kxi,Θt1)=1σk2i=1Nxip(kxi,Θt1)μkσk2i=1Np(kxi,Θt1)=0\begin{aligned} \frac{\partial Q(\Theta \mid \Theta^{t-1})}{\partial \mu_k} &= \frac{\partial}{\partial \mu_k} \left[ \sum_{i=1}^{N} \ln \left[ p_k(x_i \mid \theta_k) \right] \, p(k \mid x_i, \Theta^{t-1}) \right] \\ &= \frac{\partial}{\partial \mu_k} \left[ \sum_{i=1}^{N} \left( \ln \left( \frac{1}{\sqrt{2\pi \sigma_k^2}} \right) - \frac{(x_i - \mu_k)^2}{2\sigma_k^2} \right) \, p(k \mid x_i, \Theta^{t-1}) \right] \\ &= \frac{1}{\sigma_k^2} \sum_{i=1}^{N} (x_i - \mu_k) \, p(k \mid x_i, \Theta^{t-1}) \\ &= \frac{1}{\sigma_k^2} \sum_{i=1}^{N} x_i \, p(k \mid x_i, \Theta^{t-1}) - \frac{\mu_k}{\sigma_k^2} \sum_{i=1}^{N} p(k \mid x_i, \Theta^{t-1}) \\ &= 0 \end{aligned}

因此,可以解出:

μk=i=1Nxip(kxi,Θt1)i=1Np(kxi,Θt1)(1.9)\mu_k = \frac{\sum\limits_{i=1}^{N} x_i \, p(k \mid x_i, \Theta^{t-1})} {\sum\limits_{i=1}^{N} p(k \mid x_i, \Theta^{t-1})} \qquad (1.9)

同理,求 σk2\sigma_k^2,可以将 Q(ΘΘt1)Q(\Theta \mid \Theta^{t-1})σk2\sigma_k^2 求偏导,并令其偏导函数为零,可得:

σk2=i=1N(xiμk)2p(kxi,Θt1)i=1Np(kxi,Θt1)(1.10)\sigma_k^2 = \frac{\sum\limits_{i=1}^{N} (x_i - \mu_k)^2 \, p(k \mid x_i, \Theta^{t-1})} {\sum\limits_{i=1}^{N} p(k \mid x_i, \Theta^{t-1})} \qquad (1.10)

最后,求解 αk\alpha_k,引入拉格朗日乘子,又 k=1Mαk=1\sum\limits_{k=1}^{M} \alpha_k = 1,有:

αk[Q(ΘΘt1)+λ(k=1Mαk1)]=αk[k=1Mi=1Nln(αk)p(kxi,Θt1)+λ(k=1Mαk1)]=1αki=1Np(kxi,Θt1)+λ=0\begin{aligned} & \frac{\partial}{\partial \alpha_k} \left[ Q(\Theta \mid \Theta^{t-1}) + \lambda \left( \sum_{k=1}^{M} \alpha_k - 1 \right) \right] \\ &= \frac{\partial}{\partial \alpha_k} \left[ \sum_{k=1}^{M} \sum_{i=1}^{N} \ln(\alpha_k) \, p(k \mid x_i, \Theta^{t-1}) + \lambda \left( \sum_{k=1}^{M} \alpha_k - 1 \right) \right] \\ &= \frac{1}{\alpha_k} \sum_{i=1}^{N} p(k \mid x_i, \Theta^{t-1}) + \lambda \\ &= 0 \end{aligned}

因此有:

i=1Np(kxi,Θt1)+λαk=0,k=1,2,,M(1.11)\sum_{i=1}^{N} p(k \mid x_i, \Theta^{t-1}) + \lambda \alpha_k = 0, \quad k = 1, 2, \ldots, M \qquad (1.11)

将上述 MM 个式子求和可得:

k=1M[i=1Np(kxi,Θt1)+λαk]=0(1.12)\sum_{k=1}^{M} \left[ \sum_{i=1}^{N} p(k \mid x_i, \Theta^{t-1}) + \lambda \alpha_k \right] = 0 \qquad (1.12)

又有 k=1Mp(kxi,Θt1)=1\sum\limits_{k=1}^{M} p(k \mid x_i, \Theta^{t-1}) = 1k=1Mαk=1\sum\limits_{k=1}^{M} \alpha_k = 1,代入上式得,λ=N\lambda = -N,再将该结果带入式(1.11)中可解得:

αk=i=1Np(kxi,Θt1)N(1.13)\alpha_k = \frac{\sum\limits_{i=1}^{N} p(k \mid x_i, \Theta^{t-1})}{N} \qquad (1.13)

综上,我们可以得到所有参数的更新公式。