1

I'm exploring Generative Adeversarial Networks (GAN's), which i use for several tasks not only image generation.

The Deep Convolutional GAN (DCGAN) is another approche of GAN that is specially used for image data, the particulatity of DCGAN's is that they use convolution layers in the discriminator and transpose convolution layers for the generator.

In my application i use convolution layers in the discriminator but rather than using transpose convolution for the generator i used a simple convolution.

The question is, since i don't use transpose convolution, am i currently using a simple GAN or a DCGAN

Thanks in advance for your answers, and have a nice day

Nadjib Bendaoud
  • 546
  • 1
  • 8
  • 19

2 Answers2

3

No its not just the tranposed convolution layers.Actually, it is an attempt to use Gans with Convolution neural networks and ensuring a stable architecture by modifying it. Some of their modifications include like using learnable upsampling abd downsampling instead of maxpooling, substituting fully connected layers with flattening and a sigmoid layer at the output of discrimniator, application of Batch Normalization to all layers except the output of genrator and input of discriminator and a few more. Regarding your doubt, to call your architecture as GAN or DCGAN seems to be a bit confusing as in normal Gan architecture, no convolution layers are used.The discriminator and generator iN original GAN are fully connected networks with a mixture of relu and maxout activations respectively.In order to use CNNs with GANs which were initially considered to be unstable, a few papers were introduced at that time like LAPGAN and DCGAN . Having said this,you cannot call your architecture to be DCGAN also unless you have copied the entire training details and architecture, though you can say my model being inspired from DCGAN with little modifications. I hope this will clear your doubt a little bit.

2

GAN consists of two components:

  • The forger: the one which tries to do the forgery,
  • and The inspector: who tries to catch the forger, by examining the material to distinguish if it is a real one or a fake.

These two playing the game, each time forger try to make something up, harder to be distinguishable in the ins[ector eyes. Each time Inspector succeeds to detect the forger, that is a lesson for the forger to learn why got caught and next time cover himself/herself/itself better.

Long story short, this game is called GAN! How you implement it, and choosing the architectures, is actually your choice. DCGANs in my understanding, use deep conv nets for the generator part (The forger). It is not really about using ConvTranspose, or normal convs.

For the inspector also, you do not really have to implement it as a discriminator. For example, WGANs are shown to be efficient using Earth-mover metrics instead of a classification loss.

However, these are my opinion and my understandings, might not be 100% correct. Good luck

alift
  • 1,855
  • 2
  • 13
  • 28