image to image translation의 기본 모델인 Pix2Pix이 GAN의 약점 mode collapse를 어떻게 해결했는가

1. image translation

 

하나의 이미지 스타일을 다른 이미지 스타일로 변화시키는 문제

 

흑백사진을 컬러사진으로 바꾸고 낮 사진을 밤사진으로 바꾸거나 스케치 사진을 실제 이미지 사진으로 바꾸는 단순한 문제부터

 

semantic segmentation 이미지를 일반 이미지로 바꾸거나 일반 인공위성 사진으로부터 지도를 출력하는 문제 등 다양하다

 

앞에서 다룬 super resolution도 하나의 예시

 

위의 예시들은 입력 해상도와 출력 해상도를 유지시키고 있다

 

2. GAN loss의 치명적인 문제점 - mode collapse

 

앞에서 MAE loss는 평균적인 blurry한 이미지를 출력해준다며 안좋다고 했고

 

GAN loss가 실제 이미지에 가까운 사진을 출력해준다며 극찬을 했는데

 

실제로 GAN이 대단하다는 이미지 때문에 생각하기 어려운데 GAN은 사실 치명적인 약점이 있다

 

하나의 주제 ‘신세경’을 주면 그에 맞는 real image는 여러가지를 생각할 수 있다

 

 

그런데 GAN의 generator는 discriminator를 속이는 것만 목적이므로

 

많은 real 이미지중 오직 하나만이라도 아주 가까운 이미지를 만들어내기만 하면 더 이상 학습할 이유가 없다

 

즉 input을 넣을 때마다 적절한 다른 real들이 나오기를 기대하는데 많은 real중에 그냥 하나만 제시한다는 것이 mode collapse 문제다.

 

결과적으로 discriminator도 하나의 local minimum에 빠지기 쉽고 최적의 weight를 찾아내지 못하면서 결국에 전체적으로 학습이 잘 안된다.

 

이 외에 discriminator가 generator보다 성능이 뛰어날 때 vanishing gradient 문제가 발생하기 쉽다고 한다.

 

 

3. Pix2Pix의 loss function

 

이렇게 GAN의 학습은 당시에는 불안정하고 어려웠다.

 

그래서 Pix2Pix에서는 MAE loss를 이용해서 먼저 real에 가깝기를 기대하지만 blurry한 평균적인 이미지를 생성하도록 가이드라인을 제시하고

 

이에 GAN loss를 더하여 blurry에서 realistic하도록 출력을 유도하였다.

 

 

conditional GAN loss를 사용했다. x가 condition이고 z가 random latent vector

 

마치 regularization 느낌인데

 

x라는 조건을 참고하여 z로부터 생성한 fake G(x,z), real이 y

 

D(x,y)는 x라는 조건 하에 real data를 real로 분류할 확률(최대로 만들어야)이고

 

D(x,G(x,y))는 x라는 조건 하에 fake를 real로 분류할 확률(최소로 만들어야)

 

 

4. 예시로 알아보는 loss에 따른 생성물의 차이

 

4-1) semantic map to photo

 

L1 loss만 쓰면 blurry한 이미지가 나온다는 것

 

GAN loss만 쓰면 의도와는 다른 real 이미지가 나온다는 것

 

L1과 GAN을 같이 쓰면 음… 3번째 같은 경우는 ground truth와 꽤 비슷해지긴해.. 나머지는 그닥…

 

 

4-2) colorization

 

이거는 근데 L2가 더 가까워보이는데??? 그냥 실패한건가

 

 

대단한 성능은 아닌데..?

TAGS.

Comments