一、背景介绍
MNIST之于CV犹如Lena之于图像处理,HelloWorld之于编程语言一般,是每个coder必不可少的初体验。Kaggle上有一个叫做NIPS Papers的公开数据集,收集了自1987至2017年以来NIPS会议上发表所有文章的题目、作者信息、摘要和正文数据。基于这个数据集的一个有趣的统计显示近四届(含2017年)NIPS会议论文最高引用的数据集竟然是MNIST,大约20%的文章都直接使用或者引用了MNIST的相关内容。MNIST已经20多岁了,甚至它本身用于信件分拣的实际用途也已不复存在。MNIST只包含70000张28x28像素的单通道灰度图,相较于现在的算力而言是很小的数据,就算对于普通配置的机器训练也是很容易的。那为什么还有如此数量的顶会文章仍然执着于用MNIST进行方法验证呢?知乎上有一个与此相关的问题“怎么看待现在一些论文提出的新点子就只在MNIST或者CIFAR上跑跑实验?”。简单总结了一下大概原因有二:
1.对于一篇文章而言,除了训练神经网络本身的计算开销,还有优化算法等等其他的计算任务,而通常还需要与baseline进行对比,同一模型不同参数进行对比等等,这样下来本身计算量就变得很大了。
2.计算资源的限制,贫穷真的限制了很多的想象力。AlphaGoZero据说生成棋谱时系统的等效算力超过一万张1080Ti的总和。真·大力出奇迹。
MNIST数据集决定了一个研究者需要拥有的算力下限,而他的壕程度决定了上限。所以MNIST才能在2017年依然活跃在CV研究中。
为了摒弃第一类文章太干,第二类文章太水,第三类文章太不接地气的缺点,本文利用人民群众喜闻乐见、广大研究者爱不释手的MNIST数据展示迁移学习到底是什么、能干什么、局限是什么。(对,没错,正文才开始)
二、一些基本概念
在开始之前,首先明确一些基本概念。在这里还是要特别推荐一下杨强老师的A Survey on Transfer Learning(2010)这篇文章,这篇文章的重要之处在于它确定了迁移学习问题的研究范式和话语体系,在这之后的迁移学习文章当中,均采用这篇文章中的定义、概念和符号来描述问题。
域和任务(Domain and Task)
在经典的机器学习任务中,通常情况下会把数据集切分成训练集和测试集。大多数情况下在数据集上进行随机抽样可以保证训练集和测试集上的数据是独立同分布的。对于原始数据进行特征工程后得到每一个实例对应的特征向量,所有可能存在的特征向量构成特征空间。所有实例对应的特征向量在特征空间存在一定的分布,特征空间的边缘概率分布函数可以描述特征向量在特征空间的分布情况。域的概念首先确定了特征空间的形态,其次确定了特征向量在特征空间中的分布形态。
域 = 特征空间 + 边缘概率分布函数
有了域这个东西以后,就可以考虑在这基础上能干什么事情。手上空有一堆没标签的数据是无法训练模型的,在分类任务中标签的取值范围是所有可能的类别,在回归任务中标签的取值范围通常是连续值。机器学习中训练出来的预测函数可以把域中的实例映射到标签空间中。
任务 = 标签空间 + 预测函数
所以,总结一下,机器学习中你所有的需要基本上可以归纳为三点:域,任务和标签。传统机器学习通常所做的事情是你拥有一个域(这说明数据准备好了,特征工程已经结束,这个域通常叫源域),源域上的数据也都有完整的标签(这缺省定义了标签空间),然后经过分类或者回归最终得到了预测函数。此时,这个预测函数来到另外一个域(测试集构造的域,目标域),并且帮助域中的实例打上标签。注意在这里源任务和目标任务相同(标签空间相同,预测函数共用)。
迁移学习的不同设定(Different Settings of Transfer Learning)
下图是论文中给出的迁移学习的分类方法和不同分类下的标签状态,根据源域和目标域,源任务和目标任务的差异将其划分成4中不同类型的学习问题。其中第一种是传统机器学习问题,后三种是迁移学习问题,分别是归纳迁移学习、无监督迁移学习和直推迁移学习。图2是三种迁移学习问题的标签状态。在后面的MNIST实验中会在回来分析这些设定的差异。
图1 . 传统机器学习VS 迁移学习
图2. 迁移学习任务的标签差异
迁移学习的不同实现途径(Different Approaches to Transfer Learning)
迁移方法有4个层次,分别是实例迁移、特征迁移、参数迁移和关系迁移。本文的核心工作是利用MNIST构造出实例迁移、特征迁移和参数迁移的应用场景,更深一步理解迁移学习本身。
图3. 不同层次的迁移学习
三、MNIST之实例迁移
问题陈述:设想对原始MNIST进行如下改造。在训练集上筛选出数字6的所有实例(约6000个),随机抽取100个数字6的实例并且其余的数字6实例从训练集移除数据集,在当前训练集上构建一个分类模型,使之能进行数字6和其他数字类别的二分类任务。
问题分析:由于目标域的任务被清楚定义,即得到数字6与其他数字类别的二分类任务。但是数字6的对应实例相对于其他类别极度缺乏,所以考虑实例迁移方法。观察得到数字6与数字9是关于图像中心中心对称的,所以可以用数字9的相关实例进行数据构造。下面8幅2组图片均是由数字9经过旋转变换构成的数字6的辅助训练实例。第一组明显效果不理想,直观上去看与数字6的手写体存在明显的区别,第二组几乎无法分辨与正宗数字6实例的差异。运用此方法可以构造大量的用于辅助数字6进行二分类学习的实例。理想的迁移实例与测试数据有着更为相同的特征空间分布。
这一类的迁移学习问题属于归纳迁移学习问题,又因为源域和目标域上都有标签,且源任务和目标任务不同,所以又叫多任务学习。
数据和实验:
表1. 实例迁移数据集
表2. 实例迁移实验setting
表3. 实例迁移实验分类误差比对
The error rate result with the ratio between same-distribution anddiff-distribution training data = 0.02
TransferAdaboost(Tradaboost)是实例迁移方法的代表,简单来讲该算法的基本原理即对辅助数据进行筛选,由于辅助数据具有标签,当辅助数据被正确分类时,对应实例的权重提高,反之降低,需要注意的是辅助数据并不参与adaboost每次迭代的误差计算,基模型的分类误差只由同分布数据计算得出,因为Tradaboost并不考虑域间距离。
四、MNIST之特征迁移
问题陈述:设想对原始MNIST进行如下改造。将MNIST上除数字6、7、9之外的类别实例删除。已知存在一个二分类器可以有效区分数字6,7,如何在不训练新分类器的情况下成功区分数字7、9?
问题分析:虽然如上述设计的情境看起来在现实世界中毫无意义、略显抽象,但是类似的问题却实实存在。例如目标域上的数据没有标签,但是源域和目标域却不相同,这意味着源任务中的目标函数不能在目标域上使用,这就是大名鼎鼎的域适配问题。域适配问题属于直推迁移学习的范畴,属于特征迁移的方法。上述情况下源域和目标域各有两个类别,上一部分讲到数字6、9可以进行旋转变换,源域和目标域中数字7的特征空间和空间分布保持不变,但是经过旋转变换的数字6和9特征空间相同,空间分布不同。使用域适配问题的经典算法TransferComponent Analysis(TCA)进行域适配,TCA算法首先在特征空间上进行降维,用低维向量表征原有的特征空间,其次对于源域和目标域上的特征空间分布,TCA在保证域间距离减小的同时保持域内的内部属性。经过TCA映射后的特征空间和特征向量就可以使用传统的机器学习方法进行学习了。
数据和实验:
表4. 特征迁移数据集
表5. 域适配后源域分类正确率
表6. 域适配后目标域分类正确率
上述实验结果可以看到,用适配之后的特征向量进行训练分类准确率并没有下降很多,这是由于选择数据的特殊性,在二分类问题中并且数字6和9的相似度极高可以预期有很好的分类准确率。多分类问题中以及域间关系不明确的情况下,域适配通常会导致比较高的精度损耗,也就是通常所说的负迁移。
五、MNIST之参数迁移
问题陈述:在MNIST的多分类问题中,如何使用极少的训练数据训练出更好的多分类器?
问题分析:解决这个问题的基本思路仍是在上一篇文章中介绍的深度迁移学习技术。神经网络由于其良好的层次化特性可以便于进行参数的复用,从而提高现有模型的性能。在实验中每个类别分别保留1、10、100个实例,使用Lenet-5提取图片特征,使用SVM进行分类以检测在训练数据极少的情况下模型的分类精度。由于规模较大的深层神经网络难以训练,迁移学习的参数迁移技术使深层神经网络的迁移使用变得可能。使用Image-net预训练的Res-Net18作为迁移对象,以获得其强大的特征提取能力。由于源任务和目标任务不同,且源域和目标域相同且均有标签,所以这类深度迁移任务属于归纳迁移学习。
数据和实验:
表7. 参数迁移实验数据
表8. 参数迁移实验分类正确率对比
实验中可以看到在其他条件不变的情况下,只更换特征提取方法平均可以获得4%左右的性能提升。
六、总结
本文介绍了迁移学习的相关基本概念,使用MNIST数据集构造了3个典型的迁移学习问题,并展示了实例迁移、参数迁移和特征迁移的典型迁移方法,结合迁移学习分类方法给出了实际问题在迁移学习框架中的分析方法。希望能为各位读者带来更为直观易理解的迁移学习内容介绍。当然迁移学习存在的问题还有很多,例如缺乏大一统的框架(子问题之间相互独立),域间距离问题,负迁移问题,小数据学习问题等等。机器学习只是实现人工智能的途径之一,如果说牛顿三定律是自上而下理论指导现实的典型代表,那么机器学习就是从现象到规律的一门科学,通过海量数据的拟合获得数据背后的规律。而迁移学习可能可以从不同的视角为实现通用人工智能提供一条很有希望的途径。
参考文献
[1] Pan S J, Yang Q. A Survey on Transfer Learning[J].IEEE Transactions on Knowledge & Data Engineering, 2010, 22(10):1345-1359.
[2] THE MNIST DATABASE of handwritten digits
[3] Pan S J, Tsang I W, Kwok J T, et al. DomainAdaptation via Transfer Component Analysis[J]. IEEE Transactions on NeuralNetworks, 2011, 22(2):199-210.
[4] Dai W, Yang Q, Xue G R, et al. Boosting fortransfer learning[C]// International Conference on Machine Learning. ACM, 2007:193-200.
[5] Yosinski J, Clune J, Bengio Y, et al. Howtransferable are features in deep neural networks?[J]. 2014, 27:3320-3328.
[6] Weiss K, Khoshgoftaar T M, Wang D D. A survey oftransfer learning[J]. Journal of Big Data, 2016, 3(1):9.
领取专属 10元无门槛券
私享最新 技术干货