一、引入
最開始知道生成模型和判別模型,是在李航的統計學習方法里,當時的理解是:生成模型,就是同時考慮了X和Y的隨機性,也就是說二者都是隨機變量;判別模型,就是只考慮了Y的隨機性,而X並不是個隨機變量,即使X存在於條件中,但是並沒有p(x)這種說法。當時同時也知道了,朴素貝葉斯和隱馬爾可夫都是生成模型,最主要的原因就是在這兩個模型中涉及到的變量都是隨機變量。生成模型可以轉變成判別模型,也就是生成模型由於考慮的都是隨機變量,可以通過條件概率公式計算出條件概率;反之不行,因為判別模型無法描述聯合概率分布。
后來又在學深度學習的時候看到了生成模型,好像對生成模型的理解又加深了一些。
生成模型是根據一些已經觀測到的樣本點,學習一個參數化模型$P_{\theta }(x)$,來近似這些樣本所符合的真實分布$P_{r }(x)$。可以用這個學習到的模型$P_{\theta }(x)$來生成一些新樣本,使得這些新樣本和已知樣本一樣是符合真實分布$P_{r }(x)$的。所以生成模型有三個基本用處:一個是概率密度估計,一個是采樣,還有就是監督學習,如朴素貝葉斯。
二、概率密度估計
因為在高維空間中,變量之間的關系比較復雜,沒辦法去准確的畫出變量之間的圖模型結構,然后就會引入隱變量z來簡化模型,如果要建模$(x,z)$,問題就會轉化為求解$P_{\theta }(z)$和$P_{\theta }(x\mid z)$,隱變量可以由先驗分布來刻畫,然后概率密度估計的重點就會轉換為求解$P_{\theta }(x\mid z)$。為了估計這個概率,可以采用EM算法,就像前面深度學習(二)和(三)中提到的一樣,然而EM算法是要最大化ELBO,E步要求找到一個近似隱變量的后驗概率$P(z\mid x;\theta )$的分布$Q(z)$,才能使得ELBO最大;M步再固定我們上一步找到的$Q(z)$,開始優化ELBO中的參數$\theta$;更新完$\theta$后,固定$\theta$,再去找一個新的近似隱變量的后驗概率$P(z\mid x;\theta )$的分布$Q(z)$,這個步驟不斷迭代計算,直到穩定為止。
如果估計后驗分布的過程比較復雜,可以采用神經網絡,因為神經網絡可以近似任何一個復雜的函數,所以可以用來建模復雜分布,變分自編碼器就是采用這種思想。
三、采樣
具體見深度學習(四)、(五)、(六)
大多采樣的想法就是先給隱變量$z$一個先驗$p(z)$,然后再根據條件概率$P_{\theta }(x\mid z)$來采樣$x$,吉布斯采樣就是這種想法,把在聯合概率上采樣轉換成了在條件概率上采樣。
還有一種采樣想法是生成對抗網絡的思想,就是我先從一個簡單分布采樣$z$,比如標准正態分布,然后利用神經網絡,把這個$z$輸入,構建一個函數g,使得$g(z)$服從真實分布$P_{r }(x)$,就可以避免密度估計的問題了。