← Back to Blog

[Paper Review] Conditional Adversarial Domain Adaptation

paper review > domain adaptation

2026-07-046 min read

#paper-review #deep-learning #domain-adaptation #adversarial-learning #cdan

논문 링크: Conditional Adversarial Domain Adaptation

논문 정보

항목내용
VenueConference on Neural Information Processing Systems (NeurIPS)
출판 시점2018년
저자Mingsheng Long, Zhangjie Cao, Jianmin Wang, Michael I. Jordan
소속Tsinghua University, University of California, Berkeley

핵심 아이디어

CDAN(Conditional Domain Adversarial Network) 은 unsupervised domain adaptation을 위한 adversarial learning 방법이다. 기존 DANN 계열 방법은 feature representation ff 만 보고 source와 target을 구분하는 domain discriminator를 학습한다. CDAN은 여기에 classifier prediction gg 를 함께 넣는다.

핵심은 domain discriminator를 feature ff 만이 아니라, feature와 prediction의 결합 (f,g)(f,g) 에 condition한다는 점이다.

CDAN architecture

논문 Figure 1 재구성. CDAN은 feature representation ff 와 classifier prediction gg 의 관계를 domain discriminator에 입력한다. 왼쪽은 multilinear conditioning, 오른쪽은 randomized multilinear conditioning이다.

이 논문의 문제의식은 명확하다. Domain adaptation에서 단순히 marginal feature distribution만 맞추면 class별 mode가 섞일 수 있다. 예를 들어 source의 class A feature가 target의 class B feature와 맞춰지는 mode mismatch가 생길 수 있다.

CDAN은 prediction gg 를 조건으로 사용하여 class-discriminative한 alignment를 유도한다.


문제 설정

Source domain은 labeled sample을 가진다.

Ds={(xis,yis)}i=1ns\mathcal{D}_s = \{(x_i^s, y_i^s)\}_{i=1}^{n_s}

Target domain은 unlabeled sample만 가진다.

Dt={xjt}j=1nt\mathcal{D}_t = \{x_j^t\}_{j=1}^{n_t}

목표는 source risk뿐 아니라 target risk도 낮은 classifier를 학습하는 것이다.

ϵt(G)=E(x,y)Q[G(x)y]\epsilon_t(G) = \mathbb{E}_{(x,y)\sim Q} \left[ G(x) \neq y \right]

하지만 target label yy 는 학습 중에 주어지지 않는다. 따라서 source classification loss를 줄이면서, source와 target의 representation distribution discrepancy를 줄여야 한다.


DANN의 기본 구조

먼저 DANN을 수식으로 보자. Feature extractor를 FF, classifier를 GG, domain discriminator를 DD 라 하자.

f=F(x),g=G(f)f = F(x), \qquad g = G(f)

Classifier는 source label에 대해 cross entropy를 최소화한다.

Lcls=1nsi=1nsL(G(F(xis)),yis)\mathcal{L}_{\text{cls}} = \frac{1}{n_s} \sum_{i=1}^{n_s} L(G(F(x_i^s)), y_i^s)

Domain discriminator는 feature가 source인지 target인지 맞추려고 한다. 반대로 feature extractor는 discriminator가 source와 target을 구분하지 못하도록 학습된다.

단순화하면 minimax objective는 다음과 같다.

minF,GLclsλLadv(D,F),minDLadv(D,F)\min_{F,G} \mathcal{L}_{\text{cls}} - \lambda \mathcal{L}_{\text{adv}}(D,F) , \qquad \min_D \mathcal{L}_{\text{adv}}(D,F)

이때 DANN은 주로 D(f)D(f) 를 사용한다. 즉 feature만 보고 domain alignment를 수행한다.


왜 Feature만 맞추면 부족한가

Classification problem의 feature distribution은 보통 multimodal하다. 각 class가 하나의 mode를 형성하기 때문이다.

Feature marginal만 맞추는 것은 다음 분포를 맞추는 것에 가깝다.

Ps(f)Pt(f)P_s(f) \approx P_t(f)

하지만 실제로 필요한 것은 class conditional structure가 보존된 alignment이다.

Ps(fy)Pt(fy)P_s(f \mid y) \approx P_t(f \mid y)

Target에는 label이 없으므로 yy 를 직접 사용할 수 없다. CDAN은 대신 classifier prediction gg 를 사용한다. Prediction gg 는 soft label처럼 작동하면서 feature가 어느 class mode에 속하는지에 대한 정보를 준다.

즉 CDAN은 다음과 같은 joint structure를 맞추려 한다.

Ps(f,g)Pt(f,g)P_s(f,g) \approx P_t(f,g)

이 관점에서 CDAN은 단순 feature alignment가 아니라 conditional adversarial alignment이다.


Multilinear Conditioning

CDAN의 가장 중요한 수식은 multilinear map이다. Feature fRdff \in \mathbb{R}^{d_f} 와 prediction gRdgg \in \mathbb{R}^{d_g} 가 있을 때, CDAN은 두 벡터의 outer product를 사용한다.

T(f,g)=fgT_{\otimes}(f,g) = f \otimes g

이 값은 dimension이 dfdgd_f d_g 인 벡터로 볼 수 있다. 원소 단위로 쓰면 다음과 같다.

[fg]ij=figj\left[ f \otimes g \right]_{ij} = f_i g_j

이 식의 의미는 단순 concat과 다르다. Concat은 ffgg 를 나란히 붙일 뿐이다.

fgf \oplus g

반면 outer product는 feature dimension과 class prediction dimension의 interaction을 만든다. Prediction gjg_j 가 class jj 에 대한 soft assignment라면, figjf_i g_j 는 feature ii 가 class jj mode에서 얼마나 중요한지 표현한다.

Multilinear conditioning은 feature와 class prediction 사이의 cross-covariance structure를 domain discriminator가 보게 만든다.


Randomized Multilinear Conditioning

Outer product는 강력하지만 dimension이 커진다.

dim(fg)=dfdg\dim(f\otimes g) = d_f d_g

예를 들어 df=2048d_f=2048, dg=65d_g=65 라면 133,120133{,}120 dimension이 된다. 이 값을 그대로 discriminator에 넣으면 parameter 수가 과도하게 커진다.

그래서 논문은 randomized multilinear map을 사용한다.

T(f,g)=1d(Rff)(Rgg)T_{\odot}(f,g) = \frac{1}{\sqrt{d}} \left(R_f f\right) \odot \left(R_g g\right)

여기서 RfRd×dfR_f \in \mathbb{R}^{d \times d_f}, RgRd×dgR_g \in \mathbb{R}^{d \times d_g} 는 random matrix이고, \odot 는 element-wise product이다.

핵심은 inner product 보존이다.

E[T(f,g),T(f,g)]=f,fg,g\mathbb{E} \left[ \left\langle T_{\odot}(f,g), T_{\odot}(f',g') \right\rangle \right] = \left\langle f,f' \right\rangle \left\langle g,g' \right\rangle

TT_{\odot}fgf \otimes g 의 interaction을 더 낮은 dimension에서 근사한다. 논문은 dfdg4096d_f d_g \leq 4096 이면 full multilinear map을 쓰고, 그보다 크면 randomized map을 사용한다.


CDAN Objective

CDAN의 adversarial loss는 domain discriminator가 T(f,g)T(f,g) 를 보고 source와 target을 구분하도록 만든다. 단순화하면 다음과 같다.

Ladv=ExsDs[logD(T(fs,gs))]ExtDt[log(1D(T(ft,gt)))]\mathcal{L}_{\text{adv}} = - \mathbb{E}_{x^s \sim \mathcal{D}_s} \left[ \log D(T(f^s,g^s)) \right] - \mathbb{E}_{x^t \sim \mathcal{D}_t} \left[ \log(1-D(T(f^t,g^t))) \right]

여기서

fs=F(xs),gs=G(fs)f^s = F(x^s), \quad g^s = G(f^s)

이고 target도 동일하게 정의한다.

전체 학습은 다음 minimax problem으로 볼 수 있다.

minF,GLclsλLadv,minDLadv\min_{F,G} \mathcal{L}_{\text{cls}} - \lambda \mathcal{L}_{\text{adv}} , \qquad \min_D \mathcal{L}_{\text{adv}}

Gradient reversal layer 관점에서는 DD 는 domain classification을 잘하도록 학습되고, F,GF,G 는 domain classification을 어렵게 만드는 방향으로 update된다.


Entropy Conditioning

Prediction gg 를 조건으로 쓰는 것은 강력하지만 위험도 있다. Target sample에 대한 prediction이 불확실하면, 그 prediction을 condition으로 쓰는 것이 오히려 alignment를 망칠 수 있다.

논문은 이 문제를 entropy로 다룬다. Prediction entropy는 다음과 같다.

H(g)=c=1CgcloggcH(g) = - \sum_{c=1}^{C} g_c \log g_c

확실한 prediction은 entropy가 낮고, 불확실한 prediction은 entropy가 높다. CDAN+E는 entropy-aware weight를 사용한다.

w(H(g))=1+eH(g)w(H(g)) = 1 + e^{-H(g)}

Entropy가 낮으면 eH(g)e^{-H(g)} 가 크므로 weight가 커진다. Entropy가 높으면 weight가 작아진다.

CDAN conditioning analysis

논문 Figure 2 일부. Multilinear conditioning과 entropy conditioning은 단순 concat 또는 feature-only discriminator보다 더 나은 alignment를 보인다.

Entropy conditioning은 confident한 sample을 더 강하게 사용하고, 불확실한 sample의 부정확한 pseudo-label 효과를 줄인다.


이론적 관점

Domain adaptation bound는 target risk가 source risk와 domain discrepancy에 의해 제한된다는 형태를 가진다. 직관적으로 쓰면 다음과 같다.

ϵQ(G)ϵP(G)+discrepancy(P,Q)+ideal joint error\epsilon_Q(G) \leq \epsilon_P(G) + \text{discrepancy}(P,Q) + \text{ideal joint error}

CDAN은 여기서 discrepancy를 feature marginal이 아니라 joint proxy distribution 위에서 본다. Classifier prediction을 사용하여 다음 proxy를 만든다.

PG={(f,G(f)):fP(f)}P_G = \{(f,G(f)) : f \sim P(f)\} QG={(f,G(f)):fQ(f)}Q_G = \{(f,G(f)) : f \sim Q(f)\}

이제 discrepancy는 PGP_GQGQ_G 사이에서 측정된다. Domain discriminator가 (f,g)(f,g) 를 구분하지 못하게 만들면, 이 joint proxy distribution의 차이를 줄이는 방향으로 학습된다.

즉 CDAN의 이론적 핵심은 다음과 같다.

방법줄이려는 discrepancy
DANNPs(f)P_s(f)Pt(f)P_t(f) 의 차이
CDANPs(f,g)P_s(f,g)Pt(f,g)P_t(f,g) 의 차이

후자가 class-discriminative structure를 더 잘 보존할 가능성이 높다.


실험 결과

논문은 Office-31, ImageCLEF-DA, Office-Home, Digits, VisDA-2017에서 CDAN을 평가한다. Backbone은 AlexNetResNet-50을 사용한다.

대표적인 관찰은 다음과 같다.

실험관찰
Office-31CDAN+E가 대부분의 transfer task에서 강한 성능을 보인다.
Office-Homedomain 차이가 큰 setting에서도 기존 방법보다 좋은 평균 성능을 보인다.
Digits / VisDAfeature-level adaptation임에도 여러 benchmark에서 안정적으로 동작한다.
Ablationconcat보다 multilinear conditioning이 좋고, entropy conditioning이 추가 성능을 만든다.

특히 논문은 DANN-[f,g]처럼 단순 concat을 하는 방법이 충분하지 않다고 분석한다. Concat은 ffgg 의 interaction을 직접 만들지 못하기 때문이다.


장점

한계

CDAN은 classifier prediction gg 에 의존한다. 초기 prediction이 매우 틀리거나 target domain이 source와 지나치게 다르면, 잘못된 class structure를 기준으로 alignment할 위험이 있다.

또한 adversarial training 자체의 불안정성은 남아 있다. Discriminator가 너무 강하거나 약하면 feature extractor가 적절한 alignment signal을 받지 못할 수 있다. Randomized multilinear map도 효율적이지만, random projection dimension dd 선택에 따라 근사 품질과 계산량이 달라진다.


정리

CDAN은 domain adaptation에서 중요한 질문을 던진다. 단순히 feature distribution을 맞추는 것으로 충분한가?

이 논문의 답은 아니다. Classification에서는 feature distribution이 class별 mode를 가지므로, feature와 prediction의 결합 분포를 맞추는 것이 더 자연스럽다.

수식적으로 CDAN의 핵심은 D(f)D(f)D(T(f,g))D(T(f,g)) 로 바꾸는 것이다. 이 작은 변화가 domain discriminator에게 class-aware한 정보를 제공하고, multimodal distribution alignment를 더 잘 수행하게 만든다.