Awesome-Agent-Skills-for-Empirical-Research domain-adaptation-papers-guide
Comprehensive collection of domain adaptation research papers
install
source · Clone the upstream repo
git clone https://github.com/brycewang-stanford/Awesome-Agent-Skills-for-Empirical-Research
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/brycewang-stanford/Awesome-Agent-Skills-for-Empirical-Research "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/43-wentorai-research-plugins/skills/domains/ai-ml/domain-adaptation-papers-guide" ~/.claude/skills/brycewang-stanford-awesome-agent-skills-for-empirical-research-domain-adaptation && rm -rf "$T"
manifest:
skills/43-wentorai-research-plugins/skills/domains/ai-ml/domain-adaptation-papers-guide/SKILL.mdsource content
Domain Adaptation Papers Guide
Overview
Domain adaptation addresses the problem of training models on one data distribution (source domain) and deploying them on a different distribution (target domain). This curated collection covers the full spectrum — from unsupervised domain adaptation (UDA) and domain generalization to partial, open-set, and source-free adaptation. Organized by methodology and application area with regularly updated paper lists.
Taxonomy of Methods
Domain Adaptation ├── Unsupervised DA (UDA) │ ├── Discrepancy-based (MMD, CORAL, CDD) │ ├── Adversarial-based (DANN, ADDA, CDAN) │ ├── Reconstruction-based (DRCN, DSN) │ └── Self-training (SHOT, CBST) ├── Semi-supervised DA ├── Source-free DA (no source data at adaptation time) ├── Partial DA (target has subset of source classes) ├── Open-set DA (target has unknown classes) ├── Universal DA (no prior on label set relationship) ├── Multi-source DA ├── Domain Generalization (no target data at all) └── Test-time Adaptation (adapt at inference)
Key Methods by Era
Classical Methods
| Method | Year | Approach | Key Idea |
|---|---|---|---|
| TCA | 2011 | Kernel | Transfer Component Analysis |
| GFK | 2012 | Subspace | Geodesic Flow Kernel |
| SA | 2013 | Subspace | Subspace Alignment |
| DAN | 2015 | MMD | Deep Adaptation Networks |
| DANN | 2016 | Adversarial | Domain-Adversarial Neural Networks |
| ADDA | 2017 | Adversarial | Adversarial Discriminative DA |
| CORAL | 2016 | Statistics | Correlation Alignment |
Modern Methods
| Method | Year | Approach | Key Idea |
|---|---|---|---|
| CDAN | 2018 | Adversarial | Conditional adversarial + entropy |
| MCD | 2018 | Discrepancy | Maximum Classifier Discrepancy |
| SHOT | 2020 | Source-free | Self-supervised pseudo-labeling |
| TENT | 2021 | Test-time | Entropy minimization at test time |
| DAFormer | 2022 | Transformer | DA for semantic segmentation |
| PADCLIP | 2023 | Vision-language | CLIP-based domain adaptation |
Paper Tracking
import arxiv def find_da_papers(subtopic="unsupervised", days=30): """Find recent domain adaptation papers on arXiv.""" queries = { "unsupervised": "abs:unsupervised domain adaptation", "source_free": "abs:source-free domain adaptation", "generalization": "abs:domain generalization", "test_time": "abs:test-time adaptation OR test-time training", } search = arxiv.Search( query=queries.get(subtopic, queries["unsupervised"]), max_results=30, sort_by=arxiv.SortCriterion.SubmittedDate, ) for result in search.results(): print(f"[{result.published.strftime('%Y-%m-%d')}] " f"{result.title}") print(f" {result.entry_id}") find_da_papers("source_free")
Benchmark Datasets
# Standard DA benchmarks benchmarks = { "Office-31": { "domains": ["Amazon", "DSLR", "Webcam"], "classes": 31, "task": "Object recognition", }, "Office-Home": { "domains": ["Art", "Clipart", "Product", "Real World"], "classes": 65, "task": "Object recognition", }, "VisDA-2017": { "domains": ["Synthetic", "Real"], "classes": 12, "task": "Large-scale sim-to-real", }, "DomainNet": { "domains": ["Clipart", "Infograph", "Painting", "Quickdraw", "Real", "Sketch"], "classes": 345, "task": "Large-scale multi-domain", }, "PACS": { "domains": ["Photo", "Art", "Cartoon", "Sketch"], "classes": 7, "task": "Domain generalization", }, } for name, info in benchmarks.items(): print(f"\n{name}: {info['classes']} classes, " f"{len(info['domains'])} domains") print(f" Domains: {', '.join(info['domains'])}")
Application Areas
| Application | Source → Target Example |
|---|---|
| Medical imaging | Hospital A → Hospital B scanners |
| Autonomous driving | Simulation → Real world |
| Remote sensing | Region A → Region B satellite |
| NLP | News text → Social media |
| Speech | Studio → Noisy environments |
| Robotics | Sim → Real manipulation |
Reading Roadmap
### Beginner Path 1. "A Survey on Transfer Learning" (Pan & Yang, 2010) 2. "Domain Adaptation for Object Recognition" (Saenko et al., 2010) 3. "Deep Domain Confusion" (Tzeng et al., 2014) 4. DANN paper (Ganin et al., 2016) ### Intermediate Path 5. CDAN (Long et al., 2018) 6. MCD (Saito et al., 2018) 7. "Moment Matching for Multi-Source DA" (Peng et al., 2019) ### Advanced Path 8. SHOT (Liang et al., 2020) — source-free 9. TENT (Wang et al., 2021) — test-time 10. "Benchmarking DA on Language" (Ramponi & Plank, 2020)
Use Cases
- Literature survey: Map the DA research landscape
- Method selection: Choose appropriate DA technique for your task
- Benchmark comparison: Compare methods on standard datasets
- Research gaps: Identify under-explored DA settings
- Course material: Teach transfer learning and DA