[GAN] Generative Adversarial Networks 개념 정리 / 설명
GAN은 Gnerative Adversarial Networks의 약자로, Discriminator(판별기)와 Generator(생성기)가 경쟁적으로 대립시켜(Adversarial) 학습을 시키는 신경망을 말합니다. 이전과는 결이 다르기 때문에 엄청난 평가를 받습니다. GAN 모델은 생성모델을 대표하는 것으로 인정받으며, GAN 기반의 다양한 생성모델들이 좋은 성과를 이루고 있습니다. 또한 adversarial하게 학습하는 아이디어는 다양한 분야로 적용되어 고급 딥러닝 기술로 활용되고 있습니다.
GAN에서는 단순히 하나를 학습하기보다 경쟁시켜 학습하기 때문에 판별기와 생성기가 함께 성장합니다. 판별기는 이전의 분류모델로, 보통 맞다/아니다의 이진분류를 사용합니다. 예를들어 강아지를 판별하는 모델 (혹은 강아지를 생성하는 모델을) 학습하고 싶다고 하였을 때, 입력은 강아지 사진과 강아지가 아닌 사진이 들어올 것입니다. 분류기는 이를 입력받아 강아지가 맞다/아니다 라고 답을 할 것입니다. 이제 그 입력에 생성 모델이 만들어낸 이미지를 사용하는 것입니다. 그러면, 생성 모델은 강아지 이미지(엄밀히 말하자면, 분류기가 강아지로 분류할 이미지)를 만들어내기 위해서 노력할 것입니다. 생성모델의 성능이 높아질 수록 분류모델은 어려운 문제를 풀게되고, 성능도 함께 오를 것입니다.
생성기와 판별기 중에 둘 중 하나만 필요하더라도, 이런 대립된 구조를 만드는 것이 하나만 이용하는 것보다 학습의 효율이 좋다는 것을 GAN의 저자가 주장합니다. 결국 학습한 생성기 혹은 판별기만 따로 떼내어 사용하는 것이 일반적입니다. 학습의 양은 이전보다 적지만, 좋은 성능을 내는 판별기를 만들었으며, 생성 모델에서는 그당시 GAN이 압도적인 성능을 보였습니다.
GAN의 장점을 정리해보자면
- (압도적인) 생성 모델의 성능
- 분류 모델의 효율적인 학습
- 학습데이터가 적어도, 생성모델을 활용하여 보충할 수 있음
- 분류모델을 더 강인하게 학습할 수 있음
- latent vector (잠재 벡터)
- 생성모델의 결과를 다르게할 수 있는 잠재 공간이 있음
하지만 처음 제시된 GAN 모델에는 문제점들이 발견되었습니다.
- 모델 훈련의 불안정성 (instability)
- 수렴하지 못하는 경우가 생김
- 생성기와 판별기가 고루 학습이 되어야하는데, 편향적으로 되어버릴 수 있음
- 성능 평가의 어려움
- 사람의 눈으로 파악할 수 밖에 없음
- overfitting을 판단할 수학적 근거 부족
- Mode collapsing 문제
- 훈련된 multi-modal 데이터의 일부 mode가 누락된 문제
- Ex) 0~9의 숫자로 구성된 데이터셋(MNIST)로 학습한 경우에 특정 숫자(5)를 생성해내지 못함
- 강아지의 제한된 색상과 특징을 생성하는 법을 학습할 수도 있음
- 발생하는 이유?
- 여러 가정이 있고, 아직도 이것에 대한 이해는 부족한 상황
- 분명한건, 생성기가 훈련 데이터의 분포를 충분히 모델링하지 못했다는 것
- 훈련된 multi-modal 데이터의 일부 mode가 누락된 문제
Mode collapsing 문제를 해결하기 위해 제안된 모델들이 있습니다.
- AdaGAN (2017)
- MAD-GAN (2018)
GAN은 기술적으로 어떤 트리에 속하는지, GAN의 창시자 Ian GoodFellow가 위 그림으로 설명했습니다. Explicit density는 모델에 대한 확률변수를 구하는 방식, implicit density는 구하지 않는 방식입니다. 단순한 데이터에 대해서는 확률변수를 구하기 쉽지만, 이미지와 같은 경우에는 어렵습니다. 따라서 보통 implicit 방식을 택합니다. 확률분포를 구하는 대신에 생성기와 판별기가 서로 경쟁하여, 학습 데이터의 분포와 모델의 분포를 근사시키는 작업을 합니다. 이것이 실제로는 maximum likelihood 추정과 같기때문에, 위와 같은 트리로 설명합니다.
주요 paper
RadialGAN
Augmented CycleGAN
JointGAN
Disentagling by Factorising
Semi-Amortized Variational Autoencoders
ref: Gnerative Adversarial Networks, NIPS 2014
ref: UNROLLED GENERATIVE ADVERSARIAL NETWORKS, ICLR 2017
ref: https://mc.ai/how-to-fight-mode-collapse-in-gans/
ref: https://www.slideshare.net/NaverEngineering/icml2018-naver-review