ヌルヌルコンピューター

機械学習、ニューラルネットワーク、その他色々と書くつもりですが三日坊主なので続かないかもしれません。あとまだ学士も取ってないへなちょこなので書いてある情報は正確性に欠いているかもしれません。てか多分間違いがいっぱいあります。何かありましたらご指摘お願いいたします。https://github.com/hirokik0811

じゃあDCGANって?

前の記事で書いたGANの発展がDCGANであるわけだが、より高精度な画像生成をするために、名前の通り複数の2D Convolutional Layers を持っている。

f:id:May-kwi:20171121183832p:plain

from http://gluon.mxnet.io/chapter14_generative-adversarial-networks/dcgan.html



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は用いないという点を著者は上げている。