Loading... 明确`单高斯分布`、`多元高斯分布`、`高斯混合模型GMM`的区别。 ## 1、单高斯分布 在概率论里面我们学过,若一维随机变量$X$服从$X\sim N(\mu, \sigma^2)$,则有如下概率密度函数 $$ f(x)=\frac{1}{\sqrt{2\pi}\sigma}\cdot e^{-\frac{(x-\mu)^2}{2\sigma^2}} \tag{1} $$ $$ \int_{-\infty}^{+\infty} f(x)dx=1 \tag{2} $$ 如果我们对随机变量$X$进行标准化,用$Z=\frac{X-\mu}{\sigma}$对(1)进行换元: $$ x(z)=z\cdot \sigma + u $$ $$ f(x(z))=\frac{1}{\sqrt{2\pi}\sigma}\cdot e^{-\frac{1}{2}(z)^2} \\ 1=\int_{-\infty}^{+\infty}f(x(z))dx \\ =\int_{-\infty}^{+\infty}\frac{1}{\sqrt{2\pi}\sigma}\cdot e^{-\frac{1}{2}(z)^2}d(z\cdot \sigma + u) \\ =\int_{-\infty}^{+\infty}\frac{1}{\sqrt{2\pi}}\cdot e^{-\frac{1}{2}(z)^2}dz \\ \tag{3} $$ 此时我们说随机变量$Z \sim N(0,1)$服从一元标准高斯分布,其均值$\mu=0$,方差$\sigma^2=1$,其概率密度函数为: $$ f(z)=\frac{1}{\sqrt{2\pi}}\cdot e^{-\frac{1}{2}(z)^2} \tag{4} $$ **随机变量$X$标准化的过程,实际上的消除量纲影响和分布差异的过程。通过将随机变量的值减去其均值再除以标准差,使得随机变量与其均值的差距可以用若干个标准差来衡量, 从而实现了不同随机变量与其对应均值的差距可以以一种相对的距离来进行比较。** ## 2、多元高斯分布 ### 2.1 多元标准高斯分布 由(4)式我们得到了一元标准高斯分布,实际上多元标准高斯分布可以由一元标准高斯分布导出。假设我们有随机向量$Z=[Z_1,Z_2,...,Z_n]^T$,其中$Z_i \sim N(0,1)$,且$Z_i, Z_j(i,j=1,...,n)$相互独立。我们可以得到随机向量$Z$的联合概率密度函数: $$ f(z_1,z_2,...,z_n)=\prod_{i=1}^{n} \frac{1}{\sqrt{2\pi}}\cdot e^{-\frac{1}{2}(z_i)^2} \\ =\frac{1}{(2\pi)^{\frac{n}{2}}}\cdot e^{-\frac{1}{2}(Z^TZ)} \tag{5} $$ 我们称随机向量$Z \sim N(0,I)$,即随机向量服从均值为零向量,协方差矩阵为单位矩阵的高斯分布。随机向量$Z$的协方差矩阵是$conv(Z_i,Z_j)$组成的矩阵, $$ conv(Z_i,Z_j)=E[(Z-\mu)(Z-\mu)^T]=I \tag{6} $$ ### 2.2 多元高斯分布 由2.1节我们知道,当每个随机变量$Z_i\sim N(0,1)$,且彼此独立时,我们可以得出其联合概率密度函数(5)。那么对于普通的随机向量$X \sim N(u,\sum)$,即每个随机变量满足$X_i \sim N(\mu_i, \sigma_i^2)$,且$X_i,X_j$不相互独立的情况,我们该如何求随机向量$X$的联合概率密度函数呢?一个很自然的想法是,如果我们能通过线性变换,使得随机向量$X=[X_1,...,X_n]^T$中的每个随机变量彼此独立,则我们也可以通过独立随机变量概率密度函数之间的关系求出其联合概率密度函数。 > 详细推导过程参考这篇文章[知乎--多元高斯分布完全解析](https://zhuanlan.zhihu.com/p/58987388) 经过推导,我们最终可以得出联合概率密度函数的最终形式: $$ P(x_1,...x_n)=\frac{1}{(2\pi)^{\frac{n}{2}}|\sum|^{\frac{1}{2}}}\cdot e^{-\frac{1}{2}\cdot[(X-\mu)^T\sum^{-1}(X-\mu)]} $$ 在得到联合概率密度函数之后,我们面临的一个问题就是如何求解参数$\sum$和$u$。一般我们使用极大似然法构造目标优化函数,解优化问题,获取待求参数。 具体怎么做?对于多元高斯分布,待求参数是$\Sigma$和$\mu$。 已知$\{X_i\}_{i=1 \sim N}$,求$\Sigma$和$\mu$。 构造目标函数(极大似然法): $$ E(\mu, \Sigma)=\sum_{i=1}^{N}lnP(x_i,..,x_n) $$ 假设: (1)所有$\{X_i\}_{i=1 \sim N}$独立同分布 (2) 设定$\mu, \Sigma$,使出现$\{X_i\}_{i=1 \sim N}$概率最大。 $$ E(\mu, \Sigma)=\frac{-Nn}{2}ln(2\pi)-\frac{N}{2}ln|\Sigma|-\frac{1}{2}\sum_{i=1}^{N}(x_i-\mu)^T\Sigma^{-1}(x_i-\mu) $$ 均值$\mu$: $$ \frac{\partial E}{\partial \mu} =-\frac{1}{2}\Sigma^{-1}(\sum_{i=1}^{N}(x_i-\mu))=0 \\ \mu=\frac{1}{N}\sum_{i=1}^{N}x_i $$ 协方差矩阵$\Sigma$: $$ \frac{\partial E}{\partial \Sigma^{-1}} =\frac{N}{2}\Sigma^T-\frac{1}{2}\sum_{i=1}^{N}(x_i-\mu)(x_i-\mu)^T=0 \\ \Sigma=\frac{1}{N}\sum_{i=1}^{N}(x_i-\mu)(x_i-\mu)^T $$ > 要使用极大似然法求解上述问题,需要满足....条件。然后可以直接求偏导,然后得出参数的解析解。但是很多情况下,即使我们构造出目标优化函数,我们也无法直接求出解析解。GMM就是这样一个例子。 ## 3、高斯混合模型 ### 3.1 GMM 高斯混合模型(Gaussian Mixture Model, GMM),是一种业界广泛使用的聚类算法,该方法使用了高斯分布作为参数模型,并使用了期望最大(Expectation Maximization,简称EM)算法进行训练。由于 GMM能够平滑地近似任意形状的密度分布,因此近年来常被用在语音、图像识别等方面,得到不错的效果。 假设,有一批观察数据$x=\{x_1,x_2,...,x_N\}$,数据个数为$n$,在$d$维空间中的分布不是简单的椭圆(高维球),那么就不适合用单个高斯来描述这些点。此时我们采用一种方案:假设每个点均由单个高斯产生,具体某个数据属于哪个高斯为止,且每个高斯在整个混合高斯中所占的比例为止,将所有的属于不同分布的数据点混在一起,该分布称为高斯混合模型。 我们将数据对应的不同高斯通过加权然后相加的方式表示为: $$ f(X)=\sum_{k=1}^{L}\pi_k N(X|\mu_k,\Sigma _k) \\ N(X|\mu_k,\Sigma _k)=\frac{1}{\sqrt{(2\pi)^d|\Sigma_k|}}\cdot e^{-\frac{1}{2}[(X-\mu_k)^T\Sigma_k^{-1}(X-u_k)]} \\ \sum\pi_k=1 $$ 如果要使用极大似然法对参数$\{\pi_k,\mu_k,\Sigma_k\}$进行估计,求不出来。因为....是非凸函数,求不出全局极值,只能求出局部极值。 我们选择使用EM算法对参数进行估计主要考虑EM算法具有几个优点: - 不需调参数,它一定收敛(例如,梯度下降法求局部极值时,需要调整学习率等参数) - 编程简单 - 理论更漂亮 ### 3.2 EM算法求解GMM 1. 随机化:$\{\pi_k,\mu_k,\Sigma_k \}_{k=1 \sim K}$ 2. E-Step: $$ \gamma _{nk}=\frac{\pi_kN(x_n|\mu_k,\Sigma_k)}{\sum_{k=1}^{K}\pi_kN(x_n|\mu_k,\Sigma_k)} $$ $\gamma_{nk}$表示第n个样本落在第k个高斯的概率。 3. M-Step: $$ N_k=\sum_{n=1}^{K}\gamma_{nk} $$ $N_k$表示所有样本中有多少个属于第k个高斯。 $$ \sum_{n=1}^{K}N_k=N $$ 更新参数$\{\pi_k,\mu_k,\Sigma_k \}$: $$ \pi_k^{(new)}=\frac{N_k}{N} $$ $\pi_k$表示第k个高斯的概率。 $$ \mu_k^{(new)}=\frac{1}{N_k}\sum_{n=1}^{N}\gamma_{nk}x_n $$ $\mu_k$表示第k个高斯的均值。 $$ \Sigma_k^{(new)}=\frac{1}{N_k}\gamma_{nk}(x_n-\mu_k^{(new)})(x_n-\mu_k^{(new)})^T $$ $\Sigma_k$表示第k个高斯的协方差矩阵。 4. 回到第2步,直到收敛。 ## 参考资料 【1】[多元高斯分布完全解析](https://zhuanlan.zhihu.com/p/58987388) 【2】[一文详解高斯混合模型原理](https://zhuanlan.zhihu.com/p/31103654) 【3】[高斯混合模型(GMM)源代码实现(二)](https://blog.csdn.net/To_be_to_thought/article/details/90760277) 【4】[高斯混合模型(GMM)介绍以及学习笔记](https://blog.csdn.net/jojozhangju/article/details/19182013) 【5】[声纹识别-2.GMM-UBM](https://blog.csdn.net/weixin_44278406/article/details/103853779) 【6】[sklearn 高斯混合模型](https://sklearn.apachecn.org/docs/master/20.html#bgmm) 【7】[机器学习课程 43 概率密度估计 – 高斯密度函数](https://www.youtube.com/watch?v=jZ1VZ6wo8Jo&list=PLFI1Cd4723_QRJz-q3OivrTHuPWHIuMqJ&index=43) Last modification:March 2nd, 2022 at 02:56 pm © 允许规范转载