迁移学习算法:应用与实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.4 迁移学习与已有学习范式的关系

迁移学习是旨在运用已存有的知识对不同但相关领域问题进行求解的一种有效机器学习方法。它放宽了传统机器学习中的两个基本假设:1)用于学习的训练样本与新的测试样本满足独立同分布的条件;2)必须有足够的可利用训练样本,才能学习得到一个好的分类模型。迁移学习的本质是,共享或迁移已有的知识来解决目标领域中仅有少量(甚至没有)有标签样本数据的学习问题。下面将介绍与迁移学习相关的领域,包括半监督学习、多视图学习、多任务学习、集成学习、元学习、小样本学习、分布外泛化、知识蒸馏、联邦学习,并阐明它们与迁移学习的联系与区别。

半监督学习(Semi-Supervised Learning) 半监督学习是介于监督学习(实例全标记)和非监督学习(实例完全无标记)之间的一种机器学习方法。通常,半监督学习利用大量的未标记实例,结合有限的标记实例来训练学习器。半监督学习减少了对标记实例的依赖,从而降低了昂贵的标记成本。但需要注意的是,在半监督学习中,标记的和未标记的实例都来源于相同的分布。相比之下,在迁移学习中,源域和目标域的数据分布一般不同。许多迁移学习方法借鉴了半监督学习技术,而且使用了半监督学习中的关键假设,即平滑度假设、聚类假设和流形假设。

多视图学习(Multi-View Learning) 多视图学习关注的是多视图数据的机器学习问题,一个视图代表一个独特的特征集。多视图的一个直观的例子就是,视频对象可以从两个不同的视角来描述,即图像信号和音频信号。简而言之,多视图学习从多个视角描述一个对象,从而产生丰富的信息。合理地考虑各视图的信息可以提高学习器的学习性能。多视图学习采用的策略包括子空间学习(Subspace Learning)、多核学习(Multi-Kernel Learning)和协同训练(Co-Training)[9-10]等。在一些迁移学习方法中也采用了多视图学习技术。例如,Zhang等人提出了一种多视图迁移学习框架,该框架强加了多个视图之间的一致性[11]。Yang和Gao将跨领域的多视图信息用于知识迁移[12]。Feuz和Cook的研究引入了一种用于活动学习(Activity Learning)的多视图迁移学习方法,可以在异构传感器平台之间迁移活动知识[13]

多任务学习(Multi-Task Learning) 多任务学习的思想是通过共享知识共同学习一组相关的任务。具体而言,多任务学习利用任务之间的相互联系,即兼顾任务间的相关性和任务间的差异性,来强化各个学习任务,从而增强每个任务的泛化能力。迁移学习与多任务学习的主要区别在于前者迁移相关领域内的知识,而后者通过同时学习多个相关任务来迁移知识。换而言之,多任务学习对每个任务同等关注,而迁移学习对目标任务的关注多于对源任务的关注。迁移学习和多任务学习之间存在一些共性和关联。二者都旨在通过知识迁移来提高学习器的学习性能,在构建模型时还采用了一些类似的策略,如特征转换和参数共享等。值得一提的是,一些现有的研究同时使用了迁移学习和多任务学习技术。例如,Zhang等人的工作采用多任务和迁移学习技术进行生物图像分析[14]。Liu等人提出了一个基于多任务学习和多源迁移学习的人类动作识别框架[15]

集成学习(Ensemble Learning) 集成学习并不是一个单独的机器学习算法,而是通过构建并结合多个机器学习器(基学习器,Base Learner)来完成学习任务。对于训练集数据,通过训练若干个弱学习器(Weak Learner),采取一定的集成策略,最终形成一个强学习器(Strong Learner),以达到取长补短的目的。从共享知识的角度看,可以认为集成学习通过共享多个模型上的知识来获得最终性能的提升。集成学习可以用于分类问题集成、回归问题集成、特征选取集成、异常点检测集成等机器学习领域。集成学习典型的代表性算法包括Bagging和Adaboost等,前者通过有放回采样,构建多个数据集来训练多个基学习器,后者则在每一轮采样中改变样本被采样的权重,后续基学习器的训练依赖于前面基学习器的训练。基学习器的训练过程可以从三个粒度上进行:第一,对特征进行划分形成不同的子集,从而形成特征子集上的基学习器;第二,对数据进行划分形成不同的子集,从而形成局部数据上的基学习器;第三,数据来自不同的领域,从而形成跨领域上的基学习器。集成学习也通常被用于迁移学习中,通过学习不同样本的重要性、不同模型的权重等。

元学习(Meta Learning) 元学习[16]旨在从大量已有任务上学习可泛化的知识,从而快速泛化到新的任务,现有的元学习方法通常划分为三类:第一类是基于度量的方法[17],这类方法基于距离度量学习公共特征空间,从而能区分开类别;第二类是基于优化的方法[18],这类方法使用元学习器作为优化器或者用来学习良好的初始化参数;第三类是基于参数生成的方法[19],这类方法通常设计参数预测网络并将其用作元学习器。元学习和迁移学习存在紧密联系,都旨在从已有任务或领域迁移知识提升目标任务或者目标领域的效果。然而两者也存在差异,元学习更侧重于学习可泛化的知识,目标任务在训练阶段是未知的,而迁移学习在训练阶段目标领域是已知的,更侧重于迁移对已知目标领域有用的知识。

小样本学习(Few-Shot Learning) 小样本学习[20]可以看作元学习的一个主要应用场景,旨在基于少量样本学习到好的模型。现有的元学习方法通过在大量已有任务中学到一个泛化能力强的模型,从而实现基于少量样本即可达到很好的测试效果。而迁移学习通过从相关的源领域迁移知识,在只有少量标签样本的目标领域上取得很好的效果。两者相比,元学习是在同领域下存在概念偏移的已有任务学习泛化知识,解决小样本问题,而迁移学习是从数据分布不同的领域中迁移知识来解决小样本问题。

分布外泛化(Out-of-Distribution Generalization) 现有的机器学习方法假设训练集和测试集满足独立同分布(IID)的条件,但是在真实场景中,测试集通常和训练集分布不同,如何在训练集上训练模型,并在和训练集分布不同的测试集上取得很好的泛化效果,这就是分布外泛化处理的问题[21]。迁移学习和分布外泛化均假设测试集和训练集分布存在差异,这两者最大的差异为迁移学习中测试集分布是已知的,而分布外泛化问题中测试集分布是未知的。分布外泛化包含很多子问题,比如领域泛化(Domain Generalization)、因果学习(Causal Learning)、稳定学习(Stable Learning)等。同时,分布外泛化也可以看作迁移学习的进化。

知识蒸馏(Knowledge Distillation) 知识蒸馏[22]是一种基于“教师-学生网络思想”的训练方法,知识蒸馏方法认为模型参数包含了知识,这类方法将已经训练好的模型包含的知识蒸馏提取到另一个模型里面去,其中的教师模型和学生模型可以是同构的,也可以是异构的。随着深度学习的发展,现在的模型越来越复杂,参数量巨大,这些大模型对移动设备极其不友好,因此需要进行模型压缩,从大模型向小模型蒸馏知识,这也是知识蒸馏的主要应用。除了模型压缩,知识蒸馏还能用于迁移学习,例如在源领域训练好的模型,直接从源领域模型向目标领域迁移知识,这样的方法可以保护数据隐私。

联邦学习(Federated Learning) 联邦学习允许多方用户(如手机、物联网设备等)形成一个联合体训练得到一个集中模型,而用户数据则安全地存储在本地,这就解决了数据隐私和安全保护问题。同时其可以有效应用联合体各方所掌握的标注数据,解决标注数据缺乏的问题。虽然其不共享数据,但传递参数的过程可能会造成参与方数据泄露,可信联邦学习则通过现有的一些隐私保护技术,例如同态加密(Homomorphic Encryption, HE)、差分隐私(Differential Privacy, DP)、安全多方计算(Secure Multi-Party Computation, MPC)等,为其抵御存在的重建攻击和推断攻击。此外,模型的版权问题也引起了重视,目前可通过水印技术修改模型的嵌入层,实现通过模型的输出结果带独有的水印以维护模型版权。

根据参与者之间数据特征和数据样本的分布情况,联邦学习一般可以分为水平联邦学习(Horizontal Federated Learning, HFL)、垂直联邦学习(Vertical Federated Learning, VFL)和联邦迁移学习(Federated Transfer Learning, FTL)。在HFL中,参与者的数据特征是对齐的,在VFL中,参与者的训练样本是对齐的,而FTL则是处理联邦学习参与者在样本空间和特征空间中几乎没有重叠的场景。其通过迁移学习使补充知识能够在数据联合中跨域传输,从而使目标域方能够通过利用来自源域的丰富标签来构建灵活有效的模型,并克服数据或标签不足的问题。该方法在收敛性和准确性方面的性能与非隐私保护的迁移学习相当。例如,Liu等人提出使用同态加密和基于beaver三元组的秘密共享方法,并结合到两方计算(two-party computation, 2PC)的联邦迁移学习框架[23]中。Peng等人则向联邦学习中引入直推式迁移学习中的领域自适应(Domain Adaption),提出了一种联邦对抗域适应方法(Federated Adversarial Domain Adaptation, FADA),通过对抗性技术解决联邦学习中的域迁移问题[24]。联邦学习与迁移学习相结合,既可以有效地保护隐私和数据安全,又可以解决目标域/任务中标签数据不足以及分布不一致的问题。