본문 바로가기

GAN

GAN의 발전-DCGAN, CGAN (1)

DCGAN

초기 GAN의 성능은 좋지 않았는데 그 이유는 Fully-Connected 되어 있는 구조이기 때문이다.

이에 Facebook은 Fully-Connected 구조를 CNN으로 바꾸어 GAN의 성능 향상을 도모했고, 이 모델을 DCGAN이라 한다.

출처: GAN 인 액션

G: Transposed Convolutioinal Network를 사용해 Up-sampling하여 원하는 사이즈의 이미지를 생성

D: 단순 CNN을 사용

 

*Transposed Convolutioinal Network란?

기존의 CN처럼 줄어드는 것이 아닌 확대되는 것.

 

[최적의 결과를 위한 DCGAN 모델 생성방법]

1. pooling layer 제거 -> Convolution layer로 대체 (pooling layer는 미분이 불가능하기 때문)

2. BatchNormalization 추가

3. fully connected hidden layer 제거

4. 생성자 모델의 activation fun: ReLU, 출력의 activation fun: Tanh 사용

5. 판별자의 모든 레이어에 Leaky ReLU를 적용

 

 

CGAN

GAN에 레이블이라는 추가적인 정보를 주어서 성능을 향상 시킨 모델이다.

condition을 나타내는 변수를 추가하여 임의의 노이즈가 주어졌을 때 원하는 출력을 가능하게 한 모델이다.

-> CGAN모델도 convolution layer와 사용한다.

라벨을 28*28*1크기의 벡터로 embedding하여 이미지와 동일한 크기의 텐서로 변환한다.

레이블과 이미지를 연결해 28*28*2가 input이 되게 한다.

 

 

'GAN' 카테고리의 다른 글

SQ-AGGAN  (0) 2022.12.21
GAN 코드 분석  (0) 2022.11.16
GAN에 대한 정리 (2)  (0) 2022.11.09
GAN에 대한 정리 (1)  (0) 2022.11.09