随着计算硬件和算法的发展,缺乏有标签数据的问题逐渐凸显出来,不是每个领域都会像 imagenet 这样花费大量的人工标注来产出一些数据,尤其针对工业界,每时每刻都在产生大量的新数据,标注这些数据是一件耗时耗力的事情,因此,目前监督学习虽然能够解决很多重要的问题,却也存在着一定的局限性,基于这样的一个环境,迁移学习变的尤为重要。
本文主要整理了综述文章 Transfer Learning For Cross-Dataset Recognition: A Survey [1] [ 1 ] 前面的一些基础入门内容。
背景
针对迁移学习,有两个基本概念
- 一个概念叫域(domain),包括两个内容 D=X,P(X) D = X , P ( X ) , X X 是特征空间它代表了所有可能特征向量取值, 是边缘概率分布它代表了某种特定的采样。例如 X X 是一个二维空间, 为过原点的一条直线。
边缘分布函数: 如果二维随机变量 X,Y X , Y 的分布函数 F(x,y) F ( x , y ) 为已知,那么随机变量 x,y x , y 的分布函数 Fx(x) F x ( x ) 和 Fy(y) F y ( y ) 可由 F(x,y) F ( x , y ) 求得。则 Fx(x) F x ( x ) 和 Fy(y) F y ( y ) 为分布函数 F(x,y) F ( x , y ) 的边缘分布函数。
- 另一个概念叫任务(task),它也包括两个部分 T=Y,f(x) T = Y , f ( x ) ,标签空间和预测函数。预测函数是基于输入的特征向量和标签学习而来的,它也称为条件概率分布 P(y|x) P ( y | x ) 。
所以迁移学习定义如下,给定了源域(source domain)和源任务(source task)、目标域(target domain)和目标任务(target task),利用源域在解决任务中获得一些知识来提升目标任务的这样一种算法。其中源域与目标域不相等或者源任务与目标任务不相同。
而这里域的不同可以分解为两个方面,一是特征空间不同,例如人脸的图片和鸟的图片样本空间就是不同的;或者是边缘概率分布不同,例如两个都是鸟类的样本空间,但是一个是在城市中拍到的鸟,一个是在大自然中拍到的。task的不同也体现在两方面,要么指的是标签空间不同,要么指的是条件概率不同,例如两个数据集数据分布不均衡。
也有论文将 domain 和 task 合二为一称之为一个 dataset,cross-dataset 指的就是 domain 或者 task 不同。
迁移学习可以应用在很多问题之上。例如图1中的物体识别任务,实际上分类问题,这里是一组比较常用的数据集,主要拍摄对象是办公室用品,后三个来自三个不同源,分别是从亚马逊上下载的图片,用网络摄像头拍摄得到的低分辨率图片,用高分辨率相机拍摄得到的高分辨率图片。Caltech-256 是从谷歌上下载包含256个类个图片,与 Office 整合之后成了一个新的数据集。这个问题其实就是属于相同的样本空间但是不同的边缘概率分布。另外还有人脸识别、场景分类等问题。
图1 4种办公用品数据集 [2] [ 2 ]