Leaky ReLU함수 ==> https://wikidocs.net/163752
DCGAN
- GAN을 CNN으로 설계하여 안전성을 개선한 모델
- 초기의 GAN은 fully-connected였다.
DCGAN은 이를 최대한 배재하였다..
==> "strided convolution"과 "transposed convolution"으로 네트워크 구조를 만듬.
- 왜 fully-connected layer를 제거하였나?
- FC는 파라미터가 급증하며, 공간구조를 깨뜨려서 지역패턴 학습이 비효율적이다.
- 표쥰 아키텍쳐 ( ex. 64x64 RGB , z=100 )
- Generator( G )
- input : z∈R^100 ~N(0,1)
- 4x4 x 1024 ==> 8x8 x 512 ==> 16x16 x 256 ==> 8x8 x 512 ==> 4x4 x 1024 --> 스칼라
- 각각의 블록 : ConvTranspose2d( kernel 4 , stride 2 , padding 1 ) + batchNorm + ReLU
- 마지막 블록 : ConvTranspose2d --> Tanh
- Discriminator
- input : 64 x 64 x 3
- 64x64 x 3 ==> 32x32 x 128 ==> 16x16 x 256 ==> 8x8 x 512 ==> 4x4 x 1024 --> 스칼라
- 각각의 블록 : Conv2d( kernel 4 , stride 2 , padding 1 ) + batchNorm + LeakyReLU(0.2)
- 마지막: Conv2d ==> Sigmoid(BCE) or linear( BCE with Logits )
generator