본문 바로가기

논문 리뷰

CycleGAN 리뷰

논문 제목은 Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks 이다.

 

Contribution

Image to image translation에서 unpaired data로도 좋은 결과를 냈다.

 

 

같은 연구실에서 발표한 pix2pix가 paired data를 가지고 좋은 성능을 냈지만, 실제로는 그런 data가 없는 경우가 많다.

모네의 <정원의 여인들>을 pix2pix를 이용해 사진으로 바꿀 수 있을까? 그러려면 모네의 작품과 pair를 이루는 사진이 있어야 한다. 그 때는 카메라도 없었고, 저 배경과 인물들이 실제로 있었는지도 확실하지 않다. CycleGAN은 이런 상황에서 유용하다.

 

다시 말해 unpaired data로도 domain X에서 Y로의 translation이 가능하다는 것이다.

 

 

Pix2pix

  Vanila GAN에서는 단순 노이즈 만으로도 학습이 가능했다. 그런데 애초에 왜 paired data가 필요한 것일까?  그 이유는 pix2pix가 GAN의 단점을 해결한 방식에서 기인한다. 기존의 GAN을 사용한 image translation에서는 input과 output이 의미있게 연결된다는 보장이 전혀 없었다. Generator는 X -> Y mapping을 수행하면서 단지 discriminator를 속이기만 하면 되기 때문에, input을 Y의 일원으로 보이게끔 하기만 하면 된다. 때문에 mode collapse도 발생한다. Mnist를 GAN으로 생성할 때, G는 단지 그럴듯한 손글씨 숫자의 일원으로 보이는 output을 내기 때문에 외부에서 어떤 숫자가 나오게끔 조절할 수 없었고, 결국에는 input과 관계 없이 같은 숫자만 만드는 경우도 많았다(mode collapse). 

 

Pix2pix에서는 conditional GAN을 이용해 이 문제를 해결했다. Discriminator에게 conditon을 보여줌으로써 generator가 단순히 Y의 일원으로 보이는 output이 아니라 conditon에 맞는 output을 만들도록 강제한 것이다. 이런 방법에서는 학습 데이터 안에 paired된 데이터가 필요하게 된다.

 

CycleGAN에서는 이 문제를 조금 다른 방식으로 해결했다. Pix2pix에서는 output이 conditon에 맞게끔 강제했다면, cycleGAN에서는 output이 cycle consistent하도록 강제한다.

 

Cycle consistency

  G가 input x와 의미있게 연관되어 있는 output을 만들었다는 것은 다시 말해 output이 외관은 바뀌었지만 x와 같은 concept을 공유한다는 의미가 된다. Image translation 자체가 concept은 유지하면서 이미지의 외형을 바꾸는 일이다. 만약 G가 만든 output이 또 다른 함수 Y를 통해 다시 x로 돌아갈 수 있다면, 그 output에는 x로 돌아갈 수 있는 충분한 정보가 남아 있었다고 할 수 있다. 즉, x와 output은 의미있게 연관되어 있다고 할 수 있다.

 

CycleGAN에서는 2개의 discriminator와 2개의 generator가 등장한다. G는 X -> Y의 mapping을 수행하고 F는 Y -> X의 mapping을 수행한다. Dx와 Dy는 각각 domain X와 Y의 이미지를 판별한다.

F가 x를 복원한다

 

 

Loss

기존의 GAN loss이다. Dx와 F에 대해서도 똑같은 loss가 하나 더 존재한다.

 

여기에 앞서 말한 cycle consistency를 위한 loss가 추가된다. G가 x를 가지고 만든 output G(x)를 F에 넣어서 다시 x를 복원하게끔 강제하는 수식이다. 이것을 forward cycle consistency라고 한다. 반대로 F가 y를 가지고 만든 output F(y)를 G에 넣어서 y를 복원하게끔 하는 것을 backward cycle consistency라고 한다. 이 부분은 L1도 사용해보고 GAN loss도 사용해봤는데 별 차이가 없었다고 한다.

 

LSGAN에서 제시했던 least-squared loss를 사용하면 학습이 더 안정적이고 결과물도 좋다고 한다.

 

최종적으로 이런 loss를 가지게 되고,

이런 minmax game을 하게 된다.

 

Evaluation Metrics

  GAN이 잘 한다는 것은 사람이 보기에 그럴듯한 결과물을 낸다는 것인데, 이것을 수치화 하는 명확한 방법은 없어 보인다. 여기서는 AMT perceptual studies와 FCN scrore를 이용해서 모델들을 평가했다.

 

AMT는 Amazon Mechanical Turk의 줄인 말인데, 온라인 상에서 사람들이 주어진 과제를 해결하고 돈을 버는 시스템이다. 데이터 라벨링부터 제품 설명까지 다양한 task가 주어진다고 한다. 여기서 일하는 사람들을 대상으로 real image와 GAN이 생성한 fake image를 보여주고 그럴듯한 쪽을 고르게 하는 실험을 해서 GAN의 성능을 수치화 하고자 했다.

 

FCN metric은 GAN이 만들어낸 도로 이미지를 기존의 semantic segmentation algorithm이 얼마나 잘 해석하는지를 평가한다. 여기서는 FCN이라는 네트워크를 사용하였다. 즉, GAN이 도로 이미지를 그럴듯하게 만들었다면 FCN이 semantic segmantation을 잘 수행할 거라는 아이디어이다. 사실 이게 얼마나 GAN의 성능을 잘 대변할 지 의문이다.

 

Result

AMT에서 baseline들이 거의 힘을 못쓰는 모습을 보인다. CycleGAN은 quarter 이상의 참가자들을 속였다. 재미있는 점은 pix2pix를 upper bound로 설정했다는 것이다. 다시 말해 paired data가 존재할 때는 pix2pix를 쓰는 것이 낫다는 얘기이다.

 

각 loss의 영향력을 알아보기 위한 실험이다. GAN loss는 거의 필수적이고, cycle loss도 양 방향을 다  써야 효과가 좋다. 한 방향만 적용했을 때 training instability가 발생하고, 특히 cycle loss가 없어진 방향으로 mode collapse가 발생했다.

 

Identity Loss

G가 X -> Y mapping을 할 때, Y domain의 image인 y가 들어왔을 경우에는 아무것도 건들이지 않게끔 하자는 아이디어이다. F의 경우에도 똑같이 적용된다. 

 

그림을 사진으로 바꿀 때, G가 종종 배경을 낮에서 해질녘으로 바꾸곤 했다. 그래도 보기에 사진같아 보이고 concept도 유지하므로 GAN loss와 cycle consistency loss로는 해결할 수가 없다. 여기에 identity loss를 적용하면 해결할 수 있다. 원본 이미지의 색 정보를 보존하는 것을 도와준다.

 

 

Single Image Style Transfer와의 비교

Single image style transfer와는 달리 CycleGAN을 이용하면 하나의 그림이 아닌 그 작가의 collection에 대한 style을 학습할 수 있다. 기존의 방식으로는 작품 별로 구한 gram matrix를 평균 내어 사용하는 방법 밖에 없었다.

 

Limitations and Discussion

  이 모델은 color나 texture는 잘 바꾸지만 이미지의 모양은 잘 바꾸지 못한다. Pix2pix에서 사용하던 U-Net구조를 버리고 ResNet구조를 선택했기 때문으로 보인다. U-Net을 사용하면 학습이 불안정하고, 두 이미지의 모양이 비슷할 시에 skip connection 위주로만 학습이 되어서 depth적으로는 학습이 거의 되지 않는다고 한다. 모양이 비슷하지 않은 이미지 간의 mapping을 할 때는 U-Net을 고려해도 괜찮을 것 같다.

 

또한, 어떤 경우에는 paired method의 성능에 크게 뒤쳐지는 모습도 보인다. Paired data를 충분히 가지고 있다면 pix2pix를 적용하는 게 나아 보인다.

 

Failure case들이다. 사과에서 오렌지나 고양이에서 강아지로 바꿀 때 필요한 모양의 변화를 일으키지 못했다. 사용한 dataset에 말 위에 사람이 있는 이미지가 없으면, 말 위에 사람이 있는 이미지를 넣었을 때 잘 해내지 못하는 모습이다.

 

 

그럼에도 흥미로운 결과물을 보여주고 있다.

'논문 리뷰' 카테고리의 다른 글

Deep Knowledge Tracing 리뷰  (1) 2020.12.26
StarGAN 리뷰  (0) 2020.12.20
Pix2pix 리뷰  (1) 2020.11.05
Fast R-CNN 리뷰  (0) 2020.10.25
SPPnet(Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition)  (0) 2020.10.07