이 논문은 Federated learning과 domain generalization을 합친 느낌입니다.

 

 Federated learning(FL)은 privacy를 지켜줄 수 있는 방법입니다.

서버에서 최근 모델을 불러와서, local client들이 자신들의 데이터로 모델을 학습합니다.

그 후에 서버에서는 client들의 파라미터 값을 합쳐서 모델을 업데이트합니다.

 

1. Introduction

 기존 FL은 internal client에서 성능을 향상하는 것을 목적으로 합니다. 문제는 이렇게 하면 unseen domain에서 잘 작동을 하지 않습니다. 특히 medical에서는 scanner나 protocol이 다양하기 때문에 data distribution이 꽤 다를 수 있어서 문제가 됩니다.

 이 논문은 각 클라이언트들이 privacy를 지키면서 다른 클라이언트의 data distribution에 접근할 수 있도록 합니다. 그러기 위해서 이미지를 frequency space로 바꾼 후에, amplitude와 phase를 이용합니다.

 

2. Method

2.1 Federated Domain Generalization

 K 개의 client들은 서버에서 global model의 파라미터를 받습니다. 그리고 각자의 local data를 이용하여 E epoch동안 모델의 파라미터를 업데이트합니다. 서버는 모든 클라이언트로부터 파라미터를 받고, 이들을 합쳐서 global model을 업데이트합니다.

합칠 때는 데이터의 개수가 더 많은 것에 가중치를 많이 주어서 업데이트합니다. N은 데이터의 개수입니다.

 

하지만 이 알고리즘에는 문제가 있습니다.

 

1. 클라이언트들은 각각 자신만의 데이터들로 학습을 했기 때문에, generalizable parameter를 배울 수가 없습니다.

 

2. 다른 clinical site로부터 얻은 medical image는 큰 이질성이 있습니다. 그래서 invariance한 것을 얻기 힘듭니다.

 

3. medical anatomises(해부학)의 구조는 꽤 모호한 boundary가 나타납니다. 이러한 문제에서는 domain invariance 한 것을 찾기 힘들다고 합니다.

 

2.2 Continuous Frequency Space Interpolation

흩어진 데이터의 한계점을 해결하기 위해서, 클라이언트끼리 data distribution을 서로 주고 받습니다. 하지만 privacy 때문에 raw data를 직접 주고받는 것은 금지되어 있기 때문에, frequency space의 정보를 이용하자고 저자들은 제안합니다.

 frequency space로 이동하기 위해서 푸리에 변환을 이용합니다.

frequency space의 signal은 ampiltude(A) 와 phase(P)로 나눌 수 있습니다. amplitude는 low-level distribution(style)을, phase는 high-level semantics(object)를 가지고 있습니다. 서로 distribution information을 교환하기 위해서 A를 저장하는 bank를 만듭니다.

 

 그 다음으로는 다른 도메인의 distiribution information을 local client로 주기 위해서, bank에서 랜덤으로 하나 선택해서, 그 amplitude의 low frequency로 바꿔줍니다. phase는 semantic 정보를 유지시켜주기 때문에, phase는 바꾸면 안 됩니다. 

 

 

A_k와 A_n을 서로 섞어 줍니다. M은 low frequency에서는 1이고, 아닌 곳에서는 0입니다. local client의 data는 k입니다. 다른 client의 데이터는 n입니다. 람다는 [0.0, 1.0]에서 랜덤으로 뽑습니다.

 

이미지는 섞은 amplitude와 local client의 phase를 통해서 다시 이미지로 바꿉니다.

 

 

2.3 Boundary-oriented Episodic Learning

 

 Episodic learning at local client

여기서 episodic learning을 이용합니다. raw input인 x를 meta-train, frequency odmain을 ㅗ부터 만들어진 t는 meta-test로 합니다.

 

 우선 meta-trian으로 L seg(dice loss)를 최소화하는 방향으로 학습합니다.

그리고 meta-test로 L meta를 최소화하는 방향으로 학습하게 됩니다.

 

 

 

 Boundary-oriented meta optimization

위에서 언급했다시피, anatomy의 애매한 boundary 때문에 다른 domain의 데이터에서는 잘 안됩니다. 이를 해결하기 위해서, boundary-related feature와 background-related feature의 cluster가 겹치지 않으면서 domain에 상관없이 잘 되도록 regularize를 해줍니다.

이 점이 왜 중요하나면 boundary의 근처의 feature를 잘 뽑아내지 못하면, distribution-independent 하고 class-specific하지 않게 됩니다.

 

우선 boundary-related하고 background-related 한 feature를 뽑아냅니다.

 

이는 ndimage.binary_erosion, ndimage.binary_dilation을 이용하여 뽑아냅니다.

 

 

 

z는 feature이고, i_bd는 boundary, i_bg는 background입니다. 이 식을 이용하여 각 feature의 평균을 구해줍니다.

 

 

이를 infoNCE를 통해 같은 class의 cluster는 서로 밀접하도록 하고 다른 class는 멀리 떨어트립니다. p는 positive, 즉 같은 class를 의미하고, m은 무작위 anchor입니다. F는 쌍이 negative pair라면 1을, 아니면 0을 반환하도록 합니다.

 

동그라미 두 개는 cosine similarity입니다. k가 2인 이유는 (boundary, background) * k(client 수) 이기 때문입니다.

타우는 temperature로 hyper parameter입니다. 

 

 

앞에서 meta-train 데이터셋으로 구한 파라미터를 이용하여 meta loss를 계산합니다. t는 meta-test 데이터입니다.

 

 

 

최종으로 이렇게 학습을 하게 됩니다.

 

 

 

 

3. Experiment

 

 

데이터 셋은 2가지 이용합니다. 각 데이터 셋은 다양한 domain의 데이터로 구성되어 있습니다.

 

 

FedAvg는 각 클라이언트를 학습한 후에, 단순하게 평균을 내준 것 입니다. 

 

위의 4가지는 DG방법입니다. jigen은 jigsaw를 이용한 방법이고, Epi-FCR은 episodic learning을 이용한 방법입니다. RSC는 기울기가 높은 것을 점차 마스킹하면서 다른 부분을 찾게 하는 방법입니다. BigAug는 제가 잘 모르겠네요...

 

 

 

 

 

CFSI는 fouriere를 이용한 방법, BEL은 episodic learning을 이용한  방법입니다. 모두 사용했을 때가 성능이 제일 좋습니다. 둘 다 사용하지 않은 것보다 하나를 이용했을 경우가 1~2퍼센트 정도 성능이 오릅니다.

 

이는 amplitude를 어떻게 섞느냐에 대한 해석입니다. fix value로 하게 되면, 다양한 domain이 나오지 않지만, uniform distribution인 [0,1]에서 무작위 하게 뽑으면, 다양한 domain이 나오게 됩니다.

 

이는 boundary와 backgroud간의 distance를 계산한 것입니다. source domain에서 이 논문의 방법이 평균을 한 것보다 확실히 distance가 큽니다. unseen domain에서도 더 큰 것을 확인할 수 있습니다.

 

 

이는 client의 개수에 따른 성능입니다. 당연히 client가 많아지면, 데이터가 많아지기 때문에 성능은 오릅니다. 하지만 이 논문의 방법이 좀 더 성능이 좋은 것을 확인할 수 있습니다.

반응형

1. Introduction

이 논문은 푸리에 변환을 이용한 data augmentation에 관한 논문입니다. 푸리에 변환은 이미지를 주파수 도메인으로 나타낼 수 있습니다. 이미지에서 주파수는 픽셀 값이 얼마나 빨리 변하는지를 의미합니다. 

푸리에 변환에서 phase는 high-level statistic을 가지고 있고, amplitude 는 low-level statistic을 가지고 있습니다.

이 논문에서는 phase는 유지하고 amplitude를 바꿈으로써, semantic한 정보는 유지하면서 다른 domain의 데이터를 생성하도록 합니다. 또한 Co-teacher regularization을 통해 두 데이터 간의 class relationship을 유지시켜 줍니다.

 

 

2. Method

2.1 Fourier-based data augmentation

 

이 식은 이미지의 푸리에 변환 식입니다.

 

A는 amplitude, P는 phase입니다. 이미지 각 채널의 phase와 amplitude를 구합니다.

기존 방법들은 low frequency 부분의 일정 부분을 섞어줬습니다. 그게 위 그림의 (a) AS 입니다. 이 방법의 문제점은 middle, high frequency에 대해서 overfit이 일어난다고 합니다.

그래서 이 논문은 (b) AM 방법처럼 전체를 섞어서 data augmentation을 합니다.

 

다른 domain의 이미지의 amplitude와 섞어줍니다.

섞은 amplitude와 기존 이미지의 phase를 이용하여 푸리에 변환을 구하고, 이를 다시 inverse해서 데이터를 복원합니다.

 

2.2 Co-teacher Regularization

위 방법에도 문제점이 존재합니다. 말을 augment했다면, augment한 데이터가 기린에 더 가깝다고 모델은 판단할 수 있씁니다. 이러한 문제를 막기 위해서 dual consistency loss로 explicit constraint를 추가해줍니다.

 

EMA 방법을 통해 teacher model을 업데이트 해줍니다. teacher모델은 따로 학습하지 않습니다.

 

또한, 이 식을 이용하여 augment한 데이터와 original 데이터의 예측 값을 서로 비슷하게 해줍니다.

전 사실 여기서 왜 teacher모델을 도입했는 지 잘 이해가 안갔습니다.

 

최종 loss는 이와 같습니다.

 

 

 

3. Experiment

teacher까지 이용했을 시에, 성능이 가장 높은 것을 확인할 수 있습니다.

 

phase를 이용하여 학습한 것이 전체적으로 성능은 더 좋습니다. 이는 phase가 smentic한 정보를 포함하고 있고, amplitude는 semantic한 정보가 적다는 것을 확인할 수 있습니다.

신기하게도 phase에서 photo에서는 성능이 좀 낮은 것을 확인할 수 있씁니다. photo domain은 amplitude한 정보도 필요하다는 것을 의미합니다.

 

 

CV에서 basic한 것을 이용하여 하는 논문이라 재미있게 봤습니다. AI 모델 뿐만이 아니라, CV에 대한 공부도 중요한 것 같습니다.

 

반응형

이 논문은 kakao brain의 논문입니다. 수식이 좀 있습니다.

 

1. Introduction

 source domain만 이용하면, domain이 급격하게 변할 때 domain invariant한 representation을 학습할 수 없습니다. oracle model의 mutual information을 이용하여 이와 같은 문제를 해결합니다. oracle model에 대해서는 뒤에서 살펴보겠습니다.

 이 논문은 domain-invariant feature를 학습하는 대신에, "oracle" representation이랑 비슷한 feature를 배우도록 합니다. oracle model(어떤 도메인에서든 잘 작동하는 모델로 전 이해했습니다.)의 representation과 target model의 representation의 mutual informaion을 최대화하는 것이 목표입니다. 

하지만 oracle model은 현실적으로 불가능합니다. 그렇기 때문에 ImageNet 같은 데이터셋으로 미리 학습된 모델을 이용하여, 근사화합니다.

 

2. Method

f* 은 oracle model의 feature extractor입니다. 두 모델의 mutual information을 최대화 하는 것이 목표입니다.

 

mutual information의 lower bound는 이와 같습니다. q는 variational distribution입니다. 

 

이 과정을 통해 이와 같은 식이 나오게 됩니다.

 

KL divergence는 항상 양수이기 때문에, 이와 같은 lower bound가 나오게 됩니다.

 

하지만 앞에서 f*을 실제로 구하는 것은 불가능하다고 했습니다.

 

그래서 근사화하기 위해서

 

이와 같은 식을 이용합니다. f0는 pretrained model 입니다.  C는 constant입니다. 이 식의 유도과정은 논문의 appendix에 있습니다. 

d2의 값이 작다는 것은 true lower bound와 근사화한 것이 비슷하다는 것을 의미합니다. 

 

요약하자면,

E[logq(zf0|zf)] 부분을 최대화시키면, lower bound가 최대화됩니다.

 

아까 제일 위에 있던 식에 라그랑주 승수법을 적용하면, 이와 같은 objective function이 나옵니다.

 

라그랑주 승수법은

https://datascienceschool.net/02%20mathematics/05.02%20%EC%A0%9C%ED%95%9C%EC%A1%B0%EA%B1%B4%EC%9D%B4%20%EC%9E%88%EB%8A%94%20%EC%B5%9C%EC%A0%81%ED%99%94%20%EB%AC%B8%EC%A0%9C.html

 

5.2 제한조건이 있는 최적화 문제 — 데이터 사이언스 스쿨

.ipynb .pdf to have style consistency -->

datascienceschool.net

이 사이트를 보고 공부하면 좋습니다.

 

이 모델의 variational distribution은 가우시안 분포입니다. mean은 Zf의 평균, covariance는 Zf의 sum입니다.

최종 loss function입니다. 이 식이 왜 나왔는지는 이해를 못했습니다...

 

 

 

 

 

이 표는 oracle model와의 mutual information을 의미합니다. ERM- 는 random으로부터 fine-tuning한 것이고, ERM+는 imagenet과 instagram데이터로 학습한 모델(pre-trained)를 fine-tuning한 것입니다. MIRO가 제일 mutual information이 높은 것을 확인할 수 있습니다.

큰 모델이 좀 더 oracle model과 가깝다고 해석할 수 있습니다. b에서 fine-tuning한 것이 pre-trained 된 것보다 작은 것을 볼 수 있습니다. 이 부분이 좀 의외였습니다.

large model의 fine-tuning에 관한 논문도 있다고 합니다.

 

3. Experiment

 

 

반응형

1. Introduction

  기존의 방법들은 pretrained model을 가져와서 fine-tuning하는 방법을 많이 이용합니다. fine-tuning의 문제점은 모델이 커질 수록, 계산이 매우 많아집니다. 그리고 source domain에 overfitting 됩니다.

이 그래프를 보면, fine tuning을 하게 되면 학습하는 parameter가 엄청나게 많은 것을 알 수 있습니다.

 

 

 일반적으로, preatrinaed model은 gerneralization ability를 어느 정도는 가지고 있고, specific한 domain의 성능은 좋습니다.

세로는 모델들이고 가로는 각 도메인과 클래스에 대한 성능입니다. 표는 도메인,클래스 간의 KL-divergence입니다.

 

이러한 문제를 해결하기 위해 논문 저자들은 finetuning을 하지 않는 방법을 소개합니다.

 

2. Method

K개의 pretrained model이 있고, 이들은 같은 데이터 셋으로 학습을 했습니다.

 

adapter는 pretrained model의 label space를 현재 task의 label space로 바꿔주는 역할을 합니다. 

 

pretrained model
adapter

즉, pretrained model이 C0개의 class에 대한 model이였다면, 이를 C개의 class에 대해 예측하도록 바꿔줍니다.

 

 

 

 앞에서 pretrained model은 각자만의 specialty를 가지고 있습니다. 어떤 model이 해당 sample에 잘 맞는지 학습해야합니다.

 

c_i의 모양은 1 x d_v이고, C_m의 모양은 K x d_v 입니다. 

 

이 두 개를 matrix 곱을 해서, score를 구합니다. 

 

W는 k x k 입니다. layer라고 생각하면 됩니다.

layer를 통과한 후에, activation function을 적용해주고, softmax를 취해줍니다.

 

weight을 결과값에 곱해줌으로써, label을 예측합니다.

 

 

이는 적합한 모델에 좀 더 가중치를 주도록 하는 loss function입니다. 쉬운 식입니다.

label space adapter 학습하는 부분입니다.

classifier 학습하는 부분입니다.

 

 

3. Experiment

model pool-A는 imagenet으로 학습한 모델 15개 이용합니다.

model pool-B는 앞의 모델 15개와 YFCC100M 데이터셋으로 학습시킨 ViT 16, 32를 추가해서 총 17개나 이용합니다.

 

전 모델을 엄청나게 많이 이용하는 점이 현실적인 문제에서는 적합하지 않다고 생각합니다.

 

실제로 learnable parameter가 적어서 학습속도는 엄청나게 빠릅니다. 하지만 inference 시간은 좀 긴 편입니다. 그 이유는 여러 개의 pretrain model을 이용하기 때문이라고 전 생각합니다. 실제 컴퓨터 사양에 좀 영향을 많이 받을 것 같습니다.

 

반응형

1. Abstract

 CNN의 inductive bias는 image style(texture)를 중점으로 할 경우가 많습니다. 이 논문은 CNN의 intrinsic style bias를 줄여서 domain 사이의 gap을 가깝게 하는 것이 목접입니다. Style-Agnostic Networks(SagNets)는 class 정보로부터 style 인코딩을 분리하여 style biased 예측을 방지하고 content(class)에 좀 더 집중하도록 한다고 합니다.

2. Introduction

 사람은 content를 기준으로 사물을 인식합니다. 강아지가 art이든, 흑백이든, photo이든 저흰 다 구별을 할 수 있습니다.

하지만 CNN은 style에 중점을 두기 때문에, 인식을 잘 못합니다. 이러한 inductive bias를 제어하여 도메인이 달라지더라도 잘 인식을 할 수 있도록 하는 것이 SagNets의 목적입니다.

 

 이 모델은 content-biased와 style-biased network로 이루어져 있습니다. content-biased는 style을 randomizing하여 content에 좀 더 집중하게 하고, style-biased는 반대로 작동합니다. 또한 feature extractor가 어느 클래스에 속하는지 모르도록 속입니다. 

3. Method

3.1 Content-Biased Learning

 content-biased한 feature를 style randomization(SR)을 이용하여 학습합니다. 

 

SR을 하기 위해서 training image x하나와 랜덤으로 x'을 하나 선택해서 두 이미지의 feature(z, z')의 style 을 섞어줍니다.

그러기 위해서 AdaIN의 방법을 이용합니다.

z의 content는 유지하면서, z'의 style로 바꿔주는 역할을 하게 됩니다. 알파는 섞는 비율 입니다.

 

Gf는 feature extractor, Gc는 content-biased network입니다. k는 클래스 개수입니다. y는 {0,1} 입니다. 그냥 cross entropy 함수입니다.

 

3.2 Adversarial Style-Biased Learning

 

feature extractor로 encoding된 style은 어느 class에 속하는 지 몰라야 합니다.

식을 보면 앞이랑 반대인 것을 알 수 있습니다. 무작위로 뽑은 image의 feature z'을 z의 style과 섞어줍니다. 그러면 style은 z인데, content는 z'이게 됩니다.

앞이랑 다르게 feature extracotr는 학습을 하지 않습니다.

여기서 class를 잘 분류하지 못하도록 feature extractor를 학습하게 됩니다. 여기서 좀 신기했던 것은 원래 gradient flip같은 것으로 학습을 해주는 경우가 많은데, 그냥 uniform dstribution을 label로 씁니다. 이렇게 하는 경우가 수렴이 좀 더 안정적으로 된다고 합니다.

4. Experiment

 

반응형

1. Abstract

 이 논문은 여러가지 normalization 기법을 이용하여 해결합니다. batch normalization(BN)은 도메인 이동이 큰 곳에서는 한계가 있습니다. 그렇기 때문에 domain specific style을 제거할 필요가 있습니다. 이를 하기 위해서 Instance normalization(IN)을 이용합니다.

 

2. Method

F는 feature extractor입니다. 

normalization 파트를 제외한 나머지 parameter들은 domain끼리 서로 공유합니다.

 

D는 classifier입니다. 하나만 이용합니다.

모든 도메인의 loss를 더해서 최종으로 학습하게 됩니다.

 

2.1 Instance Normalization for Domain Generalization

 

 

table1을 보면, BN은 cross domain 시나리오에서는 적절하지 않습니다. ImageNet으로 학습된 resnet을 PACS 데이터에 맞게끔 BN layer를 학습한 것이 아래결과입니다. 오히려 성능이 떨어지는 것을 확인할 수 있습니다.

 

이러한 문제를 해결하기 위해서 IN을 도입합니다. 이는 domain-agnostic 한 feature를 얻을 수 있다고 합니다.

IN은 sytle normalization하는 능력이 있기 때문에, style trasnfer에 주로 이용됩니다. AdaIN, MixStyle 등 다양한 곳에서 이를 활용했습니다. IN은 각 도메인의 style information을 줄여줍니다.

 하지만 IN도 문제점이 있습니다. semantic한 정보가 많이 줄어들게 됩니다. 위 그림은 3가지 class에 대한 분포를 나타냅니다. a, b같은 경우에는 같은 class 끼리 잘 뭉쳐있습니다. 하지만 c는 그렇지 않습니다. inter-class varaince가 감소하게 되어서, 서로 잘 구분을 못합니다. 

 

이 논문에서는 BN, IN 두 가지를 결합합니다.

 

2.2 Optimization for Domain-Specific Normalization

x는 각 채널에 대해서, H x W x N입니다. h는 세로, w는 가로, N은 batch입니다. 감마와 베타는 affine parameter입니다. 각 도메인마다 하나 씩 있습니다.

 

우선 BN에 이용되는 변수를 구합니다.

 

IN에 사용되는 변수도 구합니다. 식을 보면, IN의 평균은 B x C x 1 이런 형태인데, BN은 1 x C x 1 이런 모양입니다.

 

위해서 구한 것을 w만큼 서로 섞어줍니다. mixstyle의 수식이랑 조금 비슷한 모양인 것을 확인할 수 있습니다.

 

이렇게 normalization을 해준 후에, 맨 위의 식을 이용하여 affine translation을 해줍니다.

 

2.3 Inference

unseen domain에서는 나온 결과를 전부 평균을 내주고, softmax를 적용합니다.

3. Experiment

 

이 논문은 접근방법이 되게 신기해서 인상깊네요.

반응형

1. Abstract

 이 논문은 single domain generalization에 관한 논문입니다. 새로운 도메인의 데이터를 만드는 모델과 domain invariant한 부분을 학습하는 task model 두 가지로 이루어져 있습니다.

 unseen domain의 다양한 데이터를 progressive하게 만들어냅니다. domain invariant representation을 학습하기 위해서 contrastive learning을 이용합니다.

2. Method

 2.1 The Unseen Domain Generator G

 

G는 원래 이미지를 새로운 도메인의 데이터로 바꾸는 네트워크입니다. 이 논문에서 G는 Autoencoder와 spatial transform network(STN)에 관해서 설명합니다.

autoencoder는 AdaIN을 이용합니다.  n ~ N(0,1)이고, G_E는 encoder D는 decoder입니다. L_fc1은 과 2는 fully connected layer를 뜻합니다. AdaIN은 normal Instance를 이용하고, style transfer에 관한 논문입니다.

 

autoencoder대신에 STN을 이용할 수도 있다고 이야기합니다.

2.2 Progressive Domain Expansion

여기서 M은 task model, G는 generator, S^은 만들어진 데이터 입니다. Sall은 만들어진 데이터와 현재 데이터 모드 저장합니다. 

 

2.3 Domain Alignment and Classification

우선 L_ce는 cross entropy 입니다. F,C는 feature extractor, classifier head를 의미합니다. 즉, task model을 학습하는 loss입니다. z는 P(F(x))입니다. F는 feature extractor이고 P는 projection head입니다. L_NCE는 InfoNCE loss라고 해서 intra class끼리의 거리는 좁혀주고, 다른 class와의 거리는 늘려주는 역할을 합니다.

 

2.4 Unseen Domain Generation

Unseen domain을 만들 때, domain invariant 한 정보가 있어야 하고(Safety),  다양한 domin-specific 정보(Effectiveness)가 있어야 된다고 합니다. 

 

Safety

task model이 모든 unseen domain 데이터에 대해서 잘 예측을 한다면, safe하다고 이야기 합니다.

이는 cycle consistency loss라고합니다. 바뀐 이미지를 다시 원래대로 되돌리도록 합니다. cycleGAN이랑 유사한 것 같습니다.

 

Effectiveness

 

task model은 domain share representation을 학습해야하기 때문에,  L_nce를 최소화합니다. generator는 반대로 최대화해야지 효과적은 domain을 만들 수 있습니다.

이 식은 converge가 어렵다고 합니다. loss 값이 작아지면, gradient가 커진다고 합니다.

 

그렇기 때문에,

이 식을 이용합니다.

 

Generator가 다양한 샘플들을 만들기 위해서 이 식을 이용합니다. 앞에 -가 붙었기 때문에, noise에 따라 다른 domain이 생성될 것입니다.

최종 loss

반응형

1. Abstract

Domain Generalization(DG)는 여러 개의 source domain으로 학습을 합니다. 하지만 이 source domain간의 diversity에는 제한이 있기 때문에, 모델의 성능을 떨어트립니다. 이를 해결하기 위하여 새로운 도메인 데이터를 만듭니다. 새로 만들어진 도메인과 기존 도메인의 distance를 최대화하도록 하는 것이 목표입니다.

 

2. Method

2.1 Generating Novel-Domain Data

 

 Conditional generator

물결 표시가 만들어진 도메인입니다. conditional generator인 G를 이용하여 새로운 도메인의 데이터를 만듭니다.

 

 Objective functions

source domain과 augmented domain의 distance는 커야 합니다. 여기서 d는 distance입니다.

augmented domain 간의 distance도 커야 합니다. k1, k2는 서로 다른 도메인입니다.

 

2.2 Maintating Semantic Consistency

위 과정들은 diverse한 데이터는 만들지만, semantic한 정보는 없습니다.

 

Cycle-consistency loss

만들어진 이미지를 다시 원래대로 잘 되돌리도록 합니다. cycle gan의 방법을 가져온 것 같습니다.

 

Cross-entropy loss

만들어진 이미지의 레이블을 예측한 것과 source domain의 레이블이 같아야 합니다. 

 

2.3 Training

 

Generator training

Task model training

논문에서 알파는 0.5로 설정했다고 합니다. 또한 source domain의 개수와 augmented domain의 개수는 같습니다.

 

2.4 Design of Dirstribution Divergence Measure

 

기존의 논문들과는 다르게  diversity를 최대화해야 합니다. 그렇기 때문에, KL divergence는 사용할 수 없습니다. 만약에 distribution이 겹치지 않는다면, 이는 무한대가 되기 때문입니다. 그렇기 때문에 이 논문에서 cosine distance를 이용합니다.

 

3. Experiment

 

 

이 논문에서는 novel domain의 중요성을 강조합니다. a의 L2A-OT와 기존의 GAN을 이용하여 만들었을 경우의 accuracy차이가 엄청난 것을 확인할 수 있습니다.

 

또한 semantic constraint도 중요하다고 합니다. sematic이 없을 경우에는 b의 가운데 그림처럼 아무 정보도 없는 이상한 그림이 나오기 때문에, 이를 이용하여 학습하면 성능이 많이 떨어질 것입니다.

 

기존의 방법보다 만들어진 domain이 거의 겹치지 않는 것을 확인할 수 있습니다.

반응형

1. Abstract

 Domain Generalization(DG)에서 worst case는 source domain 하나만 이용 가능할 경우 입니다. 이 문제를 해결하고자 adversarial domain augementation 방법을 이용합니다. meta-learning 기법과 Wassertein Auto-Encoder(WAE)를 이용합니다.

 

2. Method

T는 target doamin, S는 source domain입니다. D는 두 분포 간의 거리입니다. 차이가 제일 큰 도메인에서도 잘 분류하도록 하는 것이 목표입니다. Ltask는 cross entropy입니다.

2.1 Adversarial Domain Augmentation

 이 논문은 source domain으로부터 여러 개 도메인을 만드는 것 입니다.

세타는 task model의 파라미터이고, 프시는 WAE의 파라미터입니다.

x+는 만들어진 도메인의 데이터 입니다. 여기서 신기한 점은 이미지 자체에 gradient를 더함으로써 새로운 이미지를 만들어냅니다. 

 

const loss는 semantic한 정보를 유지하도록 합니다. 같은 클래스라면, feature간의 거리가 좁아지도록 합니다. 즉, 동일한 class는 서로 비슷한 feature를 만들어내도록 학습을 시킵니다. 여기서 문제는 out of distribution을 만들어낼 수 없습니다. 그래서  relax loss를 추가합니다.

2.2 Relaxation of Wassertein Distance Constraint

만들어진 domain과 source domain간의 거리가 멀어지게 하는 것이 목표입니다. WAE를 여기서 이용합니다. WAE는 encoder인 Q(.)와 decoder인 G(.)로 이루어져 있습니다. 

WAE는 이 수식을 이용하여 학습합니다. 복구한 이미지와 input으로 들어온 이미지가 같아지도록 합니다. 여기서 D는 GAN이나 MMD를 의미합니다. encoder로 만들어진 feature와 priror distribution이 비슷해지도록 만듭니다.

이 수식을 이용하여 새로운 데이터를 만듭니다. 이미지와 WAE를 통과한 이미지가 서로 비슷하도록 학습을 합니다. 여기서 의문점은 이렇게 학습을 하면 새로운 도메인의 데이터를 만들어내는 것이 불가능하지 않나라는 생각이 듭니다...

 

여기서 WAE는 one class discriminator 역할을 합니다. source domain과 먼지 아닌지 판단을 합니다.

2.3 Meta-Learning Single Domain Generalization

source domain으로 학습하는 meta-train과 만들어진 도메인으로 학습하는 meta-test로 나눕니다. 

우선 source domain으로 task model을 학습합니다. 그 후에는 

만들어진 domain의 데이터와 source domain의 데이터로 다시 학습합니다. 이 부분이 meta-test입니다.

Eq4 가 새로운 데이터를 만드는 식이빈다. Eq 8은 meta train 식, q는 meta test 수식 입니다.

3. Experiment

반응형

1. Abstract

 기존의 연구들은 domain 간의 semantic invariance를 중점으로 연구를 했습니다. 하지만 intra-domain style invariance도 중요합니다. 이 논문에서는 intra-domain style invraiance가 DG의 성능과 관련이 있다는 것을 보여준다고 합니다. 'jury'를 통해 도메인 사이의 공통된 semantic feature를 배울 수 있게끔 합니다.

2. Method

2.1 Intra-domain Invariance on Style Features

memory bank라는 것을 통해서 domain style invariance를 학습한다고 합니다. 도메인마다 style bank가 있고, 학습을 할 수록 semantic, 즉 class에 상관없이 동일한 형태를 띄고 있습니다. bank를 업데이트하는 방식은 큐입니다. 

<,>는 코사인 유사도입니다.   하나는 intra domain 간의 거리이고, 하나는 inter domain간의 거리입니다. loss가 작아지려면, 앞에 마이너스 기호가 붙어있으니 분자는 크게 분모는 작게 해야합니다. 그리거 위해서는 intra domain간의 유사도는 크게 나와야하고, 분모에서 두 번째 식은 작게 나와야합니다.

 

2.2 Inter-domain Invariacne on Semantic Features

 class가 같다면, 도메인에 상관없이 feature도 비슷해야 합니다. 이를 해결하기 위한 방법을 여기서 다룹니다. 

c_d,i와 전체 semantic feature의 similarity scroe를 구합니다.

 

두 모델이 invariant semantic feature를 공유한다면, 이 둘은 서로 비슷한 값을 가집니다.

그래서 cross entropy함수를 이용합니다.

이 식은 class를 잘 분류하도록 하게 해줍니다. 

 

2.3 Decoupling Semantics from Styles

 앞의 수식들을 살펴보면, semantic feature와 style feature가 서로 연관이 없습니다. 이 두가지를 orthogonality 시킴으로써 앞의 문제점을 해결할 수 있다고 합니다. 이유는 다른 논문을 살펴봐야 알 것 같습니다.

 

H는 row가 feature로 이루어진 matrix입니다. squared Frobenius norm을 이용하여 matirx크기를 구합니다.

 

2.4 Overall

앞에서 본 loss들을 전부 다 더하여 최종 loss를 구합니다.

 

memory encoder는 이렇게 업데이트 해줍니다.

3. Experiment

성능이 우수한 것을 확인할 수 있습니다.

 

실제로 앞의 loss들을 전부 사용했을 경우의 성능이 제일 좋은 것을 알 수 있습니다.

반응형

+ Recent posts