SlideShare une entreprise Scribd logo
1  sur  67
Télécharger pour lire hors ligne
蔡炎⿓ 政治⼤學應⽤數學系
GAN
Deep Learning
1
轟動登場
2
3
強化學習 ⽣成對抗模式 (GAN)
VAE
膠囊
標準 NN CNN RNN
4
There are many interesting recent
development in deep learning…
The most important one, in my opinion, is
adversarial training (also called GAN for
Generative Adversarial Networks). 
”
“
—Yan LeCun (楊⽴昆), 2016
5
原創者 Ian Goodfellow, 之前
最著名的是和他博⼠時期兩位
⽼師 Yoshua Bengio 和
Aaron Courville 寫了號稱
Deep Learning 聖經的書。
6
Generative Adversarial Networks
https://arxiv.org/abs/1406.2661
Ian Goodfellow 等⼈ (NIPS 2014)
7
Ian Goodfellow 的 GAN 教學 (NIPS 2016)
https://youtu.be/AJVyzd0rqdc
8
The GAN Zoo
https://github.com/hindupuravinash/
the-gan-zoo
9
⽣成器
generator
Noise
鑑別器
discriminator
真的 or 假的
2
DEMO
10
11
朱俊彦等⼈ (ECCV 2016)
“Generative Visual Manipulation on the Natural Image Manifold”
iGAN
https://arxiv.org/abs/1609.03552
12
⼈⼈都是⼤畫家!
https://youtu.be/9c4z6YsBGQ0
13
Karras 等 NVIDIA 團隊 (ICLR 2018)
“Progressive Growing of GANs for Improved Quality, Stability, and Variation”
Progressive GAN
https://arxiv.org/abs/1710.10196
14
這攏係假ㄟ啦 (1024x1024 明星照)
15
Isola, 朱俊彦等⼈ (CVPR 2017)
“Image-to-Image Translation with Conditional Adversarial Networks”
Pix2Pix
https://arxiv.org/abs/1611.07004
16
* 來⾃ Isola, 朱俊彦等⼈的原始論⽂ (2017)
Pix2pix 把衛星圖變地圖。
17
* 來⾃ Isola, 朱俊彦等⼈的原始論⽂ (2017)
Pix2pix 隨⼿畫畫變街景。
18
* Christopher Hesse 依原論⽂做出
Pix2pix 線上版。
https://affinelayer.com/pixsrv/
19
朱俊彦等⼈ (ICCV 2017)
“Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks”
CycleGAN
https://arxiv.org/abs/1703.10593
20
全世界的⼈都驚呆了的⾺變斑⾺。
https://youtu.be/9reHvktowLY
21
CycleGAN 作者⾃⼰提到的失敗例⼦。
22
Goodfellow 也關注的變臉 (魏澤⼈⽼師)。
https://youtu.be/Fea4kZq0oFQ
3
Generative
Models
23
24
What I cannot create, I do not understand.
”“ —Richard Feynman
重點 ⽣成模式
25
G

⽣成器
⽣出圖、照⽚、⽂字
z
latent vector
特徵向量/本徵向量
26
我們想找
到 G!
這聽起來很合理, ⽽且也⾃
然。但仔細想想其實不⼀定
是個容易的問題...
27
對於⼀組向量,
我怎知它該⽣
什麼出來?
難點 1
28
向量 z 可能代表⼀個類
別 (⽐如說狗), 那有很多
可能圖⽚都是「正確」
的...
難點 2
29
常常是我們選好了 z, 就要學⼀個機率分布, 然後我們就
可以從這個機率分布適當的抽樣出來 x。
這樣會⽐較簡單也實
在是件懸疑的事...
30
好在在深度學習許多新的
⽅式中, 事情⽐我們想像
中還要簡單!
31
⽣成器Noise
⽣出圖、照⽚、⽂字
亂亂做!
(保證⽣出「正確格式」的東⻄就好)
⽅法⼀
32
⽅法⼆
AutoEncoder
33
encoder decoderz
latent vector
x
m >> k
k維
x
m維
於是, z 可以取代 x (或者說 z 是 x 的
⼀個 presentation)
重點 AutoEncoder
34
encoder zx
以後我們基本上可以⽤
⽐較⼩的 z 來取代⽐較
⼤的 x。
重點 AutoEncoder
35
更有意思的可能是, 我
們是不是可以⽤我們⾃
⼰隨便取的 z, ⽣出⼀
些有意思的 x?
decoderz x
36
答案是不太⾏
隨便⽣兩個 laten vectors, 數學上距離很近,
但⽣出來的東⻄不⼀定有什麼關係。
⽩話⽂是 z 差不多就是亂數, 我們無以掌控。
37
所以有了 VAE
Variational AutoEncoder
重點 VAE
38
神秘編碼 laten vector 每個數字是符合某常態分
布的, 這樣我們容易掌控!
我們想辦法找每個數的平
均值和變異數 (or 標準差)
重點 VAE
39
encoder zx
k維
m維
μ
σ
在 encoder 後做點⼿腳。
laten vector
其實這層還有
加 noise
4
Discriminative
Models
40
41
Discriminative
真實的
⽣成的
1
0
真的
假的
通常判斷器⽐⽣成器還要複雜
5
GAN
42
43
⽣成器
generator
Noise
鑑別器
discriminator
真的 or 假的
再⼀次, GAN 是兩個神經網路,
⼀個⽣成、⼀個判斷, 相互對抗!
z
x
G
D
G(z)
44
希望
接近 1
希望
接近 0
接近 1
⽣成器 G 判斷器 D
D, G ⼤對抗!
45
真實世界的 distribution
我們 model 出來的 distribution
向量 z 的 distribution
常被⽤到的分布
46
插播: 可愛的 log
log 是遞增
函數。
1
47
插播: 可愛的 log
log 把可怕的乘法變可
愛的加法!
2
48
Ex∼pdata
[log D(x)]
Ez∼pz
[log(1 − D(G(z)))]
判斷器 D
這兩個都越⼤越好。
1
2
49
Ez∼pz
[log(1 − D(G(z)))]
想辦法變⼩騙過 D!
2
⽣成器 G
50
⽣成對抗
min
G
max
D
V (D, G) = Ex∼pdata
[log D(x)] + Ez∼pz
[log(1 − D(G(z)))]
51
過程: 每個 minibatch
判斷器 D ⽣成器 G
訓練 訓練
52
D∗
G(x) =
pdata(x)
pdata(x) + pg(x)
optimal discriminator
這可以證明
53
學習過程
* 來⾃ Ian Goodfellow 等⼈ GAN 的原始論⽂ (2014)
D
pg
Pdata
⼀開始 G 就被下⾺威!
54
學習過程
* 來⾃ Ian Goodfellow 等⼈ GAN 的原始論⽂ (2014)
學成的時後 D 無法區分哪個是真的!
D
pgPdata
=
6
GAN的困難點
55
56
很難訓練
很難達成
Nash equilibrium!
57
有種種調校法
但是我們沒有要細講。
Feature Matching
One-sided Label Smoothing
Batch Normalization
58
WGAN
Wasserstein GAN
Arjovsky-Chintala-Bottou (PMLR 2017)
https://arxiv.org/abs/1701.07875
59
WGAN
Wasserstein GAN
令⼈拍案叫絕的 Wasserstein GAN
https://zhuanlan.zhihu.com/p/25071913
60
聽說 Soumith Chintala 來, 參加 GAN ⽐賽的同學
61
Wasserstein Distance (Earth Move Distance)
62
原始 paper 建議不要⽤
有調到 momentum 的
optimizer, ⽐如說
RMSprop。
63
WGAN
就是穩!
7
CycleGAN
64
65
G

⽣成器
F

⽣成器
Domain
A
Domain
B
鑑別器
B
鑑別器
A
CycleGAN
66
資料「不需要」配對!
於是有無限可能...
67
多個 domains 互轉的
StarGAN 也很值得注意!
Choi 等⼈ (CVPR 2018 )
“StarGAN: Unified Generative Adversarial Networks for Multi-Domain
Image-to-Image Translation”
https://arxiv.org/abs/1711.09020

Contenu connexe

Tendances

1시간만에 GAN(Generative Adversarial Network) 완전 정복하기
1시간만에 GAN(Generative Adversarial Network) 완전 정복하기1시간만에 GAN(Generative Adversarial Network) 완전 정복하기
1시간만에 GAN(Generative Adversarial Network) 완전 정복하기
NAVER Engineering
 
レベルを上げて物理で殴れ、Fuzzing入門 #pyfes
レベルを上げて物理で殴れ、Fuzzing入門 #pyfesレベルを上げて物理で殴れ、Fuzzing入門 #pyfes
レベルを上げて物理で殴れ、Fuzzing入門 #pyfes
Tokoroten Nakayama
 

Tendances (20)

人工知能技術を用いた各医学画像処理の基礎 (2022/09/09)
人工知能技術を用いた各医学画像処理の基礎 (2022/09/09)人工知能技術を用いた各医学画像処理の基礎 (2022/09/09)
人工知能技術を用いた各医学画像処理の基礎 (2022/09/09)
 
KubernetesでGPUクラスタを管理したい
KubernetesでGPUクラスタを管理したいKubernetesでGPUクラスタを管理したい
KubernetesでGPUクラスタを管理したい
 
SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習
SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習
SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習
 
1시간만에 GAN(Generative Adversarial Network) 완전 정복하기
1시간만에 GAN(Generative Adversarial Network) 완전 정복하기1시간만에 GAN(Generative Adversarial Network) 완전 정복하기
1시간만에 GAN(Generative Adversarial Network) 완전 정복하기
 
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
 
FPGAをロボット(ROS)で「やわらかく」使うには
FPGAをロボット(ROS)で「やわらかく」使うにはFPGAをロボット(ROS)で「やわらかく」使うには
FPGAをロボット(ROS)で「やわらかく」使うには
 
DNNのモデル特化ハードウェアを生成するオープンソースコンパイラNNgenのデモ
DNNのモデル特化ハードウェアを生成するオープンソースコンパイラNNgenのデモDNNのモデル特化ハードウェアを生成するオープンソースコンパイラNNgenのデモ
DNNのモデル特化ハードウェアを生成するオープンソースコンパイラNNgenのデモ
 
レベルを上げて物理で殴れ、Fuzzing入門 #pyfes
レベルを上げて物理で殴れ、Fuzzing入門 #pyfesレベルを上げて物理で殴れ、Fuzzing入門 #pyfes
レベルを上げて物理で殴れ、Fuzzing入門 #pyfes
 
強化學習 Reinforcement Learning
強化學習 Reinforcement Learning強化學習 Reinforcement Learning
強化學習 Reinforcement Learning
 
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)
 
[Track2-2] 最新のNVIDIA AmpereアーキテクチャによるNVIDIA A100 TensorコアGPUの特長とその性能を引き出す方法
[Track2-2] 最新のNVIDIA AmpereアーキテクチャによるNVIDIA A100 TensorコアGPUの特長とその性能を引き出す方法[Track2-2] 最新のNVIDIA AmpereアーキテクチャによるNVIDIA A100 TensorコアGPUの特長とその性能を引き出す方法
[Track2-2] 最新のNVIDIA AmpereアーキテクチャによるNVIDIA A100 TensorコアGPUの特長とその性能を引き出す方法
 
[Basic 1] ブロックチェーンと計算機科学 / ブール代数 / 情報理論
[Basic 1] ブロックチェーンと計算機科学 / ブール代数 / 情報理論[Basic 1] ブロックチェーンと計算機科学 / ブール代数 / 情報理論
[Basic 1] ブロックチェーンと計算機科学 / ブール代数 / 情報理論
 
[DL輪読会]Transframer: Arbitrary Frame Prediction with Generative Models
[DL輪読会]Transframer: Arbitrary Frame Prediction with Generative Models[DL輪読会]Transframer: Arbitrary Frame Prediction with Generative Models
[DL輪読会]Transframer: Arbitrary Frame Prediction with Generative Models
 
手把手打開Python資料分析大門
手把手打開Python資料分析大門手把手打開Python資料分析大門
手把手打開Python資料分析大門
 
遺伝的アルゴリズム・遺伝的プログラミング
遺伝的アルゴリズム・遺伝的プログラミング遺伝的アルゴリズム・遺伝的プログラミング
遺伝的アルゴリズム・遺伝的プログラミング
 
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
 
[DL輪読会]Weight Agnostic Neural Networks
[DL輪読会]Weight Agnostic Neural Networks[DL輪読会]Weight Agnostic Neural Networks
[DL輪読会]Weight Agnostic Neural Networks
 
Android/iOS端末におけるエッジ推論のチューニング
Android/iOS端末におけるエッジ推論のチューニングAndroid/iOS端末におけるエッジ推論のチューニング
Android/iOS端末におけるエッジ推論のチューニング
 
IIBMP2016 深層生成モデルによる表現学習
IIBMP2016 深層生成モデルによる表現学習IIBMP2016 深層生成モデルによる表現学習
IIBMP2016 深層生成モデルによる表現学習
 
Transformerを用いたAutoEncoderの設計と実験
Transformerを用いたAutoEncoderの設計と実験Transformerを用いたAutoEncoderの設計と実験
Transformerを用いたAutoEncoderの設計と実験
 

Plus de Yen-lung Tsai

Plus de Yen-lung Tsai (16)

Deep Learning and Design Thinking
Deep Learning and Design ThinkingDeep Learning and Design Thinking
Deep Learning and Design Thinking
 
與高中生談人工智慧與深度學習
與高中生談人工智慧與深度學習與高中生談人工智慧與深度學習
與高中生談人工智慧與深度學習
 
深度學習實作上的各種卡關
深度學習實作上的各種卡關深度學習實作上的各種卡關
深度學習實作上的各種卡關
 
人工智慧不是魔法,是數學
人工智慧不是魔法,是數學人工智慧不是魔法,是數學
人工智慧不是魔法,是數學
 
[數學、邏輯與人生] 05 數,三聲數
[數學、邏輯與人生] 05 數,三聲數[數學、邏輯與人生] 05 數,三聲數
[數學、邏輯與人生] 05 數,三聲數
 
[數學軟體應用] 05 HTML+CSS
[數學軟體應用] 05 HTML+CSS[數學軟體應用] 05 HTML+CSS
[數學軟體應用] 05 HTML+CSS
 
[數學、邏輯與人生] 03 集合和數學歸納法
[數學、邏輯與人生] 03 集合和數學歸納法[數學、邏輯與人生] 03 集合和數學歸納法
[數學、邏輯與人生] 03 集合和數學歸納法
 
[數學、邏輯與人生] 01 基本邏輯和真值表
[數學、邏輯與人生] 01 基本邏輯和真值表[數學、邏輯與人生] 01 基本邏輯和真值表
[數學、邏輯與人生] 01 基本邏輯和真值表
 
03 串起你的數據
03 串起你的數據03 串起你的數據
03 串起你的數據
 
Markdown可以做什麼
Markdown可以做什麼Markdown可以做什麼
Markdown可以做什麼
 
02 和電腦對話
02 和電腦對話02 和電腦對話
02 和電腦對話
 
01 jupyter 第一課
01 jupyter 第一課01 jupyter 第一課
01 jupyter 第一課
 
[數學、邏輯與人生] 00 課程簡介
[數學、邏輯與人生] 00 課程簡介[數學、邏輯與人生] 00 課程簡介
[數學、邏輯與人生] 00 課程簡介
 
數學軟體應用課程 00 - 課程介紹
數學軟體應用課程 00 - 課程介紹數學軟體應用課程 00 - 課程介紹
數學軟體應用課程 00 - 課程介紹
 
Days on Jupyter
Days on JupyterDays on Jupyter
Days on Jupyter
 
用 GeoGebra 玩數學
用 GeoGebra 玩數學用 GeoGebra 玩數學
用 GeoGebra 玩數學
 

生成對抗模式 GAN 的介紹