2018년 9월 19일 수요일

Fader Networks : Manipulating Images by Sliding Attributes

Task : Multiattribute Img2Img Translation


Idea & Assupmtion :

다른 attribute를 갖더라도 이미지는 이 attribute와 상관 없이 공통으로 갖는 특징이 있을 것입니다(ex. 남자, 여자는 다른 attribute를 갖지만 눈, 코, 입이 있다는 것은 동일합니다). 이러한 공통적인 특징을 나타내는 latent variable을 어떻게 하면 학습할 수 있을까요?

이 논문에서는 이를 위해 Label을 활용합니다. Label $y$를 갖는 이미지 $x$ 가 있다고 해보겠습니다. 임의의 이미지 $x$가 Encoder를 통해 latent variable $z$로 변환됩니다.

  • 우선 Discriminator는 $z$를 보고 올바른 label $y$를 predict 합니다. 
  • 그리고 Encoder는 Discriminator로 하여금 $z$를 올바른 label $y$로 predict하지 못하도록 $z$를 만드는 법을 학습합니다. 
이로써 Encoder가 만드는 $z$는 label $y$와 상관없는 Domain invariant label $z$가 됩니다.

Training objective


* Fader network

1. Image reconstruction

$L_{AE}(\theta_{enc}, \theta_{dec}) = \frac{1}{m} \sum_{(x, y) \in D} \parallel D_{\theta_{dec}}(E_{\theta_{enc}}(x), y) - x \parallel_2 $

$x$로부터 domain invariant feature $E_{\theta_{enc}}(x)$를 생성하고 이를 $x$의 label $y$를 이용해 이미지 $D_{\theta_{dec}}(E_{\theta_{enc}}(x), y)$ 를 생성합니다. 이는 $x$와 동일해야합니다. 이 때 domain invariant feature 만으로는 이미지 $x$를 생성할 수 없으므로 Decoder는 무조건 label $y$를 사용해야하는 constraint이 걸리게 됩니다.

2. Learning attribute-invariant latent representation

Decoder가 무조건 label $y$를 사용하게 하려면 $E(x)$에는 특정한 도메인과는 전혀 상관 없는 domain invariant feature가 되도록 해야합니다. 다른 일반적인 GAN이 이미지를 대상으로 adversarial training을 하는 것 과는 다르게 이 논문은 $E(x)$에 대해 adversarial training을 합니다. 핵심 아이디어는 $E(x)$를 보고 label $y$를 정확히 classify 할 수 있는 discriminator가 있을 때 $E$는 discriminator가 최대한 classify 할 수 없는 $E(x)$를 만들자는 것입니다.

구체적인 objective function은 아래와 같습니다.

- Discriminator objective


$L_{dis}(\theta_{dis} \mid \theta_{enc}) = - \frac{1}{m} \sum_{(x, y) \in D} \log P_{\theta_{dis}}(y \mid E_{\theta_{enc}}(x)) \\ where \, P_{\theta_{dis}}(y \mid E_{\theta_{enc}}(x)) = \sum_{k=1}^n \log P_{\theta_{dis}, k} (y_k \mid E(x))  \tag{1} $

우선 아래 줄의 식에서 $k$는 $k$번째 attribute를 의미합니다. 따라서 아래 식은 $E(x)$를 보고 각 attribute에 해당할 log probability의 합을 의미합니다. Discriminator는 이 log probability를 최대화 해야 하므로 윗 줄의 식에서 모든 데이터에 대한 log probability의 평균에 - 를 붙여주고 Gradient descent를 하게 됩니다.

- Adversarial objective

$L(\theta_{enc}, \theta_{dec} \mid \theta_{dis}) = \frac{1}{m} \sum_{(x, y) \in D} \parallel D_{\theta_{enc}}(E_{\theta_{enc}}(x), y) - x \parallel_2 - \lambda_E \log P_{\theta_{dis}}(1-y \mid E_{\theta_{enc}} (x)) \tag{2} $

시그마 내부의 왼쪽의 term은 위의 Image reconstruction에 해당합니다. 그리고 오른쪽 term인 $\log P_{\theta_{dis}}(1-y \mid E_{\theta_{enc}}(x)) $를 보고 Discriminator가 $y$가 아닌 $1-y$로 classify 할 log probability입니다. $y$는 0, 1 둘 중 하나이므로 $1-y$는 정확히 기존 label의 반대가 됨을 알 수 있습니다. 이 log probability를 maximize 해야 하므로 - 를 붙인 뒤에 Gradient descent를 해주게 됩니다.

이렇게 해서 Discriminator objective와 Adversarial objective를 합친 Learning algorithm은 다음과 같습니다.

$\theta_{enc}^*, \theta_{dec}^* = argmin_{\theta_{enc}, \theta_{dec}}{L(\theta_{enc}, \theta_{dec} \mid \theta_{dis}^*(\theta_{enc}))}$
$\theta_{dec}^*(\theta_{enc}) \in argmin_{\theta_{dis}} L_{dis}(\theta_{dis} \mid \theta_{enc})$

이 학습 과정은 discriminator가 $E(x)$를 제대로 classify 할 수 있는 능력을 갖춘 optimized discriminator임을 가정합니다. 하지만 현재의 $E$에 대해 optimize 될 때까지 discriminator를 학습시키는 것은 불가능합니다. 그래서 discriminator의 학습을 먼저 한 번 하고 이 때의 discriminator를 현재의 $E$에 대해서 optimize 된 discriminator라고 approximation을 합니다. 따라서 위의 식에 따라서 discriminator 1회 학습, Encoder와 Decoder 1회 학습을 번갈아가며 진행하게 됩니다.

학습이 완료되면 Training 때는 Binary attribute $y$로 하더라도 Test 때는 Continuous attribute $y$로 할 수 있다고 합니다.

0 coment�rios:

댓글 쓰기