GAN相關工作介紹_機器學習

來源:互聯網
上載者:User

GAN介紹

GenerativeAdversarial Nets

產生對抗網路的思想在2014年提出,在原始的paper中,作者用博弈論來闡釋GAN架構背後的思想。每一個GAN架構,都包含一個產生模型G和一個判別模型D,判別模型的任務是判斷給定映像是否看起來‘自然’,換句話說,是否像是機器產生的。而產生器的任務是,產生看起來‘自然’的映像,要求與未經處理資料分布儘可能一致。作者在文中有一個形象的比喻:產生模型G就像小偷,要儘可能地提高自己的偷竊手段去欺騙身為警察的判別模型D,而D也要儘可能的訓練自己的火眼金睛去防止被欺騙。實現的方法是讓兩個網路相互競爭,其中產生器網路不斷捕捉訓練庫裡真實圖片的機率分布,將輸入的隨機雜訊z轉變成新的樣本(也就是假資料)。判別器網路可以同時觀察真實和假造的資料,判斷這個資料到底是不是真的。所以,體現在公式上,就是下面這樣一個 minmax 的形式。


其中,D(x)代表x來自真實資料而不是產生器產生的資料的機率,通過訓練G使得log(1-d(g(z)))的值最小。

如圖所示,我們手上有真實資料(黑色點,data)和模型產生的偽資料(綠色線,model distribution,是由我們的 z 映射過去的)(畫成波峰的形式是因為它們都代表著各自的分布,其中縱軸是分布,橫軸是我們的 x)。而我們要學習的 D 就是那條藍色的點線,這條線的目的是把融在一起的 data 和 model 分布給區分開。(寫成公式就是 data 和 model分布相加做分母,分子則是真實的 data 分布。我們最終要達到的效果是:D 無限接近於常數 1/2。換句話說就是要 Pmodel 和 Pdata 無限相似。這個時候,我們的 D 分布再也沒法分辨出真偽資料的區別了。這時候,我們就可以說我們訓練出了一個爐火純青的造假者(產生模型)。)

GAN這種競爭的方式不再要求一個假設的資料分布,而是直接進行採樣,從而真正達到了理論上可以完全逼近真實資料。這也是 GAN 最大的優勢。

雖然GAN不再需要預先建模,但這個優點也帶來了一些麻煩。

儘管它用一個noise z作為先驗,但產生模型如何利用這個z是無法控制的。也就是說,GAN 的學習模式太過於自由了,使得 GAN 的訓練過程和訓練結果很多時候都不太可控。在這篇paper中,每次學習參數的更新過程,被設為 D 更新 k 回,G 才更新 1 回,就是出於減少G 的“自由度”的考慮。


 

ConditionalGenerative Adversarial Nets

為瞭解決GAN太過自由的這個問題,一個很自然的思想便是給 GAN 加上一點點束縛,於是便有了Conditional Generative Adversarial Nets(CGAN)。這篇工作的改進非常直接,就是在D和G的建模中分別加入 條件變數 y。也因此,CGAN 可以看做把無監督的 GAN 變成有監督的模型的一種改進。後來這一方式也被證明非常有效。

 

 

 

Deep Generative Image Models using a LaplacianPyramid of Adversarial Networks

同樣,為了改進GAN 太自由的問題,還有一個想法就是不要讓 GAN 一次完成全部任務,而是一次產生一部分,分多次產生一張完整的圖片。本篇paper就是採用這樣的思想,在GAN 基礎上做出了改進。

採用了Laplacian Pyramid 實現了“序列化”,也因此起名做 LAPGAN 。

在學習序列中,LAPGAN 不斷地進行 downsample 和 upsample 操作,然後在每一個 Pyramid level 中,只將殘差傳遞給判別模型D進行判斷。這樣的“序列化+ 殘差結合”的方式,能有效減少 GAN 需要學習的內容和難度,從而達到了 “輔助”GAN 學習的目的。


這個圖中,當映像是較大像素時,便需要進行Laplacian Pyramid 過程,並且在每一個Pyramidlevel ,傳給 D 的只是針對殘差的比較。另一方面,當像素足夠小的時候,也就是最右邊的 step,則不再需要進行upsample和downsample的過程,這時給 D 的傳送則是未經處理的樣本和產生的映像。通過這種方法,能夠得到高解析度映像。

 

Unsupervised Representation Learning with DeepConvolutional Generative Adversarial Networks

DCGAN理論創新不大,但是工程經驗值得借鑒

LAPGAN 中指出 Batch Normalization(BN)被用在 GAN 中的 D 上會導致整個學習的崩潰,但是DCGAN中則成功將 BN 用在了 G 和 D 上。

學習了 ICLR 2016 論文《Generating Sentences From aContinuous Space》中的interpolate space的方式,將產生圖片中的hidden states都展示了出來,可以看出映像逐漸演變的過程。


比如本圖中,第六行從左至右,顯示了圖中窗戶產生的過程,

與此同時,他們還做了一個有創造性的工作,將向量計算運用在了映像上,得到了如下的一些結果。


比如沒有戴眼鏡的男人減去不戴眼鏡的男人加上不戴眼鏡的女人就得到了戴眼鏡的女人。

 

最後,我還運行了一下DCGAN的開原始碼,使用MNIST資料庫,得到了一些產生的圖片。程式啟動並執行比較慢,跑了12個小時,大概進行了8個epoch。


這是訓練時第一個epoch中第99次迭代時產生的圖片,可見一開始還是比較模糊的。


這是第6個epoch中產生的圖片,可見已經比較清楚了。


這是使用現有模型測試產生的圖片,可見效果還是比較好的,完全看不出是機器產生的。




   

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.