清华大学开源迁移学习算法库:基于PyTorch实现,支持轻松调用已有算法

2020 年 8 月 6 日 极市平台

点击蓝字


 关注我们



作者丨清华大学大数据研究中心

来源丨机器之心

近日,清华大学大数据研究中心机器学习研究部开源了一个高效、简洁的迁移学习算法库 Transfer-Learn,并发布了第一个子库—— 深度领域自适应算法库(DALIB)
清华大学大数据研究中心机器学习研究部长期致力于迁移学习研究。近日,该课题部开源了一个基于 PyTorch 实现的高效简洁迁移学习算法库:Transfer-Learn。使用该库,可以轻松开发新算法,或使用现有算法。
项目地址: https://github.com/thuml/Transfer-Learning-Library
目前,该项目发布了第一个子库——领域自适应算法库(DALIB),其支持的算法包括:
Domain Adversarial Neural Network (DANN)
Deep Adaptation Network (DAN)
Joint Adaptation Network (JAN)
Conditional Domain Adversarial Network (CDAN)
Maximum Classifier Discrepancy (MCD)
Margin Disparity Discrepancy (MDD)

领域自适应背景介绍

目前,深度学习模型在一部分计算机视觉、自然语言处理任务中超越了人类的表现,但是它们的成功通常依赖于大规模标记数据。在实际应用场景中,标记数据往往是稀缺的。
解决标记数据稀缺问题的一个方法是通过计算机模拟生成训练数据,例如使用计算机图形学技术合成训练数据(如下图所示)。此外,还可以从相关的领域 “借用” 标记数据。
但是,在此场景下,训练数据和测试数据不再服从独立同分布,使训练得到的深度网络准确率大打折扣。为了解决数据集偏移造成的泛化难题,领域自适应 (Domain Adaptation) 的概念被提出。
领域自适应的目标是将机器学习模型在源领域 (Source) 学到的知识迁移到目标领域 (Target)。例如在计算机模拟生成训练数据的例子中,合成数据是源领域,真实场景的数据是目标领域。领域自适应有效地缓解了深度学习对于人工标记数据的依赖,受到学术界和工业界的广泛关注。目前已广泛应用到图像分类、图像分割、目标检测、情感分析、机器翻译等众多任务上。
吴恩达曾说过:「在监督学习之后,迁移学习将引领下一轮机器学习技术商业化浪潮。」图灵奖得主 Bengio 也认为迁移能力是深度学习进一步发展的基础能力之一。随着产品级机器学习应用进入数据稀缺领域,监督学习得到的尖端模型性能大打折扣,领域自适应变得越来越重要。

研究现状

深度领域自适应方法主要包括以下三大类:
统计距离。通过最小化源领域和目标领域分布的统计距离,实现不同领域特征分布对齐。例如深度适配网络 DAN、联合适配网络 JAN。
对抗训练。领域对抗网络 DANN 是最早的工作,它引入领域判别器,鼓励特征提取器学习领域无关的特征。在 DANN 的基础上衍生出了一系列方法,例如条件领域对抗网络 CDAN、最大分类器差异 MCD。
理论启发。通过严格的理论推导,得到可以显式控制迁移学习泛化误差的算法,如间隔分歧散度 MDD 等。
DANN 网络架构图
MDD 网络架构图
上述方法在实验数据上表现出良好的性能。然而目前学术界领域自适应方法的开源实现存在下述问题:
复用性差。领域自适应方法和模型架构、数据集耦合在一起,不利于领域自适应方法在新的模型、数据集上复用。
稳定性差。部分对抗训练方法随着训练进行,准确率会大幅度下降。
针对这些不足,深度领域自适应算法库(DALIB)设计的初衷就是: 用户通过少数几行代码,即可将领域自适应算法应用到实际项目中,无需考虑领域自适应模块的实现细节。

易用性

DALIB 将现有领域自适应训练代码中的领域自适应损失函数分离出来,按照 PyTorch 交叉熵损失函数的形式进行封装,以方便用户使用。
领域自适应损失函数也和模型架构进行了解耦,不依赖于具体的分类任务,所以算法库很容易扩展到图像分类以外的机器学习任务。
如下所示,使用两行代码即可定义一个与任务无关的领域对抗损失函数:
各种领域自适应损失函数中有一些公用的模块,例如所有算法中都用到的分类器模块、对抗训练中用到的梯度反转模块和领域判别器模块、统计距离中用到的核函数模块等。
这些公用模块和提供的领域自适应损失函数是分离的。因此, 在 DALIB 中,用户可以像搭积木一样,重新定制自己需要的领域自适应损失函数。
例如,在核方法中,用户可以自定义不同参数的高斯核函数或其他核函数,然后将其传入到多核最大均值差异(MK-MMD)的计算中。
目前,所有的模块和损失函数均已提供详细的 API 说明文档: https://dalib.readthedocs.io/en/latest/
稳定性
领域自适应算法研究往往关注方法的创新性或理论价值,而忽视了工程实现中的稳定性和可复现性。在复现现有算法的过程中,出现了部分算法准确率不稳定的问题。DALIB 通过对数值计算方面的改进,解决了这些问题。(具体实现此处不再展开。)
DALIB 在常见的领域自适应基准集上的测试准确率都比原论文汇报准确率高,在部分数据集上的准确率甚至高出 14%。下图分别是 Office-31 和 VisDA-2017 三个基准集上的测试结果:
Office-31 上不同算法的准确率
VisDA-2017 上不同算法的准确率
DALIB 算法库提供了所支持的算法在 Office-31、Office-Home 和 VisDA-2017 三个基准集上的测试结果,以及完整的测试脚本。清华大学龙明盛老师课题组认为开源这一算法库有助于更好地推进迁移学习方向的未来研究工作。
未来的工作
领域自适应算法子库 DALIB 的下一个版本将支持领域自适应算法的各种复杂设定,包括部分集领域自适应任务(Partial Domain Adaptation)、开放集领域自适应任务(Open-Set Domain Adaptation)、通用域自适应任务(Universal Domain Adaptation)等。同时,还将支持多功能领域自适应算法(Versatile Domain Adaptation)。
迁移学习算法库 Transfer-Learn 目前还处于初期开发阶段。该研究团队表示,随着迁移学习方向的不断发展,今后 Transfer-Learn 算法库将不断跟进新工作中比较好的算法,不断扩展优化,为迁移学习提供一个稳定可靠的评测基准。
当前版本由龙明盛老师课题组的江俊广、付博两名同学维护。清华大学软件学院、大数据系统软件国家工程实验室为研发该算法库提供了强大的平台支撑。
推荐阅读


添加极市小助手微信 (ID : cv-mart) ,备注: 研究方向-姓名-学校/公司-城市 (如:目标检测-小极-北大-深圳),即可申请加入 极市技术交流群 ,更有 每月大咖直播分享、真实项目需求对接、求职内推、算法竞赛、 干货资讯汇总、行业技术交流 一起来让思想之光照的更远吧~

△长按添加极市小助手

△长按关注极市平台,获取 最新CV干货

觉得有用麻烦给个在看啦~   
登录查看更多
0

相关内容

领域自适应是与机器学习和转移学习相关的领域。 当我们的目标是从源数据分布中学习在不同(但相关)的目标数据分布上的良好性能模型时,就会出现这种情况。 例如,常见垃圾邮件过滤问题的任务之一在于使模型从一个用户(源分发)适应到接收显着不同的电子邮件(目标分发)的新模型。 注意,当有多个源分发可用时,该问题被称为多源域自适应。

知识荟萃

精品入门和进阶教程、论文和代码整理等

更多

查看相关VIP内容、论文、资讯等
最新最全最详细中文版-《迁移学习简明手册》pdf分享
专知会员服务
100+阅读 · 2020年9月25日
最新《深度强化学习中的迁移学习》综述论文
专知会员服务
153+阅读 · 2020年9月20日
【KDD2020-UCLA-微软】GPT-GNN:图神经网络的预训练
专知会员服务
61+阅读 · 2020年8月19日
专知会员服务
79+阅读 · 2020年6月20日
【IJCAI2020-华为诺亚】面向深度强化学习的策略迁移框架
专知会员服务
25+阅读 · 2020年5月25日
近期必读的9篇 CVPR 2019【视觉目标跟踪】相关论文和代码
开发 | PyTorch好助手:PyTorch Hub一键复现各路模型
Java 工程师快速入门深度学习,可以从 Deeplearning4j 开始
人工智能头条
13+阅读 · 2018年12月14日
机器学习者必知的 5 种深度学习框架
深度学习世界
7+阅读 · 2018年5月3日
【免费下载】迁移学习简明手册
新智元
21+阅读 · 2018年4月13日
YOLO算法的原理与实现
机器学习研究会
42+阅读 · 2018年1月19日
【下载】PyTorch 实现的YOLO v2目标检测算法
专知
15+阅读 · 2017年12月27日
迁移学习在深度学习中的应用
专知
23+阅读 · 2017年12月24日
独家 | 一文读懂迁移学习(附学习工具包)
数据派THU
11+阅读 · 2017年7月13日
Arxiv
13+阅读 · 2020年4月12日
Arxiv
15+阅读 · 2020年2月5日
Arxiv
14+阅读 · 2019年11月26日
Transfer Adaptation Learning: A Decade Survey
Arxiv
37+阅读 · 2019年3月12日
Arxiv
7+阅读 · 2018年1月24日
VIP会员
相关VIP内容
最新最全最详细中文版-《迁移学习简明手册》pdf分享
专知会员服务
100+阅读 · 2020年9月25日
最新《深度强化学习中的迁移学习》综述论文
专知会员服务
153+阅读 · 2020年9月20日
【KDD2020-UCLA-微软】GPT-GNN:图神经网络的预训练
专知会员服务
61+阅读 · 2020年8月19日
专知会员服务
79+阅读 · 2020年6月20日
【IJCAI2020-华为诺亚】面向深度强化学习的策略迁移框架
专知会员服务
25+阅读 · 2020年5月25日
近期必读的9篇 CVPR 2019【视觉目标跟踪】相关论文和代码
相关资讯
开发 | PyTorch好助手:PyTorch Hub一键复现各路模型
Java 工程师快速入门深度学习,可以从 Deeplearning4j 开始
人工智能头条
13+阅读 · 2018年12月14日
机器学习者必知的 5 种深度学习框架
深度学习世界
7+阅读 · 2018年5月3日
【免费下载】迁移学习简明手册
新智元
21+阅读 · 2018年4月13日
YOLO算法的原理与实现
机器学习研究会
42+阅读 · 2018年1月19日
【下载】PyTorch 实现的YOLO v2目标检测算法
专知
15+阅读 · 2017年12月27日
迁移学习在深度学习中的应用
专知
23+阅读 · 2017年12月24日
独家 | 一文读懂迁移学习(附学习工具包)
数据派THU
11+阅读 · 2017年7月13日
相关论文
Arxiv
13+阅读 · 2020年4月12日
Arxiv
15+阅读 · 2020年2月5日
Arxiv
14+阅读 · 2019年11月26日
Transfer Adaptation Learning: A Decade Survey
Arxiv
37+阅读 · 2019年3月12日
Arxiv
7+阅读 · 2018年1月24日
Top
微信扫码咨询专知VIP会员