KCCV에서 황원준 교수님께서 Domain Adaptation (DA) 의 Baseline으로 언급하신 논문 중 하나를 읽어보았습니다. 리뷰에 앞서 저는 몇 주간 계속 Adversarial Domain Adaptation에 대한 논문을 리뷰하고 있습니다. 최대한 자세히 내용을 서술하려고 노력하였으나 더욱 상세한 이해를 위해서는 이전에 리뷰한 내용을 읽어보시는 것을 권장드립니다.
(1) ADDA ( Adversarial Discriminator Domain Adaptation ) :: Adversarial DA의 근간이 되는 논문
(2) CyCADA ( Cycle-Consistent Adversarial Domain Adaptation ) :: ADDA에 Cycle-GAN 추가
Background
Domain Adaptation(DA)을 처음 접하시는 분들을 위해 간단하게 Adversarial Domain Adaptation이 무엇인지 언급하고 넘어가도록 하겠습니다. DA는 서로 다른 도메인을 가지는 Source 와 Target을 비슷한 도메인 상으로 만들어주는 방법입니다. 그 중 Adversarial DA란 GAN과 유사한 방법으로, Feature Extractor 는 Source/Target의 feature를 서로 구분하지 못하도록 (서로 비슷한 Domain Feature를 만들도록), Discriminator는 Source/Target을 구분하도록 학습하는 방법입니다.
Summary
리뷰를 더 쉽게 이해하기 위한 요약 (디테일한 내용은 아래 리뷰를 확인하시기 바랍니다)
- 기존 Unsupervised Adversarial Domain Adaptation은 Source와 Target 에서 추출한 feature를 비슷한 distribution을 가지도록 학습
- 그러나 이 방법은 Source-Target 에 대한 Global Domain Distribution 을 맞추는데에 집중하기 때문에 각 class를 고려한 Alignment of Distribution이 아님. 이로 인해 오히려 성능 저하가 발생 (즉, Semantic Information에 대한 정보를 고려하지 않음)
- 따라서 본 논문에서는 Semantic Information 을 함께 학습에 이용하는 MSTN(Moving Semantic Transfer Network) 을 제안. 즉, Semantic Infomation 학습을 위해 각 class 별 Domain Gap 에 대한 loss 를 추가한 방법
- Target Data는 Label 이 없는데 어떻게 각 Class 에 대한 loss 를 구함? psedo-label을 라벨로 사용함. 즉, 추출한 Target의 feature를 classification에 태워 나온 label을 pseudo-label로 사용.
- pseudo-label이 틀리면 성능이 안좋을텐데? 이 점을 보완하기 위해 Average Centroid Alignment 를 사용하여 false pseudo-label을 발생시킬 수 있는 noise를 surprass 시킴
Learning Semantic Representations for Unsupervised Domain Adaptation (MSTN) – [ 논문 바로 가기 ]
Introduction
그동안 DA는 Adversarial Method
를 많이 사용되었습니다. 대표적으로 제가 리뷰했던 Adversarial Discriminator Domain Adaptation (ADDA) 방법론이 있습니다. 그러나 이 방법은 치명적인 한계가 있다고 하는데요. 그건 바로 “Alignment of Global Domain Statics”에만 집중하기 때문에 각 카테고리에 대한 semantic한 정보를 잃는다는 것입니다. 다시말해 소스와 타겟에서 추출된 feature끼리의 분포를 맞추는 것으로, 카테고리 별로 가깝게 매핑된다고 보장할 수는 없습니다. 즉, 완벽하게 global domain이 맞춰졌다 가정하더라도 semantic information에 대한 정보는 학습하지 않기 때문에 소스 도메인의 가방 feature가 타겟 도메인의 자동차 feature와 비슷하게 매핑될 수도 있습니다.
- Adversarial Method : GAN과 유사한 방법으로, Feature Extractor 는 Source/Target의 feature를 서로 구분하지 못하도록 (서로 비슷한 Domain Feature를 만들도록), Discriminator는 Source/Target을 구분하도록 학습하는 방법
이런 Semantic Alignment 문제는 성능을 감소하는 주된 원인이었지만, 타겟 레이블 정보의 부족으로 인해 Supervised Domain Adaptation에서만 주로 연구되었다고 합니다. 따라서 해당 논문에서는 Unsupervised Damain Adaptation을 위한 새로운 Moving Semantic Transfer Network (MSTN) 을 제안합니다.
Method
위 그림은 MSTN 방법론의 Overview 입니다. Standard Source Classification loss를 사용하면서, 두 도메인 간 Distribution Alignment를 위해 (도메인 간 갭을 줄이기 위해) Domain Adversarial loss를 사용합니다. 그 Loss는 아래 eq. (1) 과 같습니다. 여기서 J는 classificaton error로 많이 사용되는 cross entropy loss 이며, d(X_S, X_T)는 두 도메인 간 Divergence 입니다. 이 때, Divergence를 구하기 위한 Domain Adversarial similarity loss는 eq. (2) 와 같습니다.
즉, G는 Feature Extractor로 D가 어떤 도메인에서 온 feature인지 헷갈리도록, Discriminator인 D는 어떤 도메인에서 왔는지를 판별하도록 학습됩니다. 이를 통해 DA의 궁극적인 목표인 “Domain-Invariant” 한 feature를 생성하도록 학습됩니다. (앞서 Intro 에서 언급한 Global Domain Distribution에 초점을 맞춰 학습하는 것이 바로 여기서 진행됩니다.)
그러나 Domain Invariant가 Discriminability를 보장하는 것은 아닙니다. 오히려 Global Distribution에 집중하여 서로 다른 class 의 feature 가 가깝게 매핑될 수도 있죠. 따라서 이 문제를 Supervised Domain Adaptatoin (이하 SDA) 에서는 동일 class의 feature 끼리는 가깝게 매핑되도록 학습되기 때문에, 이로 인해 성능 향상을 가져왔다고 합니다. 따라서 여기에 영감을 받아 본 논문에서도 동일 class 끼리 매핑되도록 semantic representation을 학습하고자 하였습니다. SDA에서 semantic한 정보를 위해 eq.(3) 처럼 동일 클래스끼리의 분포를 직접적으로 일치시키도록 loss를 설계하였습니다.
그러나 Unsupervised Domain Adaptation 인 현재 문제에 이 방법을 적용하기 위해서는 Target의 라벨을 알아야 가능합니다. 그래야 클래스끼리의 분포를 매핑시킬 수 있기 때문이죠. 따라서 이를 위해서 본 논문에서는 앞서 학습완료한 F (Classifier) 와 G (Feature Extractor) 를 이용하여 pseudo-label을 만들어 이를 label로 이용하였다고 합니다. 즉, Target sample인 X_T를 G에 태워 나온 Feature를 분류기인 F에 넣어 나온 라벨 F(G(X_T)) 를 pseudo-label로 사용합니다.
그렇다면 자연히 따라나오는 의문이 있습니다. “False Pseudo-Label 을 발생시키는 noise를 어떻게 surpress 할 것인가?” 다시말해, Pseudo-label이 올바르지 않다면 성능이 낮을 염려가 발생한다는 것입니다. 논문에서는 이 문제를 해결하기 위해 Centroid Alignmnet를 이용하였다고 합니다. 각 클래스의 Centroid (중심점) 을 계산할 때, 정답과 오답 pseudo-label을 모두 사용하는데다가 오답이 발생시키는 악영향을 정답이 완화시키는 역할을 하도록 제한하기 때문에, Pseudo-label의 신뢰도를 높일 수 있다는 것입니다. Centroid를 사용한 semantic representation을 위한 loss는 아래 eq.(4)와 같습니다. 이 때, 중심점 간 거리로는 Euclidean distance 를 사용합니다.
따라서 본 모델의 최종 Loss 는 eq.(5) 와 같습니다.
Moving Semantic Transfer Network (MSTN)
본 논문에서는 semantic representation을 위해 eq.(4)와 같이 loss 를 추가한 모델을 제안하였습니다. 다만 이 모델을 학습했을 때의 치명적인 한계 2가지가 발생합니다.
- Optimizer로 mini batch SGD를 사용하는데, 각 batch 에서의 categorical information이 부족하다
- 배치사이즈가 작다면, 잘못된 pseudo-label이 하나만 있어도 pseudo-label이 지정된 중심과 실제 중심 사이에 큰 편차 발생
- 위 두 가지 문제를 해결하고자 각 iteration에서 새로운 centroid를 구할 때,
expoenetial moving average centroid
를 사용하도록 제안합니다. - 이 방법은 왼쪽 Algorithm 1에서 확인할 수 있습니다. 매 이터레이션마다 Source의 중심점은 Source 라벨의 의해 업데이트되고, Target은 Target의 수도라벨에 의해 업데이트됩니다.
- 그러고나서 eq.(4)에 따라 소스와 타겟 간 평균 중심점으로 중심점을 새로 할당합니다.
Experiments
실험으로는 Office-31 및 ImageCLEF-DA 그리고 MNIST-USPS-SVHN 데이터셋을 사용하였다고 합니다. (참고로 해당 데이터셋들의 경우 DA에서 흔히 사용되는 데이터셋입니다.)
아래 Table1. 에서 확인할 수 있듯, MSTN이 가장 높은 성능을 보임을 확인할 수 있습니다.
Table 2. 에서는 ImageCLEF-DA 데이터셋을 이용한 결과입니다. 해당 데이터는 class 가 balance 하기 때문에, class imbalance 문제는 집중하지 않을 수 있었으나, 도메인 크기가 600개로 제한되어 있어 학습이 충분하지 않을 수도 있다고 합니다. 따라서 해당 모델이 다른 모델보다 전반적으로 좋은 성능을 가지지만, Office-31에 비해 뚜렷한 성능 향상을 가져오지 못한 것 같다 설명합니다.
DA의 대표적인 데이터셋인 Digit 간 측정 결과는 아래 Table 3. 에서 확인이 가능합니다. 특히, 해당 데이터셋으로는 t-SNE 시각화까지 진행하였습니다. 파란색점은 Source sample, 빨간색점은 Target sample 입니다. (a) 인 non-adapted 방법과 비교했을 때, adversarial adaptation method는 소스 feature 와 target feature를 성공적으로 결합하지만, semantic 한 정보는 무시되고 클래스 경계 부근에 모호한 feauture 들이 발생함을 확인할 수 있었습니다.
뿐만아니라 Table 3. 에서 MSTN이 가장 우수한 성능을 보임을 확인할 수 있습니다.
제가 리뷰한 논문들은 ADDA에서 가지가 뻗어나가듯 하나씩 아이디어가 추가됨을 확인할 수 있었습니다. 다양한 아이디어도 좋지만 object detection에 적용하고 어떤 결과를 보이는지를 한번 확인해보고 싶습니다.