[機器學習入門] 李宏毅機器學習筆記-19 (Deep Generative Model-part 2:深度生成模型-part 2)
VIDEO |
---|
Why VAE?
用VAE,從code space上去sample一個code,能得到一個比較好的image,而auto encoder可能得不到。
將code加上了noise,而variance決定了noise的大小,variance是train出來的。variance要做一些限制,否則就會是0,所以就要用Minimize。
以上是直觀的解釋,那么回到我們要解決的問題,即Estimate the probability distribution
那么怎么來Estimate the probability distribution呢?可以用Gaussion Mixtrue Model
怎樣從Gaussian Mixture Model 里sample一個data呢?
首先有一個multinomial distribution,先決定sample 其中的哪一個gaussian,用m表示。有了m,就可以找到μ和Σ,然后可以sample出一個x。
Each x you generate is from a mixture
Distributed representation is better than cluster.
也就是說每一個x并不屬于某一個class或cluster,而是它有一個vector來描述他所描述的不同對象的特性,所以,VAE其實就是Gaussian Mixture Model的distribute representation的版本。
先sample一個 z ,假設μ 和 σ都分別來自函數(shù)μ(z) 和 σ(z),在z的space里,每一個點都有可能被sample到,只是可能性有大小m,z上的每一個點都可能被sample到并對應著無窮多個gaussian,那么function該怎么找呢?那么可以說NN就是function,訓練出這個NN就ok啦。
對gaussian的假設是很隨意的,因為NN都能被訓練適應。
現(xiàn)在手上已經有了一批image x,maximize已有image的L。
上面的NN其實就是decoder,下面的是encoder。
那么那么logP(x)怎么求呢?
思想就是,likelihood = KL+Lb,logP(x)只與log(x|z)有關,無論q怎么調,圖中的上線是不會變的。這時假如固定住p,調q是會使Lb一直上升,最后likelihood會和Lb非常接近,而再繼續(xù)下去likelihood也會隨之變大。
下面要做的
conditional VAE
Problem of VAE