DomainBed是域泛化领域的公认框架,其统一了输入输出以及相关细节处理,使得泛化性能比较更加公平公正,但是庞大的框架使其理解十分困难,今天首先介绍其评价指标,即Selection字段。
结果展示
+------------+--------------+---------+---------+---------+---------+
| Selection | art_painting | cartoon | photo | sketch | Avg. |
+------------+--------------+---------+---------+---------+---------+
| oracle | 90.116% | 85.181% | 96.856% | 80.852% | 88.251% |
| iid | 85.052% | 75.373% | 97.680% | 69.943% | 82.012% |
| last | 85.357% | 85.181% | 96.931% | 70.070% | 84.385% |
| last (inD) | 97.171% | 95.840% | 96.226% | 95.395% | 96.158% |
| iid (inD) | 97.342% | 96.922% | 96.756% | 97.667% | 97.172% |
+------------+--------------+---------+---------+---------+---------+
以上结果,来自GGA(Gradient-Guided Annealing for Domain Generalization)在PACS数据集上的复现结果。
字段解释
- Oracle:理想化模型选择策略,使用测试域的数据直接选择模型参数,这是一个上界。在实际部署中,无法获取测试域的数据。
- iid:independent and identically distributed 独立同分布验证策略。从训练集中抽出一部分作为验证集,基于验证集正确率选择最佳模型,符合真实场景。也是论文中常采用的指标。最后,在测试域上进行评估正确率。
- last:简单的基线策略,直接选择最后一个迭代或者epoch的模型,而不是用任何验证集进行选择。
以下是inD(in domain)域内系列
- last(inD):类似于last,但重心在in-domain的性能,即在于训练集相同分布的验证集或者测试集上的准确率。简而言之,选择最后一个模型,然后在训练域的测试数据上进行评估正确率。
- iid(inD):与“iid”类似,使用独立同分布的验证集选择模型,但评估的是域内性能。简而言之,在iid中选择最佳模型,然后在训练域的测试数据上进行评估正确率。
这两个评价指标不重要,只能作为参考,检查模型是否学到了训练域的特征或者在训练域的拟合程度,但不反映泛化能力,而域泛化的研究重心是域外的泛化能力,所以不重要。