在统一框架(pytorch), 统一输入数据,尽量统一网络结构的情况下复现了5篇深度迁移学习论文中的算法。在Small Image和office-31数据集下进行性能的对比。复现论文如下:
-
Baseline
-
Domain-Adversarial Training of Neural Networks
-
Self-ensembling for visual domain adaptation
-
Maximum Classifier Discrepancy for Unsupervised Domain Adaptation
-
Multi-Adversarial Domain Adaptation
尽量统一网络结构是指MCD_DA这篇中office-31数据集上的分类器层中用了三层全连接,其余都相同
- 数字数据集按以下方式进行预处理并输入
迁移任务 | 图像尺寸 | Batch Size | Epochs |
---|---|---|---|
USPS to MNIST | 28x28x1 | 128 | 300 |
MNIST to USPS | 28x28x1 | 128 | 300 |
SVHN to MNIST | 32x32x3 | 128 | 300 |
- Office-31数据集
数据类别 | 图像增强 | Batch Size | Epochs |
---|---|---|---|
训练集 | 先resize到256x256x3 再随机截取224x224x3 再随机的水平翻转 |
32 | 300-500 |
测试集 | 直接resize到224╳224╳3 | 32 | 300-500 |
说明:SVDA 这篇因为使用了很多trick的技巧,只是用这样简单的增强达不到论文的效果,所以按照作者给出的方式将图像resize到了160并padding 16,再对图像添加随机的噪声,并把batch_size设置为了56。训练了25000个Iteration。其余实现都按照上方数据进行输入,300-500 epoch是各个任务图片数量不一致,所以设置不同的epoch将迁移任务总Iteration数设置在7500左右。
表中数据为所有epoch中目标域测试集的最大准确率。
- 数字数据集
M->U | U->M | S->M | Avg | |
---|---|---|---|---|
Baseline | 89.0 | 87.6 | 79.2 | 85.3 |
DANN | 91.7 | 95.9 | 90.7 | 92.8 |
SVDA | 95.2 | 99.1 | 99.4 | 97.9 |
MCD_DA | 96.9 | 98.8 | 90.5 | 95.4 |
MADA | 91.9 | 95.8 | 94.6 | 94.1 |
- office31数据集
A->W | D->W | W->D | A->D | D->A | W->A | Avg | |
---|---|---|---|---|---|---|---|
Resnet50 | 78.2 | 96.9 | 99.6 | 82.1 | 65.6 | 65.5 | 81.3 |
DANN | 79.7 | 97.9 | 100.0 | 83.3 | 66.4 | 65.9 | 82.2 |
SVDA | 83.8 | 96.9 | 100.0 | 82.5 | 69.7 | 69.2 | 83.7 |
MCD_DA | 90.4 | 98.9 | 100.0 | 89.0 | 72.6 | 72.2 | 87.2 |
MADA | 89.2 | 98.0 | 100.0 | 87.3 | 67.5 | 65.6 | 84.6 |