GMM第一篇介绍了建模思维、EM解法和手写实现。当初咱们晓得了GMM是一个假设数据遵从线性高斯混合模型的统计模型参数推断。参数推断实现后,计算出的后验概率$p(v_i = j | x_i, \theta_j)$ ,即$p(sample\ i\ belong\ to\ class\ j | x_i,\theta)$ 十分有用。能够作为聚类后果应用。因而如果咱们的特色集高维、须要做无监督聚类,抉择GMM是很适合的。

上面搜一些中英文paper看看国内外学术圈都是如何利用(穿凿附会)的(逃...)(PS: 随缘筛选,如果有更代表性的工作大家能够补充~)

异样检测

间接应用GMM无监督分类

高维数据聚类,用GMM检测出异样类[1]。这篇文章是说,在火电厂巡检零碎中导出的数据有很多异样值,这些数据烦扰了后续环节零碎的调控。因而须要设计异样检测算法把这些数据剔除。把数据聚成两类,GMM收敛后得出样本属于异样类的概率,设定阈值判断。

GMM与深度网络联合:DAGMM

除了间接用GMM聚类,把深度网络嵌套在GMM的因素的算法也很多。

工作[2]认为高维数据的异样检测会造成后验概率密度$\mathbb{P}(v=j | X_i, \Mu, \Sigma)$的预计艰难。为了解决此问题,很多钻研采纳了两阶段学习的范式,先降维、再在低维空间里学习GMM的隐变量。[2]认为两阶段的训练指标不统一,降维工作的指标可能与后验概率预计工作的指标不统一,造成模型性能不佳(后果是一个sub-optimal performance)。[2]提出了一种joint learning的Deep Autoencoding Gaussian Mixture Model (DAGMM)模型:

  • Compression Network: 学习高维输出的降维示意,同时充分考虑到重建损失(reconstruction error),目标是为了避免降维造成的信息损失。

$z_c$是降维编码后的示意,$h$是编码器。$g$是解码器,失去了重建表白$x'$。这样能够用$f$计算原始输出和解码器重建后的损失$z_r$。而后将他和编码后的降维示意$z_c$拼起来组成了压缩表白$z$输出给前面的评估网络应用。

前半部的网络只是为了降维,而与GMM联合的局部次要在第二局部的评估网络。如何联合呢,咱们再次回顾GMM最重要的一个公式,也即是优化迭代的指标函数:

$$Q\left(\theta, \theta^{t}\right)=\sum_{i=1}^{N} \sum_{w_{i}} \log p\left(x_{i}, w_{i} \mid \theta\right) p\left(w_{i} \mid x_{i}, \theta^{t}\right)$$

E-step是用现有参数估计出后验$p (w_{i} \mid x_{i}, \theta^{t})$ ,而后对似然中的参数$\theta$的更新也都是基于这个后验进行的。这个后验在GMM中能够了解为样本$i$从属于类别$k$的后验概率,用$\gamma_{ik}$示意。咱们晓得,在生成模型的后验概率计算中,分母是个积分,维度一高就容易算不动,于是才有了很多钻研围绕如何预计后验开展。GMM也一样,$\gamma_{ik}$的计算在高维大样本的情境下效率低下。于是一个很天然的想法就产生了:用神经网络来预计这个后验。

以上这个逻辑是我认为的用编解码器与GMM联合相干钻研的根底逻辑。基于此,[2]提出的第二局部预估网络:

  • Estimation Network:

首先,用MLN对输出的压缩表白进行持续学习,失去$p$, 而后用softmax失去多分类后果。这个就是后验后果。

而后就是GMM的M-step, 利用上一轮参数计算失去的后验更新GMM的参数:先验$\phi_k$(每个类别占比概率)、高斯分布的均值和方差:

到这里有人会纳闷还计算这些做什么,不是曾经有了学习指标$\gamma_{ik}$了?大家别忘了这是一个无监督模型,没有与$\gamma_{ik}$对应的label, 咱们的优化指标函数须要与GMM模型保持一致:

这样对GMM模型重要参数的预计体现在神经网络的loss函数上,预计误差就会体现在神经网络的参数上。这也是为什么咱们用神经网络分类器失去的后验概率$\gamma_{ik}$能够间接用在GMM流程中的起因。

神经网络岂但用分类器把GMM中难计算的后验概率解决了。并且最优化指标的参数梯度计算

$$\theta^{t+1}=\underset{\theta}{\operatorname{argmax}} \int_{w} \log [p(x, w \mid \theta)] p\left(w \mid x, \theta^{t}\right) d w=\mathbb{E}_{w \mid x, \theta^{t}}[\log p(x, w \mid \theta)]$$

也能够用神经网络的BP算法来优化。神经网络的拟合指标函数(objective function)能够更简单,于是除了GMM的优化指标外,能够把降维工作的指标、正则化项也加上:

$L$就是重建error,也交融进整个网络的优化指标中。

总结下DAGMM的次要思维(神经网络和GMM如何联合的?):

  • E-step: 用softmax分类器学习GMM后验$\gamma_{ik}$,并用它计算GMM的其余隐含参数
  • M-step: 将计算失去的隐含参数持续计算GMM优化指标似然,作为神经网络的优化指标。这样在BP的同时达到等同于GMM参数的优化过程。
  • 依附神经网络的拟合能力,还能够把降维损失一并放在优化指标函数中优化。
  • 应用GMM的优化指标、降维重建损失作为无监督工作的优化指标

举荐零碎

上文DAGMM是间接对GMM的因素做了「深度网络」化。举荐零碎利用局部我选取了一个更加纯正的利用模式。所谓纯正GMM就是间接用生成模型进行建模。我选取了IJCAI2016的一个工作MPMA[3],是用贝叶斯概率视角(MP, Matrix Probalistic)对举荐零碎中的协同过滤CF办法的基石--协同矩阵(item-user matric)的预计(MA, Matrix Approximation)问题进行从新建模的。

还是先回顾一下传统的矩阵预计办法。从原始的SVD合成,到用深度网络去学习user和item示意(NeuralCF),再到双塔模型... 而MPMA的工作将MA的预计思考的更多,将每个矩阵元素$R_{ij}$(用户i->商品j)交融进了local和global的示意:

上图的1,2,3别离是建模的三个隐变量,示意形成$R_{ij}$的三个隐含类别。别离来自:基于用户的local示意、基于物品的local示意和全局示意。local和global别离学习自不同的协同矩阵。将矩阵元素用概率写进去:

这是GMM建模的第一步,相当于写出了似然的模式(PS: 纳闷为啥要建模成正态分布,二项不应该更正当吗?)。$R_{ij}$ 是咱们观测的数据。但不同于传统GMM,这里的均值参数简单了一些。对user-local,item-local,global别离建模,参数量有所增加。对于均值参数依赖的商品embedding、user embedding以及各个local组的embedding, 也对其假如先验:

咱们是想用MAP(最大后验预计)来预计出这些。作者对后验

进行了很长的推导,最初得出了优化指标:

作者剖析,这个模式其实就是SVD优化指标的子集。只是退出了两个local组合的优化。指标函数(11)相当于原始SVD合成的优化指标,尽量还原R的构造;(12)(13)相当于两个local R的SVD合成优化指标。(14)是正则项。这个正则项怎么来的呢?回顾一下用MAP来推导线性回归模型,退出咱们用概率对观测数据的似然建模,对方差参数假设不同的先验散布,就回失去Lasso和Redge模式的正则项,这里也是一样。

这个指标函数非凸,作者想用SGD来优化,推导出了各自的偏导:

那么问题来了,以上 都是在探讨各类U\V的优化,仿佛咱们遗记了GMM的外围--隐参数还有一部分未被提及:各类别的概率先验、后验的方差$\sigma_{1,2,3}$。作者把UV的优化步骤算法写完了,紧接着才想起来这部分,仍然用EM来优化:

只不过这里M步就不再迭代优化UV了(用上文 的SGD来优化)。那么残缺的M步就是在(21)步实现后,再进行(15)-(16)的UV优化。训练实现后,咱们就能够用学到的所有参数来泛化预计用户i与物品j之间的举荐系数:

总结下MAMP的GMM利用:

  • 用传统的概率视角对观测数据协同矩阵建模似然。均值参数来自对每个物品和用户的表白预计。
  • 将lcoal 和global的三个汇合作为隐含类别。
  • 用SGD + MAP预计均值参数,用EM预计GMM模型剩下的参数。

综上,这篇论文把协同过滤的矩阵预计问题建模为蕴含三个隐含组合的预计,并应用GMM模型形容,EM算法解决。特地的是局部参数来自协同矩阵的学习。

自然语言解决

GMM在NLP的利用我选取了ACL2017的一项工作:多模态高斯词嵌入,或者叫混合高斯词嵌入(Mixtured Gaussian Word Embedding)。从名字就能够看出他是继承自2014年的高斯词嵌入。

首先总结下高斯词嵌入的动机,基本上2013年Word2vec之后提出的词嵌入模型都是对static embedding的改良。高斯词嵌入不再把词向量学习成固定的向量,而是一个概率分布。每个词有本人的方差。这个方差能够表白很多货色:

  • 不确定性(uncertainty),例如词频低的词不确定就高,代表咱们学习的不够拟合。词频高的词学习的较好,方差小
  • 蕴含性,把词向量学习成概率分布的益处是能够散布能够表白词与词之间的蕴含性(entailment),例如music就蕴含了pop,jazz等。而Word2Vec学习到的static embedding是对称的,并不能表白蕴含词义。

2014年的高斯分布embedding是单模态的,这篇论文把工作拓展到多模态,也就是一个词由混合高斯组成:

这么做的动机,一个是水...哦不是,最重要的是多模态混合高斯相比单模态有诸多益处,除了高斯embedding表白的蕴含关系,在多义词的表白上有显著劣势:

上图看明确就根本明确多模态高斯混合embedding的动机了。

  • 上图:高斯混合embedding, 拿「rock」举例,他的多个语义被建模成了两局部高斯混合,能够看到在「stone, basalt」、「music」两个语义区别离学习到了两个高斯分布。
  • 下图:单模态高斯embedding, 「rock」的方差被不必要地放大,以蕴含多个语义。同时还有一个毛病是,蕴含的类似语义可能会被离开,像music下的「pop」和「jazz」。而多模态music会建模成蕴含「pop」和「jazz」的散布,同义词会更加紧凑。

这篇论文剩下的采样、训练模式与skip-gram无差别。目前函数还是中心词$w$与上下文$c$的相似性,加上负采样减速收敛。指标函数:

其中,$E_{\theta}$是一种能掂量两个散布之间的差距的能量函数,因为这里的$c,w$都是概率分布的embedding了,不能再简略应用点积了。相比Word2vec和高斯Embedding,多模态混合高斯的训练参数: $\theta = \{ \vec{\mu}_{w,i}, p_{w,i}, \Sigma_{w,i} \}$, 显著多了不少。

对指标函数中的能量函数,作者没有用天然想到的KL散度,而是用了Expected Likelihood Kernel的函数:

而后训练学习失去的就是每个单词$w$的 $\{ \vec{\mu}_{w,i}, p_{w,i}, \Sigma_{w,i} \}$。能够用在后续的近义词、多含意剖析中。

总结:

  • 多模态混合高斯词向量是2014年Gaussian Embedding工作的多模态补充与拓展
  • 用多模态高斯分布示意一个词向量具备多含意学习、蕴含关系学习、不确定性学习等劣势
  • 指标函数采纳skip-gram和负采样。为了掂量散布向量间的差别,定义了能量函数
  • 间接把所有参数放进指标函数梯度降落优化,没有应用EM算法

计算机视觉:Fisher Vector

钻研CV的老哥们必定晓得2013年左右的上古图像特色FV(Fisher Vectors)[6]。这是GMM间接用在图像特征提取上。首先一个图像能够又$t$个descriptor形容:$X= \{ x_t, t=1,...,T \}$. 这个$x_t$可能来自其余local特色如SIFT,那么这个序列(可能是长度不一的)就残缺地形容了图像全副特色。

当初为了解决每个图像的形容$X$可能长度不一的问题,想到能够用概率来对$X$建模,pdf为$\mu_{\lambda}(X)$。那么$X$就能够用log-likelyhood的梯度来形容,这个梯度是定长的,只与参数维度相干:

再对$X$的各个特色做iid假如:

而FV抉择的对$X$概率建模的$\mu_{\lambda}$就是GMM,是基于更早的一项工作Fisher Kernel[7]。$\mu_{\lambda}(x) = \sum_{i}^K w_iu_i{x}$,其中参数就是GMM中的三个参数:$\lambda = \{ w_i, \mu_i, \Sigma_i, i = 1...K \}$。

各个参数梯度的计算与GMM中EM的推导一样:

FV认为GMM建模的log似然函数的梯度能示意图像特色的起因是,似然的梯度是图像数据一直去拟合GMM隐变量散布的过程,这个过程能反馈图像的诸多部分动静特色[7]。

FV是晚期CV畛域图像特征提取的办法,用的很广泛。当初google schoolar一下FV近些年的利用曾经偏差工夫序列方面了,例如语音信号、多模态序列、EEG信号、文本等的特色解决了。

因为这些长序列数据的解决有一个外围问题:序列长度的padding与对齐,如何把不同长度的序列更好地放在一起训练。相干工作往往冀望一种特征提取能对立长度同时又不失落信息,FV的过程就十分适合。举个例子,下图是一个多模态的Audio + Video多模态序列特色解决的一个流程[8]:

将拼接好的多模态序列特色用GMM+FV解决成定长的向量。

总结

GMM作为一种应用多个高斯分布拟合任意概率分布的通用办法有诸多利用。利用的形式次要有:

  • 间接用为一种聚类算法。sklearn.mixture.GaussianMixtureModel
  • 依然是无监督问题,与NN联合。后验局部深度网络代替,同时把参数优化指标放进损失函数
  • 仅利用GMM的形式概率建模,不必EM算法求解。例如本文的高斯混合词向量和Fisher Vector.
预计很少有人把本文看完吧。这像是一篇综述,说来搞笑,硕士最初一个月的工夫在这里老老实实写论文综述。这也是我领悟的一个对于学习的形式。以前第一次学习GMM,看过公式推导,看完了就完了。没有思考过这货色有啥用。实现硕士论文写作后,发现万事都有其动机逻辑链条。作为一种算法,无论它基于的实践还是利用都有其动机。于是在毕业季回顾系列我冀望把这种写论文的思维形式再利用一下。毕竟这是读研究生播种的为数不多的财产。

[1] 吴铮,张悦,董泽.基于改良高斯混合模型的热工过程异样值检测[J/OL].零碎仿真学报:1-12[2022-05-11].DOI:10.16182/j.issn1004731x.joss.22-0047.
[2] [Zong B, Song Q, Min M R, et al. Deep autoencoding gaussian mixture model for unsupervised anomaly detection[C]//ICLR. 2018.](https://openreview.net/pdf?id...)
[3] [Chen C, Li D, Lv Q, et al. MPMA: Mixture Probabilistic Matrix Approximation for Collaborative Filtering[C]//IJCAI. 2016: 1382-1388.](http://recmind.cn/papers/mpma...)

[4] [Athiwaratkun B, Wilson A G. Multimodal Word Distributions[C]//ACL (1). 2017.](https://arxiv.org/pdf/1704.08...)

[5] [Vilnis L, McCallum A. Word Representations via Gaussian Embedding[C]//ICLR. 2015.](https://openreview.net/forum?...)

[6] Sánchez J, Perronnin F, Mensink T, et al. Image classification with the fisher vector: Theory and practice[J]. International journal of computer vision, 2013, 105(3): 222-245.

[7] Perronnin F, Dance C. Fisher kernels on visual vocabularies for image categorization[C]//2007 IEEE conference on computer vision and pattern recognition. IEEE, 2007: 1-8.

[8] Zhang Z, Lin W, Liu M, et al. Multimodal deep learning framework for mental disorder recognition[C]//2020 15th IEEE International Conference on Automatic Face and Gesture Recognition (FG 2020). IEEE, 2020: 344-350.