Skip to content

GAN 影片筆記系列四

介紹

本主題在說明GAN除了用JS divergence以外,也可以用其他divergence作為最佳化的目標

雖然提供很好的基礎,但結論是不同的divergence效果差異不大

f-divergence

廣義的divergence,KL、JS都屬於這個集合內

其中p、q是兩個分佈,x是一筆sample的資料

此外f要符合兩個性質

  1. f(1) = 0
  2. f is convex (最小值==極值)

這兩個性質可以使f-divergence拿來衡量兩個分布的差異

常見divergence

f(x) = xlogx => KL
f(x) = -logx => reverse KL
f(x) = (x-1)^2 => chi square

Fenchel conjugate

每一個 convex function,都有一個conjugate function f* 並滿足

求解示例 因為每一條xt-f(x)都是直線,然後把他們的upper bound 就是 f*

同時f* 與 f 互為conjugate function

與GAN有甚麼關係?

首先利用f-divergence , f 的 convex特性
將f替換

然後我們將t,視為一個會告訴我們x評價的discriminator

並且由於D(x)可能不夠完美,因此只會回傳區域解
但可以利用它逼近原式


經過一陣替換,就變成我們熟知的GAN型式

divergence Zoo

替換divergence 潛力

Mode collapse問題
產生出的結果會越來越集中
比如人臉生成結果越來越像

Mode Dropping問題
產生出的結果會只有一個模式
比如人臉每次只能產生一個膚色的人

以前大家猜測是divergence問題

如上圖,兩種方法的生成分佈不同
(KL 比較平,並且取中點,造成模糊
reverse KL => Mode dropping )

但是後來實驗發現可能不完全是此原因

如何解決Mode dropping ?

ensemble (暴力解)
每個產生一種分佈,需要25個就train 25種分佈