Share your thoughts, 1 month free Claude Pro on usSee more
WorkDL logo mark

Gradient Matching for Domain Generalization

About

Machine learning systems typically assume that the distributions of training and test sets match closely. However, a critical requirement of such systems in the real world is their ability to generalize to unseen domains. Here, we propose an inter-domain gradient matching objective that targets domain generalization by maximizing the inner product between gradients from different domains. Since direct optimization of the gradient inner product can be computationally prohibitive -- requires computation of second-order derivatives -- we derive a simpler first-order algorithm named Fish that approximates its optimization. We demonstrate the efficacy of Fish on 6 datasets from the Wilds benchmark, which captures distribution shift across a diverse range of modalities. Our method produces competitive results on these datasets and surpasses all baselines on 4 of them. We perform experiments on both the Wilds benchmark, which captures distribution shift in the real world, as well as datasets in DomainBed benchmark that focuses more on synthetic-to-real transfer. Our method produces competitive results on both benchmarks, demonstrating its effectiveness across a wide range of domain generalization tasks.

Yuge Shi, Jeffrey Seely, Philip H.S. Torr, N. Siddharth, Awni Hannun, Nicolas Usunier, Gabriel Synnaeve• 2021

Related benchmarks

TaskDatasetResultRank
Domain GeneralizationVLCS
Accuracy77.8
347
Domain GeneralizationPACS
Accuracy85.5
323
Image ClassificationPACS
Overall Average Accuracy66.1
299
Domain GeneralizationOfficeHome
Accuracy68.6
294
Domain GeneralizationPACS (test)
Average Accuracy85.5
281
Domain GeneralizationDomainNet
Accuracy42.7
228
Domain GeneralizationOffice-Home (test)
Average Accuracy68.6
187
Image ClassificationOfficeHome
Average Accuracy68.6
161
Image ClassificationPACS
Accuracy85.5
130
Domain GeneralizationDomainBed
Average Accuracy63.9
127
Showing 10 of 88 rows
...

Other info

Code

Follow for update