본문 바로가기
Computer Science/AL, ML

[Generative Model] GAN : Generative Adversarial Networks

by Gofo 2022. 6. 16.

GAN (Generative Adversarial Networks)

Image Generation

  1. 가우스안, uniform 등의simple distribution으로부터 random noise Z를 뽑는다.
  2. 뽑은 샘플(random vector)를 이미지로 변환한다. → neural network 이용

 

GAN의 구성

2개의 네트워크로 구성되어있다.

  • generator(G)
    • random noise를 통해 이미지를 생성한다.
    • discriminator의 결과가 1이 나오도록 하는 이미지를 생성하도록 학습을 시킨다.
  • discriminator (D)
    • classifier
    • 입력받은 이미지가 그림인지 진짜 이미지인지 구별한다.

 

GAN의 학습

G의 목표는 D를 속이는 것이고 D의 목표는 G를 찾는 것이다.

 

이를 위해 D의 결과가 1이 나오도록 하는 이미지를 만들어내도록 G를 학습시킨다.

D는 데이터로부터 샘플(G의 결과)를 찾아내도록 학습이 된다.

 

때문에 학습 초기 만들어진 distribution은 실제 이미지의 distribution과 다르다.

 

그러나 G가 D를 속이도록 update 되기 때문에 학습을 반복해나갈수록 overlap 영역이 많아진다.

즉, distribution이 real image와 유사해진다.

 

 

Training Objective

  • for discriminator(D)
    • $max_D V(G, D) = E_{x \sim p_{data}}[log D(x)] + E_{x \sim P_G}[log(1-D(x))]$
    • gradient ascent
      • D는 만들어낸 이미지의 분포와 실제 이미지의 분포를 잘 구분해야 한다.
      • 따라서 분포의 차이를 키우는 방향으로 학습이 진행된다.
  • for generator(G)
    • $min_G V(G, D) = E_{x \sim P_G}[log(1-D(X))]$
    • G의 파라미터와 D의 파라미터는 독립이기 때문에 $E_{x \sim p_{data}}$은 무시할 수 있다.
    • gradient descent
      • G는 만들어낸 이미지의 분포가 실제 이미지의 분포와 유사해지도록 해야 한다.
      • 따라서 분포의 차이를 줄이는 방향으로 학습이 진행된다.

 

한계

  • Training instability
    • 학습이 잘 안되는 문제
    • objective fucntion과 네트워크의 구조가 변경되면서 어느정도 해결되었다.
  • Model collapse
    • G는 학습하다가 좋은 것이 발견되면 그 근처에 머물러 있게 되어 다양한 결과물을 만들어내지 못하게 된다.
    • 이 문제는 여전히 발생하고 있다.

 

'Computer Science > AL, ML' 카테고리의 다른 글

[CNN] 더 나은 모델을 위한 테크닉들  (0) 2022.06.16
[Generative Model] 다양한 GAN  (0) 2022.06.16
Generative Model  (0) 2022.06.16
[CNN] Model Understand  (0) 2022.06.16
[CNN] Image Captioning & Attention  (0) 2022.06.16

댓글