变分深度嵌入(Variational Deep Embedding, VaDE)

作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/

    这篇博文主要是对论文“Variational Deep Embedding: An Unsupervised and Generative Approach to Clustering”的整理总结,阅读这篇博文的前提条件是:了解高斯混合模型用于聚类的算法,了解变分推断与变分自编码器。在知道高斯混合模型(GMM)与变分自编码器(VAE)之后,VaDE实际上是将这两者结合起来的一个产物。与VAE相比,VaDE在公式推导中多了一个变量c。与GMM相比,变量c就相当于是GMM中的隐变量z,而隐层得到的特征z相当于原来GMM中的数据x。下面主要介绍VaDE模型的变分下界(损失函数)L(x)的数学推导过程。推导过程用到了概率论与数理统计的相关知识。

1. 前提公式

计算过程中用到了正态分布的一阶矩与二阶矩计算公式。

2. VaDE损失函数公式推导过程

最终的聚类结果是由q(c|x)得到的,q(c|x)相当于GMM中的隐变量的后验概率γ。

 下面将损失函数拆成5项,并一项一项进行求解。

3. VaDE算法总体流程

4. 疑问

    1)GMM算法的参数pi并没有进行归一化处理,在更新过程中能保证pi的和始终为1吗?这个问题在作者评论里面有回答,说pi相比于参数miu, sigma来说,对结果影响不大,但又有人问了,如果遇到非平衡数据呢?这种情况下pi的影响还是比较大的。

    2)后验概率γ在代码里并不参与更新,为什么不和GMM的其他参数(pi, miu, gigma)一样进行梯度下降更新呢?而是直接套公式?有什么数学依据吗?这个在作者评论里面有人提到过,但是未被回复。

    3)预训练到底是怎么做到的,仅仅是用SAE训练得到的结果吗?原作者代码里面只给出了预训练之后得到的具体参数,并没有给出预训练的代码。预训练这个问题在作者评论里面有被提到。预训练阶段还是非常关键的一步,当然,有人是这样做的:预训练使用VAE模型。

    如果能解决我的疑问,欢迎在评论区回复,一起探讨~

5. 参考文献

[1] 聚类——GMM - 凯鲁嘎吉 - 博客园

[2] 变分推断与变分自编码器 - 凯鲁嘎吉 - 博客园

[3] Jiang Z , Zheng Y , Tan H , et al. Variational Deep Embedding: An Unsupervised and Generative Approach to Clustering[J]. 2016.

[4] VaDE代码:

     GitHub - slim1017/VaDE: Python code for paper - Variational Deep Embedding : A Generative Approach to Clustering

      GitHub - GuHongyang/VaDE-pytorch: the reproduce of Variational Deep Embedding : A Generative Approach to Clustering Requirements by pytorch

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/kailugaji/p/12882812.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!