スポンサーリンク

問題の解答・解説ページ

このページは解説の閲覧モードです。
実力試しをしたい方は、下のボタンからクイズに挑戦してください!

この問題をクイズ形式で解く
問題 No.5515
DCGAN(Deep Convolutional Generative Adversarial Networks)のアーキテクチャに関する記述として、論文内で提案され推奨されている設計上の制約や工夫として適切なものはどれか。

【正解の解説】

識別器のプーリング層をストライド畳み込みに置き換え、生成器には空間的なアップサンプリングのために逆畳み込み層を使用する

画像を作る粘土細工に例えると、従来の粗い縮小拡大ではなく、職人の手で滑らかに形を整えながら大きくしていくようなものです。DCGANではプーリング層を使う代わりにストライドを効かせた畳み込み層を導入し、ネットワーク自身に最適なダウン・アップサンプリングの方法を学習させることで、ぼやけていないシャープな画像生成を実現しています。

スポンサーリンク

【その他の選択肢の解説】

識別器と生成器の双方において全結合層を積極的に活用し、特徴量の抽出能力と表現力を最大化している

全結合層を使うと画像の空間的な位置情報が失われがちになり、パラメータ数も爆発的に増えてしまいます。DCGANではネットワークの安定性と高解像度化を図るために、あえて全結合層を排除し、畳み込み層だけでモデルを組み立てるアーキテクチャを採用しています。試験では「全結合層を活用する」という記述がよく罠として出題されるため注意が必要です。

識別器の活性化関数にはすべてReLU関数を採用し、生成器の出力層にはシグモイド関数を使用する

通常のReLU関数では負の入力がすべてゼロになってしまい勾配が失われますが、識別器の活性化関数にはわずかに傾きを持たせたLeakyReLUを採用します。また、生成器の出力層には-1から1の範囲を出力できるTanh関数を用いることで、ピクセル値の範囲を揃え綺麗に画像を生成できるように工夫されています。

生成器の各層のバッチ正規化を完全に排除し、勾配の消失を防ぐために重みの初期化を厳密に行う

バッチ正規化を完全に排除するのではなく、むしろ積極的に導入することでディープラーニング特有の勾配消失問題を防ぎ、モデル全体の学習を安定させています。DCGANの論文における最大の貢献の一つがこのバッチ正規化の適用であり、「排除する」という記述は正反対の誤りとなります。