Image processing/논문 Review

Conditional Generative Adversarial Nets

유니디니 2020. 1. 14. 17:43
728x90
반응형


GAN(Generative Adversarial Networks)는 최근 생성적 모델을 학습시키는 새로운 방법으로 소개되었다. GAN은 생성기와 분류기의 경쟁적 학습에 의해 실제 이미지와 유사한 가짜 이미지를 만들어 내지만, 어떤 이미지를 만들어 낼지는 알 수 없었다. 이러한 문제를 해결하고자 조건을 추가하였다. 


1. Conditional GAN



  • z는 Latent vector(잠재 변수- 100차원의 정규화된 모델에 의한 랜덤변수), y는 조건, x는 생성된 데이터
  • 초록색 부분(y = Condition)을 제외하면, GAN과 동일하다.
  • 조건 데이터는 이미지 뿐만 아니라 다양한 형태(one-hot vector, image, word..)를 가질수 있다.
  • 생성기와 분류기에서 입력 데이터로 Concatenation(데이터의 차원수를 늘려 정보를 포함)을 통해 활용
  • 학습과정
    1. 생성기에서 z와 y를 입력으로 데이터를 생성한다(가짜 데이터)
    2. 생성된 가짜 이미지는 정답데이터와 손실함수(Reconstruction Loss = L1_Loss)를 적용 후 backward
    3. 분류기에서 생성된 가짜 이미지와 정답 데이터(0)를 손실함수(Adversarial Loss = Binary Cross Entropy Loss) 적용
    4. 분류기에서 정답 이미지와 정답 데이터(1)를 손실 함수(Adversarial Loss = Binary Cross Entropy Loss) 적용
    5. (3, 4)에서 구해진 값을 2로 나누어 backward
  • 3,4에서는 학습할 때, 정답 데이터로 동일한 크기의 변수를 생성하고 거짓이면 0, 정답이면 1로 채워서 학습한다.
  • Objective function


GAN과 동일하게 생성기와 분류기 간의 MINMAX 게임을 통해 학습을 하며, y가 조건부로 들어가게 된다. 



2. 실험 결과



MNIST 데이터를 활용했을때, 원하는 데이터가 정렬되서 나온것을 볼 수 있다.



반응형