SlideShare a Scribd company logo
1 of 195
Download to read offline
探索及應用生成對抗網路
台灣資料科學年會系列課程
2017年12月17日
魏澤人
投影片(今天)網址:
30cm.today
9:30-10:30
生成對抗網路簡介
10:50-12:30
生成對抗網路的進展
13:20-15:00
從論文到程式碼
15:20-17:00
從程式碼到應用
生成對抗網路簡介
魏澤人
深度學習 = 現代煉金術? see also https://www.facebook.com/yann.lecun/posts/10154938130592143
深度學習
監督式學習
Supervised Learning
Example
Example
機率
0.01
0.8
0.01
0.02
0.05
f( )=5
f( )=4
f( )=1
生成模型
f(5) =
f(4) =
f(1) =
from Science Museum of Minnesota
結構
Structured Prediction
Steve Snodgrass/Flickr
人工合成
保證不含天然成份
make.girls.moe
例子: 字型
現在的問題是
給定一些例子
什麼叫做像?
maximum likelihood
或看成 KL-divergence
● Autoencoder
● Variational Autoencoder
● WaveNet
● Boltzmann
● Fully visible belief nets
● PixelRNN
● Generative Stochastic Network
● 可以平行生成
● Generator 的限制少
● 不需要 Markov chains ( 高維度及計算量)
● 生出的結果較好
(但比較不好訓練)
Why GAN?
Generator vs Discriminator
G
DData
Generated
真
假
z
Loss = cross entropy
● 可以看成零和 min-max 對奕
● 理論上等於 minimize JS divergence
實際上, G
By 李弘毅教授
By 李弘毅教授
Amazing GANs by Ironhead
https://docs.google.com/presentation/d/14jJL6MR2uf4CD7PmsgMtivX8
WfK-QMdKdwrLEYH9qDA/edit#slide=id.g22c42edce6_0_644
生成對抗網路的進展
魏澤人
比喻
G 和 D 的宿命對決
在自己不懂的情形下,
要如何教育小孩呢?
跟標準答案不一樣就打
我不知道成功是什麼,
但成功並不容易
有什麼壞處?
Mode collapse
Metz et al. (2016)
Some solutions:
● Minibatch features
● Unrolled
難訓練
● https://github.com/soumith/ganhacks
● Towards Principled Methods for Training Generative Adversarial Networks
先複習一點資訊理論
熵 Entropy
用所需的資訊量來看
● 4 種可能,各 ¼ 機率, 那需要 2bit 的資訊量來紀錄一次事件。
● 8 種可能,各 ⅛ 機率, 那需要 3bit 的資訊量來紀錄一次事件。
● 如果 a, b, 的機率各是 ¼ , c,d,e,f 的機率各是 ⅛ , 那麼平均來說 2.5bit
● 所以 x 的機率是 p 時, I(x) = -log(p)
● H(X) 是平均資訊量
● 或
Conditional Entropy
已知 Y, 是否有幫助我們知道 X?
Joint Entropy
X, Y 合起來有多少資訊量?
所以
● H(X, Y) ≤ H(X) + H(Y)
● H(X, Y) = H(Y) + H(X|Y)
● H(X, Y) = H(X) + H(Y|X)
● H(X|Y) = H(X,Y) - H(Y)
● Mutual information
○ I(X;Y) = H(X) + H(Y) - H(X, Y)
Cross Entropy
● 預測機率是 q
● 實際機率是 p
所需的資訊量
Kullback–Leibler divergence
● 以為機率分佈是 Q
● 實則機率分佈是 P
浪費了多少 bit ?
= H(P, Q) - H(P)
KL and Reverse-KL
P=
P= Q=?
KLreverse-KL
Jensen–Shannon divergence
Symmetrised divergence
λ divergence
GAN?
GAN loss 差不多就是
JS divergence
參考:
GAN loss =
Wasserstein GAN
https://arxiv.org/pdf/1701.07875.pdf
什麼叫做相似 (以機率分佈來說)
● KL
● JS
● Earth-Mover or
Wassertein-1
● Total Variation(TV)
A 有 32 種
δ=δ=
Wasserstein Distance
是所有的機率分佈 γ(x, y) , 其
marginal 分別是
0
⅓
⅓
⅓
0
⅕ ⅕ ⅕ ⅕ ⅕
0
⅕ 2/15
⅓
1/15
⅕ 1/15
⅓
2/15
⅕ ⅓
0
⅕ ⅕ ⅕ ⅕ ⅕
0
2/15 1/5
⅓
1/15
⅕ 1/15
⅓
1/5 2/15
⅓
0
⅕ ⅕ ⅕ ⅕ ⅕
http://www.cs.utexas.edu/~grauman/research/projects/contours/emd.htm cvpr04
Wasserstein Distance
是所有的機率分佈 γ(x, y) , 其
marginal 分別是
Kantorovich-Rubinstein Duality
K-Lipschitz:
是 Compact Space, 如”盒子”
Least Squares Generative
Adversarial Networks
https://arxiv.org/abs/1611.04076
When a,b,c = -1, 1, 0, it minimize Pearson chi-square divergence
f-divergence
WGAN with Gradient Penalty
Improved Training of Wasserstein GANs
https://arxiv.org/abs/1704.00028
何不直接限制
Gradient ?
Gradient Penalty
在真假資料相連的直線上
DRAGAN
Deep Regret Analytic Generative Adversarial Networks
On Convergence and Stability of GANs https://arxiv.org/abs/1705.07215
回到原點,在自己不懂的情形下,要如何教育小孩呢?
跟標準答案不一樣就打?
● WGAN
○ 不要打太多
● WGAN gp
○ 打小力一點
● DRAGAN
○ 分數高的時候,打小力一點
我不知道成功是什麼,
但成功並不容易
BEGAN
Boundary Equilibrium Generative Adversarial Networks
https://arxiv.org/abs/1703.10717
Autoencoder loss:
BEGAN loss:
Progressive Growing of GANs for Improved Quality,
Stability, and Variation
http://research.nvidia.com/publication/2017-10_Progressive-Growing-of
Pix2Pix
Image-to-Image Translation with Conditional Adversarial Networks
Phillip Isola, Jun-Yan Zhu, Tinghui Zhou, Alexei A. Efros
G
不就是監督式學習?
G
D
真
假
Experiment
L1
MSE
Variation
MSE
L1
Pix2Pix
Pix2Pix
CycleGAN
Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks
Jun-Yan Zhu*, Taesung Park*, Phillip Isola, Alexei A. Efros Berkeley AI Research Lab, UC Berkeley
G(x) ≈Y, F(y) ≈ X
F(G(x)) = x, G(F(y)) = y
從論文到程式碼
魏澤人
Dataset?
可以先從 MNIST 和 Cifar10 開始
先回到早期的論文
Generative Adversarial Networks (GAN)
https://arxiv.org/abs/1406.2661
Unsupervised Representation Learning with Deep Convolutional Generative
Adversarial Networks https://arxiv.org/abs/1511.06434 (DCGAN)
How to train a GAN https://github.com/soumith/ganhacks
● Normalize the inputs
● A modified loss function
● Use a spherical Z
● BatchNorm/Instance Normalization
● Avoid Sparse Gradients: ReLU, MaxPool
● Use Soft and Noisy Labels
● Use stability tricks from RL
● Use the ADAM Optimizer
G 和 D 的網路要怎麼實作?
我的實作 https://github.com/tjwei/GANotebooks
Keras
訓練 netD
訓練 netG
Lasagne
Tensorflow
PyTorch
Use a spherical Z
np.random.normal(size=(batchSize, nz))
可以先看看 nz = 32~128
簡單的 Generator
簡單的 Discriminator
Batchnorm
起始權重
WGAN 訓練的迴圈
Weight Clipping
Gradient Penalty
可以加入的東西
● ACGAN
○ https://arxiv.org/abs/1610.09585
● InfoGAN
○ https://arxiv.org/abs/1606.03657
● Conditional GAN
○ https://arxiv.org/abs/1411.1784
● Semi-supervised GAN
○ https://arxiv.org/abs/1606.01583
make.girls.moe
類別
z
G
D
X 真
假
Conditional GAN
類別
z
G
D/CX
真
假
Semi-Supervised GAN
Latent
● Discrete
● Continuous
z
G
D/C
X
真
假
InfoGAN
類別
z
G
D/C
X
真
假
ACGAN
Data?
LSUN
CelebA
https://github.com/jayleicn/animeGAN
animeface-character-dataset
http://www.nurs.or.jp/~nagadomi/animeface-character-dataset/
make.girls.moe
Pix2Pix https://phillipi.github.io/pix2pix/
CycleGAN https://github.com/junyanz/CycleGAN
● facades: 400 images from the CMP Facades dataset. [Citation]
● cityscapes: 2975 images from the Cityscapes training set. [Citation]
● maps: 1096 training images scraped from Google Maps.
● horse2zebra: 939 horse images and 1177 zebra images downloaded from ImageNet using
keywords wild horse and zebra
● apple2orange: 996 apple images and 1020 orange images downloaded from ImageNet using
keywords apple and navel orange.
● summer2winter_yosemite: 1273 summer Yosemite images and 854 winter Yosemite images were
downloaded using Flickr API. See more details in our paper.
● monet2photo, vangogh2photo, ukiyoe2photo, cezanne2photo: The art images were downloaded
from Wikiart. The real photos are downloaded from Flickr using the combination of the tags
landscape and landscapephotography. The training set size of each class is Monet:1074,
Cezanne:584, Van Gogh:401, Ukiyo-e:1433, Photographs:6853.
● iphone2dslr_flower: both classes of images were downlaoded from Flickr. The training set size of
each class is iPhone:1813, DSLR:3316. See more details in our paper.
更多應用
Super Resolution
StackGAN (CUB test set)
StackGAN (Oxford-102 test set & COCO validation set)
TAC-GAN
iGAN
https://github.com/pathak22/context-encoder InPainting
GenerativeFaceCompletion
● 聲音?
● 文字?
● Sequence?
● Reinforcement Learning?
○ Connecting Generative Adversarial Networks and Actor-Critic Methods
○ Automatic Goal Generation for Reinforcement Learning Agents
Have GAN,
will travel.

More Related Content

What's hot

Yann le cun
Yann le cunYann le cun
Yann le cun
Yandex
 

What's hot (20)

The world of loss function
The world of loss functionThe world of loss function
The world of loss function
 
InfoGAN: Interpretable Representation Learning by Information Maximizing Gene...
InfoGAN: Interpretable Representation Learning by Information Maximizing Gene...InfoGAN: Interpretable Representation Learning by Information Maximizing Gene...
InfoGAN: Interpretable Representation Learning by Information Maximizing Gene...
 
Yann le cun
Yann le cunYann le cun
Yann le cun
 
Graphic Notes on Linear Algebra and Data Science
Graphic Notes on Linear Algebra and Data ScienceGraphic Notes on Linear Algebra and Data Science
Graphic Notes on Linear Algebra and Data Science
 
[DL輪読会]Diffusion-based Voice Conversion with Fast Maximum Likelihood Samplin...
[DL輪読会]Diffusion-based Voice Conversion with Fast  Maximum Likelihood Samplin...[DL輪読会]Diffusion-based Voice Conversion with Fast  Maximum Likelihood Samplin...
[DL輪読会]Diffusion-based Voice Conversion with Fast Maximum Likelihood Samplin...
 
Deep Generative Models
Deep Generative ModelsDeep Generative Models
Deep Generative Models
 
東京大学2020年度深層学習(Deep learning基礎講座) 第9回「深層学習と自然言語処理」(一部文字が欠けてます)
東京大学2020年度深層学習(Deep learning基礎講座) 第9回「深層学習と自然言語処理」(一部文字が欠けてます)東京大学2020年度深層学習(Deep learning基礎講座) 第9回「深層学習と自然言語処理」(一部文字が欠けてます)
東京大学2020年度深層学習(Deep learning基礎講座) 第9回「深層学習と自然言語処理」(一部文字が欠けてます)
 
Variational Autoencoder
Variational AutoencoderVariational Autoencoder
Variational Autoencoder
 
金融理論における深層学習の活用について
金融理論における深層学習の活用について金融理論における深層学習の活用について
金融理論における深層学習の活用について
 
フラグを愛でる
フラグを愛でるフラグを愛でる
フラグを愛でる
 
Generative adversarial networks
Generative adversarial networksGenerative adversarial networks
Generative adversarial networks
 
Variational Autoencoder Tutorial
Variational Autoencoder Tutorial Variational Autoencoder Tutorial
Variational Autoencoder Tutorial
 
【DL輪読会】GPT-4Technical Report
【DL輪読会】GPT-4Technical Report【DL輪読会】GPT-4Technical Report
【DL輪読会】GPT-4Technical Report
 
多人数不完全情報ゲームにおけるAI ~ポーカーと麻雀を例として~
多人数不完全情報ゲームにおけるAI ~ポーカーと麻雀を例として~多人数不完全情報ゲームにおけるAI ~ポーカーと麻雀を例として~
多人数不完全情報ゲームにおけるAI ~ポーカーと麻雀を例として~
 
パターン認識と機械学習 §6.2 カーネル関数の構成
パターン認識と機械学習 §6.2 カーネル関数の構成パターン認識と機械学習 §6.2 カーネル関数の構成
パターン認識と機械学習 §6.2 カーネル関数の構成
 
Deep Learning for Computer Vision: Generative models and adversarial training...
Deep Learning for Computer Vision: Generative models and adversarial training...Deep Learning for Computer Vision: Generative models and adversarial training...
Deep Learning for Computer Vision: Generative models and adversarial training...
 
カーネル法:正定値カーネルの理論
カーネル法:正定値カーネルの理論カーネル法:正定値カーネルの理論
カーネル法:正定値カーネルの理論
 
スパースモデリング、スパースコーディングとその数理(第11回WBA若手の会)
スパースモデリング、スパースコーディングとその数理(第11回WBA若手の会)スパースモデリング、スパースコーディングとその数理(第11回WBA若手の会)
スパースモデリング、スパースコーディングとその数理(第11回WBA若手の会)
 
PyData.Tokyo Meetup #21 講演資料「Optuna ハイパーパラメータ最適化フレームワーク」太田 健
PyData.Tokyo Meetup #21 講演資料「Optuna ハイパーパラメータ最適化フレームワーク」太田 健PyData.Tokyo Meetup #21 講演資料「Optuna ハイパーパラメータ最適化フレームワーク」太田 健
PyData.Tokyo Meetup #21 講演資料「Optuna ハイパーパラメータ最適化フレームワーク」太田 健
 
Recent Advances on Transfer Learning and Related Topics Ver.2
Recent Advances on Transfer Learning and Related Topics Ver.2Recent Advances on Transfer Learning and Related Topics Ver.2
Recent Advances on Transfer Learning and Related Topics Ver.2
 

More from 台灣資料科學年會

[2018 台灣人工智慧學校校友年會] 產業經驗分享: 如何用最少的訓練樣本,得到最好的深度學習影像分析結果,減少一半人力,提升一倍品質 / 李明達
[2018 台灣人工智慧學校校友年會] 產業經驗分享: 如何用最少的訓練樣本,得到最好的深度學習影像分析結果,減少一半人力,提升一倍品質 / 李明達[2018 台灣人工智慧學校校友年會] 產業經驗分享: 如何用最少的訓練樣本,得到最好的深度學習影像分析結果,減少一半人力,提升一倍品質 / 李明達
[2018 台灣人工智慧學校校友年會] 產業經驗分享: 如何用最少的訓練樣本,得到最好的深度學習影像分析結果,減少一半人力,提升一倍品質 / 李明達
台灣資料科學年會
 

More from 台灣資料科學年會 (20)

[台灣人工智慧學校] 人工智慧技術發展與應用
[台灣人工智慧學校] 人工智慧技術發展與應用[台灣人工智慧學校] 人工智慧技術發展與應用
[台灣人工智慧學校] 人工智慧技術發展與應用
 
[台灣人工智慧學校] 執行長報告
[台灣人工智慧學校] 執行長報告[台灣人工智慧學校] 執行長報告
[台灣人工智慧學校] 執行長報告
 
[台灣人工智慧學校] 工業 4.0 與智慧製造的發展趨勢與挑戰
[台灣人工智慧學校] 工業 4.0 與智慧製造的發展趨勢與挑戰[台灣人工智慧學校] 工業 4.0 與智慧製造的發展趨勢與挑戰
[台灣人工智慧學校] 工業 4.0 與智慧製造的發展趨勢與挑戰
 
[台灣人工智慧學校] 開創台灣產業智慧轉型的新契機
[台灣人工智慧學校] 開創台灣產業智慧轉型的新契機[台灣人工智慧學校] 開創台灣產業智慧轉型的新契機
[台灣人工智慧學校] 開創台灣產業智慧轉型的新契機
 
[台灣人工智慧學校] 開創台灣產業智慧轉型的新契機
[台灣人工智慧學校] 開創台灣產業智慧轉型的新契機[台灣人工智慧學校] 開創台灣產業智慧轉型的新契機
[台灣人工智慧學校] 開創台灣產業智慧轉型的新契機
 
[台灣人工智慧學校] 台北總校第三期結業典禮 - 執行長談話
[台灣人工智慧學校] 台北總校第三期結業典禮 - 執行長談話[台灣人工智慧學校] 台北總校第三期結業典禮 - 執行長談話
[台灣人工智慧學校] 台北總校第三期結業典禮 - 執行長談話
 
[TOxAIA台中分校] AI 引爆新工業革命,智慧機械首都台中轉型論壇
[TOxAIA台中分校] AI 引爆新工業革命,智慧機械首都台中轉型論壇[TOxAIA台中分校] AI 引爆新工業革命,智慧機械首都台中轉型論壇
[TOxAIA台中分校] AI 引爆新工業革命,智慧機械首都台中轉型論壇
 
[TOxAIA台中分校] 2019 台灣數位轉型 與產業升級趨勢觀察
[TOxAIA台中分校] 2019 台灣數位轉型 與產業升級趨勢觀察 [TOxAIA台中分校] 2019 台灣數位轉型 與產業升級趨勢觀察
[TOxAIA台中分校] 2019 台灣數位轉型 與產業升級趨勢觀察
 
[TOxAIA台中分校] 智慧製造成真! 產線導入AI的致勝關鍵
[TOxAIA台中分校] 智慧製造成真! 產線導入AI的致勝關鍵[TOxAIA台中分校] 智慧製造成真! 產線導入AI的致勝關鍵
[TOxAIA台中分校] 智慧製造成真! 產線導入AI的致勝關鍵
 
[台灣人工智慧學校] 從經濟學看人工智慧產業應用
[台灣人工智慧學校] 從經濟學看人工智慧產業應用[台灣人工智慧學校] 從經濟學看人工智慧產業應用
[台灣人工智慧學校] 從經濟學看人工智慧產業應用
 
[台灣人工智慧學校] 台中分校第二期開學典禮 - 執行長報告
[台灣人工智慧學校] 台中分校第二期開學典禮 - 執行長報告[台灣人工智慧學校] 台中分校第二期開學典禮 - 執行長報告
[台灣人工智慧學校] 台中分校第二期開學典禮 - 執行長報告
 
台灣人工智慧學校成果發表會
台灣人工智慧學校成果發表會台灣人工智慧學校成果發表會
台灣人工智慧學校成果發表會
 
[台中分校] 第一期結業典禮 - 執行長談話
[台中分校] 第一期結業典禮 - 執行長談話[台中分校] 第一期結業典禮 - 執行長談話
[台中分校] 第一期結業典禮 - 執行長談話
 
[TOxAIA新竹分校] 工業4.0潛力新應用! 多模式對話機器人
[TOxAIA新竹分校] 工業4.0潛力新應用! 多模式對話機器人[TOxAIA新竹分校] 工業4.0潛力新應用! 多模式對話機器人
[TOxAIA新竹分校] 工業4.0潛力新應用! 多模式對話機器人
 
[TOxAIA新竹分校] AI整合是重點! 竹科的關鍵轉型思維
[TOxAIA新竹分校] AI整合是重點! 竹科的關鍵轉型思維[TOxAIA新竹分校] AI整合是重點! 竹科的關鍵轉型思維
[TOxAIA新竹分校] AI整合是重點! 竹科的關鍵轉型思維
 
[TOxAIA新竹分校] 2019 台灣數位轉型與產業升級趨勢觀察
[TOxAIA新竹分校] 2019 台灣數位轉型與產業升級趨勢觀察[TOxAIA新竹分校] 2019 台灣數位轉型與產業升級趨勢觀察
[TOxAIA新竹分校] 2019 台灣數位轉型與產業升級趨勢觀察
 
[TOxAIA新竹分校] 深度學習與Kaggle實戰
[TOxAIA新竹分校] 深度學習與Kaggle實戰[TOxAIA新竹分校] 深度學習與Kaggle實戰
[TOxAIA新竹分校] 深度學習與Kaggle實戰
 
[台灣人工智慧學校] Bridging AI to Precision Agriculture through IoT
[台灣人工智慧學校] Bridging AI to Precision Agriculture through IoT[台灣人工智慧學校] Bridging AI to Precision Agriculture through IoT
[台灣人工智慧學校] Bridging AI to Precision Agriculture through IoT
 
[2018 台灣人工智慧學校校友年會] 產業經驗分享: 如何用最少的訓練樣本,得到最好的深度學習影像分析結果,減少一半人力,提升一倍品質 / 李明達
[2018 台灣人工智慧學校校友年會] 產業經驗分享: 如何用最少的訓練樣本,得到最好的深度學習影像分析結果,減少一半人力,提升一倍品質 / 李明達[2018 台灣人工智慧學校校友年會] 產業經驗分享: 如何用最少的訓練樣本,得到最好的深度學習影像分析結果,減少一半人力,提升一倍品質 / 李明達
[2018 台灣人工智慧學校校友年會] 產業經驗分享: 如何用最少的訓練樣本,得到最好的深度學習影像分析結果,減少一半人力,提升一倍品質 / 李明達
 
[2018 台灣人工智慧學校校友年會] 啟動物聯網新關鍵 - 未來由你「喚」醒 / 沈品勳
[2018 台灣人工智慧學校校友年會] 啟動物聯網新關鍵 - 未來由你「喚」醒 / 沈品勳[2018 台灣人工智慧學校校友年會] 啟動物聯網新關鍵 - 未來由你「喚」醒 / 沈品勳
[2018 台灣人工智慧學校校友年會] 啟動物聯網新關鍵 - 未來由你「喚」醒 / 沈品勳
 

[系列活動] 探索及應用生成對抗網路