오늘은 GAN(Generative Adversarial Network)에서 mode collapse가 발생하는 이유에 대해 간단히 포스팅 :)
Mode collapse : GAN에서 generator가 똑같은 이미지를 계속해서 생성해내는 것이다.
위 그림은 실제로 내가 DCGAN을 사용해서 CIFAR-10 안의 강아지, 트럭 데이터를 가지고 학습시켰을 때 발생한 mode collapse이다. 빨간 박스 안의 트럭이 계속해서 생성되고있다.
- 그렇다면 GAN에서 generator와 discriminator가 하는 일은 뭘까?
- Generator : discriminator가 real image와 fake image를 구분 못하도록 real한 fake 이미지를 생성하는 일
- Discriminator : real data로 학습한 후 generator가 생성한 fake 이미지를 fake라고 분류하는 일(classification)
-> 그러나 generator와 discriminator 둘 다 다양한 데이터를 생성하고 인식하는 기능은 사실 없다.
GAN을 사용하는 많은 사람들이 이 두 모델을 통해 다양하고 real한 이미지를 생성해내고 있지만, 사실 근본적으로 generator엔 데이터의 diversity를 고려하는 기능은 없는 것이다.
-> 그래서 generator가 어떤 fake 이미지를 생성했는데 discriminator가 이 이미지를 real이라고 계속 인식하면 (= generator의 성능만 너무 좋아져버리면) generator는 그 이미지만 계속해서 뱉는거다. (애초에 real한 여러 diverse한 이미지를 생성하라는 job 은 없으니까!)
- 그렇다면 mode collapse 나는 상황을 해결하는 방법은?
Generator의 diversity를 확보한다!!
Latent space에서 sample들의 distribution의 diversity가 확보되도록 regularization loss를 추가하기 등의 예시가 있음 :-)
'컴퓨터비전' 카테고리의 다른 글
Self-Supervised Learning과 Unsupervised Learning의 차이점 (0) | 2025.02.18 |
---|---|
[CV] ICP (Iterative Closest Point) 쉽게 핵심 정리 (0) | 2022.04.17 |