Learning to Learn Single Domain Generalization(CVPR 2020)
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 수식 입니다.