Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Large scale gan training for high fidelity natural

1,216 views

Published on

These slides were presented in Yagami-ai seminar.

Published in: Technology
  • Be the first to comment

Large scale gan training for high fidelity natural

  1. 1. GANについて KCS AI班 理工学部学士3年 石井 智也 渡邉 寛悠 佐久間 拓哉
  2. 2. 1. GANについての説明 2. DCGAN 3. BEGAN 4. SNGAN 5. SAGAN 自己紹介 石井智也 佐久間拓哉 渡邉寛悠 2019/1/26 2
  3. 3. 1.生成モデルとGANの概説 2019/1/26 3 担当:石井
  4. 4. GANとは • 生成モデルと呼ばれる機械学習のモデルの1つ • 潜在変数を𝑧, データを𝑥のように表した際𝑝(𝑧|𝑥)のような 形になるものは,データから潜在次元への分布をもとめ る確率モデルで,潜在変数 をラベルとみなすことで, いわゆる識別モデルとなる. • 対して生成モデルは𝑝(𝑥|𝑧)の表現を学習して,潜在分布か らデータを作成する. • GANは敵対的生成ネットワーク(Generative Adversarial Nets)の略称で2014年にIan Goodfellow が考案 2019/1/26 4
  5. 5. 生成モデルの利点 • 新規データのサンプリングができる • それはそう • 欠損値の補完 • 入力にノイズを加えたものに対し,デノイジングを学習するDAE(デノ イジングオートエンコーダ)といったものも存在する. • 欠損値 𝑥から本来の値を学習することによって,ノイズを除去するよう な〝ベクトル場〟を学習することができる • 生成結果が面白い • 学習のモチベーション的には結構重要(かも) 2019/1/26 5
  6. 6. 生成モデルの種類 名称 長所 短所 自己回帰モデル 生成画像は鮮明 学習が遅い 変分オートエンコーダ (VAE) 潜在変数の確率分布 が求まる 輪郭がぼやけやすい GANs 画像が鮮明 なものもある 学習が不安定 2019/1/26 6
  7. 7. 1枚で分かりそうなGAN(まじめ) • Min-Maxゲーム • min 𝐺 max 𝐷 𝔼 𝑥~𝑝 𝑑𝑎𝑡𝑎(𝑥) log 𝐷 𝑥 + 𝔼 𝑧~𝑝 𝑔𝑒𝑛(𝑧) log 1 − 𝐷 𝐺 𝑧 Discriminatorを本来の画像を 「本来の画像」として,認識 させる(最大化)ように学習 Discriminatorを生成画像を「偽物の画像」 として,認識させるよう(最大化)に学習 GeneratorはうまくDiscriminatorを だますようなサンプルを作らせる Discriminatorは正誤を正しく判別 できるように学習 2019/1/26 7
  8. 8. 1枚で分かりそうなGAN(いらすとや) 𝐺 𝐷 潜在変数𝑧 Generator 𝐺(𝑧) 𝑥 Discriminator こいつは偽物や! こっちは本物っぽい 2019/1/26 8
  9. 9. 1枚で分かるGANの進化(2014~2018) • Goodfellow氏のツイート 2019/1/26 9
  10. 10. ざっと見るGANの歴史 • 2014 • Generative Adversarial Networks • 2015 • DCGAN • Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks • 2016 • LSGAN (誤差関数:二乗誤差) • 2017 • Wasserstein-GAN(誤差関数:Earth-Mover距離) • WGAN-GP(誤差関数:上のヤツ+勾配への罰則) アーキテクチャの提案 CNNを学習に使用 誤差関数の試行錯誤 2019/1/26 10
  11. 11. ざっと見るGANの歴史 • 2016 • Pix2Pix • 2017 • CycleGAN • Progressive-Growing GAN • サイズをだんだん大きくして高解像度の 画像を生成しよう! • 2018 • Spectral-Normalization GAN • Self-Attention GAN 画像データ→画像生成 高画質化 学習の安定化...? 2019/1/26 11
  12. 12. 2.DCGAN 2019/1/26 12 担当:佐久間
  13. 13. GANの問題点 • 収束性 • モード崩壊 • 勾配消失 →学習が不安定で高解像度の画像を生成することが難しい CNNを利用しても高解像画像の生成は難しかった 2019/1/26 13
  14. 14. DCGAN(Deep Convolutional GAN) • DCGANはCNNを利用したGANのモデル • 学習をうまく進めるために様々なテクニックを用いている Radford et al. (2015)2019/1/26 14
  15. 15. DCGANのテクニック① プーリング層を廃止 • Discriminatorではストライド2の畳み込みに置き換える • Generatorではfractionally-strided convolutionでアップサンプ リング →ダウンサンプリング/アップサンプリングの重みを自ら 学習させる 2019/1/26 15
  16. 16. DCGANのテクニック② 全結合層を廃止 • Discriminatorでglobal average poolingに置き換える →パラメータが無くなることで過学習を防ぐ 2019/1/26 16
  17. 17. global average pooling • CNNの特徴マップをそれぞれクラスに割り当てる • 各特徴マップの平均によるベクトルをソフトマックス •パラメータが減るため過学習を抑制することができる •次元が減るためメモリの節約にもなる https://elix-tech.github.io/ja/2017/02/06/gan.html#dcgan2019/1/26 17
  18. 18. DCGANのテクニック③ Batch Normalizationを利用 • Discriminatorの入力以外で適応 →パラメータの初期値に依存しにくくなる 勾配損失・爆発を防ぐ 2019/1/26 18
  19. 19. Batch Normalization 𝑚個からなるミニバッチ𝐵 = {𝑥1, … , 𝑥 𝑚}と学習されたパラメータ 𝛾, 𝛽に対して、ミニバッチ内での平均と分散を求める。 𝜇 𝐵 = 1 𝑚 𝑖=1 𝑚 𝑥𝑖 𝜎 𝐵 2 = 1 𝑚 𝑖=1 𝑚 𝑥𝑖 − 𝜇 𝐵 2 これらを使い、ミニバッチの各要素を次のように変換する 𝑥𝑖 = 𝑥𝑖 − 𝜇 𝜎 𝐵 2 + 𝜖 𝑦𝑖 = 𝛾 𝑥𝑖 + 𝛽 この手続きによって得られた{𝑦𝑖, … , 𝑦 𝑚}をBatch Normalizationの 出力とする 2019/1/26 19
  20. 20. DCGANのテクニック④ Leaky ReLUを利用 • Generatorの出力層以外で適応 →での学習も可能にする Leaky ReLU 𝑓 𝑥 = max(𝛼𝑥, 𝑥) DCGANでは𝛼 = 0.2 2019/1/26 20
  21. 21. 結果 2019/1/26 21
  22. 22. 3.BEGAN 2019/1/26 22 担当:渡邉
  23. 23. 2019/1/26 23
  24. 24. 2019/1/26 24
  25. 25. 2019/1/26 25
  26. 26. 2019/1/26 26
  27. 27. 2019/1/26 27
  28. 28. 2019/1/26 28
  29. 29. 2019/1/26 29
  30. 30. 2019/1/26 30
  31. 31. 参考文献等 • https://elix-tech.github.io/ja/2017/02/06/gan.html#dcgan • http://musyoku.github.io/2017/04/16/Boundary-Equilibrium- Generative-Adversarial-Networks/ • https://qiita.com/underfitting/items/9c92be2d8ea42c612e88 2019/1/26 31
  32. 32. 4.Spectral Normalization GAN arXiv:1802.05957 2019/1/26 32 担当:石井
  33. 33. SNGANの概要 • PFN(Preferred Networks)の宮戸氏+NII(国立情報学研究所)の吉田氏の論文 • 行列𝑊を最大特異値(=𝐿2ノルム)で割ることでLipschitz連続性を満たすよ うにさせ,Lipschitz定数をコントロールし安定性の向上を図った • この正規化層はDiscriminatorのみに設けてある. 2019/1/26 33
  34. 34. Lipschitz連続ってなんだっけ • 写像𝑓の任意のドメインの2点𝑥, 𝑦に対して,作用前と作用後の 距離を定数𝐾で抑えられるときLipschitz連続(K-Lipschitz)という • ちなみにこの時の𝐾はLipschitz定数と呼ばれる ∀𝑥, ∀𝑦, 𝑓 𝑥 − 𝑓 𝑦 2 ≤ 𝐾 𝑥 − 𝑦 2 • 入力値の微小摂動に対して,出力の変化が微小であることが保証されてい るため機械学習/深層学習分野では,小さな修正でこの条件を達成できる ようになることも相まってよく使われている. 2019/1/26 34
  35. 35. 行列のノルム • 集合𝑋の任意元𝑥に対し大きさとして扱える条件が満たされるような 𝑥 ∈ ℝ1が定義され ているとき| 𝑥 |を𝑥のノルムという.(長さの一般化) • ベクトルの𝐿2ノルムはユークリッド距離に等しい • 行列の𝐿 𝑝ノルムは以下のように定義される 𝐴 𝑝 = sup 𝒙≠𝟎 𝐴𝒙 𝑝 𝒙 𝑝 = sup 𝒙 𝑝 =1 𝐴𝒙 𝑝 2019/1/26 35
  36. 36. 行列のノルム • 行列の𝐿2ノルムはスペクトルノルム(Spectral Norm)と呼ばれている • 先ほどの式は言い換えてしまえば単位ベクトルの入力に対する出力の最も大きく変形す る長さであるといえる • 𝑝 = 2のとき,直感的にこれは最大特異値(正方行列なら最大固有値)とわかる 𝐴 𝒙 ∈ 𝒙| 𝒙 2 = 1 𝐴𝒙 𝐴 2 2019/1/26 36
  37. 37. Lipschitzノルム • Lipschitz連続は定義から任意元𝑥に対する勾配の𝐿2ノルムの 上界であるといえる.(∀𝑥, 𝑓 𝑥 + Δ𝑥 − 𝑓 𝑥 2 / Δ𝑥 2 ≤ 𝐾) • これを 𝑓 𝐿𝑖𝑝 のように表す.このノルムは劣乗法性( 𝑓 ∘ 𝑔 𝐿𝑖𝑝 ≤ 𝑓 𝐿𝑖𝑝 ⋅ 𝑔 𝐿𝑖𝑝 )が定義から成り立つ(証明略)ので,NNの𝑙層- 𝑙 + 1 層間の作用を ℎ𝑙 → 𝑊ℎ+1ℎ𝑙 𝐿𝑖𝑝 と表現し𝑙層目の活性化関数を| 𝑎𝑙 |と表せば,活性化 層が1-Lipschitzであるとき, 𝐿 層あるNNの射影𝐹のLipschitz Normは 各々の層の間の作用のLipschitz Normの総乗以下となる. 𝐹 𝐿𝑖𝑝 ≤ 𝑙=0 𝐿 ℎ𝑙 → 𝑊ℎ+1ℎ𝑙 𝐿𝑖𝑝 2019/1/26 37
  38. 38. Lipschitzノルム • 射影 ℎ𝑙 → 𝑊ℎ+1ℎ𝑙 は線形変換なのでこのLipschitz Normは 𝑊ℎ+1 2 である.したがって,各々の 𝑊ℎ+1 を𝐿2ノルムで割る ことで層の射影を1-Lipschitzに抑えることができるようになる • 結果としてNN全体のLipschitz Normが1以下に収まるといえる 𝐹 𝐿𝑖𝑝 ≤ 𝑙=0 𝐿 ℎ𝑙 → 𝑊ℎ+1 ℎ𝑙 𝐿𝑖𝑝 ≤ 1 2019/1/26 38
  39. 39. 結果 ピザ(論文内の例) 美少女(自分の実装の例) 2019/1/26 39
  40. 40. 5. Self-Attention GAN arXiv:1805.08318 2019/1/26 40 担当:石井
  41. 41. Self-Attention GANの要点 • Spectrum NormをGeneratorにも適用した • Two-Timescale Update RuleによってGANの学習速度が向上す ることが判明した • TTUR:GとDで異なる学習率を用いる • Arxiv:1706.08500 • 機械翻訳等で用いられるようなSelf-Attention層を考案した • 当時のSoTAを達成! 2019/1/26 41
  42. 42. CNN層の問題点 • CNNはカーネルを走査的に適用するため,局所的受容野を持つ • そのため,大局的な受容野を持つためには何層も層を重ねる必 要がある. • 別の選択肢としてカーネルの大きさを大きくするという選択肢がある が,これでは局所的な畳込みによって得られる恩恵を失ってしまう • 3x3畳み込み層では物体に対して局所的なエッヂに対して反応する受容野を持つ ことが見込めるが13x13畳込み層ではこういった部分に対する反応が起きないか もしれない • 3x3を5回適用することと13x13を一回適用するとでは計算量の観点からも,局所 性の観点からでも性能が低下することが懸念される. • Self-Attention層により,大局的受容野を効率的に持つことが できる 2019/1/26 42
  43. 43. Self-Attention機構 2019/1/26 43 • クエリが𝑓 𝑥 ,キーを𝑔(𝑥),バリューがℎ(𝑥)の辞書に対応している • 入力をℝ 𝐶×𝑁の形にする. • 論文中では𝑓 𝑥 = 𝑊𝑓 𝑥, 𝑊𝑓 ∈ ℝ 𝐶 8 ×𝐶 , 𝑔 𝑥 = 𝑊𝑔 𝑥, 𝑊𝑔 ∈ ℝ 𝐶 8 ×𝐶 で1x1畳み込み層で写像を定義 している • 𝑓 𝑥 の出力の転置と, 𝑔 𝑥 の出力を掛けて,ソフトマックスをする(行列𝜷とする) • 図中のAttention Mapに対応 𝑞𝑢𝑒𝑟𝑦と𝑘𝑒𝑦の類似度 正規化
  44. 44. Self-Attention機構 2019/1/26 44 • 𝑓, 𝑔でどの画素とどの画素が似ているかを計算することができる. • 最後にℎ 𝑥 = 𝑊ℎ 𝑥, 𝑊ℎ ∈ ℝ 𝐶×𝐶をAttention Mapに掛ける. • 結果𝜎 𝑓 𝑥 𝑇 𝑔 𝑥 ℎ(𝑥)という演算と通して大局的受容野を持たせるように試みている • Self-Attentionの利点は下の隠れ層の全位置を参照できる点にある.
  45. 45. Self-Attention機構 2019/1/26 45 • Self-Attentionの出力を𝑜として,もともとの入力𝑥に対して重み付き和を出力する • 𝑦 = 𝛾𝑜 + 𝑥(𝛾は0で初期化する) • 𝛾を学習パラメータとすることで次第にSelf-Attention機構が大局性を持って学習できる ようになる
  46. 46. Self-Attention機構 2019/1/26 46 • 𝐴𝑡𝑡𝑒𝑛𝑡𝑖𝑜𝑛 𝑀𝑎𝑝の出力の例 • 一番左の画像のRGBに対応するAttentionMapが右の3つの画像である. • 色が似ている点に反応しなおかつ,長距離でも反応できていることが分かる.
  47. 47. 学習結果 2019/1/26 47 FIDはGANの精度(質)の評価 (低いほどGood) ISはGANの多様性の評価 (高いほどGood)
  48. 48. おわり • 佐久間君が発表してくれなくて寂しかったです 2019/1/26 48

×