在现有的机器学习,深度学习和数据挖掘的任务中,通常会假设train和test所使用的数据服从相同的分布,有着相同的特征空间,但在现实应用中,这种理想状态往往难以达到:
⑴带标记的训练样本数量有限。比如处理A领域的分类问题时,缺少足够的训练样本。同时,与A领域相关的B领域却有着大量的训练样本,但B领域与A领域处于不同的特征空间或样本服从不同的分布。
⑵数据分布会因时间,地点,或其他因素发生改变,随着动态因素的变化,数据分布会发生变化,或以前收集的数据已经过时,需要重新收集数据,重新建模。
无论是大量样本标记,还是模型的重建都会耗费大量的财力人力,在这种情况下,知识迁移是一个不错的选择,即把B领域中的知识迁移到A领域中来,提高A领域的分类效果。
感觉就是一个老师-学生的过程,学生学习老师已学的知识,而学生之后的学习领域可能不和老师相同,但却应用到之前学到的知识,让旧知识能在新的领域中应用好。
迁移学习中需要回答的三个问题
⑴迁移什么?源域的哪些知识是需要被迁移的
⑵何时迁移?这个工作是考虑到源域和目标域是否相似,如果不相似的两个域,强行进行迁移学习会出现负迁移的情况(即使用目标域本身的数据进行训练的效果比迁移学习的效果好)。
⑶如何迁移
⑴⑶中涉及到四种方法,基于实例的迁移,基于特征表示的迁移,基于参数的迁移,基于相关性的迁移。
①基于实例的迁移
主要思想就是在目标领域的训练中,虽然源数据域不能直接使用,但可以从中挑选部分,用于目标领域的学习。实例重加权和重要性抽样是这类方法的两个重要技术。
②基于特征表示迁移
主要思想是寻找一个“好的”特征表示,最小化域间差异和分类回归的误差,期望通过新的特征表示能让目标任务的性能显著提升。
③基于参数迁移
该方法假定在相关任务上的模型应该共享一些参数、先验分布或者超参数。多任务学习中多使用这种方法,通过将多任务学习对源域和目标域的权值做改变(增大目标值权值,减小源域权值),即可将多任务学习转变成迁移学习。
④基于相关性的迁移
和前三种方式不同,相关知识迁移方法在相关域中处理迁移学习的问题,它不假设每一个域的数据都是独立同分布的,而是将数据之间的联系从源域迁移到目标域。
迁移学习又可以分为三大类
⑴归纳学习
目标任务和源任务不同,无论目标域与源域是否相同。
这种情况下,要用目标域中的一些已标注数据生成一个客观预测模型以应用到目标域中。除此之外,根据源于中已标注和未标注数据的不同情况,可以进一步将归纳学习分为两种情况:
①源域中大量已标注数据可用。这种情况下归纳学习与多任务学习类似。然而,归纳学习只关注通过源任务中迁移知识以便在目标任务中获得更高性能,然而多任务学习创世同时学习源任务和目标任务。
②源域中无已标注数据可用。这种情况下归纳迁移学习和自我学习类似。自我学习中,源域和目标域间的特征空间可能不同,这意味着源域中的边缘信息不能直接使用。因此当源域中无已标注数据可用时这两种学习方法类似。
⑵直推式迁移学习
源任务和目标任务相同,源域和目标域不同。这种情况下,目标域无已标注数据可用,源域中有大量已标注数据可用,除此之外,根据源域和目标域中不同的状况,可以进一步将直推式迁移学习分为两类:
①源域和目标域中的特征空间不同
②源域和目标域的特征空间相同,但输入数据的边缘概率分布不同。
⑶无监督迁移学习
与直推式迁移学习相似,目标任务与源任务不同但相关。然而,无监督迁移学习专注于解决目标域中的无监督学习问题,如聚类、降维、密度估计。这种情况下,训练中源域和目标域都无已标注数据可用。
三种迁移学习类型整合如下表所示
关于迁移学习中可能会出现的负迁移的情况,可采用多个源域进行学习,从多个源域中提取知识,以求降低负迁移的影响。那这样可以先涉及一个算法模型来评估两个域之间的相关性,根据相关性来决定是否适合迁移学习。
现在大多数的研究主要集中于归纳式迁移学习和直推式迁移学习,对无监督迁移学习的研究较少,发现在无监督模型中使用元学习方法比在有监督模型使用元学习要更好,因为能定义多个不同的无标签任务[3]中提出了两个模型MetaUMT,MetaGUMT。
MetaUMT:主要是找到模型的最佳参数,来快速适应一个新的领域。
MetaGUMT:meta-test阶段,MetaUMT优化的参数是使用自适应函数,但是它抛弃了在不同任务上meta-train训练的参数。MetaGUMT在meta-test阶段,充分使用了不同任务的loss。这不仅利于模型发现最佳参数快速适应目标领域,同时也有利于维持所有任务的公共知识:比如限定词、连词和代词,而这些词是用来适应多个不同的领域的。
从文章中可以看出MetaGUMT本质上就是结合了多个loss函数。
大数据时代亿万级别规模的数据导致数据的统计异构性、标注缺失问题越来越严重。标注数据缺失会导致传统监督学习出现严重过拟合问题。目前解决数据稀缺性的方法有传统半监督学习、协同训练、主动学习等,但这些方法都要求目标域中存在一定程度的标注数据,而在标注数据稀缺的时候额外获取人工标注数据的代价太大。这时需要迁移学习来辅助提高目标领域的学习效果。
经典统计学习理论给出了独立同分布条件下模型的泛化误差上界保证。而在非平稳环境(不同数据域不服从独立同分布假设)中,传统机器学习理论不再成立,这给异构数据分析挖掘带来了理论风险。从广义上看,迁移学习可以看作是传统机器学习在非平稳环境下的推广。因此在非平稳环境下,迁移学习是对经典机器学习的一个重要理论补充。
1)训练机械臂
在真实的机器人上训练模型太慢,而且非常昂贵。解决办法是先进行模拟学习,将模拟学习学到的知识迁移到现实世界的机器人训练中,这里源域和目标域之间的特征空间是相同的。
2)舆情分析
迁移学习也可应用在舆情分析中的用户评价上。以电子产品和视频游戏产品用户评价为例,图中绿色为好评标签,而红色为差评标签。从图左的电子产品评价(源域)中抽取特征,建立电子产品评价领域的模型,然后将其应用到右图的视频游戏领域(目标域)中,实现舆情大规模的迁移,并且在新的领域不需要标签。
3)推荐系统
迁移学习也可以用在推荐系统中,在某个领域做好一个推荐系统,然后应用在稀疏的、新的垂直领域。比如已成熟完善的电影推荐系统可以应用在冷启动中的额书籍推荐系统中。
4)计算机视觉
基于不同的CNN架构,深度学习在多种计算机视觉任务上的应用取得了相当大的成功。Yosinski及其协助者的论文(深度神经网络中特征的迁移性如何)揭示了低层如何提取边缘等计算机视觉特征,最终层如何作用于任务特定的特征。因此,这些发现帮助我们在风格迁移和人脸识别等目标任务中利用VGG、AlexNet、Inception等现有的当前最先进模型,目标任务和这些模型原本训练的任务不同。
5)NLP
对机器学习和深度学习而言,文本数据提出了各种各样的挑战。通常,我们使用不同的向量化技术转换文本。基于不同的训练数据及,可得到Word2Vec和FastTest之类的嵌入。通过从源任务迁移学习,可以用于不同的任务,例如情绪分析和文档分类。除此之外,普适句编码器和BERT这类较新的模型毫无疑问地展现了未来的无穷可能。
6)医疗健康
在医疗健康领域,医学成像识别和肿瘤标注,以及肿瘤分类等场景也都有迁移学习的一席之地。5
参考文献
5.龚少英. 学习迁移研究的历史与发展[J]. 内蒙古师大学报(哲学社会科学版),2001(4). DOI:10.3969/j.issn.1001-7623.2001.04.010.