# 6. HUNG-YI LEE 2022 ML - Generation 生成式對抗網路 (Generative Adversarial Network, GAN) GAN發明者:[Generative Adversarial Networks,2014](https://arxiv.org/abs/1406.2661) - Ian J. Goodfellow ###### tags: `Machine Learning` * courses - [(一) – 基本概念介紹](https://youtu.be/4OWp0wDu6Xw) * [(二) – 理論介紹與WGAN](https://youtu.be/jNY1WBb8l4U) * [(三) – 生成器效能評估與條件式生成](https://youtu.be/MP0BnVH2yOo) * [(四) – Cycle GAN ](https://youtu.be/wulqhgnDr7E) ## **Introduction** ### 名詞定義 * 若要Max. function,稱為objective function * 若要min. function,稱為loss function * Gaussian random variable:台灣又稱為**常態分布**,英語:Normal distribution 實際上GAN的實作已經五花八門,多以xxGAN命名 概念。**generator的基本架構如下**: > Z每次都sample到不同的東西,與X同時丟進genertor Model中,產生y complex distribution(輸出是一個分布) > ![](https://i.imgur.com/xwYA4vx.png) 其中,以unconditional generation為例(需要先拿掉input x),參考調整後的架構如下: ![](https://i.imgur.com/Mfv6eHA.png) ![](https://i.imgur.com/wQyJBYN.png) > 我們需要多訓練一個discriminator(以圖片為輸入,以scalar為輸出,該數值越大表示越real,越小越fake)。可用CNN、transformer來做。 > ### 為甚麼要GAN - idea > 當任務需要一點創造力(畫圖,聊天機器人)的時候,同樣的輸入會產生不同的輸出 > Discriminator:警察,會越來越嚴苛;generator:做假鈔的,會越做越像,有一種對抗(亦敵亦友)的感覺。 > ![](https://i.imgur.com/ilqsnD6.png) ## **GAN理論基礎** ![](https://i.imgur.com/Fuuf4nY.png) ![](https://i.imgur.com/syJdZCx.png) ![](https://i.imgur.com/hXh04iP.png) ### Divergence ### GAN以難以訓練聞名 * 資料特性 ![](https://i.imgur.com/exfk88m.png) * training tips * JS Divergence問題![](https://i.imgur.com/eQiWqYR.png) * introduce to "Wasserstein distance" * ![](https://i.imgur.com/7JgcNXw.png) * 實作WGAN * SNGAN ## **Generater Performance evaluation(生成器效能評估)** * GAN for Sequence Generation - 難題 * 無法Gradient descent微分!因為decoder有微小變化,但discriminator端的distribution變化小 * 可用RL硬做 * Quality of Image * **看一張圖片**的分布平均 * 所有類別呈常態分布 - GAN表現差 * 某一類別特高/集中 - GAN表現好 * GAN的問題 * Mode Collapse ![](https://i.imgur.com/fOHmAP2.png) * Mode Dropping![](https://i.imgur.com/zCY0DDs.png) * Diversity of Images - 多樣性不足 * 看**一堆圖片**的分布平均 * 用FID評估 * ![](https://i.imgur.com/kz2m9au.png) * 拿hidder layer最後一層輸出(進入softmax之前)的向量來計算FID * VAE vs GAN = GAN結果較好 * GAN有時遇到的問題 * generated data與Real data一樣/左右翻轉 > FID高 > 但GAN表現實際上很差 ## **Conditional generation(條件式生成)** 實際應用於: * text-to-image * 需要有label的配對資料 * positive data * negative data * Image translation(pix2pix) * 實作上GAN+supervised可得最好的結果 * https://arxiv.org/abs/1611.07004 * sound to image * sound to GIF * Samsung * https://arxiv.org/abs/1905.08233 ## **Learning from unpaired Data(將GAN用於unsupervised learning)** * unlabeled data = unpaired data * HW3 pseudo labeling/HW5 back translation * 仍需要一些paired data,為semi-supervised learning ### 何時會完全沒有paired data? * Image Style Transfer影像風格轉換,若unpaired data時 * unsupervised conditional generation * Cycle GAN 想法 - cycle consistency * train兩個generater * x domain 產生 y domain * y domain 還原 x domain * 可以雙向 * 其他想法基本都與Cycle GAN相同 * Disco GAN * Dual GAN * Cycle GAN * StarGAN可在多種風格間作轉換 * Text Syle Transfer文字風格轉換,若unpaired data時 * eg.負面句子轉為正面句子 * 需要RL硬做