티스토리 뷰
1. DCGAN(Deep Convolution GAN)
DCGAN은 위 GAN에서 직접적으로 파생된 모델로, 생성자와 구분자에서 합성곱 신경망(convolution)과 전치 합성곱 신경망(convolution-transpose)을 사용했다는 것이 차이점이다. 이 모델을 사용한 후 화질이 개선되었고, 간단하면서도 잘 작동한다.
CNN을 사용해서 Discriminator를 구현하고, deconvolutional network(fearure map 크기 증가)를 통해 Generator를 만든 모델이다.
- Fully connected layer와 Pooling layer를 최대한 배제하고 Strided Convolution과 Transposed Convolution으로 네트워크 구조를 만들었다. Fully connected layer와 Max-pooling layer는 매개변수의 수를 줄일 수 있지만 이미지의 위치 정보를 잃어 버릴 수 있다는 단점이 있다.
- Generator와 Discriminator에 배치 정규화(Batch Nomalization)을 사용하였다. 이는 입력 데이터가 치우쳐져 있을 경우의 평균과 분산을 조정해주는 역할을 한다. 따라서 back propagation을 시행했을 때 각 레이어에 제대로 전달되도록해 학습이 안정적으로 이루어지는데 중요한 역할을 하였다.
- 마지막 layer를 제외하고 생성자의 모든 layer에 ReLU activation를 사용하였다. 마지막 layer에는 Tanh를 사용하였다.
- Discriminator의 모든 레이어에 LeakyReLU를 사용하였다.

위의 이미지는 안경 낀 남자 - 안경 안 낀 남자 + 안경 안 낀 여자 = 안경 낀 여자 와 같은 실험의 결과이다.
잠재 공간에서 산술연산을 했을 때 그 결과가 이미지 공간에 반영된다. 위의 예시처럼, 산술연산에서 사용한 latent vector이라는 것은 모델에서 생성된 이미지 중 안경 낀 안자, 안경 안 낀 남자, 안경 안 낀 여자 그룹을 만들고 각 그룹에서 latent vactor의 평균을 구한 값을 의미한다.


궁금한 점 : DCGAN에서 왜 Generator와 Discriminator의 활성화 함수 선택이 다르게 설계되었나?
(이 이하는 ChatGPT를 통한 답변입니다)
1. Generator: ReLU + 마지막 Tanh
(1) ReLU를 쓰는 이유
- 양의 출력에서만 활성화되므로 gradient vanishing 위험이 적음
- 생성 단계에서 점점 해상도가 높아질수록(업샘플링) 밝은 영역을 적극적으로 만들어내는 데 유리
- ReLU는 계산이 단순하고, 깊은 네트워크에서 기울기 흐름이 원활
(2) 마지막 레이어에 Tanh를 쓰는 이유
- 픽셀 값을 -1 ~ 1 범위로 제한 → 이미지 정규화에 맞춤
- 출력 범위가 고정되므로 Discriminator가 학습하기 쉬움
- Sigmoid보다 gradient saturation이 덜 심함
2. Discriminator: Leaky ReLU
(1) Leaky ReLU를 쓰는 이유
- 일반 ReLU는 음수 입력에서 gradient가 0 → "Dead Neuron" 문제 발생
- Leaky ReLU는 음수에서도 작은 기울기를 남겨 gradient flow를 유지
- Discriminator는 진짜/가짜 이미지 둘 다 잘 구분해야 하므로, 음수 영역의 정보도 버리지 않는 게 유리
(2) 왜 Generator에는 안 쓰고 Discriminator에만 쓰나?
- Generator는 latent vector를 점점 복잡하게 변형해서 이미지를 만들어야 하므로, 중간 단계에서 음수 값은 굳이 살릴 필요 없음 (ReLU로 양수만 적극적으로 사용)
- 반면 Discriminator는 입력 이미지에서 나오는 모든 특징(양수/음수 모두)을 살려야 하므로 Leaky ReLU가 유리
DCGAN은 당시 GAN 학습 안정성을 크게 개선했지만, 여전히 몇 가지 한계가 존재하였다:
- 모드 붕괴(Mode Collapse)
Generator가 데이터 분포의 일부 모드만 학습하여 비슷한 이미지만 반복 생성하는 현상이 발생한다. DCGAN의 구조적 개선에도 불구하고 근복적인 GAN 손실 구조 문제는 해결 못하였다.
- 훈련 불안정성
학습 도중 loss가 발산하거나, Generator와 Discriminator가 균형을 잃는다. 이는 Generator가 너무 강하면 Disciminator 또한 무의미해지기 때문이며 그 반대 또한 그러하다. 다음은 Tanh 출력 범위 제한과 배치 정규화를 통해 안정화하였으나 여전히 하이퍼파라미터에 민감하다는 문제점이 있다.
-고해상도 이미지 생성 한계
64*64 같은 저해상도에서는 잘 작동하지만, 고해상도로 갈수록 품질 저하의 문제가 있다. 이는 Upsampling에서 이미지에 바둑판 무늬 같은 패턴이 생기는 Checkerboard Artifact가 발생하기 때문이며 깊은 네트워크로 확장하면 학습 불안정성이 심해지는 이유도 있다.
참조
https://bo-10000.tistory.com/116
[GAN Overview] GAN 주요 모델 정리 (GAN survey 논문 리뷰)
Generative Adversarial Networks in Computer Vision: A Survey and Taxonomy (CSUR 2021) 을 바탕으로, 중요한 GAN 모델들을 정리해 보고자 합니다. 논문에는 더 다양한 모델들이 소개되어 있으나, 그 중 일부만 정리하였
bo-10000.tistory.com
GAN 겉햙기 (GAN 종류)
GAN 은 그 종류가 엄청 많고 또 종류마다 그 쓰임새가 다르다고 말할수 있습니다. 그렇다면 그 GAN 들의 종류는 무엇이며 또 어떤 역할을 하는걸까요? Deep Convolution (DCGAN) 머신러닝과 딥러닝은 생성
baobao.tistory.com
https://jaejunyoo.blogspot.com/2017/02/deep-convolutional-gan-dcgan-1.html
초짜 대학원생의 입장에서 이해하는 Deep Convolutional Generative Adversarial Network (DCGAN) (1)
Deep Convolutional GAN (DCGAN)에 대한 쉬운 설명 및 소개 / Easy introduction to Deep Convolutional Generative Adversarial Network (DCGAN)
jaejunyoo.blogspot.com
'용어 정리' 카테고리의 다른 글
| GAN 시리즈 - WGAN (0) | 2025.08.13 |
|---|---|
| GAN 시리즈 - CGAN (0) | 2025.08.13 |
| GAN 시리즈 - GAN (6) | 2025.08.13 |
| OCR (3) | 2025.07.31 |
| InstructBLIP (3) | 2025.07.30 |