关于机器学习:高斯混合模型GMM的应用-异常检测推荐系统混合词向量与视觉Fisher-Vector特征

44次阅读

共计 7274 个字符,预计需要花费 19 分钟才能阅读完成。

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.

正文完
 0