GANについて
GAN(Generative Adversarial Network)について調べた際のメモです。
GANとは
- Ian Goodfellow (@goodfellow_ian)が2014年に発表1
- 生成モデル: 訓練データの分布と生成データの分布が同じになるよう学習
- 訓練データに対してパラメータが小さく、重要な特徴を学習する
- GeneratorとDiscriminatorに分かれる
- Generatorは訓練データと同じようなデータを生成するように学習
- Discriminatorは与えられたデータが訓練のものか、生成されたものかを見分けるように学習
- Generatorの学習 → Discriminatorの学習 → Generatorの学習 → ...、とイタチごっこをする
- Dの学習をk回繰り返したらGを1回学習する、の繰り返し(k=1が多い)
- Generatorはノイズを元にデータを生成する
- DCGAN(Deep Convolutional GAN): CNNを使ったモデル → 画像の生成 (元の論文2ではベッドルームの画像の生成)
- プーリングしない、全結合しない、BatchNormalization、Leaky ReLU
- LAPGAN, SRGAN, pix2pix, StackGAN, SimGAN, 3D-GAN, CycleGAN, DiscoGAN...
- MSEだと平均的な(ぼやけた)画像になる(VAE)が、GANだとシャープな画像が生成できる
- 4Kイメージを8Kにしたり
- 生成した画像に和や差の演算ができる
- Deep Learningで課題である「教師なし学習」「タグ無しデータ」を解決する可能性がある
Refs
- はじめてのGAN
- Generative Adversarial Networks (GAN) とは何か、どんなブレークスルーが期待でき如何なる危険性があるか « Emerging Technology Review
- Generative Adversarial Network とは――トップ研究者が解説 | NVIDIA
- できるだけ丁寧にGANとDCGANを理解する - 午睡二時四十分
- ディープラーニングネットワーク (GAN と Siamese) を組み合わせハイクオリティでリアルなイメージを生成 | Amazon Web Services ブログ
- GAN(と強化学習との関係)
- GANとDCGANの論文を読んだ。 - rkgkpyrk
- 人工知能の注目トレンド「GAN:敵対的生成ネットワーク」とは | ROBOTEER
- GAN(Generative Adversarial Networks)を学習させる際の14のテクニック - Qiita
- 人工知能による画像認識/生成アルゴリズムとして浸透しつつある「GAN」とは | SiTest (サイテスト) ブログ
- [DL輪読会] GAN系の研究まとめ (NIPS2016とICLR2016が中心)
- Conditional GANをchainerで実装した - Qiita
- Conditional DCGANで画像生成 - kumilog.net
- Conditional GANをMNISTとCIFAR-10で試してみる - 緑茶思考ブログ
- NVIDIAら、Conditional GANを用いて任意の画像から2048×1024高解像度のフォトリアリスティックな画像合成モデルを生成できる手法を論文にて発表 | Seamless
- KerasでDCGAN書く - Qiita
- GitHub - eriklindernoren/Keras-GAN: Keras implementations of Generative Adversarial Networks.
- [1701.00160] NIPS 2016 Tutorial: Generative Adversarial Networks
- Chainerで顔イラストの自動生成 - Qiita
- TensorFlowによるDCGANでアイドルの顔画像生成 - すぎゃーんメモ
- なんちゃって!DCGANでコンピュータがリアルな絵を描く - PlayGround
- Chainerを使ってコンピュータにイラストを描かせる - Qiita