天天看點

李宏毅機器學習|生成對抗網絡Generative Adversarial Network (GAN)|學習筆記(1)|GAN基本概念介紹前言1 Generation2 Generative Adversarial Network (GAN)結果展示總結

文章目錄

  • 前言
  • 1 Generation
  • 2 Generative Adversarial Network (GAN)
    • Generator
    • Discriminator
    • Basic Idea of GAN
    • Algorithm
  • 結果展示
  • 總結

前言

之前老早就聽說了GAN,然後對這個方法還不是很了解,想在今後的論文中應用它。是以來學習下李宏毅講的GAN,記個筆記。視訊位址

1 Generation

李宏毅機器學習|生成對抗網絡Generative Adversarial Network (GAN)|學習筆記(1)|GAN基本概念介紹前言1 Generation2 Generative Adversarial Network (GAN)結果展示總結

之前的神經網絡的模型大多是給定x,然後通過Nertwork來給定一個y。

但是Generation是給定X和一個簡單分布的Z(如高斯分布),然後通過Network 給出一個y的分布,此時這個Network就叫做Generator。

為什麼我們需要一個關于y的分布結果,主要是用于有創造力的工作。

李宏毅機器學習|生成對抗網絡Generative Adversarial Network (GAN)|學習筆記(1)|GAN基本概念介紹前言1 Generation2 Generative Adversarial Network (GAN)結果展示總結

(李老師老二次元了QAQ)

2 Generative Adversarial Network (GAN)

Generator

首先通過例子來引出GAN,李老師舉的例子是動漫人物臉的生成。首先是Generator:

李宏毅機器學習|生成對抗網絡Generative Adversarial Network (GAN)|學習筆記(1)|GAN基本概念介紹前言1 Generation2 Generative Adversarial Network (GAN)結果展示總結

其中的Unconditional generation指的是不用前文提到的x,而隻用z的部分來生成y。這裡其實生成的y就是一個高緯的向量(如64x64x3),而一張圖檔剛好就是一個高緯的向量,然後稍微的整理一下就行了。

z通常是一個低緯度的向量,次元一般是自己定義的。然後圖中是通過Normal Distribution的方式來采樣得到z的,然後generator根據不同的z生成不同的y。至于是要采用Normal Distribution 還是Guass Distribution,不同的Distribution都可以,雖然有差異,但是隻要保證你的Generator能夠識别這樣的分布就行了。

Discriminator

然後就是Discriminator:

李宏毅機器學習|生成對抗網絡Generative Adversarial Network (GAN)|學習筆記(1)|GAN基本概念介紹前言1 Generation2 Generative Adversarial Network (GAN)結果展示總結

Discriminator是一個評判者,這裡的輸入是一張圖檔,然後輸出是對這個圖檔的真實性的一個打分。是以Discriminator是一個神經網絡,是一個函數,模型是自己定義的。

下面就是舉的例子,打分越高說明圖檔更像是動漫人物。

Basic Idea of GAN

李宏毅機器學習|生成對抗網絡Generative Adversarial Network (GAN)|學習筆記(1)|GAN基本概念介紹前言1 Generation2 Generative Adversarial Network (GAN)結果展示總結

枯葉蝶和波波鳥之間的一種互相進化的思想。

李宏毅機器學習|生成對抗網絡Generative Adversarial Network (GAN)|學習筆記(1)|GAN基本概念介紹前言1 Generation2 Generative Adversarial Network (GAN)結果展示總結

比如第一代Generator先是産生的任意的圖檔,然後第一代Discriminator如發現這些圖像沒有眼睛。然而第二代的Generator要做的就是産生有眼睛的圖像然後騙過第一代的Discriminator。然後第一代的Discriminator也會進化,比如發現了還有頭發等。然後第三代Generator就産生頭發來騙過第二代的Discriminator,如此循環往複,直到Generator産生很像動漫人物的圖像。

Adversarial:這裡應該說,Generator和Discriminator是亦敵亦友的關系。

Algorithm

李宏毅機器學習|生成對抗網絡Generative Adversarial Network (GAN)|學習筆記(1)|GAN基本概念介紹前言1 Generation2 Generative Adversarial Network (GAN)結果展示總結

第一步:固定Generator的參數,訓練Discriminator的參數。主要的方式就是通過Generator産生的圖像和本身擁有的Darabase的圖像來訓練Discriminator.,主要是讓Discriminator學會給真實的圖像打高分,給虛假的圖像打低分。比如像圖中那樣,真實的都标記為1,假的都标記為0。那麼就可以用分類或者回歸的方式來解決這個問題。

李宏毅機器學習|生成對抗網絡Generative Adversarial Network (GAN)|學習筆記(1)|GAN基本概念介紹前言1 Generation2 Generative Adversarial Network (GAN)結果展示總結

第二步:固定Discriminator的參數,訓練Generator的參數。簡單來說可以把Generator和Discriminator兩個網絡合成一個網絡,輸入就是如Normal Distribution采樣的向量,輸出的是一個打分。目的就是最大化打分,隻是說這裡隻更新Generator的參數。

形象的說就是讓Generator去騙過Discriminator。

李宏毅機器學習|生成對抗網絡Generative Adversarial Network (GAN)|學習筆記(1)|GAN基本概念介紹前言1 Generation2 Generative Adversarial Network (GAN)結果展示總結

接下來就是不斷的重複上述的過程。

結果展示

李老師做的:

李宏毅機器學習|生成對抗網絡Generative Adversarial Network (GAN)|學習筆記(1)|GAN基本概念介紹前言1 Generation2 Generative Adversarial Network (GAN)結果展示總結

李老師助教做的:

李宏毅機器學習|生成對抗網絡Generative Adversarial Network (GAN)|學習筆記(1)|GAN基本概念介紹前言1 Generation2 Generative Adversarial Network (GAN)結果展示總結

2019 StyleGAN

李宏毅機器學習|生成對抗網絡Generative Adversarial Network (GAN)|學習筆記(1)|GAN基本概念介紹前言1 Generation2 Generative Adversarial Network (GAN)結果展示總結

生成不存在的人:

李宏毅機器學習|生成對抗網絡Generative Adversarial Network (GAN)|學習筆記(1)|GAN基本概念介紹前言1 Generation2 Generative Adversarial Network (GAN)結果展示總結

産生不存在的其他東西

李宏毅機器學習|生成對抗網絡Generative Adversarial Network (GAN)|學習筆記(1)|GAN基本概念介紹前言1 Generation2 Generative Adversarial Network (GAN)結果展示總結

總結

本文隻是介紹了GAN的基本概念,介紹了GAN的一些基本思想。值得一說的是,不管是Generator還是Discriminator,它們都是神經網絡,至于定義成什麼樣的架構,什麼樣的結構需要我們自己來把握。下一篇将介紹一些相關的理論。

繼續閱讀