본 논문은 conditional adversarial networks를 일반화된 이미지 변환 문제에 테스트하였다. 이 네트워크는 단지 input-output mapping만 배우는 것이 아니라 이를 학습하기 위한 loss function까지 배운다. 따라서 전통적으로 매우 다른 loss function을 쓰던 문제들도 이 접근법을 적용할 수 있다. 본 논문은 이 접근법이 label과 동기화, 경계선만 있는 이미지를 restoration, 흑백 이미지 colorization 등의 문제에 효과적임을 보였다.
이미지를 이미지로 변환할 뿐인 수많은 문제들은 그 세팅이 똑같음에도 각각 따로 연구되어 왔다(위에서 말한 이미지 변환 문제들). 이러한 변환 문제를 위한 일반적인 framework를 개발하는 것이 목표이다.
이쪽 방향으로는 이미 CNN이라는 좋은 도구가 있다. CNN은 결과의 품질을 알려주는 loss function을 최소화한다. 그러나 학습 과정 자체는 자동화되어 있지만 결과를 잘 나오게 하기 위해서는 여전히 수동으로 조절해야 할 것이 많다. 즉, 무엇을 최소화 해야 하는지 CNN에게 알려주어야 한다. 만약 단순히 결과와 정답 사이의 유클리드 거리를 최소화 하라고 만 하면 blurry한 이미지를 생성하게 된다. 이는 유클리드 거리는 그럴듯한 결과를 평균 했을 때 최소화되기 때문이고, 결과적으로 이미지가 흐려진다. 실제 같은 이미지를 얻기 위해서는 더 전문 지식이 필요하다.
만약 원하는 것을 high-level goal로 말할 수만 있다면, 네트워크는 스스로 그러한 목표에 맞게 loss를 줄여나갈 것이다. 본 논문은 cGAN이라는 조건부 생성 모델을 사용한다. Input image라는 조건을 줄 것이고 그에 맞는 output image를 생성할 것이기 때문에 이는 이미지 변환 문제에 적절하다.
본 논문이 기여하는 바는
GAN은 random noise vector 로 부터 output image 를 생성하는 를 학습하는 생성모델이다. 이에 비해 CGAN은 와 observed image 로 부터 로의 mapping인 를 학습한다.
cGAN의 목적 함수는 다음과 같다.
를 조건부로 학습하는 것을 중요하게 여겨, 가 를 관측하지 못하도록 unconditional variant를 비교하도록 했다.
의 할일은 그대로이지만, 는 단지 를 속이는 것뿐만 아니라 L2 distance에서의 ground truth에도 가깝도록 만들어야 한다. 사실 L2보다는 L1을 사용하는 것이 덜 흐린 이미지를 생성하는 데 도움이 되었다.
최종 목적 함수는 다음과 같다.
가 없이도 네트워크는 mapping을 학습할 수 있지만, 결정론적인 결과를 생성할 수 있고, 따라서 delta function 이외의 어떤 분포와도 맞지 않을 수 있다. 과거의 conditional GAN은 이를 인정하여 에 더해 gaussian noise 를 입력으로 주었다.
초기 실험에서 우리는 noise를 단순히 무시하도록 했지만, 최종 모델에서는 dropout 시에만 noise를 제공하여 학습과 테스트 시 모두에 의 여러 layer에 적용되도록 하였다.
네트워크는 DCGAN을 와 의 기본 모델로 하였고 둘 다 convolution-BatchNorm-ReLU 구조를 따른다.
이미지 변환 문제에서 어려운 점은 고해상도 input grid를 고해상도 output grid로 mapping하는 것이다. 심지어 표면의 외관은 다른데 각각 같은 근본적인 구조를 가진다는 것이다.
많은 이전 연구들은 encoder-decoder 네트워크를 사용한다. 이러한 네트워크에서는 ottle neck layer를 통과하기 때문에 정보의 손실이 필연적으로 발생할 수밖에 없다. 그래서, skip-connection을 추가한 U-Net 이라는 구조를 사용했다. 정확히는, 전체 layer 개수를 이라 할 때 모든 번째 layer와 번째 layer를 연결했다. 각 연결은 단순히 concatenate 한 것이다.
High-frequency 모델링을 위해서는 집중할 부분을 local image patch 단위로만 제한하는 것으로 충분하다. 그래서 를 PatchGAN 구조로 만들었다. 즉, 는 개의 각 pathch 별로 진짜인지 가짜인지 판별한다.
실험 단계에서는 이 작아도 전체 이미지를 한번에 보는 것보다는 더 좋은 결과를 얻을 수 있음을 보였다. 이는 더 작은 PatchGAN은 더 적은 parameter를 가지고, 더 빠르며, 더 큰 이미지에 적용하는 데에서도 이점이 있음을 보여준다.
가 이미지를 Markov random field처럼 보는 것이 효과적인 모델링 방법이므로, patch의 지름보다 더 먼 pixel들은 독립적이라고 보았다. 이러한 접근은 이미 연구된 바 있고 texture/style 모델에서 자주 사용되고 있는 방법이다. 따라서 PatchGAN은 texture/style loss면에서 적절한 모델이다.
실험 결과 70X70 patch에서 가장 좋은 결과를 얻었다.
Original GAN에서 를 최소화 하지만 본 연구에서는 를 최소화 하였다. 또한 minibatch SGD와 Adam을 사용하였다. 또한 batch sizeㄴ느 실험에 따라 1 ~ 10으로 조정하였다.
conditional GAN의 보편성을 테스트하기 위해, 다양하게 진행하였다.
본 논문에서는 image-to-image translation 문제에 대해, 특히 고도로 구조화된 그래픽 결과에 대해 conditional adversarial networks가 괜찮은 접근법 이라는 것을 보여주었다. 이 네트워크는 문제와 데이터에 대한 loss를 학습함으로써 넓은 범위의 문제에 대해 적합함을 보여주었다.
A Domain : 크레인 합성 이미지 라벨
B Domain : 크레인 합성 이미지
1) Loss
2) Test (90 epoch)