GAN Lecture 10 (2018): Evaluation & Concluding Remarks
使用GAN做Evaluation:評估用GAN產生出來的object的好壞
傳統評估一個Generator好不好的方法是:給Generator一些training時沒有看過的Real data(以image為例),計算Generator產生出這些image的機率 (Likelihood)
$$ \text{Log Likelihood: }L=\frac{1}{N}\sum_t\log P_G(x^i) $$
算出$P_G$這個Generator算出$x^i$的機率:$P_G(x^i)$,把所有Generator產生出$x^i$的機率取log後做平均,得到一個Likelihood, 他可以表示Generator的好壞,因為如果likelihood越高,代表容易sample出這些real data
但通常GAN沒辦法用這個方式評估,因為GAN是先從一個probability distribution 裡面 smaple出一些向量,丟給Generator產生圖片,如果Generator只是一個簡單的Gaussian Mixture Model,那可以從image推回原來的向量,但通常Generator不會只是一個Gaussian Mixture Model,他會是一個複雜的NN,就無法求出產生某一筆data的機率$P_G(x^i)$。
不過還是有一些解決方法的
Generator產生很多data,然後用一個Gaussian Distribution去逼近他所產生的data
舉例來說,Generate出一堆向量,然後這些向量當作Gaussian Model的mean,並給予一個variance,把這些Gaussian通通疊在一起,就可以得到一個gaussian mixture model。再用這個gaussian mixture model來計算產生出real data的機率,就可以估測出這個generator產生出real data的likelihood了
不過這個方法有很多問題,例如不知道要幾個gaussian才好
退一步來想,就算真的可以找出likelihood,但likelihood本身是不是足夠用來代表quality?