李宏毅: improved generative adversarial network(GAN)

1、generation

從normal distribution(正態分佈)中sample出一些點:

generator需要update它的參數,使得它output產生的image能被discriminator誤認爲它是realistic。

再update discriminator,使得之前被它判斷出來是realistic的image重新判斷爲fake。

不斷更新,直到generator產生出的image夠好爲止。

2、algorithm

3、f-divergence

convex function是指凸函數

(1)KL-divergence

(2)Reverse KL divergence

(3)Chi Square

4、Fenchel Conjugate(Fenchel 共軛)

(1)

給定t,找到不同x下的f*(t)的最大值

先給定x,得到不同的直線,再給定t,找到式子的最大值。不斷取不同的t,就會得到不同的f*,下圖所示的紅色實線就是f*(t),是一個convex。

如下圖:f(x) = xlogx,則畫出來的f*(t)有點像指數(expoential)函數。

(2)connection with GAN

5、double loop vs single step

6、WGAN

(1)earth mover's distance

想把P的distribution移成Q的distribution,會有很多不一樣的方法,所以你的distance也不一樣。選移動距離最小的。

每一個row之和,爲P要運送出去的量,顏色越亮,量越多。

如果用JS divergence,會發現PG50並沒有比PG0更接近Pdata。但如果用earth mover's distance就會不一樣。這樣你在做gradient的時候會有梯度下降。

右邊綠色的那根線,從PG到Pdata纔會有梯度下降,就不會有gradient vanish的問題。

如何optimize?

weight clipping

你的weight是有range的,所以你input變化的時候,你的output變化總是有限的。如果你的K是一個夠大的值,那你的neural network就會滿足k-lipschitz function。

WGAN:用RMSprop好還是用adam效果好是不一定的。

(2)improve WGAN

gradient penalty

這裏的gradient descent是input對output的descent(這裏是input x 對 output D(x)的gradient descent),與從前是對neural network 的參數進行gradient descent不同。

什麼是Ppenalty:

如何從Ppenalty中sample點:

先從Pdata中sample一個點,在從generator中sample一個點 ,再把這兩個點連起來。在他們的連線中間再sample一個點,就是你得到的x。不斷sample。。。

爲什麼這樣的結果是好的呢:

其實你希望gradient越接近1越好。

(3)sentence generation

但是你用neural network產生一個matrix的時候,很難固定只有0和1。對於binary classifier來說,你的discriminator只要認爲這個地方不是1或者不是0(沒有重疊部分no overlap),就會認爲是假的。WGAN就可以派上用場。

7、transform

1)sentence to image

conditional GAN中,如何train discriminator:

方法一:可以用WGAN來train 你的discriminator,input一個image,output distribution。結果:可能會得到清晰,但與輸入內容無關的image。

方法二:input 的是兩個東西,是generator的input和output。看他們兩個合在一起好不好。比如你輸入一個c爲單詞“train”,x爲火車的image,output的值越大越好。negative example:①c爲“train”,但x不爲火車的image;②c不爲“train”,但x爲火車的image。他們output的值要越小越好。結果比較好。

2)image to image

方法一:用傳統的有監督的方法,train出來的圖片可能是糊的。

3)unpaired transformation --cycle GAN  disco GAN

之前都是paired數據,比如說一段話及對應的image,一個簡單的幾何圖及對應真實的image。。。這裏用unpaired,有點類似風格遷移。把一幅一般的風景畫轉換爲梵高式的image。

① cycle GAN

②真實的人物image轉化爲動漫

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章