상원 님의 블로그

[딥러닝] GAN (Generative Adversarial Network) 알아보자 본문

GAN

[딥러닝] GAN (Generative Adversarial Network) 알아보자

LEESSANG 2025. 4. 17. 15:52

 

1. GAN이란 무엇인가?

GAN은 두가지 신경망과 판별기 신경망이라고 하는 두 가지 신경망으로 구성된 신경망 아키텍터이다. 두 신경망은 서로 의존하면서 여러 세대에 걸쳐 생성하고 판별하는 식으로 서로 대항해서 훈련하게 된다.

  • Generator (G): 진짜 같은 데이터를 "생성"하려는 모델
  • Discriminator (D): 진짜 데이터와 생성된 데이터를 "구별"하려는 모델

 

이 둘은 일종의 게임처럼 서로 겨루면서 학습함

  • G는 D를 속이려고 함.
  • D는 G가 만든 가짜를 구별하려고 함.

2. 작동방식은?

GAN은 minimax 게임을 통해 학습한다. 

D는 D(x)를 최대화 (진짜는 진짜로 판별함), G는 1-D(G(z))) 를 최소화 (가짜를 진짜처럼 보이게)

 

4. 핵심 아이디어 요약

  • 처음엔 G가 만드는 데이터는 티가 많이 남
  • D는 쉽게 가짜를 구별
  • G는 D가 혼란스럽게 만드는 방향으로 계속 발전
  • 결국 D도 진짜인지 가짜인지 헷갈릴 정도가 되면, G는 성공

5. 장점 😊

  • 복잡한 샘플링 기법 없이도 데이터 생성이 가능
  • 단순한 역전파(Backpropagation) 만으로도 학습이 가능
  • 자유로운 모델 구조 설계 (다양한 구조를 자유롭게 넣을 수 있다.)

 

6. 단점 😥

  • 가장 많이 지적되는 GAN의 단점으로는 학습이 불안정 함 (예: 다양한 이미지를 만드려고 했는데 비슷하거나 똑같은 이미지의 사진만 만들어내는 경우도 있음)
  • 확률 뷴포를 직접 계산할 수 없음
  • Generator 와 Discriminator 의 균형을 맞추기가 까다롭다. (학습률과 네트워크의 크기 조절이 중요함)