迁移学习与主动学习

1.什么时候要进行迁移学习?

目前大多数机器学习算法均是假设训练数据以及测试数据的特征分布相同。然而这在现实世界中却时常不可行。例如我们我们要对一个任务进行分类,但是此任务中数据不充足(在迁移学习中也被称为目标域),然而却有大量的相关的训练数据(在迁移学习中也被称为源域),但是此训练数据与所需进行的分类任务中的测试数据特征分布不同(例如语音情感识别中,一种语言的语音数据充足,然而所需进行分类任务的情感数据却极度缺乏),在这种情况下如果可以采用合适的迁移学习方法则可以大大提高样本不充足任务的分类识别结果。也即是大家通常所说的将知识迁移到新环境中的能力,这通常被称为迁移学习。有些时候如果迁移的不合适则会导致负迁移,例如当源域和目标域的任务毫不相关时有可能会导致负迁移。

2.迁移学习迁移什么?

在一些学习任务中有一些特征是个体所特有的,这些特征不可以迁移。而有些特征是在所有的个体中具有贡献的,这些可以进行迁移。(简单总结就是不迁移样本个体特有的特征,迁移那些对所有个体都有贡献的特征。

3.迁移学习的种类

归纳迁移学习(Inductive Transfer Learning),直推式迁移学习(Transductive Transfer Learning),无监督迁移学习(unsupervised transfer learning)

归纳迁移学习(Inductive Transfer Learning) 
目标任务与原任务不同,目标域和源域可能相同也可能不同。即。这种迁移学习方式又被分为四种形式 
1)实例知识迁移学习(Transferring knowledge of instances) 
基于实例的迁移学习的基本思想是,尽管目标域中部分带标签训练数据和源训练数据或多或少会有些不同,但是目标域中部分训练数据中应该还是会存在一部分比较适合用来训练一个有效的分类模型,并且适应测试数据。于是,目标就是目标域中部分带标签训练数据中找出那些适合测试数据的实例,并将这些实例迁移到源训练数据的学习中去。(不知道这样理解是否正确,原文为although the source domain data cannot be reused directly, there are certain parts of the data that can still be reused together with a few labeled data in the target domain.) 
这种方法比较适合与源数据与目标数据中部分带标签数据非常接近的情况。 
2)特征知识迁移(Transferring knowledge of feature representations) 
基于特征的迁移学习主要是找到一种好的特征表示最小化域的不同。并且根据源域中带标签样本是否充足可以分为有监督以及无监督学习方法。 
3)参数知识迁移 (Transferring knowledge of parameters) 
大部分基于参数的迁移学习均是以不同域的模型共享了一些参数或者是贡献了一些先验分布为前提的。 
4)相关知识迁移 (Transferring relational knowledge) 
这种迁移学习中源域和目标域的数据是相关的。例如newworked data以及social network data。它们的数据之间存在关联。

直推式迁移学习(Transductive Transfer Learning) 
直推式迁移学习的原任务和目标任务是相同的,目标域和源域可能相同也可能不同。 
它又可以被分为a)特征空间不同以及b)特征空间相同,但边缘概率分布不同(这种情况和domain adaptation相似) 
直推式迁移学习仍然包括实例知识迁移学习(Transferring knowledge of instances)以及特征知识迁移(Transferring knowledge of feature representations)(这种情况多是在无监督学习模型中进行的。)

无监督迁移学习(unsupervised transfer learning) 
无监督迁移学习的原任务和目标任务式不相同,且目标域数据以及源域数据都没有标签。 
例如最近提出的self-taught clustering,transferred discriminative analysis(TDA)属于无监督迁移学习。 
且这些无监督特征学习只存在特征知识迁移(Transferring knowledge of feature representations)。

4.主动学习简介

我们使用一些传统的监督学习方法做分类的时候,往往是训练样本规模越大,分类的效果就越好。但是在现实生活的很多场景中,标记样本的获取是比较困难的,这需要领域内的专家来进行人工标注,所花费的时间成本和经济成本都是很大的。而且,如果训练样本的规模过于庞大,训练的时间花费也会比较多。那么有没有办法,能够使用较少的训练样本来获得性能较好的分类器呢?主动学习(Active Learning)为我们提供了这种可能。主动学习通过一定的算法查询最有用的未标记样本,并交由专家进行标记,然后用查询到的样本训练分类模型来提高模型的精确度。

在人类的学习过程中,通常利用已有的经验来学习新的知识,又依靠获得的知识来总结和积累经验,经验与知识不断交互。同样,机器学习模拟人类学习的过程,利用已有的知识训练出模型去获取新的知识,并通过不断积累的信息去修正模型,以得到更加准确有用的新模型。不同于被动学习被动的接受知识,主动学习能够选择性地获取知识。

5.主动学习的模型

A=(C,Q,S,L,U)

C为一组或者一个分类器

L是用于训练已标注的样本

U是未标注样本池

Q是查询函数,用于从未标注样本池U中选择数据

S是督导者,可以为U中样本标注正确的标签

学习者通过少量初始标记样本L开始学习,通过一定的查询函数Q选择出一个或一批最有用的样本,并向督导者询问标签,然后利用获得的新知识来训练分类器和进行下一轮查询。主动学习是一个循环的过程,直至达到某一停止准则为止。

6.如何选择样本

主动学习一个很重要的问题是如何选择样本。根据获取未标注数据样本方 stream-based ) 和 基 于 池(pool-based)的学习策略,基于流的方法是对依次到来的每一个查询样例,判断其是否需要提交给督导者进行标注;基于池的方法是针对新来的样例进行缓存,当缓存到一定数目时,在缓存中按照标准选择需要督导者标注的样例。

基于池的学习策略是当前应用最多的、理论最充分的一种策略。

 基于池的主动学习方法根据选择样本标注的方法不同,可以分为基于不确定度的方法(Uncertainty Sampling)、投票选择法(Query-By-Committee)、模型变化期望(Expected  Model  Change)、误差减少期望(Expected  Error Reduction)、方差减少原则(Variance Reduction)及重量密度(Density-Weighted Method)等多种方法其中最常用的是基于不确定度的方法,主动学习器选择最不确定的那些样本提交给督导者进行标注。这种方法对概率模型来说是非常便捷的选择策略。

 

 

posted @ 2019-07-05 21:56  喂你在哪  阅读(1330)  评论(0编辑  收藏  举报