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.

Study Group of NIPS2017 presented by webfarmer.ltd

239 views

Published on

The document used in Study Group of NIPS2017 presented by webfarmer.ltd

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Study Group of NIPS2017 presented by webfarmer.ltd

  1. 1. 第2回 NIPS2017 理論と実装方 法を話し合う会 2018/2/13 主催:株式会社ウェブファーマー
  2. 2. この会の目的   一人でNIPSを追えない 各自が特定の論文を読み、(実装し)、それ をみんなで議論できればいい NIPSを追ってれば人工知能の最新技術がわかる
  3. 3. ◾名前:⼤政孝充(おおまさ たかみつ) ◾株式会社ウェブファーマー 代表  http://web-farmer.net ◾⼈⼯知能システムの開発(画像・動画・時系列データ) ◾⼈⼯知能のコンサルタント ⾃⼰紹介 masataka46
  4. 4. 人工知能 プロトタイプ開発 •  人工知能の試作品、本格的な開発に入る前のプロトタイプを開発 •  画像系、動画系、音声系、時系列データ系の人工知能を取り扱い 試作品の例) 顔の表情を読み取る アプリ 困惑の表情 学習
  5. 5. 本日の予定 1)Triple-GANの実装とその周辺(大政) 2)Gated Recurrent Convolution Neural Network for OCR(大政) 3)Cycle-GAN(大川) 4)Attention is All You Need(下村)
  6. 6. 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
  7. 7. GAN〜Triple-GAN〜の流れ
  8. 8. 元祖GANsのしくみ Xl Xg R 元祖 GANs ノイズによって異なる画像を生成する Ian Goodfellow, et. al. Generative adversarial nets. In NIPS, 2014.
  9. 9. 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 なものか、生成され たものかを判別する
  10. 10. Conditional-GANの問題点 Xl R 3 3 3 例えば Discriminator に   と3を入力した時に Discriminator が生成され た画像とラベルのペアと判定したとする。 これは3っぽい画像だけど本物っぽくないスタイルなので real でないと考 えたのか・・・・ あるいは本物っぽいスタイルだけど3でなく8と考えたからそう判定したの だろうか・・・ Conditional-GANの問題点
  11. 11. AC-GANのしくみ Xl R 3 3 3 AC-GAN ラベルも推定させ、学習させる A. Odena, et. al. Conditional Image Synthesis with Auxiliary Classifier GANs. arXiv: 1610.09585v4 DiscriminatorもGeneratorもクラスを判別できるように学習する 1〜9 Generator: Discriminator:
  12. 12. Conditional-GANの問題点 Xl R 3 3 3 Discriminator に画像のスタイルとラベルとの両方を判定させている  →これが性能の向上を妨げている・・・? AC-GANの問題点(1) 1〜9
  13. 13. Conditional-GANの問題点 Xl R 3 3 3 あるいは、この仕組みだとラベルの付いた画像しか学習に使えないので、 データセットが少ない  →これも性能の向上を妨げる原因 AC-GANの問題点(2) 1〜9
  14. 14. Triple-GANのしくみ そこで Triple-GAN では新たに Classifier を設ける 3 3 3 3
  15. 15. Triple-GANのしくみ ① Classifier でラベルを識別する  →これにより Classifier の識別性能はどんどん上がるだろう。。。 3 3 3 3 Classifier にラベルの存在する画像を入れた場合の流れ 出力と正解ラベルから教師あり学習をする  
  16. 16. Triple-GANのしくみ ② Classifier にラベルなしの画像も入れ、ラベルを推論させる  →データセットが大幅に増やせる 3 3 3 3 ラベルの無い画像を Classifier に入れた場合の流れ Classifier でラベルを推論し、それを Discriminator に渡す
  17. 17. Triple-GANのしくみ ③ Classifier に Generator で生成した画像を入れる  →データセットが更に増やせる 3 3 3 3 Generator で生成した画像を Classifier に入れた場合の流れ 教師あり学習をさせる
  18. 18. DA-GANのしくみ こんな感じ?(まだちゃんと読んでません) 3 3 3 3 T.Tran, et. al. A Bayesian Data Augmentation Approach for Learning Deep Models.
  19. 19. Triangle-GANのしくみ これもまだちゃんと読んでません Z.Gan, et. al. Triangle Generative Adversarial Networks. arXiv:1709.06548v2
  20. 20. 各要素のアーキテクチャ MNIST datasets を用いる場合の各要素のアーキテクチャ
  21. 21. Triple-GANの学習方法
  22. 22. 学習方法① Generator Generator は adversarial な学習のみ。 3
  23. 23. 学習方法② Discriminator Discriminator は3種類の流れに対する adversarial な学習。 3
  24. 24. 学習方法③ Classifier Classifier は推論したラベルに関する adversarial な学習、real 画像に対す る教師あり学習、Generator で生成された画像に対する教師あり学習 3
  25. 25. 学習のポイント 学習がうまくいくポイントは                  となること 3 p Xl, Xl( )= p Xg, Xg( )= p Xc, Xc( )
  26. 26. Triple-GANの学習結果
  27. 27. 学習結果 Classifier の識別結果。一部のデータのみラベルを付与している。 半教師あり学習できる Triple-GANの性能がいい。
  28. 28. 学習結果 Generator で生成された画像。 各列は同一のノイズ z 、各行は同一のラベル y それっぽい画像が生成されている
  29. 29. 学習結果 Chainer で作成したコードによる学習結果。 Generator から生成された画像。 各列は同一のノイズ z 、各行は同一のラベル y 学習回数1回 学習回数10回 学習回数500回
  30. 30. 学習結果 学習速度の比較 同じ半教師学習である Improved GAN より収束が早い 学習回数10回 T. Salimans, et. al. Improved techniques for training GANs. In NIPS, 2016.
  31. 31. 実装のポイント
  32. 32. Chainer で実装する際のポイント まず Discriminator を学習させる場合を考える 3
  33. 33. Chainer で実装する際のポイント お決まりの cleargrads() で Discriminator に溜められた勾配をクリアにする。 3
  34. 34. Chainer で実装する際のポイント backward() で Discriminator の Loss を起点に勾配を計算する 3 →Generator、Classifier の勾配も計算される
  35. 35. Chainer で実装する際のポイント update() で Discriminator の重みのみ更新する 3
  36. 36. Chainer で実装する際のポイント 次に Classifier を学習させる。Disciriminator からの不要な勾配があるの で、これを消す。 3
  37. 37. Tensorflow で実装する際のポイント Discriminator のみを学習させる場合、var_list に対象のパラメータを列挙 する 3
  38. 38. Tensorflow で実装する際のポイント 同じ名前のパラメータを何度も使って計算グラフを作る際、注意が必要。 reuseを使わないと別のパラメータと認識される。
  39. 39. Tensorflow での学習結果 Tensorflow で作成したコードによる学習結果。 Generator から生成された画像。 各列は同一のノイズ z 、各行は同一のラベル y 学習回数500回 学習回数1000回 ノイズを変えてもラベルを変えても全て同じものが出力される しかも学習回数によってラベルは変わってくる・・・・なぜ??
  40. 40. Triple-GAN の改良案
  41. 41. 学習のポイント(再掲) 学習がうまくいくポイントは                  となること 3 p Xl, Xl( )= p Xg, Xg( )= p Xc, Xc( )
  42. 42. Triple-GAN の改良案(1) 現状では Generator から Classifier への経路だけ誤差逆伝播してない 3 ココ
  43. 43. Triple-GAN の改良案(1) これを誤差逆伝播してみる 3 ココ
  44. 44. Triple-GAN の改良案(1) コードの修正はこれだけ 3 ココ
  45. 45. Triple-GAN の改良案(1) 学習結果 Generator から生成された画像 結構うまくいってる? 学習回数1回 学習回数50回
  46. 46. Triple-GAN の改良案(2) α=0.5 が最適ではないはず。変えてみたらどうなる? 31α 1-α
  47. 47. Triple-GAN の改良案(2) α = 0.05 とした学習結果 Generator から生成された画像 α = 0.5 よりは性能が劣る。 最適な α とは?? 学習回数1回 学習回数50回
  48. 48. Triple-GANのまとめ l  Triple-GANはGenerator と Discriminator に加えて Classifier を導入 した l  これにより半教師あり学習が可能となった l  学習後の Generator はこれまでのモデルよりリアルな画像を生成し た l  学習後の Classifier はこれまでのモデルより識別性能が上がった l  このしくみは特に少ない教師データで学習する際に威力を発揮する

×