近日,清华大学大数据研究中心机器学习研究部开源了一个高效简洁的迁移学习算法库Transfer-Learn,并发布了第一个子库——DeepDomainAdaptiveAlgorithmLibrary(DALIB)。清华大学大数据研究中心机器学习研究部长期致力于迁移学习研究。近期学科部开源了一个基于PyTorch的高效简洁的迁移学习算法库:Transfer-Learn。使用这个库,可以很容易地开发新的算法,或者可以使用现有的算法。项目地址:https://github.com/thuml/Transfer-Learning-Library目前,项目已经发布了第一个子库——领域自适应算法库(DALIB),支持的算法包括:领域对抗神经网络(DANN)DeepAdaptationNetwork(DAN)JointAdaptationNetwork(JAN)ConditionalDomainAdversarialNetwork(CDAN)MaximumClassifierDiscrepancy(MCD)MarginDisparityDiscrepancy(MDD)FieldAdaptation背景介绍目前,深度学习模型在一些计算机视觉中的应用,自然已经超越人类在语言处理任务中的表现,但他们的成功往往依赖于大规模标记数据。在实际应用场景中,标注数据往往是稀缺的。解决标记数据稀缺性的一种方法是通过计算机模拟生成训练数据,例如使用计算机图形技术合成训练数据(如下图所示)。此外,可以从相关域“借用”标记数据。但是,在这种场景下,训练数据和测试数据不再服从独立同分布,这大大降低了训练好的深度网络的准确率。为了解决数据集偏移带来的泛化问题,提出了领域自适应(DomainAdaptation)的概念。域适应的目标是将机器学习模型在源域(Source)中学到的知识迁移到目标域(Target)。例如,在计算机模拟生成的训练数据的情况下,合成数据是源域,真实场景数据是目标域。领域适应有效地缓解了深度学习对人工标注数据的依赖,引起了学术界和工业界的广泛关注。它已被广泛应用于图像分类、图像分割、目标检测、情感分析、机器翻译等诸多任务。吴恩达曾表示:“继监督学习之后,迁移学习将引领机器学习技术商业化的下一波浪潮。”图灵奖得主本吉奥也认为迁移能力是深度学习进一步发展的基础能力之一。随着生产级机器学习应用进入数据稀缺领域,通过监督学习获得的前沿模型性能大幅下降,领域自适应变得越来越重要。研究现状深度域自适应方法主要包括以下三类:统计距离。通过最小化源域和目标域分布之间的统计距离,对齐不同域中的特征分布。例如深度适配网络DAN、联合适配网络JAN。对抗训练。DomainAdversarialNetworkDANN是最早的工作,它引入了域鉴别器并鼓励特征提取器学习与域无关的特征。在DANN的基础上,衍生出条件域对抗网络CDAN、最大分类器差异MCD等一系列方法。理论启发。通过严谨的理论推导,得到了可以显式控制迁移学习泛化误差的算法,如区间发散发散(MDD)等。DANN网络架构图。MDD网络架构图。上述方法在实验数据上表现出良好的性能。然而,目前学术界自适应方法的开源实现存在以下问题:可重用性差。领域自适应方法与模型架构和数据集耦合,不利于领域自适应方法在新模型和数据集上的复用。稳定性差。对于一些对抗性的训练方法,随着训练的进行,准确率会明显下降。针对这些不足,DeepDomainAdaptiveAlgorithmLibrary(DALIB)的设计初衷是:用户只需几行代码就可以将领域自适应算法应用到实际项目中,而无需考虑领域自适应模块的实现细节。EaseofuseDALIB将域自适应损失函数从现有的域自适应训练代码中分离出来,并以PyTorch交叉熵损失函数的形式进行封装,方便用户使用。领域自适应损失函数也与模型架构解耦,不依赖于具体的分类任务,因此算法库可以很容易地扩展到图像分类以外的机器学习任务。如下图,用两行代码就可以定义一个任务无关的领域对抗损失函数:各种领域自适应损失函数中有一些通用的模块,比如所有算法中使用的分类器模块,对抗训练的梯度反转模块以及使用的领域判别器模块,统计距离使用的核函数模块等。这些通用模块与提供的领域自适应损失函数是分开的。因此,在DALIB中,用户可以像搭积木一样,重新定制自己需要的领域自适应损失函数。例如,在核方法中,用户可以自定义高斯核函数或其他不同参数的核函数,然后将它们传入多核最大均值差(MK-MMD)的计算中。目前,所有模块和损失函数都提供了详细的API文档:https://dalib.readthedocs.io/en/latest/。稳定性领域对自适应算法的研究往往侧重于方法的创新性或理论价值,而忽视了工程实现中的稳定性和复现性。在复现现有算法的过程中,部分算法的准确率不稳定。DALIB通过改进数值计算来解决这些问题。(具体实现这里不再赘述)DALIB在公共域自适应基准集上的测试准确率高于原论文报道的结果,在部分数据集上的准确率甚至高出14%。下图是在Office-31和VisDA-2017三套benchmark上的测试结果:不同算法在Office-31上的准确率。不同算法在VisDA-2017上的准确率。DALIB算法库提供了支持的算法在Office-31、Office-Home和VisDA-2017三个基准测试集上的测试结果,以及完整的测试脚本。清华大学龙明生教授课题组认为,开源该算法库有助于更好地推动未来迁移学习方向的研究工作。Futurework域自适应算法子库DALIB的下一个版本将支持域自适应算法的各种复杂设置,包括部分域自适应任务(PartialDomainAdaptation)、开放集域自适应任务(Open-SetDomainAdaptation)、UniversalDomainAdaptation等,同时也会支持VersatileDomainAdaptation。Transfer-Learn是一个迁移学习算法库,仍处于早期开发阶段。研究团队表示,随着迁移学习的不断发展,Transfer-Learn算法库将在未来的新工作中不断跟进更好的算法,不断扩充和优化,为迁移提供稳定可靠的评估基准学习。当前版本由龙明生先生课题组蒋俊光、付波维护。清华大学软件学院和大数据系统软件国家工程实验室为算法库的开发提供了强大的平台支持。
