GMM
高斯混合模型:
p ( x ) = ∑ c p ( c ) p ( x ∣ c ) = ∑ k = 0 K − 1 π k N ( x ∣ μ k , σ k ) \begin{aligned} p(x) = &\sum_{c}p(c)p(x|c) \\ = &\sum_{k=0}^{K-1} \pi_{k}N(x|\mu_{k}, \sigma_{k}) \end{aligned} p(x)==c∑p(c)p(x∣c)k=0∑K−1πkN(x∣μk,σk)
其中 ∑ k π k = 1 , c 是 一 个 K 维 的 o n e − h o t 向 量 , p ( c k = 1 ) = π k \sum_{k} \pi_{k}=1, c是一个K维的one-hot向量,p(c_{k}=1)=\pi_{k} ∑kπk=1,c是一个K维的one−hot向量,p(ck=1)=πk,这里的c其实服从类别分布,也就是 c ∼ C a t ( π ) c\sim Cat(\pi) c∼Cat(π)。
VAE回顾
变分自编码器的ELBO为:
E L B O = E q ϕ ( z ∣ x ) [ l o g p θ ( x ∣ z ) ] − K L [ q ϕ ( z ∣ x ) ∣ ∣ p θ ( z ) ] (*) \tag{*} ELBO = E_{q_{\phi}(z|x)}[logp_{\theta}(x|z)]-KL[q_{\phi}(z|x)||p_{\theta}(z)] ELBO=Eqϕ(z∣x)[logpθ(x∣z)]−KL[qϕ(z∣x)∣∣pθ(z)](*)
不熟悉的可以看变分自编码器回顾。在实际使用时,常常假设隐变量 z z z的变分后验 q ϕ ( z ∣ x ) q_{\phi}(z|x) qϕ(z∣x)和先验 p θ ( z ) p_{\theta}(z) pθ(z)是高斯分布。但有的时候使用单个高斯分布可能使隐变量 z z z不能充分的学习到 x x x的特征,比如MINIST数据集有0~9这10个数字,直觉上使用10个高斯分布来替代单个高斯分布更为合理。所以就有学者将GMM和VAE结合起来,提出了GMVAE模型。
GMVAE
GMVAE的概率图模型如下图所示:
其中, x x x是观测数据, c 和 z c和z c和z分别是离散和连续的潜变量, c c c可以理解为指示模型选择哪个高斯的变量(比如第i个高斯), z z z可以理解为选择的第i个高斯产生的变量。实线是生成过程(decoer 过程),虚线是训练过程(encoder 过程),从生成过程中可以看出, x x x依赖于 z z z, z z z依赖于 c c c。
以minist数据集解释一下生成过程,假设我们已经训练好了GMVAE模型(意味着得到了10个高斯分布,第 i i i个高斯分布充分学习到了数字 i i i的特征)。
- 选择一个高斯分布, c ∼ C a t ( π ) c \sim Cat(\pi) c∼Cat(π)
- 从1选择的高斯分布采样一个 z z z, z ∼ N ( μ c , σ c 2 I ) z\sim N(\mu_c,\sigma_c^{2}I) z∼N(μc,σc2I)
- 生成样本 x x x
3.1 计算 x x x对应的均值 μ x \mu_{x} μx和方差 σ x