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.md
source 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

MethodYearApproachKey Idea
TCA2011KernelTransfer Component Analysis
GFK2012SubspaceGeodesic Flow Kernel
SA2013SubspaceSubspace Alignment
DAN2015MMDDeep Adaptation Networks
DANN2016AdversarialDomain-Adversarial Neural Networks
ADDA2017AdversarialAdversarial Discriminative DA
CORAL2016StatisticsCorrelation Alignment

Modern Methods

MethodYearApproachKey Idea
CDAN2018AdversarialConditional adversarial + entropy
MCD2018DiscrepancyMaximum Classifier Discrepancy
SHOT2020Source-freeSelf-supervised pseudo-labeling
TENT2021Test-timeEntropy minimization at test time
DAFormer2022TransformerDA for semantic segmentation
PADCLIP2023Vision-languageCLIP-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

ApplicationSource → Target Example
Medical imagingHospital A → Hospital B scanners
Autonomous drivingSimulation → Real world
Remote sensingRegion A → Region B satellite
NLPNews text → Social media
SpeechStudio → Noisy environments
RoboticsSim → 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

  1. Literature survey: Map the DA research landscape
  2. Method selection: Choose appropriate DA technique for your task
  3. Benchmark comparison: Compare methods on standard datasets
  4. Research gaps: Identify under-explored DA settings
  5. Course material: Teach transfer learning and DA

References