1. Abstract

기존의 DANN처럼 adversarial learning을 이용하여 feature를 학습하면, feature는 invariant marginal distribution을 가집니다. 새로운 도메인에서 예측할 때에는  conditional distribution의 invariance가 더 중요하다고 합니다. 

 

 기존의 방법들은 marginal distribution P(X)가 변한다고 합니다. 반면, P(Y|X)는 전체 도메인에 걸쳐서 안정적으로 유지된다고 합니다. 제가 이해한 바로는 기존의 방법들은 feature의 표현에만 중점을 뒀다면, 이 논문은 feature와 label의 관계에 중점을 둔 것 같습니다.

 

 

2. Method

 

기본 clssification에 관련된 loss입니다. cross entropy 함수를 이용하는 것을 알 수 있습니다. F(x)는 feature이고, T는 classifier 하나, K는 전체 도메인 입니다. Q는 predicted label dstribution이라고 합니다. 이 수식만 이용하면, domain-invariant한 feature는 학습을 못합니다.

그렇기 때문에, GAN처럼 adversarial learning방법을 도입합니다.  D는 domain discriminator입니다. minmax game에서 F와 D가 서로 반대되어야 할 것 같은데, 잘 이해가 안 가네요... 

이는 P1(F(x)) = P2(F(x)) = ... = PK(F(x)) 같은 invariant marginal distribution을 구한다고 합니다. 이는 model의 generalization 성능을저하시킬 수 있습니다.

T' 은 각 도메인의 classifier를 의미합니다. 이 수식이 왜 도입되는 지는 제가 잘 이해를 못했습니다...

 

위에 -의 의미는 파라미터를 고정시켜 둔 것 입니다. adv Loss를 보면, class에 관한 정보가 빠져있습니다. class에 관한 정보도 배우도록 해준다고 합니다. 또 domain 마다 classifier를 추가합니다.

 

최종 loss는 이와 같습니다.

 

Eq 10이 방금 loss입니다.

 

3. Experiment

다른 방법들이랑 비교해보면, 다른 domain이여도 서로 잘 뭉쳐있는 것을 확인할 수 있습니다.

 

 

반응형

1. Abstract

  이 논문은 Domain-specific Mask라는 것을 도입합니다. 논문 제목처럼 domain specificity와 invariant를 balance하게 해주는 역할을 합니다. 이러한 것을 Disentangled Representation 라고 한다고 합니다. domain sepecificity는 특정 domain에서 분류를 잘 하도록 하는 것이고, invariant는 어느 domain에서도 feature가 변하지 않는 것을 의미합니다.

이처럼 target domain이 source domain과 비슷한 면도 있기 때문에, 둘의 균형이 중요하다고 합니다. domain specific을 언급하는 논문은 처음봐서 인상깊네요.

2. Method

 

domain 마다 mask predictor라는 것을 가지고 있습니다. mask를 만들어서 이를 feature 와 곱해줍니다. dropout이랑 비슷하다고 생각하시면 될 것 같습니다. 학습을 하기 위해서 mask predictor는 parameter이고, 이 값에 sigmoid를 해줍니다. 문제는 mask는 binary값이라서 back-propagation을 통해 직접 학습을 하는 것은 불가능합니다. 그래서 근사화를 통해 학습을 한다는데, 잘 이해가 가지 않아 코드를 직접 찾아봤습니다.

 

super_mask_logits이라고 학습가능한 mask predictor를 만들어 줍니다.

그리고 보시면 soft_mask를 빼고 더하는 것을 볼 수 있습니다. 제 생각으로는 여기서 gradient를 구하는 것 같습니다.

 

mask는 뉴런들이 source domain의 specific을 유지하는 데에 도움이 됩니다. 그리고 다른 domain들과 mask 위치가 최대한 겹치지 않도록 함으로써 domain-specificity를 좀 더 인센티브를 준다고 합니다. 

이 수식을 이용하여 구합니다. 그냥 IoU는 미분이 불가능해서 못 씁니다.

 

loss 함수는 이렇게 됩니다. 

 

target domain에서 test를 할 때에는 maks predictor의 평균을 이용한다고 합니다. 

 

invaraint는 어디서 조절하는 지 몰랐는데, 논문을 다시 읽어보니까 하나의 feature extractor를 이용하기 때문에 invariant도 학습을 한다고 합니다 ㅎㅎ...

3. Experiment

 

 

반응형

1. Abstract

 이 논문은 meta-learning을 이용한 DG입니다.  Source domain을 meta-train meta-test로 나누고, 이를 이용하여 model-agnostic learning을 합니다. global 적으로 inter-class relationship에 대한 knowledge를 유지하기 위해서 soft confusion matrix를 이용합니다. local적으로는 domain independent class-specific cohesion과 샘플 feature의 separation을 metric-learning을 이용해 향상시킵니다.

 

2. Method

모델 구조

2.1 Model_agnostic Learning with Episodic Training

 이 논문의 key는 episodic training 입니다. 여러 개의 source domain을 meta-train D_tr와 meta-test D_te로 나눕니다. Dtr 도메인의 데이터를 학습한 후에, Dte를 이용하여 학습을 하게 됩니다.

task-specific supervised loss 인 L_task를 통해 feature extractor와 classifier를 업데이트 합니다. 여기선 D_tr만 이용합니다.

 

parameter를 업데이트 한 후에 meta-learning step을 적용할 수 있습니다. meta-learning을 하더라도 feature가 semantically relevant한 특성을 가지도록 해야합니다. 그리고 domain에 상관없이 같은 label이라면, 서로 밀집해 있도록 clustering이 되어야 합니다. 이를 위해 L_meta = b1*L_global + b2*L_local 를 이용합니다. b1,b2는 0보다 큰 수입니다.

 

2.2 Global Calss Alignment Objective

 

 여기서 목표는 feature가 unseen data에서도 학습했던 class 관계를 유지하는 것입니다. 그러기 위해서 soft label을 이용해 모델이 class ambiguities를 배우도록 합니다. D_tr과 D_te를 consistent하게 만들어 줍니다. 

이를 이용해 class-specific mean feature vector인 z를 구합니다. c는 class이고 k는 domain입니다. 

그리고 softmax를 통해 soft label을 만들어줍니다. 여기서 타우는 1보다 큰 값입니다. soft label 논문에서는 2로 설정한 것으로 알고 있습니다.

이 식을 이용해서 두 도메인 간의 거리를 줄여줍니다. D_KL은 kl divergence입니다. kl divergence는 symmetry하지 않기 때문에 이런 구조를 사용합니다. D_te, D_tr 모든 pair의 l_global을 통해서 L_global을 계산합니다. 그렇기 때문에, 연산량 에 대한 이슈도 있지만, 논문에서는 D_tr의 개수는 2, D_te의 개수는 1이라서 크게 상관없다고 합니다.

 

2.3 Local Sample Clustering

  이는 domain에 상관없이 class에 따라서 cluster 해주도록, robust semantic feature를 생성합니다. 이는 매우 중요하다고 합니다. 만약에 제대로 되지 않으면, ambiguous decision boundaries를 만들게 되어 unseen domain에서 제대로 작동하지 않게 됩니다.

 

 그래서 L_local loss를 이용하여 class-specific cluster의 밀집도를 높입니다. 이를 feature에 그대로 적용하게 되면, unseen domain에서의 성능에 지장을 준다고 합니다. 그래서 metric learning이라는 기법을 이용합니다. 위의 그림에서 보이는 M을 도입하여 학습가능한 distance function입니다.

모든 Source domain에서 (n,m) pair를 랜덤하게 뽑습니다. 이를 이용하여 loss 를 계산합니다.

이는 Contrastive loss 입니다. 같은 class 샘플은 서로 끌어당기고, 아닌 경우에는 떨어트리도록 합니다.

Triplet loss 입니다. 다른 class보다 같은 class간의 거리를 가깝게 해줍니다. 이 논문에선 semi-hard를 이용하고, 모든 triplet pair의 평균을 L_local로 합니다.

 

 

3. Experiment

여기서는 triplet loss를 이용합니다.

이 데이터셋에 대해서도 triplet loss를 이용합니다.

MASF, 즉 이 논문이 class를 좀 더 잘 구별하는 것을 확인할 수 있습니다.

반응형

1. Method

이 논문에서는 meta learning에서 episocic learning 기법이 들어갑니다. 

 

 

우선 각 domain들의 데이터가 전부 aggregate해서 모델에 들어가는 경우입니다. 이 경우에는 feature extractor, classifier가 하나 있습니다.

 

 

그 다음으로는 각 domain 마다 모델을 하나 씩 할당해주는 방법입니다. 이 경우에는 해당 도메인의 데이터에 대해서는 성능이 좋겠지만, 다른 도메인의 데이터가 input으로 들어오면 성능이 나빠질 것입니다.

그 다음으로는 각 도메인의 feature extractor에 다른 domain의 classifier와 결합합니다. 이는 classifier가 학습하는 data point를 인지한다고 합니다.

 

다음 방법은 앞과 유사합니다. 앞은 feature extractor에 다른 도메인의 classifier를 섞는 방식이였다면, 이는 하나의 classifier와 다른 도메인의 feature extractor를 결합하는 방식입니다.

 

 

이는 feature extractor과 최근 도메인의 데이터로 학습하지 않은 경우에 대해 학습을 할 때입니다. 여기서는 random weight로 초기화된 clssifier를 이용합니다.

이 앞의 방법들을 이용하여 학습을 하게 됩니다.

2. Experiment

성능은 이와 같습니다.

 

반응형

1. Abstract

 이 논문은 intrinsic self-supervision과 extrinsic supervision을 결합한 형태입니다. 이 말이 무슨 의미냐면, instrinsic self-supervision은 해당 도메인의 classification하는 능력을 길러주고, extrinsic sueprvsion은 다른 도메인과의 거리를 줄여주는 역할을 하게 됩니다. 자세한 건 뒤에서 살펴보겠습니다.

 

 

 

2. 구조

 

이는 모델구조 입니다. 우선 Triplet loss에 대해서 살펴보겠습니다.

 

 

Triplet loss

 

Triplet loss에 관한 그림입니다. Anchor는 임의이 feature이고, Positive는 feature가 anchor의 label과 같은 경우입니다. negative는 label이 틀린 경우입니다.

손실함수는 이렇습니다. 식을 보시면 아시다시피, anchor와 positvie의 거리는 가깝게, anchor와 negative의 거리는 멀게 학습을 하게 됩니다. 그림의 (a)는 원래 tirplet loss에서 negative sample을 고르는 방법입니다. (a) 같은 경우에는 이미 margin 보다 멀리 있는 negative가 선택되기 때문에 학습에 효율적이지 않다고 합니다. 그래서 논문 저자는 (c)와 같은 방법을 도입합니다. 

 

최종 Triplet loss는 이렇습니다.  이는 feature encoder가 더 discriminative한 정보를 학습을 할 수 있게 됩니다. 이 부분이 extrinsic supervision입니다. 이 triplet pari들을 뽑기 위해서 메모리를 이용합니다. 메모리에는 feature들을 저장하고, 오래된 feature들은 버리게 됩니다.

 

 

하지만 encoder는 학습을 하면서 계속 feature들의 생김새가 달라집니다. 그렇기 때문에 Momentum updated Encoder(MuEncoder)를 도입합니다. 이는 moving average를 통해 업데이트 합니다.

 

 

 Instrinsic self-supervision에 대해서 알아보겠습니다. jigsaw puzzle의 기법을 들고 왔습니다. 이미지를 9개의 patch로 쪼개고, 이를 적절히 섞어서 순서를 맞추도록 합니다. 논문에서는 30개 조합을 사용했습니다.

 

최종 손실함수는 다음과 같습니다

 

 

 

반응형

https://arxiv.org/abs/2104.02008

 

1. Domain Generalization(DG) 이란?

우선 domain 이라는 것은 image 의 distribution이 다 다른 것을 뜻합니다. 학습할 때 쓴 domain과 다른 dataset에서는 모델이 잘 작동하지 않는 경우가 발생합니다. 

 

예를 들면, 배경이 낮인 사진으로 모델을 학습했고 현재 환경이 밤이라면 이 모델은 잘 작동하지 않습니다.

 

그래서 제안된 방법이 DG입니다. DG는 여러 domain의 데이터로 학습을 시키면, unseen domain에서도 잘 작동하도록 하는 것입니다. 

 

2.  구조

하늘 색이랑, 파란 색은 서로 다른 data입니다. (a)는 domain label이 있다고 가정한 상황입니다. domain label이 있다면, 이를 inverse해주고, 각 domain 끼리 shuffle 해줍니다. 

 

(b)는 domain label이 없을 때 입니다. random하게 shuffle을 해줍니다.

 

그리고 data의 channel의 평균과 표준편차(instance normalization 을 위해)를 구해줍니다. 람다는 batch size만큼 구합니다. 이 람다 값은 beta(a,a)에서 무작위로 뽑고 논문에서는 a를 0.1로 했다고 합니다.

 

이 데이터를 이용하여 학습을 하게 됩니다. 기존 모델에 추가하기도 매우 쉽습니다.

 

저는 간단한 것 같으면서도 신박하다고 생각했습니다.

 

3. Experiments

 

 

 

이 mixstyle을 어느 layer에다 적용시킬 지 저자들은 실험을 해봤다고 합니다. 일반적으로 resnet의 맨 마지막 layer에서는 classfication에 대한 정보를 담고 있다고 합니다. 그래서 맨 마지막 layer(res4)에 mixstyle을 할 경우에는 성능이 떨어지는 것을 확인할 수 있습니다.

반응형

+ Recent posts