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.

Nips20180127

2,966 views

Published on

This Docments is used in NIPS2017-ronbun-yomi-kai.
This is introduction to tripleGAN model or els.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Nips20180127

  1. 1. NIPS2017 論文読み会 2018/1/27 株式会社ウェブファーマー 大政 孝充
  2. 2. ◾名前:⼤政孝充(おおまさ たかみつ) ◾株式会社ウェブファーマー 代表  http://web-farmer.net ◾⼈⼯知能システムの開発(画像・動画・時系列データ) ◾⼈⼯知能のコンサルタント ⾃⼰紹介 masataka46
  3. 3. 人工知能 プロトタイプ開発 •  人工知能の試作品、本格的な開発に入る前のプロトタイプを開発 •  画像系、動画系、音声系、時系列データ系の人工知能を取り扱う 試作品の例) 顔の表情を読み取る アプリ 困惑の表情 学習
  4. 4. Triple-GANとは 論文 C. Li, et. al. Triple Generative Adversarial Nets. In NIPS, 2017. 著者らのコード https://github.com/zhenxuan00/triple-gan taki0112氏のTensorflowを用いたCifar10での学習コード https://github.com/taki0112/TripleGAN-Tensorflow 私のTensorflowを用いたMNISTでの学習コード https://github.com/masataka46/tripleGAN 私のChainerを用いたMNISTでの学習コード https://github.com/masataka46/tripleGAN_chainer
  5. 5. 本日の予定 1.  Triple-GANのしくみ 2.  Triple-GANの学習方法 3.  Triple-GANの学習結果 4.  実装のポイント 5.  Triple-GANの改良案 6.  Tripel-GANのまとめ 7.  NIPS2017から Discriminatorの役割を分けた他の例 8.  NIPS2017から 半教師あり学習の他の例
  6. 6. Triple-GANのしくみ
  7. 7. 元祖GANsのしくみ Xl Xg R 元祖 GANs ノイズによって異なる画像を生成する Ian Goodfellow, et. al. Generative adversarial nets. In NIPS, 2014.
  8. 8. Conditional-GANのしくみ Xl R 3 3 3 Conditional-GAN ラベルを一緒に入力し、そのラベルの画像を生成させる M. Mirza and S. Osindero. Conditional generative adversar- ial nets. arXiv preprint arXiv: 1411.1784, 2014 Discriminatorは入力された画像とラベルのペアが real なものか、生成さ れたものかを判別する
  9. 9. Conditional-GANの問題点 Xl R 3 3 3 例えば Discriminator に   と3を入力した時に Discriminator が生成され た画像とラベルのペアと判定したとする。 これは3っぽい画像だけど本物っぽくないスタイルなので real でないと考 えたのか・・・・ あるいは本物っぽいスタイルだけど3でなく8と考えたからそう判定したの だろうか・・・ Conditional-GANの問題点(1)
  10. 10. Conditional-GANの問題点 Xl R 3 3 3   Discriminator に画像のスタイルとラベルとの両方を判定させている  →これが性能の向上を妨げている・・・? Conditional-GANの問題点(1)
  11. 11. Conditional-GANの問題点 Xl R 3 3 3 あるいは、この仕組みだとラベルの付いた画像しか学習に使えないので、 データセットが少ない  →これも性能の向上を妨げる原因 Conditional-GANの問題点(2)
  12. 12. Triple-GANのしくみ そこで Triple-GAN では新たに Classifier を設ける 3 3 3 3
  13. 13. Triple-GANのしくみ ① Classifier でラベルを識別する  →これにより Classifier の識別性能はどんどん上がるだろう。。。 3 3 3 3 Classifier にラベルの存在する画像を入れた場合の流れ 出力と正解ラベルから教師あり学習をする  
  14. 14. Triple-GANのしくみ ② Classifier にラベルなしの画像も入れ、ラベルを推論させる  →データセットが大幅に増やせる 3 3 3 3 ラベルの無い画像を Classifier に入れた場合の流れ Classifier でラベルを推論し、それを Discriminator に渡す
  15. 15. Triple-GANのしくみ ③ Classifier に Generator で生成した画像を入れる  →データセットが更に増やせる 3 3 3 3 Generator で生成した画像を Classifier に入れた場合の流れ 教師あり学習をさせる
  16. 16. 各要素のアーキテクチャ MNIST datasets を用いる場合の各要素のアーキテクチャ
  17. 17. Triple-GANの学習方法
  18. 18. 学習方法① Generator Generator は adversarial な学習のみ。 3
  19. 19. 学習方法② Discriminator Discriminator は3種類の流れに対する adversarial な学習。 3
  20. 20. 学習方法③ Classifier Classifier は推論したラベルに関する adversarial な学習、real 画像に対す る教師あり学習、Generator で生成された画像に対する教師あり学習 3
  21. 21. 学習のポイント 学習がうまくいくポイントは                  となること 3 p Xl, Xl( )= p Xg, Xg( )= p Xc, Xc( )
  22. 22. Triple-GANの学習結果
  23. 23. 学習結果 Classifier の識別結果。一部のデータのみラベルを付与している。 半教師あり学習できる Triple-GANの性能がいい。
  24. 24. 学習結果 Generator で生成された画像。 各列は同一のノイズ z 、各行は同一のラベル y それっぽい画像が生成されている
  25. 25. 学習結果 Chainer で作成したコードによる学習結果。 Generator から生成された画像。 各列は同一のノイズ z 、各行は同一のラベル y 学習回数1回 学習回数10回 学習回数500回
  26. 26. 学習結果 学習速度の比較 同じ半教師学習である Improved GAN より収束が早い 学習回数10回 T. Salimans, et. al. Improved techniques for training GANs. In NIPS, 2016.
  27. 27. 実装のポイント
  28. 28. Chainer で実装する際のポイント まず Discriminator を学習させる場合を考える 3
  29. 29. Chainer で実装する際のポイント お決まりの cleargrads() で Discriminator に溜められた勾配をクリアにする。 3
  30. 30. Chainer で実装する際のポイント backward() で Discriminator の Loss を起点に勾配を計算する 3 →Generator、Classifier の勾配も計算される
  31. 31. Chainer で実装する際のポイント update() で Discriminator の重みのみ更新する 3
  32. 32. Chainer で実装する際のポイント 次に Classifier を学習させる。Disciriminator からの不要な勾配があるの で、これを消す。 3
  33. 33. Tensorflow で実装する際のポイント Discriminator のみを学習させる場合、var_list に対象のパラメータを列挙 する 3
  34. 34. Tensorflow での学習結果 Chainer で作成したコードによる学習結果。 Generator から生成された画像。 各列は同一のノイズ z 、各行は同一のラベル y 学習回数500回 学習回数1000回 ノイズを変えてもラベルを変えても全て同じものが出力される しかも学習回数によってラベルは変わってくる・・・・なぜ??
  35. 35. Triple-GAN の改良案
  36. 36. 学習のポイント(再掲) 学習がうまくいくポイントは                  となること 3 p Xl, Xl( )= p Xg, Xg( )= p Xc, Xc( )
  37. 37. Triple-GAN の改良案 現状では Generator から Classifier への経路だけ誤差逆伝播してない 3 ココ
  38. 38. Triple-GAN の改良案 これを誤差逆伝播してみる 3 ココ
  39. 39. Triple-GAN の改良案 コードの修正はこれだけ 3 ココ
  40. 40. Triple-GAN の改良案 学習結果 Generator から生成された画像 (100epochくらい) うまくいかなかった・・・・なぜ?
  41. 41. Tensorflowでの実装とChainerでの実装、 どちらがいいか l  Tensorflow では3日かけて作ったが学習が進まない。。。 l  Chainer では1晩で作ったが学習がうまくいった l  面倒臭い設定が少ない Chainer の方が楽か???
  42. 42. 苦労した点 l  ハイパーパラメータを少しいじるとうまくいかなくなる。DCGANなど2 要素の場合より難易度が高いか l  supplementary material を見てもハイパーパラメータの詳細は書か れていない →参照されてる論文や著者のコードを読み解く必要が あり、面倒臭い
  43. 43. Triple-GAN まとめ
  44. 44. Triple-GANのまとめ l  Triple-GANはGenerator と Discriminator に加えて Classifier を導入 した l  これにより半教師あり学習が可能となった l  学習後の Generator はこれまでのモデルよりリアルな画像を生成し た l  学習後の Classifier はこれまでのモデルより識別性能が上がった l  このしくみは特に少ない教師データで学習する際に威力を発揮する
  45. 45. NIPS2017から Discriminatorの役割を分けた他の例
  46. 46. Discriminatorの役割を分離する他の例 DA-GAN 色々な向きを向いた顔画像を生み出して、学習に使いたい シミュレータを使うと本物らしからぬ画像が生成されるので、これを本物っぽくしたい この際に1)顔の角度を指定し、2)個人のラベルを維持、したい 生成器 (generator) 本物画像 合成画像 洗練された画像 識別器 シミューレータ J. Zhao. et. al. Dual-Agent GANs for Photorealistic and Identity Preserving Profile Face Synthesis . In NIPS, 2017.
  47. 47. Discriminatorの役割を分離する他の例 DA-GAN 識別器を2つに分離する 識別器1では誰であるかを識別し、識別器2では本物っぽさを識別する 誰? 生成器 (generator) 識別器1 本物画像 合成画像 洗練された画像 識別器2 本物っぽさ シミューレータ
  48. 48. DA-GANとは 識別器1で顔画像のidentityを判別。 誰? 生成器 (generator) 本物画像 合成画像 洗練された画像 L1 ノルム 識別器2 本物っぽさ 識別器1
  49. 49. DA-GANとは Discriminatorはauto-encoder。顔の特徴量から必要最小限の顔画像を再構成している? その出力画像と入力画像との差分は、ノイズや肌質など「本物っぽさ」の部分か? 誰? 生成器 (generator) 本物画像 合成画像 洗練された画像 L1 ノルム 識別器2 本物っぽさ 識別器1 「本物っぽさ」の部分?
  50. 50. DA-GANとは 本物画像の「本物っぽさ」から生成画像の「本物っぽさ」を引いてLossを求めている。 本物画像と生成画像の「本物っぽさ」を近づけている? 誰? 生成器 (generator) 本物画像 合成画像 洗練された画像 L1 ノルム 識別器2 本物っぽさ 識別器1
  51. 51. DA-GANとは 実際は本物画像の「本物っぽさ」を生成画像の「本物っぽさ」の kt 倍にする? 誰? 生成器 (generator) 本物画像 合成画像 洗練された画像 L1 ノルム 識別器2 本物っぽさ 識別器1 とすべく で更新する は
  52. 52. DA-GANとは Generatorは全て畳み込みからなり、中央にresidual blockが10個 誰? 生成器 (generator) 本物画像 合成画像 洗練された画像 L1 ノルム 識別器2 本物っぽさ 識別器1
  53. 53. DA-GANとは GeneratorのLossの1項目はauto-encoder自体を学習させている? 誰? 生成器 (generator) 本物画像 合成画像 洗練された画像 L1 ノルム 識別器2 本物っぽさ 識別器1 LGθ = −Ladv + λ1Lip( )+ λ2Lpp ( ) LGθ = kt !xi − Dφ !xi( ) i ∑ + λ1Lip ⎛ ⎝ ⎜ ⎞ ⎠ ⎟+ λ2Lpp
  54. 54. NIPS2017から 半教師あり学習の他の例
  55. 55. 半教師あり学習の他の例 2枚の画像から Optical Flow を求めるモデル 教師がある場合は予測画像と教師画像から EPE loss を求める 教師がない場合は Flow warp error を求め、adversarial loss を求める W. Lai, et. al. ImSemi-Supervised Learning for Optical Flow with Generative Adversarial Networks proved techniques for training GANs. In NIPS, 2017.

×