Bread Company
@Goodfellow先生おすすめの
@GANについての論文を
@GANGAN読むゼミ
@G Lab the University of Tokyo
@GAN素人 @k1ito
@GAN玄人 @sumipan
1
発表
聴講
Bread Company
0.スライド1枚で思い出すGAN
2https://www.slideshare.net/hamadakoichi/gan-nips2017
Bread Company
0.GANGAN成長するGAN
3
Bread Company
0.GANGAN成長するGAN(NIPS2017でのGAN)
4
https://www.slideshare.net/hamadakoichi/gan-nips2017
Bread Company
0.GANの中でもHOTTESTな6つを今日はおとどけ
5
①GANを徐々に高画質にしていったら
めっちゃきれいな画像ができた件
②GANの各層を上手く正規化すると
学習が安定して多クラスでもOKになった件
③CGANをちょっと変えただけで
②と合わせてめっちゃ良くなった件
④高画質な動画や意味付け操作
まで可能になった件
⑤巷に溢れているGANもどき
そこまですごくない件
⑥数学者が本気でGANやったら
やばいことになった件
すべての論文で、問題提起→提案手法→結果の順番で発表します
論文をさらーっと追うことを念頭に置いています、
Bread Company
0.そもそも事の起こり
MSのリサーチャーがGoodfellowにおすすめの論文がないか聞いたら
10個も答えてくれた
https://twitter.com/timnitGebru/status/968242968007200769
6
Bread Company
①Progressive Growing of GANs
●論文:Progressive Growing of GANs for Improved Quality,
Stability, and Variation
https://arxiv.org/abs/1710.10196
目的:高画質・安定・多様な画像生成
手法:GeneratorとDiscriminatorに
徐々に高画質な層を追加してく
Goodfellow: probably the highest quality images so far
7
Bread Company
問題提起(1)生成モデルの比較
8
モデル名 長所 短所
Autoregressive
Model
鮮明 Latentを使わない
遅い
VAE 学習が簡単 ぼやける
GAN きれい 不安定
高画質はダメ
Bread Company
問題提起(2)GANの短所について詳しく
● 学習が難しい・不安定
分布が重ならないと勾配がダメになる
● 低解像度
高解像度だとDiscriminatorに有利
Batchサイズ的な意味でも難しい
● 多様性がない
一部の特徴しか捉えられない。
9
Bread Company
提案手法(1) Progressive Growing
●G:低画質→高画質層 D:高画質→低画質層
10
Bread Company
提案手法(1) なぜProgressiveが良いのか
● 低画質のほうが安定した学習ができる
クラスに関する情報量が少ない
● 徐々に画質を上げていく < いきなり高画質を入れる
(簡単) (難しい)
● Gを1つ、Dを1つでやっている
他にも似たような研究をしている人たちがいるが
GとDを1つだけにしているのはこれだけ
11
Bread Company
(補足)Progressiveの実装について
●どのようにして高画質を追加していくか
toRGB:特徴量→RGB画像
fromRGB:特徴量→RGB画像
12
Bread Company
提案手法(2) Minibatch Standard Deviation
●多様性を加えるために
ミニバッチごとに分散を計算して層に挿入する
13
Bread Company
結果(1)
●CELEBA・LSUNで高いスコアを達成
14
Bread Company
結果(2) Progressive Growingの検証
●Progressive Growingを入れたほうが早く収束する(2倍ぐらい)
● ふつう Progressive
15
Bread Company
結果(3)高画質
16
Bread Company
②Spectral Normalization for GANs
●論文:Spectral Normalization for Generative Adversarial Networks
https://arxiv.org/abs/1802.05957
目的:Discriminatorの学習の安定化
手法:Spectral Normで重みを正規化する
Goodfellow:got GANs working on lots of classes, which has been hard
17
Bread Company
問題提起 GANの問題点
●Discriminatorの勾配が不安定
𝐷 𝐺
∗
𝑥 =
𝑞 𝑑𝑎𝑡𝑎 𝑥
𝑞 𝑑𝑎𝑡𝑎 𝑥 +𝑝 𝐺(𝑥)
がGを固定したときのoptimalな解だった。
𝐷 𝐺
∗
𝑥 ≔ sigmoid 𝑓∗ 𝑥 : = sigmoid(log 𝑞 𝑑𝑎𝑡𝑎 𝑥 − log𝑝 𝐺 𝑥 )
として定めると、
𝛻f∗
x =
1
qdata(x)
𝛻𝑞 𝑑𝑎𝑡𝑎 𝑥 −
1
𝑝 𝐺(𝑥)
𝛻𝑝 𝐺(𝑥)
18
↑不安定 ↑不安定
Bread Company
手法:Spectral Norm
●fは実際はNNで、x→x+dtとしたとき、f(x)がどう動くかが不安
Def Aを行列とする。Aのspectral normを以下で定める。
𝜎 𝐴 ≔ max
ℎ≠0
||𝐴ℎ||2
||ℎ||2
つまり、行列Aをかけると、最大でσ(A)倍L2ノルムが大きくなる
Rem σ(A)は特異値(固有値のn×m行列ver)のうち最大のもの
19
Bread Company
Spectral NormとLipschitz Norm
Thm 𝑓(𝑥, 𝜃) = 𝑊L+1 𝑎 𝐿 ( 𝑊 𝐿 𝑎 𝐿−1 ( 𝑊 𝐿−1 ⋯ 𝑎1(𝑊1 𝑥) ⋯ )
ただし、WはNNのパラメータ、aは活性化関数 とする。
このとき、
|| 𝑓 𝑥 – 𝑓 𝑥’ ||
|| 𝑥 − 𝑥′||
≤ || 𝑓|| 𝐿𝑖𝑝 ≤
𝑙
𝜎(𝑊 𝑙)
Proof
実際、多くの活性化関数はLipschitz連続で、
合成関数のLipschitzノルムは積に分解され、
後はSpectral normの定義から明らか。
20
Bread Company
結果(1)様々なHyperparameterでのスコア
●A,B,C,D,E,FとHyperparameterを変えて実験
→ CIFAR10・STL10 どちらも 安定して・高いスコア
21
Bread Company
結果(2)特異値の比較
●他手法:最初のほうのレイヤーで特異値が少なくなっている。
●→rankが少なくなっている。→序盤で多様体として次元が落ちている
22
Bread Company
結果(3) Orthogonalとの比較
●Orthogonalよりも、高次元・多イテレーションでは高いスコア
23
Bread Company
③cGANs with Projection Discriminator
●論文:cGANs with Projection Discriminator
https://arxiv.org/abs/1802.05637
目的:安定した画像生成
多様な画像生成
カテゴリーを連続的に移動や高画質化も可能にしたい
手法:cGANを改良して、最後にyとの内積をとる
Goodfellow:from the same lab as #2, both techniques work well
together, overall give very good results with 1000 classes
24
Bread Company
Conditional GANとは
25
Bread Company
問題提起 cGAN
●cGAN : DとGにカテゴリーのラベルを入れる
しかし、それでもモデルの崩壊が生まれたりする。
さらに理論的に考えると、cGANは不自然な操作を行っている。
26
Bread Company
提案手法 yは後から内積をとってやる
Thm Gを固定したとき、optimalなDiscriminator Dは
𝐷 = sigmoid{ 𝑦 𝑇 𝑉 𝜙 𝑥; 𝜃Φ + 𝜓 𝜙 𝑥; 𝜃Φ ; 𝜃Ψ }
と書ける。つまり、xの関数のoutputとyの内積をとるのがoptimal
ただし Vはyの埋め込み行列であり、φ,ψは後に定義されるxの関数
27
Bread Company
提案手法
Proof
𝐿 𝐷 = −∫ ∫ {𝑞(𝑦)𝑞(𝑥|𝑦) log (𝐷 𝑥, 𝑦 ) + 𝑝(𝑦)𝑝(𝑥|𝑦)log(1 − 𝐷(𝑥, 𝑦)} 𝑑𝑥𝑑𝑦
である。一般にa logx + blog(1-x)は a/(a+b)でoptimalであるので、
活性化関数がsigmoidであることに注意すると、
𝑓 𝑥, 𝑦 = log
𝑞 𝑥 𝑦 𝑞 𝑦
𝑝 𝑥 𝑦 𝑝(𝑦)
= log
𝑞 𝑦 𝑥
𝑝 𝑦 𝑥
+ log
𝑞 𝑥
𝑝(𝑥)
ここで、 log 𝑝 𝑦 = 𝑐 𝑥 = 𝑣𝑐
𝑃 𝑇
𝜙 𝑥 − log(𝑍(𝜙 𝑥 )とパラメトライズする
Qも同じモデルを使ってDを整理すると、
28
𝐷 = sigmoid{ 𝑦 𝑇
𝑉 𝜙 𝑥; 𝜃Φ + 𝜓 𝜙 𝑥; 𝜃Φ ; 𝜃Ψ }
Bread Company
例(正規分布)
のとき
29
Bread Company
比較するConditional GAN
30
Bread Company
結果(1)スコア
31
手法 Inception Score Intra FID
AC-GAN 28.5 ± 0.20 260.0
Concat 21.1±0.35 141.2
Projection 29.7±0.61 103.1
Projection 850K
Iter.
36.8±0.44 92.4
Bread Company
結果(2) Model崩壊の防止
32
Bread Company
結果(2) Model 崩壊の防止
33
Bread Company
結果(3) カテゴリー間移動
●似てるカテゴリ
船からヨット
ピザからバーガー
●似てないカテゴリ
犬からWebpage
●犬からキノコと城
34
Bread Company
結果(4) 高画質化(32*32から128*128)
35
Bread Company
④Highresolution Image Synthesis
●論文:High-Resolution Image Synthesis and Semantic
Manipulation with Conditional GANs
https://arxiv.org/abs/1711.11585
https://tcwang0509.github.io/pix2pixHD/
目的:高画質・意味付け・多様な画像生成
手法:粗から密のGenerator
複数の画質に対してDiscriminatorを用意
層(特徴量)ごとに差を計算して正則化項とする
Goodfellow:GANs for 2-megapixel video
36
Bread Company
問題設定 (InputとOutput)
37
Bread Company
問題設定(Intraactiveな編集もしたい)
38
Bread Company
手法(1)Coarse-to-fine generator
G1:global , G2:localというふうに分ける。
G1は0.5倍した画像をResidual Blockで学習
G2は普通の画像をResidual Blockで学習し途中でG1結果をたす
39
Bread Company
手法2 Multi-scale Discriminator
●D1,D2,D3と別々のDiscriminatorをつくる
min 𝐺 max
𝐷1,𝐷2,𝐷3
𝑘=1,2,3
𝐿 𝐺, 𝐷 𝑘
利点:
1。小さいネットワークで済む
2。高画質化をしながら過学習に対応する
40
Bread Company
手法3 Adversarial Loss
●次の項を正則化項として加える。
T:Layerの合計数
𝑁𝑖:i1層目の合計要素数
41
Bread Company
手法4 Instance Maps
●物体の意味を扱いたい。
●物体のラベルは隣接している事が多い。
→
ラベルだけでなく輪郭も追加して情報を与え、認識力を上げる。
42
Bread Company
結果(1) 意味付けの成功率
43
Bread Company
結果(2) A/Bテスト
●当モデルが生成した画像v.s.pix2pix,CRNが生成した画像
44
Bread Company
結果(3) Discriminatorを増やしたことによる影響
45
Bread Company
結果(4) リアルでカラフルな画像生成
46
Bread Company
⑤ Are GANs Created Equal?
●論文:Are GANs Created Equal? A Large-Scale Study
https://arxiv.org/abs/1711.10337
目的:そこまでGAN(original)とX-GANの代わりはない説
FIDのminだけを見ることをへの疑問
その他色々GANの検証
手法:GANs (MM,LS,W,W-GP,BE)-GAN
Metric: FID,InceptionScore,F1
Goodfellow:A big empirical study showing the importance of good
rigorous empirical work and how a lot of the GAN variants don't
seem to actually offer improvements in practice
47
Bread Company
Goodfellow先生のお言葉
48
Bread Company
GANいろいろ
●WGAN: Wasserstein的に解釈してD・Gを計算
●LSGAN: sigmoid を2乗誤差にする
●BEGAN:
Autoencoder・DiversityとShapenessを指定
●WGAN-GP: WGANに勾配上限制約をつける
●DRGAN:
●目的関数を線形・凸にするためPenaltyをつける
49
Bread Company
GANいろいろ
50
Bread Company
Metricいろいろ(1) Inception Score
●Inception Score
(1) p(y|x)のentropyは低いはず
Xが与えられればyは定まるはずなので
(2) ∫p(y|x=G(z))dzのentropyは高いはず
Generateされる画像全部を集めたものなので
51
Bread Company
Metricいろいろ(2) Frechet Inception Distance
●Inception Netによってfeature spaceに画像を埋め込む
●Gaussianとみなして良いので平均・共分散行列を計算する。
52
Bread Company
FID vs IS
53
ノイズを加える ノイズを加える
ぼかす ぼかす
Bread Company
PrecisionとRecallという考え方再訪
●Presicion:適合率
どれだけ正確に特徴を取られられるかa-c
・Recall:再現率
どれだけ多様性を持たせられるかa-b
・FIDはPrecisionとRecall両方を加味
ISはPrecisionのみに着目している
54
Bread Company
フェアな比較をするためには
●ネットワークの構造の細部を同じにする
●ハイパーパラメータの探索時間・範囲を同じにする
●Datasetを同じにする
●Trainingにかける計算量を同じにする
55
Bread Company
結果(1)BudgetとFID
●Budgetを低くするとFIDの差はなくなる
●FIDを固定して一番低いBudgetで達成できるものを探すのも良
56
Bread Company
結果(2)Hyperparameter
●Hyperparameterの探索範囲を制限すると有意ではなくなる
57
Bread Company
結果(3)F1,Precision,Recall
●この尺度では、WGANとNSGANが良い
●BEGANは実装がむずいのでミスった説・成功しても収束遅い
58
Bread Company
⑥Wasserstein GANs - GP
●論文:Improved Training of Wasserstein GANs
https://arxiv.org/abs/1704.00028
目的:Wasserstein GANの安定化
手法:WGANに勾配が1になるようにペナルティを化す
Goodfellow:probably the most popular GAN variant today and seems
to be pretty good in my opinion. Caveat: the baseline GAN variants
should not perform nearly as badly as this paper claims, especially
the text one
59
Bread Company
問題提起(1) Wasserstein GAN
●普通のGAN
●WassersteinGAN Dは1-Lipschitzな関数のみ
60
Bread Company
問題提起(2)WassersteinGANの問題
●学習がうまくいかない・収束しない
61
Bread Company
手法(1) Gradient Penalty
62
Bread Company
手法(おまけ)なぜWGAN-GPがうまくいくのか
Prop
𝑋: compact metric space
𝑃𝑟, 𝑃𝑔: distributions in 𝑋
𝑓∗
を以下の最適化問題の最適解とする。
max
𝑓 𝐿
≤1
𝐸 𝑦 𝑓 𝑦 – 𝐸 𝑥[𝑓 𝑥 ]
このとき、Pr ∇𝑓∗
= 1 = Pg ∇𝑓∗
= 1 = 1
∴最適なfの勾配は1→1から外れたらペナルティを課そう
63
Bread Company
結果(1) いろいろな構造で試す
64
Bread Company
結果(2) IS
●ISが1.0,3.0,5.0,7.0,9.0を超えれますかチャレンジ。
IS:~3.0はGANも成功するが、GANの上位互換となっている。
IS:3.0~はWGAN-GPしかできなくなる
65
Bread Company
結果(3) いろんな構造で試す
●劣悪な環境でもそこまで死なない
66
Bread Company
結果(3) いろいろな構造で試す
●同様
67
Bread Company
結果(4) 収束
●Weight Clipingより早く・DCGANより安定する
68
Bread Company
結果(5) 分布Discreteな場合(=文字列)
●そこまで上手は行かなかった
69
Bread Company
結果(6)Sampleの質と相関がある・過学習する
● Ours Weight Cliping
70

Goodfellow先生おすすめのGAN論文6つを紹介