一文读懂深度适配网络(DAN)

简介:

这周五下午约见了机器学习和迁移学习大牛、清华大学的龙明盛老师。老师为人非常nice,思维敏捷,非常健谈!一不留神就谈了1个多小时,意犹未尽,学到了很多东西!龙明盛老师在博士期间(去年博士毕业)发表的文章几乎全部是A类顶会,他在学期间与世界知名学者杨强、Philip S. Yu及Michael I. Jordan多次合作,让我非常膜拜!这次介绍他在ICML-15上提出的深度适配网络。

深度适配网络(Deep Adaptation Netowrk,DAN)是清华大学龙明盛提出来的深度迁移学习方法,最初发表于2015年的机器学习领域顶级会议ICML上。DAN解决的也是迁移学习和机器学习中经典的domain adaptation问题,只不过是以深度网络为载体来进行适配迁移。DAN是深度迁移学习领域的代表性工作,被UC Berkeley、HKUST等世界知名大学不断引用。杨强老师对DAN的评价很高,在Google Scholar上也有着很高的引用量,可以被看作是深度迁移学习领域的经典文章。值得注意的是DAN文章的最后一位作者是Michael I. Jordan,机器学习领域的泰山北斗。所以这篇文章的含金量非常的大。

背景

继Jason Yosinski在2014年的NIPS上的《How transferable are features in deep neural networks?》探讨了深度神经网络的可迁移性以后,有一大批工作就开始实际地进行深度迁移学习。我们简要回顾一下Jason工作的重要结论:对于一个深度网络,随着网络层数的加深,网络越来越依赖于特定任务;而浅层相对来说只是学习一个大概的特征。不同任务的网络中,浅层的特征基本是通用的。这就启发我们,如果要适配一个网络,重点是要适配高层——那些task-specific的层。

适配高层网络的代表性工作是Eric Tzeng等人在2014年发在arXiv上的《Deep domain confusion: maximizing for domain invariance》(至今没找到到底发在哪了)。这篇文章针对于预训练的AlexNet(8层)网络,在第7层(也就是feature层,softmax的上一层)加入了MMD距离来减小source和target之间的差异。这个方法简称为DDC。这篇文章概括一点说,就是适配了最高层网络,只有一层。那么,是否只适配这一层就够了呢?

介绍

DAN是在DDC的基础上发展起来的,它很好地解决了DDC的两个问题:

  1. DDC只适配了一层网络,可能还是不够,因为Jason的工作中已经明确指出不同层都是可以迁移的。所以DAN就多适配几层;

  2. DDC是用了单一核的MMD,单一固定的核可能不是最优的核。DAN用了多核的MMD(MK-MMD),效果比DDC更好。

方法

上面已经说过,DAN的创新点是多层适配和多核MMD。那么我们针对两个方面分别介绍。

多核MMD(Multi-kernel MMD,MK-MMD)

这个MK-MMD是基于原来的MMD发展而来的,它并不是这个文章提出来的,是由Gretton这位核方法大牛在2012年提出来的。原来的MMD呢,是说我们要把source和target用一个相同的映射映射在一个再生核希尔伯特空间(RKHS)中,然后求映射后两部分数据的均值差异,就当作是两部分数据的差异。最重要的一个概念是核,在MMD中这个是固定的,我们在实现的时候可以选择是高斯核还是线性核。这样的缺点是明显的:我怎么知道哪个核一定好?

MK-MMD就是为了解决这个问题。它提出用多个核去构造这个总的核,这样效果肯定会比一个核好呀!对于两个概率分布,它们的MK-MMD距离就是这个多个核一起定义的kernel就是这个式子很好理解。原来我们的

就是一个固定的函数嘛,现在我们把它用个不同kernel进行加权,权重就是。这样的表征能力一定不会比一个kernel差的!

多层适配

这个就很好理解了。原来的DDC方法只是适配了一层,现在DAN也基于AlexNet网络,适配最后三层(6~8层)。为什么是这三层?因为在Jason的文章中已经说了,网络的迁移能力在这三层开始就会特别地task-specific,所以要着重适配这三层。至于别的网络(比如GoogLeNet、VGG)等是不是这三层那就不知道了,那得一层一层地计算相似度。DAN只关注使用AlexNet。

总的方法

好了,我们已经把DAN的两个要点讲完了。现在总的来看一下DAN方法。它基于AlexNet网络,探索source和target之间的适配关系。任何一个方法都有优化的目标。DAN也不例外。它的优化目标由两部分组成:损失函数和分布距离。损失函数这个好理解,基本上所有的机器学习方法都会定义一个损失函数,它来度量预测值和真实值的差异。分布距离就是我们上面提到的MK-MMD距离。于是,DAN的优化目标就是:

这个式子中,表示网络的所有权重和bias参数,是用来学习的目标。其中分别是6和8,表示网络适配是从第6层到第8层,前面的不进行适配。表示source和target中所有有label的数据的集合。是惩罚系数。就定义了一个损失函数,在深度网络中一般都是cross-entropy。DAN的网络结构如下图所示。

学习策略

现在已经把问题定义的非常明确了,可以开始训练和学习了。学习一共分为两大类参数:学习网络参数和MMD的

学习

的学习依赖于MK-MMD距离的计算。通过kernel trick(类比于以前的MMD距离)我们总是可以把MK-MMD展开成一堆内积的形式。然而,数据之间两两计算内积是非常复杂的,时间复杂度为,这个在深度学习中的开销非常之大。怎么办?作者在这里采用了Gretton在文章提出的对MK-MMD的无偏估计:,其中的是一个四元组:。将kernel作用到上以后,变成

上面这些变换看着好恐怖。它是个什么意思呢?简单来说,它就是只计算了连续的一对数据的距离,再乘以2.这样就可以把时间复杂度降低到!至于具体的理论,可以去参考Gretton的论文,这里就不说了。反正这个计算方法是Gretton提出来的。

在具体进行SGD的时候,我们需要对所有的参数求导:对求导。在实际用multiple-kernel的时候,作者用的是多个高斯核。

学习

学习$\beta$主要是为了确定多个kernel的权重。学习的时候,目标是:确保每个kernel生成的MMD距离的方差最小。也就是这里的是估计方差。实际求解的时候问题可以被规约成一个二次规划问题求解,具体可以参照文章。

结论

DAN作为深度迁移学习的代表性方法,充分利用了深度网络的可迁移特性,然后又把统计学习中的MK-MMD距离引入,取得了很好的效果。作者在2017年又进一步对其进行了延伸,做出了Joint Adaptation Network (JAN),也发在了ICML 2017上。在JAN中,作者进一步把feature和label的联合概率分布考虑了进来,可以视作之前JDA(joint distribution adaptation)的深度版。下次我们介绍这个工作。总的来说,深度迁移学习在DAN和JAN的开创性工作面前,留给模型创新的空间已经不多了。这才是我们要思考的问题。如何推陈出新?

数学很重要!我们可以看到最重要的MK-MMD是搞数据的提出来的!好好学数学!


原文发布时间为:2017-07-14

本文作者:Lukas Biewald

本文来自云栖社区合作伙伴“数据派THU”,了解相关信息可以关注“数据派THU”微信公众号

相关文章
|
8月前
|
存储 人工智能 搜索推荐
社区供稿 | YuanChat全面升级:知识库、网络检索、适配CPU,手把手个人主机部署使用教程
在当下大语言模型飞速发展的背景下,以大模型为核心的AI助手成为了广大企业和个人用户最急切需求的AI产品。然而在复杂的现实办公场景下,简单的对话功能并不能满足用户的全部办公需求,为此我们发布了最新版的YuanChat应用
|
网络协议 安全 API
iOS14适配汇总:【1、隐私权限相关:定位、相册、IDFA 2、KVC相关3、UIView相关;4、网络相关】
iOS14适配汇总:【1、隐私权限相关:定位、相册、IDFA 2、KVC相关3、UIView相关;4、网络相关】
518 0
iOS14适配汇总:【1、隐私权限相关:定位、相册、IDFA 2、KVC相关3、UIView相关;4、网络相关】
|
物联网 芯片
AliOS Things网络适配框架 - SAL
很多物联网应用场景中,都需要使用主控MCU外接连接芯片(如WiFi、NB-IoT)的解决方案。为方便这类场景的开发,AliOS Things提供了Socket Adapter Layer(SAL)框架和组件方案
6399 0
|
28天前
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
65 17
|
1月前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。
|
1月前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
53 10
|
1月前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,并提供一些实用的代码示例。通过阅读本文,您将了解到如何保护自己的网络安全,以及如何提高自己的信息安全意识。
62 10
|
1月前
|
存储 监控 安全
云计算与网络安全:云服务、网络安全、信息安全等技术领域的融合与挑战
本文将探讨云计算与网络安全之间的关系,以及它们在云服务、网络安全和信息安全等技术领域中的融合与挑战。我们将分析云计算的优势和风险,以及如何通过网络安全措施来保护数据和应用程序。我们还将讨论如何确保云服务的可用性和可靠性,以及如何处理网络攻击和数据泄露等问题。最后,我们将提供一些关于如何在云计算环境中实现网络安全的建议和最佳实践。
|
1月前
|
监控 安全 网络安全
网络安全与信息安全:漏洞、加密与意识的交织
在数字时代的浪潮中,网络安全与信息安全成为维护数据完整性、保密性和可用性的关键。本文深入探讨了网络安全中的漏洞概念、加密技术的应用以及提升安全意识的重要性。通过实际案例分析,揭示了网络攻击的常见模式和防御策略,强调了教育和技术并重的安全理念。旨在为读者提供一套全面的网络安全知识框架,从而在日益复杂的网络环境中保护个人和组织的资产安全。