Curaai00's Deep Learning Blog

Domain Transfer Network: Unsupervised Cross-Domain Image Generation

딥러닝/GAN
Domain Transfer Network Unsupervised Cross-Domain Image Generation

Domain Transfer Network: Unsupervised Cross-Domain Image Generation

요즘 Deep Learning이 여러 분야에 사용되고 있는데, Deep Learning을 이용한 여러 사용사례에서 학습을 실제 환경의 데이터가 아닌, web 혹은 정제돼있는 데이터를 가지고 학습을 한다음 학습한 것을 실제 환경에 그대로 사용하였더니 정확도도 떨어지고 위험도가 너무 높았습니다. 그런 것을 방지하기 위해 다른 도메인에 적용할 수 있도록 하는 것을 Transfer Learning이라고 합니다.

이 Domain Transfer Network는 두 도메인(비슷하고 본질적으로는 같은 의미를 가짐, Source domain S & Target domain T) S, T를 학습하여 S의 이미지를 T의 이미지로 바꿉니다.

Domain Transfer Network


DTN(Domain Transfer Network)는 다음과 같은 구조를 가지고 있습니다. 보시다시피 일반적인 GAN에 base를 두고있는데, basic GAN과 다른점은 바로 function f와 g입니다. f와 g가 Generator G를 구성하고 있습니다. (G == g*f)

Function f & g

함수 f는 S, T의 feature를 만드는 부분입니다. 이게 무슨말이냐 하면 위 그림의 남자와 G를 통과한 후의 남자는 본질적으로 같은 사람이란 것입니다. 물론 domain(하나는 real, 하나는 emoji)은 다릅니다만. 이 남자를 james라 한다면 실제 james(S)도, emoji의 모습을 한 james(T)도 사실은 똑같은 james란 말입니다. 그래서 funciton f는 그 james라는 사람의 특성(브라운 색 머리카락, 하얀색 피부, 선명한 눈과 눈썹 등)을, 사람을 feature로 압축해내는 함수입니다.

function g는 그 압축된 feature, f(x)를 다시 T의 이미지로서 재변환시키는 함수입니다.

D Loss

D는 각각의 의미를 가진 세가지 loss가 합쳐져 있습니다.

  1. D1은 S에서 sampling한 x가 G를 거치며 T같은 이미지를 만들어내는 것을 D가 잘 구별하느냐를 나타냅니다.
  2. D2는 보기에는 진짜 이미지(Target domain의 이미지)를 G에 넣은 바보처럼 보이지만, f가 어떠한 이미지를 잘 feature화 시키느냐, g는 그 feature를 잘 target domain의 이미지처럼 만들어내는가를 나타냅니다. 심지어 Target domain의 이미지 x가 들어와도 말이죠!
  3. D3는 진짜 이미지 x를 넣었을 때 진짜 이미지인지 잘구별하느냐를 나타냅니다.

G Loss

G도 기존의 basic GAN의 G처럼 D를 이용하여 학습을 진행합니다.

 

  1. 첫번쨰 항은 S에서 sampling된 x가 G를 통하여 T의 이미지처럼 보이도록 만듭니다.
  2. 두번쨰 항은 T에서 sampling된 x가 G를 통하였어도 여전히 진짜 이미지처럼 보이도록 만듭니다.

Consistency Loss

Const Loss에서는 G의 f를 통해서도 여전히 같은가? 같은 feature, 같은 의미, 같은 것, 불변성을 가지고 있는가를 distance 함수를 통해 측정하고 요구합니다.

그래서 S에서 sampling된 x를 f(x), f(G(x))의 두 feature 사이의 거리를 측정하여 최적화합니다.

Identity Loss

Consistency Loss 처럼 같은 feature를 나타내는가 + Target Domain 이미지를 성공적으로 만들어 내는가를 다음과 같은 Loss를 통해 distance를 측정하고 최적화합니다.

TV Loss

TV Loss는 anisotropic total variation loss로서 이미지를 조금더 부드럽고 자연스럽게 만들어 준다고 합니다. G가 만들어낸 이미지 G(x)를 z라고 합니다.

논문의 저자들은 B를 1로 했다고 하네요.

위 Loss들은 L_D와 L_G = L_GANG + alpha * L_CONST + beta * L_TID + gamma * L_TV로 이루어져 있으며 alpha, beta, gamma는 parameter입니다. distance loss들은 여러가지 loss(MSE, Hinge, cosine, triplet)들을 실험했었는데, MSE가 가장 smiple하고 좋았다고 합니다.

Experiment

DTN은 두가지 실험을 하였는데 하나는 SVHN에서 MNIST, 다른 하나는 real face에서 emoji face로 domain을 transfer 하였습니다.



왼쪽그림은 real face에서 emoji face로 transfer, 오른쪽 그림은 SVHN에서 MNIST로 transfer한 것입니다.


Compare


다른 Domain Adaptation Method를 비교해보니 DTN이 더 좋은 성능을 나타냈습니다.

Limitation

DTN이 만능처럼 보여도 두가지 문제점이 있습니다.

  1. 두 도메인이 비슷해야 한다. 도메인이 완전히 다르거나 의미자체가 틀리다면 transfer는 당연히 안되겠죠?
  2. source domain이 더 많은 feature, 의미, data를 가지고 있어야한다. source에서 더 많은 feature를 가지고 있어야 변환하기도 쉽고, target domain의 feature가 복잡하다면 source의 부족한 feature를 가지고 transfer하기가 어려울 것입니다.

References

 Arxiv 논문: https://arxiv.org/abs/1611.02200