1. DCGAN(Deep Convolutional GAN)とは [概要]
DCGAN (Deep Convolutional GAN)とは,GANの生成識別ネットワークペアに,畳み込み層と転置畳み込み層を導入してCNN化したものである.GANの元論文 [Goodfellow et al.,2014] では,MNISTを用いた「小さい画像での生成モデル学習」実験であったのが,DCGAN [Radford et al., 2015] で初めてCNN化された.
この記事では,DCGANの元論文でのネットワーク構造(2節)と,実験で示されたこと主張されたこと(3節)を短くまとめる.
DCGANの登場時の画像の深層生成モデルは,まだVAEもGANも「小さな画像の生成ができただけで,学習も不安定」というPoCの基礎研究段階であった(実際,提案場所もNIPSなどであった).それがCNN化して[64 x 64]サイズをとり合えず(汚い画像ながら)生成できるようになったDCGANが登場した.これにより,「(物体認識向けのCNNの知見を)GANやVAEでも成長させていくと,大きなサイズの高画質画像を生成できるようになるかも」という可能性が,初めて芽生えたという意味で,(管理人は)重要な研究であったと思う.
2. DCGANのネットワーク構造
DCGANのネットワークペア (図1)では,生成CNN (図1 左側)と,識別CNN (図1右側)が,中間層で出力する各特徴マップと出力/入力サイズの構造が,U-NetやVAEと同様に「左右対称」となる設計にされている.
基本設計のDCGANでは,100次元の潜在変数ベクトル $\bm{z}$をもとに,生成画像のサイズには [64 x 64] x 3チャンネルが用いられた.また,2つのCNNには,当時の典型的なCNNバックボーンと同様の層から構成されており,バッチ正規化とReLU, LeakyReLUが用いられている.(詳細なCNN構造の提示は,ここでは省略する)
学習には,GANの元論文通りの通常のGANのロス関数をもちいた敵対的学習が実施される.したがって,元のGAN論文でのMNIST画像生成向けものとの基本的な違いは,ネットワークがCNN化した点だけである.
※ エンジニアの方には,オライリーの生成Deep Learning (David Foster 著)は,これらの古い初期の画像生成モデルの解説も,とてもわかりやすい名著であるのでオススメしておく(ただし,もうコードは上手く動かない).また英語版の方には,2023年8月に増補改訂版が登場予定である.
3. 実験
3.1 LSUNデータセットでの基礎実験
まず論文中では,LSUNデータセットの室内シーン画像群を用いた実験結果が示されている.
論文中のFigure 2, 3 に生成画像のベッドルームの結果が示されている.今見ると,なんとも初歩的な画像であるが,当時は,[64 x 64]の画像サイズでの実験はまだ始まったところであり,このサイズの画像が,CNN + GAN学習で生成できたのは大きな第一歩であった.
3.2 潜在ベクトルの内挿による,中間画像の生成
また,ランダムな2つの潜在ベクトル$\bm{z}$の間で,内挿入を行ったベクトル$\hat{\bm{z}}$を作り,それを生成器に順伝搬した結果画像を並べて表示した(論文中Figure 4).これにより,潜在空間での(線形)補間が,生成画像でもうまく対応づいていることを示し,(VAEと同様に)DCGANの潜在空間も,学習データ間からの逆写像先がうまく均等配分されていることを著者らは強調した.
Figure. 7では,今度は顔画像データセットで,潜在ベクトルのたし算により,属性変化させた画像をつくれるポテンシャルがあることも図で示されている.
まとめの章では,当時はGANの学習がまだ不安定な初期の頃でもあって,[64 x 64]サイズのDCGAN(図1)でも学習がうまくいかないことがあり,それが今後の研究課題の1つだと書かれている.その後,improved training of GANの研究での学習安定化tips集や,WGANなどのより安定した学習ができるロス関数やネットワーク構造の登場で解決されていくことになる.
4. まとめ
以上,DCGANについて,短くまとめた.
関連書籍
- 深層学習 改訂第2版 (機械学習プロフェッショナルシリーズ) 岡谷貴之,講談社,2022.
- 生成 Deep Learning ― 絵を描き、物語や音楽を作り、ゲームをプレイする David Foster , オライリージャパン, 2020
- 4.3 初めてのGAN p111~p124
- 深層学習 改定第2版 (機械学習プロフェッショナルシリーズ) 岡谷貴之 ,講談社 (2022).
- 12.4 敵対的生成ネットワーク (GAN) (p302)
- 物体検出とGAN、オートエンコーダー、画像処理入門 PyTorch/TensorFlow2による発展的・実装ディープラーニング チーム・カルポ、秀和システム,2021.
References
- [Goodfellow et al., 2014] I. Goodfellow, J. Pouget-Abadie, M. Mirza, B. Xu, D. Warde-Farley, S. Ozair, A. Courville, and Y. Bengio. Generative adversarial nets. In NIPS, 2014.
- [Radford et al., 2015] A. Radford, L. Metz, and S. Chintala. Unsupervised representation learning with deep convolutional generative adversarial networks. arXiv preprint arXiv:1511.06434, 2015.
- [Yu et al., 2015] Fisher Yu, Yinda Zhang, Shuran Song, Ari Seff, and Jianxiong Xiao. LSUN: Construction of a large-scale image dataset using deep learning with humans in the loop. arXiv:1506.03365, 2015