CPCANet: Deep Unfolding Common Principal Component Analysis for Domain Generalization
For domain generalization, CPCANet provides a novel, interpretable, and architecture-agnostic method that outperforms prior approaches without dataset-specific tuning.
CPCANet unrolls the Flury-Gautschi algorithm into differentiable layers to learn a domain-invariant subspace via Common Principal Component Analysis, achieving state-of-the-art zero-shot transfer performance on four standard domain generalization benchmarks.
Domain Generalization (DG) aims to learn representations that remain robust under out-of-distribution (OOD) shifts and generalize effectively to unseen target domains. While recent invariant learning strategies and architectural advances have achieved strong performance, explicitly discovering a structured domain-invariant subspace through second-order statistics remains underexplored. In this work, we propose CPCANet, a novel framework grounded in Common Principal Component Analysis (CPCA), which unrolls the iterative Flury-Gautschi (FG) algorithm into fully differentiable neural layers. This approach integrates the statistical properties of CPCA into an end-to-end trainable framework, enforcing the discovery of a shared subspace across diverse domains while preserving interpretability. Experiments on four standard DG benchmarks demonstrate that CPCANet achieves state-of-the-art (SOTA) performance in zero-shot transfer. Moreover, CPCANet is architecture-agnostic and requires no dataset-specific tuning, providing a simple and efficient approach to learning robust representations under distribution shift. Code is available at https://github.com/wish44165/CPCANet.