Deep Learning study

Diverse Image Synthesis from Semantic Layouts via Conditional IMLE 본문

AI/papers

Diverse Image Synthesis from Semantic Layouts via Conditional IMLE

HwaniL.choi 2020. 4. 25. 20:11
반응형

오늘 볼 것은 GAN에서 나타나는 mode collapse에대한 문제제기와 이 현상이 생기지 않도록 하는 새로운 방법을 소개하는 논문입니다.

 

 이미지 합성(image synthesis)라하면 가장 먼저 떠오르는 것은 GAN입니다. 하지만 GAN framwork를 사용하는 모델들은 각 input image에 따른 그럴듯한 이미지(plausible image)를 단지 하나, 또는 기껏해야 고정된 수 만큼의 output을 만을 가지게 됩니다.

이논문에서는 semantic segmentation map들로부터 생성하는 이미지에 중점을 두고 같은 semantic layout에 대해서 다양한 형태를 가진 임의의 수 만큼의 이미지를 생성해내는 새로운 방법을 소개합니다.

 

 

Introduction

 현재까지 이미지 생성에 대한 많은 발전이 이루어져왔습니다. 하지만 대부분의 방법들은 각 input에 대해서 단지 그럴듯한 이미지(plausible image)를 하나밖에 생성하지 못합니다. 이상적으로라면, 우리는 단지 하나의 그럴듯한(plausible) 이미지보다는 모든 그럴듯한 이미지의 분포를 예측하는것을 목표로 합니다. Multimodal image synthesis라고 알려진 문제이죠. 하지만 이 문제는 다음의 두가지 이유때문에 어렵습니다. 

  1. Model : 대부분의 SOTA는 GAN을 사용한 방법입니다. 하지만 GAN은 mode collapse의 문제를 가지고있습니다. conditional image synsthesis 의 관점에서, 이것은 모델이 latent input noise를 무시하고 각 주어진 input에 대해서 오직 하나의 이미지만을 생성해내도록 하는 것이죠. 그럼으로 plausible image들의 분포(distribution)을 학습하는데 실패하게 됩니다.
  2. Data : 같은 input에 대한 다수의 다른 ground truth 이미지들이 대부분의 dataset에서 사용 불가능합니다. 대신에, 단지 하나의 ground truth 이미지들이 주어지게 됩니다. 그리고 그모델은 unsupuervised방식으로 다른 plausible image를 생성하는것을 학습해야 합니다. 

이 논문에서는 semantic layout으로부터 multimodal image synthesis문제에 집중합니다. 그 목표는 같은 semantic layout에 대해서 다수의 다양한 이미지들을 생성해내는 것입니다. 아래의 사진처럼 말이죠.

 

현존하는 방법들은 단지 고정된 수의 이미지만을 생성하거나 다른 여러개의 neural net들을 학습시켜야 하므로 그 학습이 매우 어렵습니다. (GAN 같이 생성자와 판별자 등의 두개 이상의  상반되는 역할을 하는 neural net을 학습시키는 것을 말합니다.)

 

이러한 문제를 피하기위해서 , 대부분이 사용하는 GAN의 방식을 사용한 것이 아니라 Implicit Maximum Likelihood Estimation(IMLE) 방법을 사용합니다. GAN과는 다르게 IMLE는 mode collapse가 생기지 않으며 GAN의 generator와같은 neural net 구조를 학습할 수 있습니다. 

이러한 형태의 접근은 두가지의 이점이 존재합니다. 

  1. 단지 다른 noise vector들을 샘플링(sampling)함으로써 각 input에 대한 임의의 수의 이미지들을 생성해낼 수 있습니다.
  2. 동시에 여러개의 상반되는 역할을 하는 neural net들을 학습시켜야되는 모델과 달리, 오직 하나의 neural net으로 이루어져있습니다. 결과적으로 학습이 훨씬 안정적입니다.

 

Method

 

GAN은 mode collapse라는 문제를 가지고 있습니다. conditional image synsthesis의 관점에서 이것은 generator가 latent input noise vector를 무시해버린다 라고 생각할 수 있습니다. 때문에 그 latent noise vector가 무엇이던 간에 항상 같은 output image를 생성하게 되는 것이죠. 그래서 같은 input label에대해서 다른 output image를 생서해내려면, 반드시 mode collapse에대한 문제를 해결해야됩니다. 

 

그럼 이 mode collapse가 왜 발생하는지 알아보도록 합시다.

 

Why Mode Collapse Happens?

 

먼저 unconditional setting을 고려해봅시다. 즉 어떠한 input label도 존재하지 않습니다.

위의 그림 (a-b)에서 보듯이, GAN에서는 각 generated image가 어떠한 real image에 비슷하도록 만듭니다. 그렇게 된다면, 학습후에는 선택받지 못한 real image들과는 어떠한 비슷한 image도 생성해내지 못하게될 것입니다. 사실상 그러한 image들을 무시하게 되는 것이죠. 확률적인 관점에서 보면, real image들은 어떤 natural image들의 true distribution 으로부터의 sample로 간주할 수 있고 그 몇몇의 real image를 무시하는 generator는 generative model 이 그러한 image들에 대해 낮은 확률밀도를 할당하는것을 의미합니다. 

그래서 무시된(ignored) image들을 표현하는 natural image 의 true distribution의 mode(즉, 확률 밀도에서 local maxima를 뜻합니다.)들은 generator에 의해 형성되지 않았다고 볼 수 있습니다. 그러므로 이러현 현상이 mode collapse입니다.

 

conditional setting에서는 일반적으로 모든 input label에 대해서 단지 하나의 ground truth output image만이 사용가능합니다. 그 결과 mode collapse는 더 문제가 됩니다. 왜냐하면 generator에 의해서 형성된 conditional distribution은 하나의 ground truth output image주변의 single mode로 붕괴할 것이기 때문입니다.

즉 generator가 그것과는 다른 output image를 생성하지 못합니다.

 

 

IMLE

 

IMLE는 generated image가 real image에 매치되는 방향을 바꾸어서 mode collapse를 해결합니다.

 

GAN에서는 각 generated image가 real image에 매치(match)됩니다.

IMLE에서는 각 real image가 generated image에 매치됩니다. 그러므로 버려지는 real image가 없습니다. 

즉, 위의 그림에서 보듯이 IMLE는 generated image가 그것이 매치된 real image를 닮아가도록 만듭니다.

 

수학적으로 이것은 다음의 optimization problem을 푸는 것입니다.

$$ \min_{\theta} \mathbb{E}_{z_1 ,...,z_m} \left[ {1 \over n} \sum^n_{i=1} \min_{j=1,...,m} \lVert T_{\theta}(\mathbf{z}_j) - \mathbf{y}_i \rVert^2_2 \right]$$

여기서 $\mathbf{z}_j$는 randomly sampled latent input noise vector, $\mathbf{y}_i$는 ground truth image 그리고 $T_{\theta}$는 GAN의 generator와 동일한 구조를 가진 neural net입니다.

 

즉, 이 수식이 의미하는 것은 real image와 가장 가까운 generated image를 찾아서 매칭하는 것 입니다. 생성된 이미지($T_{\theta}(\mathbf{z}_j)$ )와 real image ($\mathbf{y}_i$)와의 distance가 가장 작은(min)것을 찾아가게 됩니다. 

 

 

Conditional IMLE

 

conditional setting에서의 목적은 conditional distribution의 그룹을 모델링하는 것입니다. 각각은 다른 input label을  condition으로 가지게 됩니다. 즉, $\{ p(\mathbf(y)\mid \mathbf{x} = \mathbf{x}_i \}_{i=1,...,n} $ . $\mathbf{x}_i $는 ground truth input image를 나타냅니다. 그리고 $\mathbf{y}$는 generated output image가 됩니다. 

그래서, Conditional IMLE는 기존의 IMLE와는 두가지 방법에서 다릅니다.

  1.  input label이 latent input noise vector와 함께 neural net $T_{\theta}$를 통과합니다.
  2. ground truth output image는 단지 그것에 상응하는 ground truth input label로부터 생성된 이미지에만 매칭될 수 있다.
    즉, 현재의 ground truth input label과 다른 어떤 input label로 만들어진 output image는 현재의 ground truth output image에 매치될 수 없다는 말입니다.

(말 참 헷갈리죵..? 기호도 헷갈리구... 저 위에서 나타내는 x,y랑 여기서 나타내는 x,y랑 계속 다르니까 말이쥬...)

 

conditional IMLE는 다음의 optimization problem을 해결합니다. 

$$ \min_{\theta} \mathbb{E}_{z_{1,1} ,...,z_{n,m} } \left[ {1 \over n} \sum^n_{i=1} \min_{j=1,...,m} \lVert T_{\theta}(\mathbf{x_i},\mathbf{z}_{i,j}) - \mathbf{y}_i \rVert^2_2 \right]$$

여기서 $\mathbf{z}_{i,j} $는 randomly sampled laten input noise vector 이고 $\mathbf{y}_i$는 ground truth image를 나타냅니다.

 

 

Probabilistic Interpretation

 

이미지 합성(image synthesis)은 확률적 모델링 문제로 보여질 수 있습니다. unconditional image synthesis에서의 목적은 모델이 image에 대한 marginal distribution을 학습하는 것입니다. 즉 , $p(\mathbf{y})$. 반면에 conditionanl image synthesis에서의 목적은  conditional distribution을 모델링 하는 것이죠. 즉 $p(\mathbf{y}\mid\mathbf{x})$. 

Implicit probabilistic model들은 확률밀도에 대한 공식으로 정의된다기보다 그것들로부터 sample들을 뽑아내는 과정입니다. 그것들이 정의한 확률분포들은 sample들에 대한 분포입니다. 따라서 그러한 분포의 확률밀도에대한 수식이 closed form 이 아니여도 된다는 것입니다.

 

GAN의 generator가 대표적인 implicit probabilistic model입니다. 이것은 다음과같은 sampling 과정에의해 정의됩니다. 

  1. Draw $\mathbf{z} \sim \mathcal{N}(\mathbf{0},\mathbf{I})$
  2. Return $\mathbf{y} \:= T_{\theta}(\mathbf{x},\mathbf{z}) $ as a sample

고전적인 확률모델에서는 ground truth image들의 log-likelihood를 최대화 함으로써 정확하게 또는 대략적으로 계산되었습니다. 이것은 Maximum Likelihood Estimation(MLE)이죠. 그러나 implicit probabilistic 모델에선 일반적으로 불가능합니다. 왜냐하면 이것의 확률밀도에대한 공식은 closed form(변수들과 함수들의 조합으로 이루어진 수학적 표현)으로 표현할 수 없기때문입니다. GAN은 확률모델의 파라미터를 추정하는 대안으로 보여질 수 있습니다. 그러나 이것은 mode collapse라는 큰 문제가있죠. 그 결과 학습된 모델의 분포는 그 data가 나타내는 것 보다 훨씬 적은 변화를 나타냅니다.

 

반면에 MLE는 전혀 문제가 되지않습니다. 왜냐하면 mode collapse는 몇몇의 ground truth image들에 매우 낮은 확률밀도를 할당하는 것인데, 이것은 likelihood를 매우 낮게 만들기 때문입니다.  그래서 likelihood를 최대화하는것은 절대 mode collapse를 발생시키지 않습니다.

 

IMLE는 log-likelihood의 lower bound를 최대화하는것으로 보여질 수 있습니다. GAN과 같이, IMLE는 확률밀도를 알기위한 수식이 필요하지 않습니다. GAN과 다르게는 IMLE는 대략적으로 likelihood를 최대화합니다. 그렇기때문에 mode collapse가 발생하지 않습니다. 또한 adversarial 학습을 하지 않고 하나의  neural net을 학습시키기 때문에 매우 안정적입니다.

 

Formulation

semantic layout에대한 이미지합성의 작업에서 우리는 $\mathbf{x}$를 input semantic segmentation map 그리고 $\mathbf{y}$를 generated output image로 둡니다. 그러면 학습할 conditional probability distribution은 $p(\mathbf{y}\mid\mathbf{x})$가 됩니다. input segmentation $\mathbf{x}$와 일치하는 plausible image는 이 분포에서의 하나의 mode가 됩니다. 왜냐하면 같은 segmentation와 일치하는 많은 plusible image가 있기때문입니다. 

$p(\mathbf{y}\mid\mathbf{x})$는 여러개의 mode들을 가지고, 그렇기때문에 multimodal입니다.

 

unimodal prediction을 수행하는 한 방법은 그 분포의 점추정을 하게됩니다. 하지만 다수의(multiple) plausible image를 생성하기위해서는 점추정으로는 충분하지 않습니다. 따라서 우리는 full distribution을 찾을 필요가 있습니다.

 

conditional IMLE를 여기서 VGG-19를 이용한 metric 을 사용하여 일반화하게 되는데, 여기에 관한 내용은 Appendix에 있습니다. 위에서 뭐라뭐라 했지만... 여튼 conditional IMLE의 알고리즘은 다음과 같습니다.

위의 conditional IMLE에서의 수식을 보면 쉽게 이해할 수 있습니다.  m개의 random noise vector들을 생성하고 그것들을 순서대로 segmentation map과 함께 $T_{\theta}$에 넣어 output을 냅니다. 그 output들과 실제 ground truth와의 Loss를 계산해서 가장 작은 Loss를 가진(그러니까 가장 유사하게 만들어진 output이겠죠) output의 index가 $\sigma(i)$가 되는 것입니다.

 

Architecture

 

Noise Encoder

input segmentation map들이 고해상도로 제공되기때문에 이것과 channel-wise로 concatenation될 noise vector $\mathbf{z}$는 high-dimensional일 수 있습니다. 이것은 sample의 효율을 낮추게되고 또한 학습의 속도를 저하시킵니다. 

이것을 해결하기위해, noise를 low-dimensional에 놓이도록 합니다. 이를 위해, 우리는 noise encoder module을 추가합니다. 이것은  segmentation $\mathbf{x}$와 lower-dimensional noise vector $\tilde{\mathbf{z}}$ 를 input으로 받아서 $\mathbf{z}$와 같은 사이즈의 noize vector$\mathbf{z}'$를 output으로 뽑아냅니다. 그리고 $\mathbf{z}$를 $\mathbf{z}'$로 대체해서 사용합니다. 

즉, lower dimensional noise와 segmentation map을 하나의 noise vector로 압축하는 encoder를 사용했다 라고 볼 수 있겠네요..

 

 

뒤의 실험내용들은 생략하겠습니다. 아래 논문링크에서 볼 수 있습니다. 

뒤에 Appendix가 있는데, 시간나면 다음 포스팅에 정리하도록 할게요 . 그럼 이만 ! 

 

Reference

[1]Diverse Image Synthesis from Semantic Layouts via Conditional IMLE

반응형
Comments