---
title: [DL輪読会]Improved Training of Wasserstein GANs
tags:  #gan #wgan #generative #image #deeplearning #ai  
author: [Deep Learning JP](https://www.docswell.com/user/DeepLearning2023)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/VENM4QV6J8.jpg?width=480
description: 2017/10/16  Deep Learning JP:  http://deeplearning.jp/seminar-2/
published: October 20, 17
canonical: https://www.docswell.com/s/DeepLearning2023/ZXYG44-dlimproved-training-of-wasserstein-gans-81010174
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/VENM4QV6J8.jpg)

DEEP LEARNING JP
[DL Papers]
Improved Training of Wasserstein GANs
Jun Hozumi, Matsuo Lab
http://deeplearning.jp/
1


# Page. 2

![Page Image](https://bcdn.docswell.com/page/Y79NQD6R73.jpg)

書誌情報
•
Title: Improved Training of Wasserstein GANs
– Wasserstein GANの改良版(WGAN-GP)
•
Authors: Ishaan Gulrajani, Faruk Ahmed, Martin Arjovsky, Vincent
Dumoulin, Aaron Courville
– 主にMontreal Institute for Learningの研究者
•
Submitted on 31 Mar 2017
•
Citations: 60
•
有名論文であるものの、DL Seminarsではまだ誰もやっていなかったので
2


# Page. 3

![Page Image](https://bcdn.docswell.com/page/G78KG3ZGJD.jpg)

目次
•
復習: GAN, WGAN
•
WGANの問題点と特徴
•
Gradient Penalty（提案手法のキモ）
•
WGAN-GP（提案手法）
•
実験
•
結論
3


# Page. 4

![Page Image](https://bcdn.docswell.com/page/L7LZGVDXER.jpg)

復習: GAN
•
（通常の）GANは、以下の目的関数を最適化する
•
それは元データと出力(x)の分布のJS Divergence(JSD)の最小化に相当
•
しかし、勾配消失問題が起こるなどの理由から、その最小化は難しい
– JSDが潜在的に連続じゃないから？
– 詳 し く は 「 Towards Principled Methods for Training Generative
Adversarial Networks」「Wasserstein GAN」を参照
4


# Page. 5

![Page Image](https://bcdn.docswell.com/page/4EMVQGP3EW.jpg)

復習: WGAN（Wasserstein GAN）
•
JSDの代わりに「Earth-Mover Distance」(Wasserstein-1)を採用
•
Wasserstein GAN(WGAN)は、以下の目的関数を最適化する
– Kantrovich-Rubinstein Dualityを用いて行う
•
WGANはGが最適化しやすく、目的関数とサンプルの質とが相関する
– 学習がうまくできているかを可視化したり比較したりできる
5


# Page. 6

![Page Image](https://bcdn.docswell.com/page/PER28Z1R79.jpg)

復習: WGAN
•
1-Lipschitz制約を適用するために、Critic(GANのDiscriminatorに相当)の
重みが[-c, c]に収まるようWeight Clippingを行う
（WGAN論文より）
6


# Page. 7

![Page Image](https://bcdn.docswell.com/page/P7XD89YYJX.jpg)

参考: リプシッツ連続
•
写像fがリプシッツ連続なら、実定数Kが存在して以下の式を満たす。
•
1-Lipschitz制約は、K=1のリプシッツ連続を満たすようにさせること
リプシッツ連続函数に対し、適当な双錐 (白) が存在して、
双錐の頂点が函数のグラフ上を移動するように双錐を平行移動するとき、
常にそのグラフが双錐の外側 (緑) にあるようにできる。
（https://ja.wikipedia.org/wiki/リプシッツ連続 より）
7


# Page. 8

![Page Image](https://bcdn.docswell.com/page/37KXKP34JD.jpg)

WGANの問題点
•
Weight Clippingで良いのか？ → 実は色々と問題があった
–
各種Normalizationや重み減衰を適用しても解決できなかった
Weight Clippingだと勾配が爆発したり消失したりする
（Gradient penaltyが提案手法）
Weight Clippingは重みが二極化してしまうため
勾配爆発してしまい、学習も遅くなりがち
8


# Page. 9

![Page Image](https://bcdn.docswell.com/page/LJ35ZXGD75.jpg)

WGANの特徴
•
WGANのCriticは最適化されているとき以下の特徴を持つことが分かった
D*（最適化されたWGANのCritic）が微分可能で、xがPg（生成データの分布）の点であるとき、
Pr（訓練データの分布）よりサンプリングした点yが存在し、xからyに引いた直線上
のすべての点xt（
）における勾配がyに直接向く、
すなわち
が成り立つ。
最適化されたWGANのCriticはPr、Pg下のほぼ全ての点において
単位勾配ノルム（ノルム1の勾配）を持つ
（証明は元論文の巻末A参照）
9


# Page. 10

![Page Image](https://bcdn.docswell.com/page/8JDDR212JG.jpg)

Gradient Penaltyの導入
•
以上を踏まえ、Gradient Penaltyを導入したWGAN(WGAN-GP)を提案
– （最適化されたWGANの特徴である）「CriticがPr、Pg下のほぼ全ての点に
おいてノルム1の勾配を持つ」ように、Lossにペナルティ項を導入する
– 元データと生成データとの内分点の勾配ノルムからペナルティを計算する
10


# Page. 11

![Page Image](https://bcdn.docswell.com/page/VEPXW1QLJ8.jpg)

Gradient Penaltyの効果
•
Weight Clippingの場合と比べて、うまく学習できている
Toy Datasetsで学習させたCriticsの比較（Gは固定）
Gradient Penaltyは、より複雑な関数を学習できている
Gradient Penaltyなら重みも幅広く分布し、
モデルのCapacityをより活用できている
11


# Page. 12

![Page Image](https://bcdn.docswell.com/page/27VL8Y56EQ.jpg)

提案手法: WGAN-GP
•
全体アルゴリズム
12


# Page. 13

![Page Image](https://bcdn.docswell.com/page/5JGX59627L.jpg)

実験１
•
CIFAR-10を用いてInception Scoreで評価
– Gradient Penalty版はWeight Clipping版に比べてスコアが高く、収束も早い
– DCGANと比べると収束は遅いが、収束後はより安定している
13


# Page. 14

![Page Image](https://bcdn.docswell.com/page/47Q8ZW49EP.jpg)

実験２
•
様々な構造下で実験すると、WGAN-GPのみが全パターンで成功
– WGAN-GPの汎用性（ロバストネス）
14


# Page. 15

![Page Image](https://bcdn.docswell.com/page/KE423KLR71.jpg)

実験３
•
自然文の生成(Character Level)もできる
– Prが離散的でも学習できる（従来のGANではJSDが発散するので失敗する）
15


# Page. 16

![Page Image](https://bcdn.docswell.com/page/L71M1XLVJG.jpg)

実験４
•
学習状況が見えるので、過学習の発生時が分かる
– Gradient Penalty 版 で は Critic が Generator よ り も 速 く 学 習 す る の で 、
Validation側のLossが下がっているときもTrain側のLossが徐々に増加する
Gradient Penalty(LSUN Bedrooms)
Gradient Penalty(MNIST)
Weight Clipping(MNIST)
16


# Page. 17

![Page Image](https://bcdn.docswell.com/page/G7W38NV372.jpg)

結論
•
Gradient Penaltyを導入することでWeight Clippingによって生じていた
WGANの欠点を克服し、WGANを様々なGANに適用できるようにした。
•
安定したGANの学習手法を手にしたので、これからは最も良い性能を
引き出せる構造の研究に注力できる。（大量の画像や言語など）
17


