Domain Adaptation by backpropagation VS DSN
한 줄 요약 : DANN 은 Source와 Target domain을 generalize 하도록 encoder를 학습시키고, DSN은 Source와 Target domain의 고유한 특징을 덜어냄으로써 generalize 한다.
Model Architecture
3가지 구조
1. Private Encoder : Source / Target domain 각각의 고유한 특징을 추출하도록 학습한다.
2. Shared Encoder : Source / Target domain의 공통적인 특징을 추출하도록 학습한다.
3. Shared Decoder : Private, Shared representation을 통해 Source / Target 이미지를 재구성한다.
학습과정
해당 모델은 위와 같은 loss function을 최소화하는 방향으로 학습을 진행한다. 각각의 loss function은 다음과 같다. 여기서 task는 classify.
1) L(similarity) : shared source representation 과 shared target representation의 유사도가 높아야 한다. DANN 은 Adversarial 하게 학습하는 것을 의미함. 이 페이퍼에선 2가지 similarity loss가 있는데, DANN에서 쓰이는 loss의 형태가 더 성능이 좋은 것으로 나타났다. N_s는 source domain data의 개수, N_t는 target domain data의 개수. d_i는 ground truth domain label, d_i_hat 은 predicted domain label이다. source data와 target data를 넣었을 때, 둘 다 source로, 또는 둘 다 target으로 판단해야 loss 가 최소화되는 것을 알 수 있다. shared encoder를 통한 feature map이 source 인지 target 인지 구별하지 못하도록 일반화되어야 한다는 것을 의미한다.
2) L(difference) : private representation 과 shared representation의 비유 사성이 커져야 한다. 결론부터 말하자면, 각 행렬곱은 private source feature와 shared source feature 간의 유사도, private target feature와 private target feature 간의 유사도를 의미한다. H는 행렬로, 예를 들어 H_c^s는 shared source representation, 즉 shared source feature map 벡터를 row로 한다.
그림에서처럼, 행렬곱은 모든 샘플들의 각 feature 들의 유사도가 된다. (예. shared source representation 과 private source representation의 f1 들의 곱 → shared에서 뽑은 source의 f1과 private에서 뽑은 source의 f1의 유사도. 이 유사도가 0에 가까워야 L_difference를 최소화된다.) 따라서 L_difference를 최소화하는 것은 shared representation과 private representation의 비유 사성을 높이는 것과 같다. 즉 shared representation 이 추출하는 특징과 private representation에서 추출하는 특징은 달라야 한다.
3) L(reconstruct) : Decoder를 통해 재구성된 이미지가 원본 이미지와 유사하도록 학습한다. 원본 이미지와 재구성된 이미지 사이의 error가 작아지도록 학습한다. si_mse 는 pixel 수에 따라 normalize 해주는 것이라 생각하면 되겠다.
4) L(task) : task = label predictor 이다. 실험 중에 MNIST (source)로 학습시킨 모델에 MNIST-M (target)을 넣었을 때도 숫자를 잘 구분하도록 하는 실험이 있다. 이를 예로 들면 이 L_task는 정답 라벨(y_i)과 모델을 통해 예측한 숫자(y_i_hat) 간의 error가 작도록 학습함을 알 수 있다.
Result
첫번째 열은 원본 input image, 두 번째는 shared와 private representation을 합쳐서 재구성한 이미지(=Decoder의 output), 세 번째는 shared representation으로만 재구성한 이미지, 네 번째는 private representation 만으로 재구성한 이미지이다. (a)와(b)를 통해 결과를 해석하자면, (b)의 두 번째 열을 보면, target 도메인을 일반화하기 위해 MNIST-M의 도드라지는 특징이었던 배경이 흐려진 것을 알 수 있다. shared target representation과 private target representation을 합쳐 이미지를 재구성하면서 노이즈가 조금 제거된(?) 느낌을 준다. (b)의 세 번째 열에서는 a와 b의 공통적인 특징인 '숫자'만 출력된 것을 알 수 있다. 네 번째 열은 (a)에서는 source domain의 고유한 특징인 흑백의 배경, (b)는 target의 고유한 특징인 색감이 있는 배경이 출력되는 것을 알 수 있다.