DA 기본개념: 아래와 같이 source와 target 분포간의 Domain Shift가 발생하고, 그 정도가 심해지면 test성능은 떨어진다.
🤔 synthetic data란?
target domain과 유사한 source dataset을 synthetic data라 한다.
🤔 DA의 목적
인 target과 source dataset에 대해
를 만족하는 transformation T(.)함수를 찾는 것.
∙ Concept Shift [Ling et al; ICCV2013]
∙ Prior Shift [Kouw & Loog ; 2018]
등이 있었으나 본 내용은 Covariate Shift문제에 대해 다룬다.
📌Traditional DA
Metric Learning
Metric Learning은 "거리기반"DA를 진행한다. Src, Tgt의 label이 같다면 threshold보다 거리가 가깝도록 학습한다.
단점) Source, Target의 label이 모두 필요.
Subspace Representations
Src와 Tgt이 다른 subspace에 놓여있을 때, 이 둘의 subspace에 대해 subspace를 sampling하거나 Integration하는 등 alignment(조정)하여 해결.
Matching Distributions
Domain Shift로 인한 Distribution차이를 직접적으로 해결
📌 MMD방식 (Maximum Mean Discrepancy) 1. Src와 Tgt를 Hilbert Space(Completeness를 갖는 내적공간)로 mapping 2. Distribution의 차이를 계산 (Intra class간의 차이는 적어야하고) (Inter class간의 차이는 커야함)
cf) MMD를 변형해 source sampling에 weight를 학습하거나 resampling하는 방법도 존재 📌 TCA방식 (Transfer Component Analysis) TCA방식은 Feature space → Hilbert space → Latent space로 옮겨가며 mapping하는 W를 학습하는 방법이다.
일종의 GAN에서 사용되던 Discriminator를 가져다 사용한 느낌! 다만, 이전 방법들은 Feature space Distribution을 match하기위해 Reweighting, transformation을 찾는 방법을 사용했으나 DANN은 ① Feature Representation자체를 바꾸는 방식 + ② DA와 Deep Feature Learning을 하나의 학습과정안에서 해결한다. 추가적으로 ③ 분포간 차이측정 시, Deep Discriminatively-Trained Classifier를 사용(GAN컨셉) 또한 사용한다. Feature Extraction을 위한Embedding model에 대해 Src Domain Classification Loss를 줄임 Domain Classifier는 Src인지 Tgt인지 구분 이때, Domain구분못하게 학습해야해서 Gradient를 바꿔서 backward한다.
Part 3.Beyond Classical DA
그림에 굉장히 많은 것들이 표시되어 있는데, 이중에서 대표적인 방식 4가지만 여기서 짚고 넘어가자.
i) Transfer Learning
가장 기본적인 방식, Pretrained model과 Tgt data만 필요. Src data로 pretrain → Tgt data로 Fine-tuning
ii) Semi-supervised DA
labeled Src data와 labeled Tgt data 같이 활용. Domain과 상관없이 Class가 동일하면(Intra-class) Loss가 작아지게 학습하고 Class가 다르면(Inter-class) Loss는 어느 정도까지 (보통 margin을 설정해) 커지게 학습
iii) Transductive Unsupervised DA
🤔 Truansductive...? labeled Src data와 Unlabeld Tgt data를 사용해 학습하는 것
iv) Self-Supervised Learning
Label없이 학습가능한 self-learning task생성 후, 이를 이용해 Unlabeled Learning을 진행. 위의 Jigsaw퍼즐처럼 쪼개어 섞은 후, 원래의 순서를 학습하도록 하는 것이다. 이는 Src data와 Tgt data의 유무에 다라 다른 기법들과 같이 사용가능하다.
Ex) Tgt > Src : Transfer Learning과 같이 사용 Labeled Src 가 존재 : Unsupervised DA방식 사용
Part 4. Perspectives. &. Outlook
📌 Multi-Domain Learning
🤔 Mutli-Domain Learning? 그게 뭐죠 여러 도메인에서 발생하는 데이터를 사용해 모델을 학습하거나 적용시켜 새로운 환경에서 강건하게 동작하게 하는 기술. Domain: 데이터가 유래한 곳이나 특정 분포를 의미,
Multi-domain learning은 주로 다음과 같은 상황에서 활용된다: ∙ Domain Adaptation: 모델이 학습한 도메인과 테스트 도메인이 다를 때 발생하는 문제를 해결하기 위해 사용. ∙Domain Generalization: 여러 도메인에서의 데이터를 사용하여 일반적인 특성을 학습함으로써 새로운 도메인에 대한 성능을 향상시키는 것을 목표. 즉, 모델이 여러 도메인에서 얻은 지식을 더 일반적인 형태로 확장하는 것을 의미.
이점) ∙ 메모리 절약 및 multi-task효과, ∙ Incremental Learning (기존에 학습된 지식을 유지하면서 새로운 데이터 또는 클래스를 추가해 모델을 업데이트 하는 것.) 이에 대해 어떻게 sharing/seperation을 진행할 것인지에 대한 다양한 MDL방법론이 존재한다. ∙ Independent Networks ∙ Maximally Shared ∙ Residual Adapters
📌Meta-Learning for DA & DG
Meta-Learning Brief
🤔 DA vs Meta-Learning
[DA]: ∙목표) 학습된 모델을 다른 도메인으로 전이(transfer), 성능향상을 위해 모델을 조정.
∙방법) 주로 한 도메인에서 얻은 데이터를 사용하여 모델을 학습, 그 모델을 다른 도메인의 데이터에 적용합니다. 이를 위해 도메인 간의 차이를 최소화하거나 조정하는 방법을 적용합니다. [Meta-Learning]: ∙ 목표)작은 데이터에서 빠르게 학습하고 일반화할 수 있는 모델을 만드는 것이 목표로 학습하는 방식 자체의 개선으로 새 도메인에 빨리 적응,학습에 초점. 즉, "좋은 Inductive Bias"를 찾는 것이 중요!
∙방법) 작은 데이터셋에서 빠르게 학습하고 새로운 작업에 대해 일반화할 수 있는 학습 방법이나 알고리즘을 개발합니다. [Summary] DA: 하나의 도메인에서 학습된 모델을 다른 도메인으로 전이하는 방법에 중점 [Meta-Learning]: 모델 자체의 학습 방식을 개선하여 새로운 작업이나 도메인에 빠르게 적응하고 일반화하는 방법에 중점
Meta-Learning for DA
많은 인기있는 DA알고리즘들은 좋은 시작점에 위치했는지에 의존적이다. → 이에 대해 Meta-Learn이 좋은 시작점이 될 수 있을까?
Meta-Learning for DG
DG Problem설정에 대해 생각해보자. 🤔 어떻게 Meta객체를 정의할 것인가? Multi-Src에서, validation domain성능을 최적화해야한다.
어떤 하이퍼파라미터를 (meta)-learning에 사용해야할까?
∙ MetaReg (NeurIPS-18): MetaReg는 도메인 일반화를 위해 메타-정규화를 사용, 일반화 성능향상을 위해 메타-정규화를 가정합니다.
∙ Feature-Critic (ICML-19): Feature-Critic는 이질적인 도메인 일반화를 위한 기법 중 하나로 특징 품질을 평가하는 '비평가(critic)' 네트워크를 추가적인 손실 함수로 사용하여 도메인 간의 차이를 줄이고 일반화 성능을 향상시키려고 합니다. 🤔어떻게 Meta-최적화를 할 것인가? Meta-Learning에서 최적화는 일반적으로 비용이 많이 들고 불안정한 경우가 많은데, 이를 극복하기 위해 몇 가지 방법들이 제안된다.
∙ Bilevel Optimization: meta-train 단계에서, 모델을 최적화하는 동안 다른 최적화 문제를 해결하는 방법으로 메타-트레이닝에서 더 나은 성능을 갖는 모델을 찾기 위해 메타-러닝을 수행한다.
실제 적용: 실제로는 전통적인 모델 업데이트와 함께 모델을 업데이트하고, 메타-러닝을 사용하여 도메인 간의 성능을 개선하는 방법을 번갈아가며 적용한다. 이러한 접근 방식들은 메타-러닝에서의 최적화를 개선하고, 비용과 안정성 문제를 극복하기 위한 것이다. 🤔 Conclusion Meta-DA 및 Meta-DG가 기존의 DA & DG 연구를 보완할 수 있다는 점을 강조한다.
📌Emerging Problem Areas & Applications
DG: Heterogeneous Case
∙ Homogeneous DG (동질적 도메인 일반화): 공유된(Src와 Tgt에서 동일한) Label space가 존재. 즉 label의 종류가 동일하거나 공유된다.
∙Heterogeneous DG (이질적 도메인 일반화): Src와 Tgt 간 Label space가 안겹치거나 분리되어 있다. 이런 경우, 주로 특징 일반화(Feature Generalization)에 초점을 맞춥니다. 즉, Label space가 다른데도 특징(feature)을 일반화하려는 것이 중요합니다. Ex)ImageNet pretrained CNN을 feature extractor로 다른 도메인의 이미지에 대한 특징을 추출하고 이를 통해 일반화를 시도
Cross-Domain FSL
∙Traditional FSL(Few-Shot Learning): meta-train에서 획득한 지식을 meta-test로 전이(transfer), 일반화하는 방식.
∙CD-FSL (Cross-Domain Few-Shot Learning): Domain-shift를 고려한 Few-Shot Learning. Meta-Dataset과 같은 접근 방식은 어떻게 도메인 간의 변화를 전이하고 학습하는지에 초점
∙"Learned Feature-Wise Transforms" (ICLR-20) 특징별로 변형된(transformation) 학습. stochastic layers는 DG를 향상시킬 수 있다는 것을 보여준다. 또한, Meta-Learning을 적용해 Noise Distribution 학습을 시도했다.
Sim2Real Meta-Learning
∙ 목표: Sim2Real for Object Detection & Segmentation:
∙ Meta Representation: Simulator/Dataset. Idea: 시뮬레이터를 학습, 해당 시뮬레이터가 생성하는 데이터를 실제 환경에서 사용할 수 있는 형태로 만들어 모델을 학습시키면, 실제 환경에서 높은 정확도를 얻을 수 있을 것.
cf) RL/Evoluation Strategy 필요(시뮬레이터는 미분 불가능하기 때문.) Simulator는 미분 불가능한(non-differentiable) 특성을 갖기에, 이를 다루기 위해 RL 또는 ES와 같은 기법들이 필요하며, 이런 접근 방식은 시뮬레이션 환경에서 생성된 데이터를 실제 환경에 적용할 수 있는 방식으로 학습하여, 객체 감지와 분할에서 시뮬레이션에서 실제로 사용될 때의 성능을 향상시킨다.