じゃあDCGANって?
前の記事で書いたGANの発展がDCGANであるわけだが、より高精度な画像生成をするために、名前の通り複数の2D Convolutional Layers を持っている。
https://arxiv.org/pdf/1511.06434.pdf
では、まずgenerator においては入力をGANの論文のようにrandomではなくuniformで平均が0、標準偏差0.02、100次元の分布としており、それを4*4*1024に変形、それを4つのtranspose of convolutional layers に通すことで最終的に64*64*3の出力を得ている。出力層以外のすべての層においてReluを活性化関数として使い、出力層においてはtanhを用いる(そもそもどんなニューラルネットワークモデルであってもReluは出力層には使えない)。
discriminatorはgeneratorとほぼ全く同じ構造をしており、alpha値0.2のleakyReluを活性化関数として用い、最終的には global average pooling layer を通して出力を得るという形になる。
全体的な特徴として、各層にbatch normalization を用い、多くのconvolutional NNにおいて用いられる pooling layers を用いない、fully connected layerは用いないという点を著者は上げている。