GAN에 대해 알아보자

·2025년 7월 28일

just공부

목록 보기
35/47

Generative Adversarial Network (GAN) 정의

생성자(Generator)판별자(Discriminator)가 서로 경쟁하며 학습하는 구조이다.

  • Generator (G) : 진짜 같은 데이터를 생성한다.
  • Discriminator (D) : 데이터가 진짜인지, 생성된 것인지를 구분한다.

이 두가지의 신경망은 경쟁 관계로, Generator는 Discriminator를 속이기 위해 더 진짜같은 데이터를 생성하고, Discriminator는 더 잘 구분하려고 학습하게 된다.

이러한 과정을 반복해서 두 가지 모두 동시에 발전할 수 있게 된다. 어느 시점에 이르게 되면, Discriminator는 진짜와 가짜를 제대로 구분하지 못할 만큼 Generator가 현실적인 데이터를 만들게 된다.

수학적 공식

minGmaxDV(D,G)=Expdata[logD(x)]+Ezpz[log(1D(G(z)))]\min_G \max_D V(D, G) = \mathbb{E}_{x \sim p_{\text{data}}} [\log D(x)] + \mathbb{E}_{z \sim p_z} [\log(1 - D(G(z)))]
  • GG : Generator
  • DD : Discriminator
  • xx : 실제 데이터
  • zz : 노이즈 벡터

주요 개념

1. Latent Space (잠재 공간)

Generator가 입력받는 고차원의 잠재 변수 공간이다. 이 공간의 각 점은 데이터 생성의 씨앗이 된다.

보통 정규분포 또는 균등분포에서 샘플링한 벡터를 입력한다. 이 벡터는 특징의 축약된 표현으로, Latent Space 내의 작은 변화가 생성 데이터에 의미 있는 변형(ex. 얼굴 방향, 표정 변화)으로 나타날 수 있다.

2. Adversarial Training (적대적 학습)

Generator와 Discriminator 둘이 서로의 성능을 개선하며 경쟁적으로 학습한다.

두 모델이 "제로섬 게임" 방식으로 동시에 최적화되어 Generator가 만든 데이터와 진짜 데이터를 Discriminator가 구분하지 못하는 지점에 도달하게 되는 것이 목표이다.

반복적으로 두 네트워크를 번갈아 학습시키며, 구조의 균형을 맞추는 것이 중요하다. 한쪽이 압도적으로 강하면 학습에 실패할 수 있다.

3. Mode Collapse (모드 붕괴)

Generator가 만들어내는 데이터가 다양성을 잃고, 일부 소수의 유형만 반복 생성하는 현상이다.

학습 데이터의 분포 전체를 포괄하지 못하고 특정 "mode(패턴)"만 만들어내게 되는 문제점이 있다.

원인은 Discriminator가 너무 강하거나, Generator가 너무 약할 때 주로 발생한다.
다양한 Loss 함수 도입, 미니배치 정보 추가, 다양한 GAN 변형(ex. Minibatch Discrimination) 등의 방안이 있다.

4. Loss Function (손실 함수)

Binary Cross-Entropy 를 가장 기본적으로 사용한다.
Discriminator는 진짜 데이터에서 1, 가짜에서는 0이 나오도록 학습한다.

수식은 아래와 같다.

logD(x)+log(1D(G(z)))\log D(x) + \log \left(1 - D(G(z))\right) \\

위의 수식은 Discriminator 수식이며, 아래는 Generator의 수식이다.

log(D(G(z)))\log \left( D(G(z)) \right)

다양한 GAN 아키텍처

아키텍처구조적 특징핵심 아이디어
DCGANCNN 기반 Generator/DiscriminatorConvolution Layer로 이미지 공간 특징을 처리, 안정적 학습을 유도한다. 얼굴 생성 등 고해상도 이미지 생성에 많이 사용된다.
Conditional GAN(cGAN)조건 벡터(input label -> one-hot 등)를 Generator와 Discriminator 모두에 입력원하는 속성(ex. 특정 숫자, 이미지 스타일 등)을 제어하며 샘플을 생성할 수 있다. 이미지 클래스를 지정하여 데이터 증강 등에 활용할 수 있다.
CycleGAN쌍(pair)이 없는 데이터 간 스타일 변환ex. 말 ↔ 얼룩말, 여름사진 ↔ 겨울사진
Cycle Consistency Loss로 두 도메인 간 상호 변환을 강제, 라벨 없는 도메인 변환에 효과적이다.
StyleGAN대규모/고해상도 이미지 생성, 세밀한 스타일 제어Style Mapping Network 도입, 스타일 벡터로 각 계층마다 영향력을 분리한다. 얼굴 특성과 자세 등 기여를 조절하여 고화질이나 자연스러운 이미지 생성을 가능하게 한다.
WGANWasserstein distance 도입Discriminator 대신 "critic" 을 사용한다. output이 probability(확률)가 아니라 real value(실수)이다. Gradient vanishing 문제 감소, 모드 붕괴에 견고하다는 특징이 존재한다.

develop한다면?

증거 이미지 조작 여부 판단하는 연구를 해보면 좋을 듯하다.
GAN 또는 안티포렌식 도구에 의해 위조되었는지 탐지하고 조작된 부분의 위치를 식별해보는 포렌식 AI 모델을 설계하고 개발해보는 것이다.

  • 이진분류: Real vs. Fake
  • 조작 영역 식별 : Pixel-level localization (Segmentation)
  • 조작 방식 식별은 어떤 방식으로 위조되었는지 ..?
    • GAN / splicing, copy-move 등..
profile
Whatever I want | Interested in DFIR, Security, Infra, Cloud

0개의 댓글