해당 논문은 기존의 Domain Adaptation을 요약하고, framework로 일반화한다. 그에 더불어 Unsupervised Domain Adaptation에 GAN loss function을 도입한다. 사실 GAN이 익숙하다면 예상이 가는 내용이다.
이해하려면 GAN 을 먼저 알아야한다.
위 그림은 기존의 Domain Adaptation 방법론들을 framework로 도식화한 것이다. 예를 들어 DANN의 경우 discriminative model, weights tied, mini-max objective 으로 분류된다. 모든 DA 방법론들을 1) Generative or discriminative model? 2) tied weight or untied? 3) adversarial objective? 으로 나눈다는 의미이다. 사실 이 논문의 주 내용이라고 볼 수는 없겠다..
ADDA 에서는 위의 프레임워크처럼 방법론을 3가지로 설명할 수 있다.
앞에서 Unsupervised Domain Adaptation의 discriminative model을 주로 다루었다. 이는 DA가 하고자하는 task가 이미지의 class label을 분류하는 작업일 때를 의미한다. label이 있는 source 데이터로 학습시킨 모델로 target domain image를 잘 분류해내는 것이 목표이다. 따라서 loss function도 source mapping이 label을 잘 분류할수록 낮아지도록 설계한 것을 볼 수 있다.
Untied weights : DANN의 경우 weight sharing이 있었다. source 와 target 분포의 간격을 좁히기 위해 동일한 encoder를 학습시키는데, 동일한 encoder를 사용한다는 것은 parameter, 즉 weight를 공유함을 뜻한다. DSN의 경우 private encoder는 별도의 encoder를 사용했고, shared encoder에서만 weight sharing이 있었다. ADDA는 별도의 encoder를 사용한다. 이 때 fully tied weight일수도 (모든 레이어의 파라미터 독립적) partially untied weights (일부 레이어는 동일한 파라미터 사용)일수도 있다.
Discriminator는 L_adv_D를 minimize하는데, D(M_s(xs))=1, D(M_t(xt))=0으로 만드려는 것이 목표이다. 이는 어느 이미지가 어느 도메인에서 왔는지 구분하는 Domain classifier(타 논문의)의 역할이다.
Adversarial loss : Source mapping(M_s)과 Target mapping(M_t)은 L_adv_M을 minimize 한다. 다만 이 loss function 에서는 logD(M_t(xt)), target mapping에 대해서만 adversarial한 목적식을 가진다. D(M_t(xt))=1이 되는 것이 목표로, Discriminator가 target mapping을 source domain에서 왔다고 생각하도록 속이는 것을 목표로 함을 의미한다.
왜 Target mapping에만 adversarial loss를 추가했을까?
GAN loss function은 본래 (2)식에서 max (M_s, M_t)를 추가한 형태이다. 하지만 이 논문에서는 (2)는 Discriminator만, Target mapping(GAN에서의 Generator와 유사한 역할을 한다.)의 loss function은 식(3)으로 분리했다.
기존 GAN minimax loss 은 vanishing gradient 문제점이 있다. Discriminator가 초반에 실수를 하면 loss가 커지고, 이를 줄이기 위해 학습이 진행되는데, Discriminator의 실수가 줄어들면 loss값이 0으로 saturate된다. generator의 gradient값은 vanish되는 것이다.
예를 들어 Discriminator가 D(G(z)) 를 fake라고 잘 분별해내면,
-log(1)-log(1-0.0001) = 0.0001 (← D가 real image와 fake image 너무 구별 잘하는 상태임)
gradient 값이 너무 작아서 학습이 잘 일어나지 않는다.
이 논문에서는 GAN loss function(해당 논문에서 이렇게 불림), L_adv_M 을 따로 둠으로써 target mapping 의 gradient가 소실되는 문제점을 해결한다.
source와 target이 독립적인 encoder를 가지며, Target mapping만 적대적으로 학습한다. GAN에서 처럼 real image 분포는 고정되어 있고, genearting 분포 (target mapping)만 이에 맞추도록 학습하는 것이다.
'Deep Learning > CV' 카테고리의 다른 글
[paper review] Unsupervised pixel-level Domain Adaptation with GAN (0) | 2021.05.28 |
---|---|
[paper review] Domain Separation Networks (0) | 2021.04.03 |
[paper review] Unsupervised Domain Adaptation by Backpropagation (1) | 2021.03.29 |