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


變分深度嵌入(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, sigma)一樣進行梯度下降更新呢?而是直接套公式?有什么數學依據嗎?這個在作者評論里面有人提到過,但是未被回復。

    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. 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM