Tuesday, May 23, 2017

GAN Warm Up 1 - Log Likelihood

GAN Warm Up 1 - Log Likelihood

2017/03/30

前言,GAN 整個寫出來會很長,所以先暖身一下,以免受到運動傷害!

-----

我看版上的同好對 GAN [1] 都蠻感興趣的,當然我自己也是。論文其實不容易看懂,在查閱一些網路文章的解說之後,原理不難瞭解。鑑別網路D要判斷生成網路G的圖片是不是屬於真實的圖片資料庫。

用個很宅的比喻:比克跟神本來就是同一個。一會兒比克出招,神餵招。一會兒神出招,比克餵招。在一連串的練功之後,神再也分辨不出比克生成的圖片是真是假,比克贏了,Goodfellow 就達成了他的目的,讓比克成為超級的偽幣製造者,神退場。

鑑別網路D可以是一般的CNN,生成網路G概念上比較困難。但直觀上只是把鑑別網路D倒過來訓練,餵入亂數,生成圖片。文獻上看到的多是一個一百維的亂數產生器。所以重點還是在訓練。

[1] 裡面有兩個公式,分別是圖1.1a跟圖1.2a。這兩個公式是本篇論文的核心。謹尊Mark的教誨,看到公式不要跳過去,要直指核心,才能花開見佛。所以在上面的概念粗具之後,我們可以來仔細探究這兩個公式為何?

打開統計學課本,其實符號與論文並不一致。後來想到 [2] 裡面有機率的章節,所以可以把統計部分的定義搞定。至於極限與梯度,請自行參閱微積分課本。圖1.1a可以用圖1.1b、1.1c、1.1d把它分解,完全瞭解。分別是隨機變數、期望值函數、以及高斯(常態)分布。

-----


Fig. 1.1a. Gradient, p. 2, [1]



Fig. 1.1b. Random variable, p. 57, [2].



Fig. 1.1c. Expectation function, p. 60, [2].



Fig. 1.1d. Gaussian distribution, p. 63, [2]

-----

接下來是本論文的重頭戲,圖1.2a的訓練公式。主旨要max D, min G。有了上面的定義分解,這個公式只剩下 log 這個可疑份子。如何搞定它,其實論文這一節上頭一開始,圖1.2b就告訴我們可以參考 [3]。有關 log likelihood,可以看一下圖1.2c,在 [2] 的18.1這一節用了兩頁解釋。

-----


Fig. 1.2a. GAN training formula, p. 2, [1].



Fig. 1.2b. Log likelihood reference 1, p. 2, [1].



Fig. 1.2c. Log likelihood reference 1, p. 606, [2].

-----

所以如果 log likelihood 搞定,GAN 應該也差不多就搞定了!

有這麼簡單嗎?其實我認為 GAN 算是 Goodfellow 的 Debut,為了讓大家了解 [1],他才寫了 [2],GAN 躲在 [2] 的第二十章 DEEP GENERATIVE MODELS 裡的第十節的 Deep Generative Nets 的第四小節 Generative Adversarial Neworks 裡,但整本書,包括前面的數學、中間基本的章節、後面高段的模型,都可說是用來烘托 GAN 的出場!

所以,GAN 可說不難,也可說很難。

本段熱身,報告完畢!

-----

References

[1] 2014_Generative adversarial nets

[2] 2016_Deep Learning
http://www.deeplearningbook.org/

[3] 2009_Deep Boltzmann machines

-----

Marcel Wang: http://www.cs.toronto.edu/....../Deep_generative_models.pdf

李盈: https://nips.cc/Conferences/2016/Schedule?showEvent=6202NIPS 2016 tutorial 也有詳細的介紹 包含generative model有甚麼用途、如何work、和一些研究。 論文版:https://arxiv.org/abs/1406.2661

Marcel Wang: http://aliensunmin.github.io/project/accv16tutorial/media/generative.pdf

No comments: