變分深度嵌入(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.uj5u.com/qita/51507.html
標籤:其他
上一篇:動態規劃求斐波那契數列
下一篇:1、稀疏陣列
