Method

Unsupervised domain adaptation

The conventional domain transfer technology is unsupervised domain adaptation (UDA). In this project, we employ DANN[1] as the baseline UDA method following its default configurations. As shown in the figure, a discriminator is utilized for domain classification and we apply Gradient Reverse Layer (GRL) for adversarial learning. Combined with traditional cross-entropy loss, the model can optimize image classification and domain alignment simultaneously.

Active learning

Since purely unsupervised learning cannot achieve satisfying performance, we want to introduce active learning as a complement. Within each active learning circle, we aim at selecting the most helpful samples in the unlabeled pool based on the current trained model with a limited budget. And the oracle will label the samples and add them to the training. In this way, the performance of the model boosts gradually until saturation.

Active domain adaptation

Our final training pipeline is composed of both unsupervised domain adaptation and active learning stages, as shown below. During unsupervised domain adaptation, we train a model using DANN on all available data samples (labeled source, unlabeled target, and labeled target). After training, we use the trained model to actively select samples from the unlabeled target pool for labeling. This will continue stage by stage until the labeling budget is exhausted.

Active domain adaptation pipeline

Multi-task Geometric contribution

We model domain adaptation as a multi-task learning process, which consists of image classification and domain alignment. As a result, the contribution of labeling a sample is the sum of its contribution towards both classification and domain alignment directions.

The directions of classification and domain alignment are approximated as those of gradients w.r.t. the encoded feature g_cls and g_da, while the magnitude is the projected length of the classification gradient on corresponding directions c_cls and c_da.

The final proposed score is the sum of c_cls and c_da.

[1] Ganin, Yaroslav, and Victor Lempitsky. “Unsupervised domain adaptation by backpropagation.” International conference on machine learning. PMLR, 2015.